更新单例窗口 openform类 优化eventhandlers

This commit is contained in:
Mili 2023-02-20 22:57:58 +08:00
parent 6d5cb91df3
commit 9de90d2891
12 changed files with 411 additions and 346 deletions

View File

@ -63,7 +63,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
} }
else else
{ {
SingletonTable[type] = null; SingletonTable.Remove(type);
return true; return true;
} }
} }

View File

@ -16,274 +16,274 @@ namespace Milimoe.FunGame.Core.Interface
public interface IConnectEventHandler : IEventHandler public interface IConnectEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeConnectEventHandler; public event BeforeEventHandler? BeforeConnectEvent;
public event AfterEventHandler? AfterConnectEventHandler; public event AfterEventHandler? AfterConnectEvent;
public event SucceedEventHandler? SucceedConnectEventHandler; public event SucceedEventHandler? SucceedConnectEvent;
public event FailedEventHandler? FailedConnectEventHandler; public event FailedEventHandler? FailedConnectEvent;
public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeConnectEvent(GeneralEventArgs e);
public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e); public EventResult OnAfterConnectEvent(GeneralEventArgs e);
public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedConnectEvent(GeneralEventArgs e);
public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e); public EventResult OnFailedConnectEvent(GeneralEventArgs e);
} }
public interface IDisconnectEventHandler : IEventHandler public interface IDisconnectEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeDisconnectEventHandler; public event BeforeEventHandler? BeforeDisconnectEvent;
public event AfterEventHandler? AfterDisconnectEventHandler; public event AfterEventHandler? AfterDisconnectEvent;
public event SucceedEventHandler? SucceedDisconnectEventHandler; public event SucceedEventHandler? SucceedDisconnectEvent;
public event FailedEventHandler? FailedDisconnectEventHandler; public event FailedEventHandler? FailedDisconnectEvent;
public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e);
public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnAfterDisconnectEvent(GeneralEventArgs e);
public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e);
public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnFailedDisconnectEvent(GeneralEventArgs e);
} }
public interface ILoginEventHandler : IEventHandler public interface ILoginEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeLoginEventHandler; public event BeforeEventHandler? BeforeLoginEvent;
public event AfterEventHandler? AfterLoginEventHandler; public event AfterEventHandler? AfterLoginEvent;
public event SucceedEventHandler? SucceedLoginEventHandler; public event SucceedEventHandler? SucceedLoginEvent;
public event FailedEventHandler? FailedLoginEventHandler; public event FailedEventHandler? FailedLoginEvent;
public EventResult OnBeforeLoginEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeLoginEvent(GeneralEventArgs e);
public EventResult OnAfterLoginEvent(object sender, GeneralEventArgs e); public EventResult OnAfterLoginEvent(GeneralEventArgs e);
public EventResult OnSucceedLoginEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedLoginEvent(GeneralEventArgs e);
public EventResult OnFailedLoginEvent(object sender, GeneralEventArgs e); public EventResult OnFailedLoginEvent(GeneralEventArgs e);
} }
public interface ILogoutEventHandler : IEventHandler public interface ILogoutEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeLogoutEventHandler; public event BeforeEventHandler? BeforeLogoutEvent;
public event AfterEventHandler? AfterLogoutEventHandler; public event AfterEventHandler? AfterLogoutEvent;
public event SucceedEventHandler? SucceedLogoutEventHandler; public event SucceedEventHandler? SucceedLogoutEvent;
public event FailedEventHandler? FailedLogoutEventHandler; public event FailedEventHandler? FailedLogoutEvent;
public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeLogoutEvent(GeneralEventArgs e);
public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnAfterLogoutEvent(GeneralEventArgs e);
public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedLogoutEvent(GeneralEventArgs e);
public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnFailedLogoutEvent(GeneralEventArgs e);
} }
public interface IRegEventHandler : IEventHandler public interface IRegEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeRegEventHandler; public event BeforeEventHandler? BeforeRegEvent;
public event AfterEventHandler? AfterRegEventHandler; public event AfterEventHandler? AfterRegEvent;
public event SucceedEventHandler? SucceedRegEventHandler; public event SucceedEventHandler? SucceedRegEvent;
public event FailedEventHandler? FailedRegEventHandler; public event FailedEventHandler? FailedRegEvent;
public EventResult OnBeforeRegEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeRegEvent(GeneralEventArgs e);
public EventResult OnAfterRegEvent(object sender, GeneralEventArgs e); public EventResult OnAfterRegEvent(GeneralEventArgs e);
public EventResult OnSucceedRegEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedRegEvent(GeneralEventArgs e);
public EventResult OnFailedRegEvent(object sender, GeneralEventArgs e); public EventResult OnFailedRegEvent(GeneralEventArgs e);
} }
public interface IIntoRoomEventHandler : IEventHandler public interface IIntoRoomEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeIntoRoomEventHandler; public event BeforeEventHandler? BeforeIntoRoomEvent;
public event AfterEventHandler? AfterIntoRoomEventHandler; public event AfterEventHandler? AfterIntoRoomEvent;
public event SucceedEventHandler? SucceedIntoRoomEventHandler; public event SucceedEventHandler? SucceedIntoRoomEvent;
public event FailedEventHandler? FailedIntoRoomEventHandler; public event FailedEventHandler? FailedIntoRoomEvent;
public EventResult OnBeforeIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeIntoRoomEvent(GeneralEventArgs e);
public EventResult OnAfterIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterIntoRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedIntoRoomEvent(GeneralEventArgs e);
public EventResult OnFailedIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedIntoRoomEvent(GeneralEventArgs e);
} }
public interface ISendTalkEventHandler : IEventHandler public interface ISendTalkEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeSendTalkEventHandler; public event BeforeEventHandler? BeforeSendTalkEvent;
public event AfterEventHandler? AfterSendTalkEventHandler; public event AfterEventHandler? AfterSendTalkEvent;
public event SucceedEventHandler? SucceedSendTalkEventHandler; public event SucceedEventHandler? SucceedSendTalkEvent;
public event FailedEventHandler? FailedSendTalkEventHandler; public event FailedEventHandler? FailedSendTalkEvent;
public EventResult OnBeforeSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeSendTalkEvent(GeneralEventArgs e);
public EventResult OnAfterSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnAfterSendTalkEvent(GeneralEventArgs e);
public EventResult OnSucceedSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedSendTalkEvent(GeneralEventArgs e);
public EventResult OnFailedSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnFailedSendTalkEvent(GeneralEventArgs e);
} }
public interface ICreateRoomEventHandler : IEventHandler public interface ICreateRoomEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeCreateRoomEventHandler; public event BeforeEventHandler? BeforeCreateRoomEvent;
public event AfterEventHandler? AfterCreateRoomEventHandler; public event AfterEventHandler? AfterCreateRoomEvent;
public event SucceedEventHandler? SucceedCreateRoomEventHandler; public event SucceedEventHandler? SucceedCreateRoomEvent;
public event FailedEventHandler? FailedCreateRoomEventHandler; public event FailedEventHandler? FailedCreateRoomEvent;
public EventResult OnBeforeCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeCreateRoomEvent(GeneralEventArgs e);
public EventResult OnAfterCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterCreateRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedCreateRoomEvent(GeneralEventArgs e);
public EventResult OnFailedCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedCreateRoomEvent(GeneralEventArgs e);
} }
public interface IQuitRoomEventHandler : IEventHandler public interface IQuitRoomEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeQuitRoomEventHandler; public event BeforeEventHandler? BeforeQuitRoomEvent;
public event AfterEventHandler? AfterQuitRoomEventHandler; public event AfterEventHandler? AfterQuitRoomEvent;
public event SucceedEventHandler? SucceedQuitRoomEventHandler; public event SucceedEventHandler? SucceedQuitRoomEvent;
public event FailedEventHandler? FailedQuitRoomEventHandler; public event FailedEventHandler? FailedQuitRoomEvent;
public EventResult OnBeforeQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeQuitRoomEvent(GeneralEventArgs e);
public EventResult OnAfterQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterQuitRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedQuitRoomEvent(GeneralEventArgs e);
public EventResult OnFailedQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedQuitRoomEvent(GeneralEventArgs e);
} }
public interface IChangeRoomSettingEventHandler : IEventHandler public interface IChangeRoomSettingEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeChangeRoomSettingEventHandler; public event BeforeEventHandler? BeforeChangeRoomSettingEvent;
public event AfterEventHandler? AfterChangeRoomSettingEventHandler; public event AfterEventHandler? AfterChangeRoomSettingEvent;
public event SucceedEventHandler? SucceedChangeRoomSettingEventHandler; public event SucceedEventHandler? SucceedChangeRoomSettingEvent;
public event FailedEventHandler? FailedChangeRoomSettingEventHandler; public event FailedEventHandler? FailedChangeRoomSettingEvent;
public EventResult OnBeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e);
} }
public interface IStartMatchEventHandler : IEventHandler public interface IStartMatchEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeStartMatchEventHandler; public event BeforeEventHandler? BeforeStartMatchEvent;
public event AfterEventHandler? AfterStartMatchEventHandler; public event AfterEventHandler? AfterStartMatchEvent;
public event SucceedEventHandler? SucceedStartMatchEventHandler; public event SucceedEventHandler? SucceedStartMatchEvent;
public event FailedEventHandler? FailedStartMatchEventHandler; public event FailedEventHandler? FailedStartMatchEvent;
public EventResult OnBeforeStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e);
public EventResult OnAfterStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnAfterStartMatchEvent(GeneralEventArgs e);
public EventResult OnSucceedStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e);
public EventResult OnFailedStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnFailedStartMatchEvent(GeneralEventArgs e);
} }
public interface IStartGameEventHandler : IEventHandler public interface IStartGameEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeStartGameEventHandler; public event BeforeEventHandler? BeforeStartGameEvent;
public event AfterEventHandler? AfterStartGameEventHandler; public event AfterEventHandler? AfterStartGameEvent;
public event SucceedEventHandler? SucceedStartGameEventHandler; public event SucceedEventHandler? SucceedStartGameEvent;
public event FailedEventHandler? FailedStartGameEventHandler; public event FailedEventHandler? FailedStartGameEvent;
public EventResult OnBeforeStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeStartGameEvent(GeneralEventArgs e);
public EventResult OnAfterStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnAfterStartGameEvent(GeneralEventArgs e);
public EventResult OnSucceedStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedStartGameEvent(GeneralEventArgs e);
public EventResult OnFailedStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnFailedStartGameEvent(GeneralEventArgs e);
} }
public interface IChangeProfileEventHandler : IEventHandler public interface IChangeProfileEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeChangeProfileEventHandler; public event BeforeEventHandler? BeforeChangeProfileEvent;
public event AfterEventHandler? AfterChangeProfileEventHandler; public event AfterEventHandler? AfterChangeProfileEvent;
public event SucceedEventHandler? SucceedChangeProfileEventHandler; public event SucceedEventHandler? SucceedChangeProfileEvent;
public event FailedEventHandler? FailedChangeProfileEventHandler; public event FailedEventHandler? FailedChangeProfileEvent;
public EventResult OnBeforeChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e);
public EventResult OnAfterChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e);
public EventResult OnFailedChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e);
} }
public interface IChangeAccountSettingEventHandler : IEventHandler public interface IChangeAccountSettingEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeChangeAccountSettingEventHandler; public event BeforeEventHandler? BeforeChangeAccountSettingEvent;
public event AfterEventHandler? AfterChangeAccountSettingEventHandler; public event AfterEventHandler? AfterChangeAccountSettingEvent;
public event SucceedEventHandler? SucceedChangeAccountSettingEventHandler; public event SucceedEventHandler? SucceedChangeAccountSettingEvent;
public event FailedEventHandler? FailedChangeAccountSettingEventHandler; public event FailedEventHandler? FailedChangeAccountSettingEvent;
public EventResult OnBeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e);
} }
public interface IOpenInventoryEventHandler : IEventHandler public interface IOpenInventoryEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeOpenInventoryEventHandler; public event BeforeEventHandler? BeforeOpenInventoryEvent;
public event AfterEventHandler? AfterOpenInventoryEventHandler; public event AfterEventHandler? AfterOpenInventoryEvent;
public event SucceedEventHandler? SucceedOpenInventoryEventHandler; public event SucceedEventHandler? SucceedOpenInventoryEvent;
public event FailedEventHandler? FailedOpenInventoryEventHandler; public event FailedEventHandler? FailedOpenInventoryEvent;
public EventResult OnBeforeOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnAfterOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnFailedOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e);
} }
public interface ISignInEventHandler : IEventHandler public interface ISignInEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeSignInEventHandler; public event BeforeEventHandler? BeforeSignInEvent;
public event AfterEventHandler? AfterSignInEventHandler; public event AfterEventHandler? AfterSignInEvent;
public event SucceedEventHandler? SucceedSignInEventHandler; public event SucceedEventHandler? SucceedSignInEvent;
public event FailedEventHandler? FailedSignInEventHandler; public event FailedEventHandler? FailedSignInEvent;
public EventResult OnBeforeSignInEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeSignInEvent(GeneralEventArgs e);
public EventResult OnAfterSignInEvent(object sender, GeneralEventArgs e); public EventResult OnAfterSignInEvent(GeneralEventArgs e);
public EventResult OnSucceedSignInEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedSignInEvent(GeneralEventArgs e);
public EventResult OnFailedSignInEvent(object sender, GeneralEventArgs e); public EventResult OnFailedSignInEvent(GeneralEventArgs e);
} }
public interface IOpenStoreEventHandler : IEventHandler public interface IOpenStoreEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeOpenStoreEventHandler; public event BeforeEventHandler? BeforeOpenStoreEvent;
public event AfterEventHandler? AfterOpenStoreEventHandler; public event AfterEventHandler? AfterOpenStoreEvent;
public event SucceedEventHandler? SucceedOpenStoreEventHandler; public event SucceedEventHandler? SucceedOpenStoreEvent;
public event FailedEventHandler? FailedOpenStoreEventHandler; public event FailedEventHandler? FailedOpenStoreEvent;
public EventResult OnBeforeOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e);
public EventResult OnAfterOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e);
public EventResult OnFailedOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e);
} }
public interface IBuyItemEventHandler : IEventHandler public interface IBuyItemEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeBuyItemEventHandler; public event BeforeEventHandler? BeforeBuyItemEvent;
public event AfterEventHandler? AfterBuyItemEventHandler; public event AfterEventHandler? AfterBuyItemEvent;
public event SucceedEventHandler? SucceedBuyItemEventHandler; public event SucceedEventHandler? SucceedBuyItemEvent;
public event FailedEventHandler? FailedBuyItemEventHandler; public event FailedEventHandler? FailedBuyItemEvent;
public EventResult OnBeforeBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e);
public EventResult OnAfterBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnAfterBuyItemEvent(GeneralEventArgs e);
public EventResult OnSucceedBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e);
public EventResult OnFailedBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnFailedBuyItemEvent(GeneralEventArgs e);
} }
public interface IShowRankingEventHandler : IEventHandler public interface IShowRankingEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeShowRankingEventHandler; public event BeforeEventHandler? BeforeShowRankingEvent;
public event AfterEventHandler? AfterShowRankingEventHandler; public event AfterEventHandler? AfterShowRankingEvent;
public event SucceedEventHandler? SucceedShowRankingEventHandler; public event SucceedEventHandler? SucceedShowRankingEvent;
public event FailedEventHandler? FailedShowRankingEventHandler; public event FailedEventHandler? FailedShowRankingEvent;
public EventResult OnBeforeShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e);
public EventResult OnAfterShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterShowRankingEvent(GeneralEventArgs e);
public EventResult OnSucceedShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e);
public EventResult OnFailedShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedShowRankingEvent(GeneralEventArgs e);
} }
public interface IUseItemEventHandler : IEventHandler public interface IUseItemEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeUseItemEventHandler; public event BeforeEventHandler? BeforeUseItemEvent;
public event AfterEventHandler? AfterUseItemEventHandler; public event AfterEventHandler? AfterUseItemEvent;
public event SucceedEventHandler? SucceedUseItemEventHandler; public event SucceedEventHandler? SucceedUseItemEvent;
public event FailedEventHandler? FailedUseItemEventHandler; public event FailedEventHandler? FailedUseItemEvent;
public EventResult OnBeforeUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeUseItemEvent(GeneralEventArgs e);
public EventResult OnAfterUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnAfterUseItemEvent(GeneralEventArgs e);
public EventResult OnSucceedUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedUseItemEvent(GeneralEventArgs e);
public EventResult OnFailedUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnFailedUseItemEvent(GeneralEventArgs e);
} }
public interface IEndGameEventHandler : IEventHandler public interface IEndGameEventHandler : IEventHandler
{ {
public event BeforeEventHandler? BeforeEndGameEventHandler; public event BeforeEventHandler? BeforeEndGameEvent;
public event AfterEventHandler? AfterEndGameEventHandler; public event AfterEventHandler? AfterEndGameEvent;
public event SucceedEventHandler? SucceedEndGameEventHandler; public event SucceedEventHandler? SucceedEndGameEvent;
public event FailedEventHandler? FailedEndGameEventHandler; public event FailedEventHandler? FailedEndGameEvent;
public EventResult OnBeforeEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnBeforeEndGameEvent(GeneralEventArgs e);
public EventResult OnAfterEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnAfterEndGameEvent(GeneralEventArgs e);
public EventResult OnSucceedEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedEndGameEvent(GeneralEventArgs e);
public EventResult OnFailedEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnFailedEndGameEvent(GeneralEventArgs e);
} }
} }

View File

@ -8,169 +8,169 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary> /// </summary>
public interface IConnectEvent public interface IConnectEvent
{ {
public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e); public EventResult BeforeConnect(object sender, GeneralEventArgs e);
public EventResult AfterConnectEvent(object sender, GeneralEventArgs e); public EventResult AfterConnect(object sender, GeneralEventArgs e);
public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e); public EventResult SucceedConnect(object sender, GeneralEventArgs e);
public EventResult FailedConnectEvent(object sender, GeneralEventArgs e); public EventResult FailedConnect(object sender, GeneralEventArgs e);
} }
public interface IDisconnectEvent public interface IDisconnectEvent
{ {
public EventResult BeforeDisconnectEvent(object sender, GeneralEventArgs e); public EventResult BeforeDisconnect(object sender, GeneralEventArgs e);
public EventResult AfterDisconnectEvent(object sender, GeneralEventArgs e); public EventResult AfterDisconnect(object sender, GeneralEventArgs e);
public EventResult SucceedDisconnectEvent(object sender, GeneralEventArgs e); public EventResult SucceedDisconnect(object sender, GeneralEventArgs e);
public EventResult FailedDisconnectEvent(object sender, GeneralEventArgs e); public EventResult FailedDisconnect(object sender, GeneralEventArgs e);
} }
public interface ILoginEvent public interface ILoginEvent
{ {
public EventResult BeforeLoginEvent(object sender, GeneralEventArgs e); public EventResult BeforeLogin(object sender, GeneralEventArgs e);
public EventResult AfterLoginEvent(object sender, GeneralEventArgs e); public EventResult AfterLogin(object sender, GeneralEventArgs e);
public EventResult SucceedLoginEvent(object sender, GeneralEventArgs e); public EventResult SucceedLogin(object sender, GeneralEventArgs e);
public EventResult FailedLoginEvent(object sender, GeneralEventArgs e); public EventResult FailedLogin(object sender, GeneralEventArgs e);
} }
public interface ILogoutEvent public interface ILogoutEvent
{ {
public EventResult BeforeLogoutEvent(object sender, GeneralEventArgs e); public EventResult BeforeLogout(object sender, GeneralEventArgs e);
public EventResult AfterLogoutEvent(object sender, GeneralEventArgs e); public EventResult AfterLogout(object sender, GeneralEventArgs e);
public EventResult SucceedLogoutEvent(object sender, GeneralEventArgs e); public EventResult SucceedLogout(object sender, GeneralEventArgs e);
public EventResult FailedLogoutEvent(object sender, GeneralEventArgs e); public EventResult FailedLogout(object sender, GeneralEventArgs e);
} }
public interface IRegEvent public interface IRegEvent
{ {
public EventResult BeforeRegEvent(object sender, GeneralEventArgs e); public EventResult BeforeReg(object sender, GeneralEventArgs e);
public EventResult AfterRegEvent(object sender, GeneralEventArgs e); public EventResult AfterReg(object sender, GeneralEventArgs e);
public EventResult SucceedRegEvent(object sender, GeneralEventArgs e); public EventResult SucceedReg(object sender, GeneralEventArgs e);
public EventResult FailedRegEvent(object sender, GeneralEventArgs e); public EventResult FailedReg(object sender, GeneralEventArgs e);
} }
public interface IIntoRoomEvent public interface IIntoRoomEvent
{ {
public EventResult BeforeIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult BeforeIntoRoom(object sender, GeneralEventArgs e);
public EventResult AfterIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult AfterIntoRoom(object sender, GeneralEventArgs e);
public EventResult SucceedIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult SucceedIntoRoom(object sender, GeneralEventArgs e);
public EventResult FailedIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult FailedIntoRoom(object sender, GeneralEventArgs e);
} }
public interface ISendTalkEvent public interface ISendTalkEvent
{ {
public EventResult BeforeSendTalkEvent(object sender, GeneralEventArgs e); public EventResult BeforeSendTalk(object sender, GeneralEventArgs e);
public EventResult AfterSendTalkEvent(object sender, GeneralEventArgs e); public EventResult AfterSendTalk(object sender, GeneralEventArgs e);
public EventResult SucceedSendTalkEvent(object sender, GeneralEventArgs e); public EventResult SucceedSendTalk(object sender, GeneralEventArgs e);
public EventResult FailedSendTalkEvent(object sender, GeneralEventArgs e); public EventResult FailedSendTalk(object sender, GeneralEventArgs e);
} }
public interface ICreateRoomEvent public interface ICreateRoomEvent
{ {
public EventResult BeforeCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult BeforeCreateRoom(object sender, GeneralEventArgs e);
public EventResult AfterCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult AfterCreateRoom(object sender, GeneralEventArgs e);
public EventResult SucceedCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult SucceedCreateRoom(object sender, GeneralEventArgs e);
public EventResult FailedCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult FailedCreateRoom(object sender, GeneralEventArgs e);
} }
public interface IQuitRoomEvent public interface IQuitRoomEvent
{ {
public EventResult BeforeQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult BeforeQuitRoom(object sender, GeneralEventArgs e);
public EventResult AfterQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult AfterQuitRoom(object sender, GeneralEventArgs e);
public EventResult SucceedQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult SucceedQuitRoom(object sender, GeneralEventArgs e);
public EventResult FailedQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult FailedQuitRoom(object sender, GeneralEventArgs e);
} }
public interface IChangeRoomSettingEvent public interface IChangeRoomSettingEvent
{ {
public EventResult BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult BeforeChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult AfterChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult SucceedChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult FailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult FailedChangeRoomSetting(object sender, GeneralEventArgs e);
} }
public interface IStartMatchEvent public interface IStartMatchEvent
{ {
public EventResult BeforeStartMatchEvent(object sender, GeneralEventArgs e); public EventResult BeforeStartMatch(object sender, GeneralEventArgs e);
public EventResult AfterStartMatchEvent(object sender, GeneralEventArgs e); public EventResult AfterStartMatch(object sender, GeneralEventArgs e);
public EventResult SucceedStartMatchEvent(object sender, GeneralEventArgs e); public EventResult SucceedStartMatch(object sender, GeneralEventArgs e);
public EventResult FailedStartMatchEvent(object sender, GeneralEventArgs e); public EventResult FailedStartMatch(object sender, GeneralEventArgs e);
} }
public interface IStartGameEvent public interface IStartGameEvent
{ {
public EventResult BeforeStartGameEvent(object sender, GeneralEventArgs e); public EventResult BeforeStartGame(object sender, GeneralEventArgs e);
public EventResult AfterStartGameEvent(object sender, GeneralEventArgs e); public EventResult AfterStartGame(object sender, GeneralEventArgs e);
public EventResult SucceedStartGameEvent(object sender, GeneralEventArgs e); public EventResult SucceedStartGame(object sender, GeneralEventArgs e);
public EventResult FailedStartGameEvent(object sender, GeneralEventArgs e); public EventResult FailedStartGame(object sender, GeneralEventArgs e);
} }
public interface IChangeProfileEvent public interface IChangeProfileEvent
{ {
public EventResult BeforeChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult BeforeChangeProfile(object sender, GeneralEventArgs e);
public EventResult AfterChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult AfterChangeProfile(object sender, GeneralEventArgs e);
public EventResult SucceedChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult SucceedChangeProfile(object sender, GeneralEventArgs e);
public EventResult FailedChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult FailedChangeProfile(object sender, GeneralEventArgs e);
} }
public interface IChangeAccountSettingEvent public interface IChangeAccountSettingEvent
{ {
public EventResult BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult BeforeChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult AfterChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult SucceedChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult FailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult FailedChangeAccountSetting(object sender, GeneralEventArgs e);
} }
public interface IOpenInventoryEvent public interface IOpenInventoryEvent
{ {
public EventResult BeforeOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult BeforeOpenInventory(object sender, GeneralEventArgs e);
public EventResult AfterOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult AfterOpenInventory(object sender, GeneralEventArgs e);
public EventResult SucceedOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult SucceedOpenInventory(object sender, GeneralEventArgs e);
public EventResult FailedOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult FailedOpenInventory(object sender, GeneralEventArgs e);
} }
public interface ISignInEvent public interface ISignInEvent
{ {
public EventResult BeforeSignInEvent(object sender, GeneralEventArgs e); public EventResult BeforeSignIn(object sender, GeneralEventArgs e);
public EventResult AfterSignInEvent(object sender, GeneralEventArgs e); public EventResult AfterSignIn(object sender, GeneralEventArgs e);
public EventResult SucceedSignInEvent(object sender, GeneralEventArgs e); public EventResult SucceedSignIn(object sender, GeneralEventArgs e);
public EventResult FailedSignInEvent(object sender, GeneralEventArgs e); public EventResult FailedSignIn(object sender, GeneralEventArgs e);
} }
public interface IOpenStoreEvent public interface IOpenStoreEvent
{ {
public EventResult BeforeOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult BeforeOpenStore(object sender, GeneralEventArgs e);
public EventResult AfterOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult AfterOpenStore(object sender, GeneralEventArgs e);
public EventResult SucceedOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult SucceedOpenStore(object sender, GeneralEventArgs e);
public EventResult FailedOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult FailedOpenStore(object sender, GeneralEventArgs e);
} }
public interface IBuyItemEvent public interface IBuyItemEvent
{ {
public EventResult BeforeBuyItemEvent(object sender, GeneralEventArgs e); public EventResult BeforeBuyItem(object sender, GeneralEventArgs e);
public EventResult AfterBuyItemEvent(object sender, GeneralEventArgs e); public EventResult AfterBuyItem(object sender, GeneralEventArgs e);
public EventResult SucceedBuyItemEvent(object sender, GeneralEventArgs e); public EventResult SucceedBuyItem(object sender, GeneralEventArgs e);
public EventResult FailedBuyItemEvent(object sender, GeneralEventArgs e); public EventResult FailedBuyItem(object sender, GeneralEventArgs e);
} }
public interface IShowRankingEvent public interface IShowRankingEvent
{ {
public EventResult BeforeShowRankingEvent(object sender, GeneralEventArgs e); public EventResult BeforeShowRanking(object sender, GeneralEventArgs e);
public EventResult AfterShowRankingEvent(object sender, GeneralEventArgs e); public EventResult AfterShowRanking(object sender, GeneralEventArgs e);
public EventResult SucceedShowRankingEvent(object sender, GeneralEventArgs e); public EventResult SucceedShowRanking(object sender, GeneralEventArgs e);
public EventResult FailedShowRankingEvent(object sender, GeneralEventArgs e); public EventResult FailedShowRanking(object sender, GeneralEventArgs e);
} }
public interface IUseItemEvent public interface IUseItemEvent
{ {
public EventResult BeforeUseItemEvent(object sender, GeneralEventArgs e); public EventResult BeforeUseItem(object sender, GeneralEventArgs e);
public EventResult AfterUseItemEvent(object sender, GeneralEventArgs e); public EventResult AfterUseItem(object sender, GeneralEventArgs e);
public EventResult SucceedUseItemEvent(object sender, GeneralEventArgs e); public EventResult SucceedUseItem(object sender, GeneralEventArgs e);
public EventResult FailedUseItemEvent(object sender, GeneralEventArgs e); public EventResult FailedUseItem(object sender, GeneralEventArgs e);
} }
public interface IEndGameEvent public interface IEndGameEvent
{ {
public EventResult BeforeEndGameEvent(object sender, GeneralEventArgs e); public EventResult BeforeEndGame(object sender, GeneralEventArgs e);
public EventResult AfterEndGameEvent(object sender, GeneralEventArgs e); public EventResult AfterEndGame(object sender, GeneralEventArgs e);
public EventResult SucceedEndGameEvent(object sender, GeneralEventArgs e); public EventResult SucceedEndGame(object sender, GeneralEventArgs e);
public EventResult FailedEndGameEvent(object sender, GeneralEventArgs e); public EventResult FailedEndGame(object sender, GeneralEventArgs e);
} }
} }

View File

@ -16,6 +16,11 @@ namespace Milimoe.FunGame.Core.Library.Common.Event
this.EventMsg = EventMsg; this.EventMsg = EventMsg;
this.Parameters = Parameters; this.Parameters = Parameters;
} }
public GeneralEventArgs(params object[]? Parameters)
{
this.Parameters = Parameters;
}
} }
public class GeneralEvent<T> public class GeneralEvent<T>

View File

@ -8,125 +8,125 @@ namespace Milimoe.FunGame.Desktop.Library.Base
{ {
public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILogoutEventHandler public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILogoutEventHandler
{ {
public event IEventHandler.BeforeEventHandler? BeforeConnectEventHandler; public event IEventHandler.BeforeEventHandler? BeforeConnectEvent;
public event IEventHandler.AfterEventHandler? AfterConnectEventHandler; public event IEventHandler.AfterEventHandler? AfterConnectEvent;
public event IEventHandler.SucceedEventHandler? SucceedConnectEventHandler; public event IEventHandler.SucceedEventHandler? SucceedConnectEvent;
public event IEventHandler.FailedEventHandler? FailedConnectEventHandler; public event IEventHandler.FailedEventHandler? FailedConnectEvent;
public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e) public EventResult OnAfterConnectEvent(GeneralEventArgs e)
{ {
if (AfterConnectEventHandler != null) if (AfterConnectEvent != null)
{ {
return AfterConnectEventHandler(sender, e); return AfterConnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e) public EventResult OnBeforeConnectEvent(GeneralEventArgs e)
{ {
if (BeforeConnectEventHandler != null) if (BeforeConnectEvent != null)
{ {
return BeforeConnectEventHandler(sender, e); return BeforeConnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e) public EventResult OnSucceedConnectEvent(GeneralEventArgs e)
{ {
if (SucceedConnectEventHandler != null) if (SucceedConnectEvent != null)
{ {
return SucceedConnectEventHandler(sender, e); return SucceedConnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e) public EventResult OnFailedConnectEvent(GeneralEventArgs e)
{ {
if (FailedConnectEventHandler != null) if (FailedConnectEvent != null)
{ {
return FailedConnectEventHandler(sender, e); return FailedConnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public event IEventHandler.BeforeEventHandler? BeforeDisconnectEventHandler; public event IEventHandler.BeforeEventHandler? BeforeDisconnectEvent;
public event IEventHandler.AfterEventHandler? AfterDisconnectEventHandler; public event IEventHandler.AfterEventHandler? AfterDisconnectEvent;
public event IEventHandler.SucceedEventHandler? SucceedDisconnectEventHandler; public event IEventHandler.SucceedEventHandler? SucceedDisconnectEvent;
public event IEventHandler.FailedEventHandler? FailedDisconnectEventHandler; public event IEventHandler.FailedEventHandler? FailedDisconnectEvent;
public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e) public EventResult OnAfterDisconnectEvent(GeneralEventArgs e)
{ {
if (AfterDisconnectEventHandler != null) if (AfterDisconnectEvent != null)
{ {
return AfterDisconnectEventHandler(sender, e); return AfterDisconnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e) public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e)
{ {
if (BeforeDisconnectEventHandler != null) if (BeforeDisconnectEvent != null)
{ {
return BeforeDisconnectEventHandler(sender, e); return BeforeDisconnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e) public EventResult OnFailedDisconnectEvent(GeneralEventArgs e)
{ {
if (FailedDisconnectEventHandler != null) if (FailedDisconnectEvent != null)
{ {
return FailedDisconnectEventHandler(sender, e); return FailedDisconnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e) public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e)
{ {
if (SucceedDisconnectEventHandler != null) if (SucceedDisconnectEvent != null)
{ {
return SucceedDisconnectEventHandler(sender, e); return SucceedDisconnectEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public event IEventHandler.BeforeEventHandler? BeforeLogoutEventHandler; public event IEventHandler.BeforeEventHandler? BeforeLogoutEvent;
public event IEventHandler.AfterEventHandler? AfterLogoutEventHandler; public event IEventHandler.AfterEventHandler? AfterLogoutEvent;
public event IEventHandler.SucceedEventHandler? SucceedLogoutEventHandler; public event IEventHandler.SucceedEventHandler? SucceedLogoutEvent;
public event IEventHandler.FailedEventHandler? FailedLogoutEventHandler; public event IEventHandler.FailedEventHandler? FailedLogoutEvent;
public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e) public EventResult OnAfterLogoutEvent(GeneralEventArgs e)
{ {
if (AfterLogoutEventHandler != null) if (AfterLogoutEvent != null)
{ {
return AfterLogoutEventHandler(sender, e); return AfterLogoutEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e) public EventResult OnBeforeLogoutEvent(GeneralEventArgs e)
{ {
if (BeforeLogoutEventHandler != null) if (BeforeLogoutEvent != null)
{ {
return BeforeLogoutEventHandler(sender, e); return BeforeLogoutEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e) public EventResult OnFailedLogoutEvent(GeneralEventArgs e)
{ {
if (FailedLogoutEventHandler != null) if (FailedLogoutEvent != null)
{ {
return FailedLogoutEventHandler(sender, e); return FailedLogoutEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }
public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e) public EventResult OnSucceedLogoutEvent(GeneralEventArgs e)
{ {
if (SucceedLogoutEventHandler != null) if (SucceedLogoutEvent != null)
{ {
return SucceedLogoutEventHandler(sender, e); return SucceedLogoutEvent(this, e);
} }
else return EventResult.NoEventImplement; else return EventResult.NoEventImplement;
} }

View File

@ -45,8 +45,8 @@
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "GeneralForm"; this.Name = "GeneralForm";
this.Text = "GeneralForm"; this.Text = "GeneralForm";
this.FormClosed += FormClosedEvent;
this.ResumeLayout(false); this.ResumeLayout(false);
} }
#endregion #endregion

View File

@ -1,12 +1,5 @@
using System; using Milimoe.FunGame.Core.Api.Utility;
using System.Collections.Generic; using Milimoe.FunGame.Desktop.UI;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Milimoe.FunGame.Desktop.Library.Component namespace Milimoe.FunGame.Desktop.Library.Component
{ {
@ -57,5 +50,46 @@ namespace Milimoe.FunGame.Desktop.Library.Component
Top += e.Location.Y - loc_y; Top += e.Location.Y - loc_y;
} }
} }
/// <summary>
/// 自定义窗体销毁方法
/// </summary>
protected virtual void FormClosedEvent(object? sender, FormClosedEventArgs e)
{
if (GetType() == typeof(ShowMessage))
{
return;
}
Singleton.Remove(this);
if (GetType() == typeof(Main))
{
RunTime.Main = null;
}
else if (GetType() == typeof(Login))
{
RunTime.Login = null;
}
else if (GetType() == typeof(Register))
{
RunTime.Register = null;
}
else if (GetType() == typeof(InventoryUI))
{
RunTime.Inventory = null;
}
else if (GetType() == typeof(StoreUI))
{
RunTime.Store = null;
}
else if (GetType() == typeof(RoomSetting))
{
RunTime.RoomSetting = null;
}
else if (GetType() == typeof(UserCenter))
{
RunTime.UserCenter = null;
}
base.Dispose();
}
} }
} }

View File

@ -28,9 +28,20 @@ namespace Milimoe.FunGame.Desktop.Library
public const string Close = ".close"; public const string Close = ".close";
} }
/// <summary>
/// 运行时单例
/// 插件接口可以从这里拿Socket和窗体
/// </summary>
public class RunTime public class RunTime
{ {
public static Core.Library.Common.Network.Socket? Socket { get; set; } = null; public static Core.Library.Common.Network.Socket? Socket { get; set; } = null;
public static UI.Main? Main { get; set; } = null;
public static UI.Login? Login { get; set; } = null;
public static UI.Register? Register { get; set; } = null;
public static UI.StoreUI? Store { get; set; } = null;
public static UI.InventoryUI? Inventory { get; set; } = null;
public static UI.RoomSetting? RoomSetting { get; set; } = null;
public static UI.UserCenter? UserCenter { get; set; } = null;
} }
public class Constant public class Constant

View File

@ -91,7 +91,7 @@ namespace Milimoe.FunGame.Desktop.Model
public ConnectResult Connect() public ConnectResult Connect()
{ {
Main.OnBeforeConnectEvent(Main, new GeneralEventArgs()); Main.OnBeforeConnectEvent(new GeneralEventArgs());
if (Constant.Server_Address == "" || Constant.Server_Port <= 0) if (Constant.Server_Address == "" || Constant.Server_Port <= 0)
{ {
ShowMessage.ErrorMessage("查找可用的服务器失败!"); ShowMessage.ErrorMessage("查找可用的服务器失败!");
@ -133,8 +133,8 @@ namespace Milimoe.FunGame.Desktop.Model
Main.GetMessage("连接服务器成功请登录账号以体验FunGame。"); Main.GetMessage("连接服务器成功请登录账号以体验FunGame。");
Main.UpdateUI(MainControllerSet.Connected); Main.UpdateUI(MainControllerSet.Connected);
StartReceiving(); StartReceiving();
Main.OnSucceedConnectEvent(Main, new GeneralEventArgs()); Main.OnSucceedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); Main.OnAfterConnectEvent(new GeneralEventArgs());
} }
}); });
return ConnectResult.Success; return ConnectResult.Success;
@ -163,13 +163,13 @@ namespace Milimoe.FunGame.Desktop.Model
if (Config.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连 if (Config.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连
}); });
Main.GetMessage("连接服务器失败5秒后自动尝试重连。"); Main.GetMessage("连接服务器失败5秒后自动尝试重连。");
Main.OnFailedConnectEvent(Main, new GeneralEventArgs()); Main.OnFailedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); Main.OnAfterConnectEvent(new GeneralEventArgs());
} }
else else
{ {
Main.OnFailedConnectEvent(Main, new GeneralEventArgs()); Main.OnFailedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); Main.OnAfterConnectEvent(new GeneralEventArgs());
return ConnectResult.ConnectFailed; return ConnectResult.ConnectFailed;
} }
} }
@ -275,25 +275,25 @@ namespace Milimoe.FunGame.Desktop.Model
switch (type) switch (type)
{ {
case SocketMessageType.Connect: case SocketMessageType.Connect:
SocketHandle_Connect(objs); SocketHandler_Connect(objs);
break; break;
case SocketMessageType.GetNotice: case SocketMessageType.GetNotice:
SocketHandle_GetNotice(objs); SocketHandler_GetNotice(objs);
break; break;
case SocketMessageType.Login: case SocketMessageType.Login:
break; break;
case SocketMessageType.CheckLogin: case SocketMessageType.CheckLogin:
SocketHandle_CheckLogin(objs); SocketHandler_CheckLogin(objs);
break; break;
case SocketMessageType.Logout: case SocketMessageType.Logout:
break; break;
case SocketMessageType.Disconnect: case SocketMessageType.Disconnect:
SocketHandle_Disconnect(objs); SocketHandler_Disconnect(objs);
break; break;
case SocketMessageType.HeartBeat: case SocketMessageType.HeartBeat:
@ -317,7 +317,7 @@ namespace Milimoe.FunGame.Desktop.Model
return result; return result;
} }
private void SocketHandle_Connect(object[] objs) private void SocketHandler_Connect(object[] objs)
{ {
string msg = ""; string msg = "";
if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!; if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!;
@ -333,12 +333,12 @@ namespace Milimoe.FunGame.Desktop.Model
Main.UpdateUI(MainControllerSet.WaitLoginAndSetYellow); Main.UpdateUI(MainControllerSet.WaitLoginAndSetYellow);
} }
private void SocketHandle_GetNotice(object[] objs) private void SocketHandler_GetNotice(object[] objs)
{ {
if (objs.Length > 0) Config.FunGame_Notice = NetworkUtility.ConvertJsonObject<string>(objs[0])!; if (objs.Length > 0) Config.FunGame_Notice = NetworkUtility.ConvertJsonObject<string>(objs[0])!;
} }
private void SocketHandle_CheckLogin(object[] objs) private void SocketHandler_CheckLogin(object[] objs)
{ {
string msg = ""; string msg = "";
// 返回的objs是该Login的User对象的各个属性 // 返回的objs是该Login的User对象的各个属性
@ -347,7 +347,7 @@ namespace Milimoe.FunGame.Desktop.Model
Main.UpdateUI(MainControllerSet.SetUser, new object[] { Factory.New<User>(msg) }); Main.UpdateUI(MainControllerSet.SetUser, new object[] { Factory.New<User>(msg) });
} }
private void SocketHandle_Disconnect(object[] objs) private void SocketHandler_Disconnect(object[] objs)
{ {
string msg = ""; string msg = "";
if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!; if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!;

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
{ {
@ -16,7 +17,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="e"></param> /// <param name="e"></param>
private void RegButton_Click(object sender, EventArgs e) private void RegButton_Click(object sender, EventArgs e)
{ {
new Register().ShowDialog(); OpenForm.SingleForm(Core.Library.Constant.FormType.Register, Core.Library.Constant.OpenFormType.Dialog);
} }
} }
} }

View File

@ -9,6 +9,7 @@ using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library.Base; using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
{ {
@ -48,6 +49,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// </summary> /// </summary>
public void Init() public void Init()
{ {
RunTime.Main = this;
SetButtonEnableIfLogon(false, ClientState.WaitConnect); SetButtonEnableIfLogon(false, ClientState.WaitConnect);
SetRoomid("-1"); // 房间号初始化 SetRoomid("-1"); // 房间号初始化
ShowFunGameInfo(); // 显示FunGame信息 ShowFunGameInfo(); // 显示FunGame信息
@ -76,10 +78,10 @@ namespace Milimoe.FunGame.Desktop.UI
protected override void BindEvent() protected override void BindEvent()
{ {
base.BindEvent(); base.BindEvent();
AfterConnectEventHandler += AfterConnectEvent; AfterConnectEvent += AfterConnect;
BeforeConnectEventHandler += BeforeConnectEvent; BeforeConnectEvent += BeforeConnect;
FailedConnectEventHandler += FailedConnectEvent; FailedConnectEvent += FailedConnect;
SucceedConnectEventHandler += SucceedConnectEvent; SucceedConnectEvent += SucceedConnect;
} }
#endregion #endregion
@ -213,7 +215,7 @@ namespace Milimoe.FunGame.Desktop.UI
default: default:
// 直接调用UpdateUI(string)为输出该string到控制台。 // 直接调用UpdateUI(string)为输出该string到控制台。
// 和GetMessage(string)的效果不一样输出格式为HH:mm:ss >> string。 // 相当于调用GetMessage(string)
WritelnSystemInfo(updatetype); WritelnSystemInfo(updatetype);
break; break;
} }
@ -948,7 +950,7 @@ namespace Milimoe.FunGame.Desktop.UI
private void Login_Click(object sender, EventArgs e) private void Login_Click(object sender, EventArgs e)
{ {
if (MainController != null && Config.FunGame_isConnected) if (MainController != null && Config.FunGame_isConnected)
new Login().ShowDialog(); OpenForm.SingleForm(FormType.Login, OpenFormType.Dialog);
else else
ShowMessage.WarningMessage("请先连接服务器!"); ShowMessage.WarningMessage("请先连接服务器!");
} }
@ -1107,7 +1109,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="e"></param> /// <param name="e"></param>
private void Copyright_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) private void Copyright_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{ {
// Copyright 2022 mili.cyou // Copyright 2023 mili.cyou
Process.Start(new ProcessStartInfo("https://mili.cyou/fungame") { UseShellExecute = true }); Process.Start(new ProcessStartInfo("https://mili.cyou/fungame") { UseShellExecute = true });
} }
@ -1134,9 +1136,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
/// <returns></returns> /// <returns></returns>
public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e) public EventResult BeforeConnect(object sender, GeneralEventArgs e)
{ {
UpdateUI("触发【Before Connect】事件");
return EventResult.Success; return EventResult.Success;
} }
@ -1146,9 +1147,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
/// <returns></returns> /// <returns></returns>
public EventResult AfterConnectEvent(object sender, GeneralEventArgs e) public EventResult AfterConnect(object sender, GeneralEventArgs e)
{ {
UpdateUI("触发【After Connect】事件");
return EventResult.Success; return EventResult.Success;
} }
@ -1158,9 +1158,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
/// <returns></returns> /// <returns></returns>
public EventResult FailedConnectEvent(object sender, GeneralEventArgs e) public EventResult FailedConnect(object sender, GeneralEventArgs e)
{ {
UpdateUI("触发【Failed Connect】事件");
return EventResult.Success; return EventResult.Success;
} }
@ -1170,13 +1169,12 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
/// <returns></returns> /// <returns></returns>
public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e) public EventResult SucceedConnect(object sender, GeneralEventArgs e)
{ {
UpdateUI("触发【Succeed Connect】事件");
if (MainController != null && Config.FunGame_isAutoLogin) if (MainController != null && Config.FunGame_isAutoLogin)
{ {
// 自动登录 [TODO] // 自动登录 [TODO]
} }
return EventResult.Success; return EventResult.Success;
} }

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Utility namespace Milimoe.FunGame.Desktop.Utility
@ -9,39 +10,54 @@ namespace Milimoe.FunGame.Desktop.Utility
public static void SingleForm(FormType type, OpenFormType opentype = OpenFormType.General) public static void SingleForm(FormType type, OpenFormType opentype = OpenFormType.General)
{ {
Form form = new(); Form form = new();
bool IsExist = false;
switch (type) switch (type)
{ {
case FormType.Register: case FormType.Register:
form = new Register(); form = new Register();
IsExist = RunTime.Register != null;
RunTime.Register = (Register)form;
break; break;
case FormType.Login: case FormType.Login:
form = new Login(); form = new Login();
IsExist = RunTime.Login != null;
RunTime.Login = (Login)form;
break; break;
case FormType.Inventory: case FormType.Inventory:
form = new InventoryUI(); form = new InventoryUI();
IsExist = RunTime.Inventory != null;
RunTime.Inventory = (InventoryUI)form;
break; break;
case FormType.RoomSetting: case FormType.RoomSetting:
form = new RoomSetting(); form = new RoomSetting();
IsExist = RunTime.RoomSetting != null;
RunTime.RoomSetting = (RoomSetting)form;
break; break;
case FormType.Store: case FormType.Store:
form = new StoreUI(); form = new StoreUI();
IsExist = RunTime.Store != null;
RunTime.Store = (StoreUI)form;
break; break;
case FormType.UserCenter: case FormType.UserCenter:
form = new UserCenter(); form = new UserCenter();
IsExist = RunTime.UserCenter != null;
RunTime.UserCenter = (UserCenter)form;
break; break;
case FormType.Main: case FormType.Main:
form = new Main(); form = new Main();
IsExist = RunTime.Main != null;
RunTime.Main = (Main)form;
break; break;
default: default:
break; break;
} }
if (!Singleton.IsExist(form)) if (Singleton.IsExist(form) || IsExist)
{ {
NewSingleForm(form, opentype); throw new Exception("目标窗口可能已处于打开状态。");
} }
else else
{ {
throw new Exception("目标窗口可能已处于打开状态。"); NewSingleForm(form, opentype);
} }
} }