diff --git a/FunGame.Core/Api/Utility/Singleton.cs b/FunGame.Core/Api/Utility/Singleton.cs index 8a2e908..f6c2bef 100644 --- a/FunGame.Core/Api/Utility/Singleton.cs +++ b/FunGame.Core/Api/Utility/Singleton.cs @@ -63,7 +63,7 @@ namespace Milimoe.FunGame.Core.Api.Utility } else { - SingletonTable[type] = null; + SingletonTable.Remove(type); return true; } } diff --git a/FunGame.Core/Interface/Event/EventHandlers.cs b/FunGame.Core/Interface/Event/EventHandlers.cs index b38ab5a..c3cbf37 100644 --- a/FunGame.Core/Interface/Event/EventHandlers.cs +++ b/FunGame.Core/Interface/Event/EventHandlers.cs @@ -16,274 +16,274 @@ namespace Milimoe.FunGame.Core.Interface public interface IConnectEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeConnectEventHandler; - public event AfterEventHandler? AfterConnectEventHandler; - public event SucceedEventHandler? SucceedConnectEventHandler; - public event FailedEventHandler? FailedConnectEventHandler; + public event BeforeEventHandler? BeforeConnectEvent; + public event AfterEventHandler? AfterConnectEvent; + public event SucceedEventHandler? SucceedConnectEvent; + public event FailedEventHandler? FailedConnectEvent; - public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeConnectEvent(GeneralEventArgs e); + public EventResult OnAfterConnectEvent(GeneralEventArgs e); + public EventResult OnSucceedConnectEvent(GeneralEventArgs e); + public EventResult OnFailedConnectEvent(GeneralEventArgs e); } public interface IDisconnectEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeDisconnectEventHandler; - public event AfterEventHandler? AfterDisconnectEventHandler; - public event SucceedEventHandler? SucceedDisconnectEventHandler; - public event FailedEventHandler? FailedDisconnectEventHandler; + public event BeforeEventHandler? BeforeDisconnectEvent; + public event AfterEventHandler? AfterDisconnectEvent; + public event SucceedEventHandler? SucceedDisconnectEvent; + public event FailedEventHandler? FailedDisconnectEvent; - public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e); + public EventResult OnAfterDisconnectEvent(GeneralEventArgs e); + public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e); + public EventResult OnFailedDisconnectEvent(GeneralEventArgs e); } public interface ILoginEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeLoginEventHandler; - public event AfterEventHandler? AfterLoginEventHandler; - public event SucceedEventHandler? SucceedLoginEventHandler; - public event FailedEventHandler? FailedLoginEventHandler; + public event BeforeEventHandler? BeforeLoginEvent; + public event AfterEventHandler? AfterLoginEvent; + public event SucceedEventHandler? SucceedLoginEvent; + public event FailedEventHandler? FailedLoginEvent; - public EventResult OnBeforeLoginEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterLoginEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedLoginEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedLoginEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeLoginEvent(GeneralEventArgs e); + public EventResult OnAfterLoginEvent(GeneralEventArgs e); + public EventResult OnSucceedLoginEvent(GeneralEventArgs e); + public EventResult OnFailedLoginEvent(GeneralEventArgs e); } public interface ILogoutEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeLogoutEventHandler; - public event AfterEventHandler? AfterLogoutEventHandler; - public event SucceedEventHandler? SucceedLogoutEventHandler; - public event FailedEventHandler? FailedLogoutEventHandler; + public event BeforeEventHandler? BeforeLogoutEvent; + public event AfterEventHandler? AfterLogoutEvent; + public event SucceedEventHandler? SucceedLogoutEvent; + public event FailedEventHandler? FailedLogoutEvent; - public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeLogoutEvent(GeneralEventArgs e); + public EventResult OnAfterLogoutEvent(GeneralEventArgs e); + public EventResult OnSucceedLogoutEvent(GeneralEventArgs e); + public EventResult OnFailedLogoutEvent(GeneralEventArgs e); } public interface IRegEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeRegEventHandler; - public event AfterEventHandler? AfterRegEventHandler; - public event SucceedEventHandler? SucceedRegEventHandler; - public event FailedEventHandler? FailedRegEventHandler; + public event BeforeEventHandler? BeforeRegEvent; + public event AfterEventHandler? AfterRegEvent; + public event SucceedEventHandler? SucceedRegEvent; + public event FailedEventHandler? FailedRegEvent; - public EventResult OnBeforeRegEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterRegEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedRegEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedRegEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeRegEvent(GeneralEventArgs e); + public EventResult OnAfterRegEvent(GeneralEventArgs e); + public EventResult OnSucceedRegEvent(GeneralEventArgs e); + public EventResult OnFailedRegEvent(GeneralEventArgs e); } public interface IIntoRoomEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeIntoRoomEventHandler; - public event AfterEventHandler? AfterIntoRoomEventHandler; - public event SucceedEventHandler? SucceedIntoRoomEventHandler; - public event FailedEventHandler? FailedIntoRoomEventHandler; + public event BeforeEventHandler? BeforeIntoRoomEvent; + public event AfterEventHandler? AfterIntoRoomEvent; + public event SucceedEventHandler? SucceedIntoRoomEvent; + public event FailedEventHandler? FailedIntoRoomEvent; - public EventResult OnBeforeIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedIntoRoomEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeIntoRoomEvent(GeneralEventArgs e); + public EventResult OnAfterIntoRoomEvent(GeneralEventArgs e); + public EventResult OnSucceedIntoRoomEvent(GeneralEventArgs e); + public EventResult OnFailedIntoRoomEvent(GeneralEventArgs e); } public interface ISendTalkEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeSendTalkEventHandler; - public event AfterEventHandler? AfterSendTalkEventHandler; - public event SucceedEventHandler? SucceedSendTalkEventHandler; - public event FailedEventHandler? FailedSendTalkEventHandler; + public event BeforeEventHandler? BeforeSendTalkEvent; + public event AfterEventHandler? AfterSendTalkEvent; + public event SucceedEventHandler? SucceedSendTalkEvent; + public event FailedEventHandler? FailedSendTalkEvent; - public EventResult OnBeforeSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedSendTalkEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeSendTalkEvent(GeneralEventArgs e); + public EventResult OnAfterSendTalkEvent(GeneralEventArgs e); + public EventResult OnSucceedSendTalkEvent(GeneralEventArgs e); + public EventResult OnFailedSendTalkEvent(GeneralEventArgs e); } public interface ICreateRoomEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeCreateRoomEventHandler; - public event AfterEventHandler? AfterCreateRoomEventHandler; - public event SucceedEventHandler? SucceedCreateRoomEventHandler; - public event FailedEventHandler? FailedCreateRoomEventHandler; + public event BeforeEventHandler? BeforeCreateRoomEvent; + public event AfterEventHandler? AfterCreateRoomEvent; + public event SucceedEventHandler? SucceedCreateRoomEvent; + public event FailedEventHandler? FailedCreateRoomEvent; - public EventResult OnBeforeCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedCreateRoomEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeCreateRoomEvent(GeneralEventArgs e); + public EventResult OnAfterCreateRoomEvent(GeneralEventArgs e); + public EventResult OnSucceedCreateRoomEvent(GeneralEventArgs e); + public EventResult OnFailedCreateRoomEvent(GeneralEventArgs e); } public interface IQuitRoomEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeQuitRoomEventHandler; - public event AfterEventHandler? AfterQuitRoomEventHandler; - public event SucceedEventHandler? SucceedQuitRoomEventHandler; - public event FailedEventHandler? FailedQuitRoomEventHandler; + public event BeforeEventHandler? BeforeQuitRoomEvent; + public event AfterEventHandler? AfterQuitRoomEvent; + public event SucceedEventHandler? SucceedQuitRoomEvent; + public event FailedEventHandler? FailedQuitRoomEvent; - public EventResult OnBeforeQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedQuitRoomEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeQuitRoomEvent(GeneralEventArgs e); + public EventResult OnAfterQuitRoomEvent(GeneralEventArgs e); + public EventResult OnSucceedQuitRoomEvent(GeneralEventArgs e); + public EventResult OnFailedQuitRoomEvent(GeneralEventArgs e); } public interface IChangeRoomSettingEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeChangeRoomSettingEventHandler; - public event AfterEventHandler? AfterChangeRoomSettingEventHandler; - public event SucceedEventHandler? SucceedChangeRoomSettingEventHandler; - public event FailedEventHandler? FailedChangeRoomSettingEventHandler; + public event BeforeEventHandler? BeforeChangeRoomSettingEvent; + public event AfterEventHandler? AfterChangeRoomSettingEvent; + public event SucceedEventHandler? SucceedChangeRoomSettingEvent; + public event FailedEventHandler? FailedChangeRoomSettingEvent; - public EventResult OnBeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e); + public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e); + public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e); + public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e); } public interface IStartMatchEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeStartMatchEventHandler; - public event AfterEventHandler? AfterStartMatchEventHandler; - public event SucceedEventHandler? SucceedStartMatchEventHandler; - public event FailedEventHandler? FailedStartMatchEventHandler; + public event BeforeEventHandler? BeforeStartMatchEvent; + public event AfterEventHandler? AfterStartMatchEvent; + public event SucceedEventHandler? SucceedStartMatchEvent; + public event FailedEventHandler? FailedStartMatchEvent; - public EventResult OnBeforeStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedStartMatchEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e); + public EventResult OnAfterStartMatchEvent(GeneralEventArgs e); + public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e); + public EventResult OnFailedStartMatchEvent(GeneralEventArgs e); } public interface IStartGameEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeStartGameEventHandler; - public event AfterEventHandler? AfterStartGameEventHandler; - public event SucceedEventHandler? SucceedStartGameEventHandler; - public event FailedEventHandler? FailedStartGameEventHandler; + public event BeforeEventHandler? BeforeStartGameEvent; + public event AfterEventHandler? AfterStartGameEvent; + public event SucceedEventHandler? SucceedStartGameEvent; + public event FailedEventHandler? FailedStartGameEvent; - public EventResult OnBeforeStartGameEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterStartGameEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedStartGameEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedStartGameEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeStartGameEvent(GeneralEventArgs e); + public EventResult OnAfterStartGameEvent(GeneralEventArgs e); + public EventResult OnSucceedStartGameEvent(GeneralEventArgs e); + public EventResult OnFailedStartGameEvent(GeneralEventArgs e); } public interface IChangeProfileEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeChangeProfileEventHandler; - public event AfterEventHandler? AfterChangeProfileEventHandler; - public event SucceedEventHandler? SucceedChangeProfileEventHandler; - public event FailedEventHandler? FailedChangeProfileEventHandler; + public event BeforeEventHandler? BeforeChangeProfileEvent; + public event AfterEventHandler? AfterChangeProfileEvent; + public event SucceedEventHandler? SucceedChangeProfileEvent; + public event FailedEventHandler? FailedChangeProfileEvent; - public EventResult OnBeforeChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedChangeProfileEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e); + public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e); + public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e); + public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e); } public interface IChangeAccountSettingEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeChangeAccountSettingEventHandler; - public event AfterEventHandler? AfterChangeAccountSettingEventHandler; - public event SucceedEventHandler? SucceedChangeAccountSettingEventHandler; - public event FailedEventHandler? FailedChangeAccountSettingEventHandler; + public event BeforeEventHandler? BeforeChangeAccountSettingEvent; + public event AfterEventHandler? AfterChangeAccountSettingEvent; + public event SucceedEventHandler? SucceedChangeAccountSettingEvent; + public event FailedEventHandler? FailedChangeAccountSettingEvent; - public EventResult OnBeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e); + public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e); + public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e); + public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e); } public interface IOpenInventoryEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeOpenInventoryEventHandler; - public event AfterEventHandler? AfterOpenInventoryEventHandler; - public event SucceedEventHandler? SucceedOpenInventoryEventHandler; - public event FailedEventHandler? FailedOpenInventoryEventHandler; + public event BeforeEventHandler? BeforeOpenInventoryEvent; + public event AfterEventHandler? AfterOpenInventoryEvent; + public event SucceedEventHandler? SucceedOpenInventoryEvent; + public event FailedEventHandler? FailedOpenInventoryEvent; - public EventResult OnBeforeOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedOpenInventoryEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e); + public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e); + public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e); + public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e); } public interface ISignInEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeSignInEventHandler; - public event AfterEventHandler? AfterSignInEventHandler; - public event SucceedEventHandler? SucceedSignInEventHandler; - public event FailedEventHandler? FailedSignInEventHandler; + public event BeforeEventHandler? BeforeSignInEvent; + public event AfterEventHandler? AfterSignInEvent; + public event SucceedEventHandler? SucceedSignInEvent; + public event FailedEventHandler? FailedSignInEvent; - public EventResult OnBeforeSignInEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterSignInEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedSignInEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedSignInEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeSignInEvent(GeneralEventArgs e); + public EventResult OnAfterSignInEvent(GeneralEventArgs e); + public EventResult OnSucceedSignInEvent(GeneralEventArgs e); + public EventResult OnFailedSignInEvent(GeneralEventArgs e); } public interface IOpenStoreEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeOpenStoreEventHandler; - public event AfterEventHandler? AfterOpenStoreEventHandler; - public event SucceedEventHandler? SucceedOpenStoreEventHandler; - public event FailedEventHandler? FailedOpenStoreEventHandler; + public event BeforeEventHandler? BeforeOpenStoreEvent; + public event AfterEventHandler? AfterOpenStoreEvent; + public event SucceedEventHandler? SucceedOpenStoreEvent; + public event FailedEventHandler? FailedOpenStoreEvent; - public EventResult OnBeforeOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedOpenStoreEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e); + public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e); + public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e); + public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e); } public interface IBuyItemEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeBuyItemEventHandler; - public event AfterEventHandler? AfterBuyItemEventHandler; - public event SucceedEventHandler? SucceedBuyItemEventHandler; - public event FailedEventHandler? FailedBuyItemEventHandler; + public event BeforeEventHandler? BeforeBuyItemEvent; + public event AfterEventHandler? AfterBuyItemEvent; + public event SucceedEventHandler? SucceedBuyItemEvent; + public event FailedEventHandler? FailedBuyItemEvent; - public EventResult OnBeforeBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedBuyItemEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e); + public EventResult OnAfterBuyItemEvent(GeneralEventArgs e); + public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e); + public EventResult OnFailedBuyItemEvent(GeneralEventArgs e); } public interface IShowRankingEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeShowRankingEventHandler; - public event AfterEventHandler? AfterShowRankingEventHandler; - public event SucceedEventHandler? SucceedShowRankingEventHandler; - public event FailedEventHandler? FailedShowRankingEventHandler; + public event BeforeEventHandler? BeforeShowRankingEvent; + public event AfterEventHandler? AfterShowRankingEvent; + public event SucceedEventHandler? SucceedShowRankingEvent; + public event FailedEventHandler? FailedShowRankingEvent; - public EventResult OnBeforeShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedShowRankingEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e); + public EventResult OnAfterShowRankingEvent(GeneralEventArgs e); + public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e); + public EventResult OnFailedShowRankingEvent(GeneralEventArgs e); } public interface IUseItemEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeUseItemEventHandler; - public event AfterEventHandler? AfterUseItemEventHandler; - public event SucceedEventHandler? SucceedUseItemEventHandler; - public event FailedEventHandler? FailedUseItemEventHandler; + public event BeforeEventHandler? BeforeUseItemEvent; + public event AfterEventHandler? AfterUseItemEvent; + public event SucceedEventHandler? SucceedUseItemEvent; + public event FailedEventHandler? FailedUseItemEvent; - public EventResult OnBeforeUseItemEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterUseItemEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedUseItemEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedUseItemEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeUseItemEvent(GeneralEventArgs e); + public EventResult OnAfterUseItemEvent(GeneralEventArgs e); + public EventResult OnSucceedUseItemEvent(GeneralEventArgs e); + public EventResult OnFailedUseItemEvent(GeneralEventArgs e); } public interface IEndGameEventHandler : IEventHandler { - public event BeforeEventHandler? BeforeEndGameEventHandler; - public event AfterEventHandler? AfterEndGameEventHandler; - public event SucceedEventHandler? SucceedEndGameEventHandler; - public event FailedEventHandler? FailedEndGameEventHandler; + public event BeforeEventHandler? BeforeEndGameEvent; + public event AfterEventHandler? AfterEndGameEvent; + public event SucceedEventHandler? SucceedEndGameEvent; + public event FailedEventHandler? FailedEndGameEvent; - public EventResult OnBeforeEndGameEvent(object sender, GeneralEventArgs e); - public EventResult OnAfterEndGameEvent(object sender, GeneralEventArgs e); - public EventResult OnSucceedEndGameEvent(object sender, GeneralEventArgs e); - public EventResult OnFailedEndGameEvent(object sender, GeneralEventArgs e); + public EventResult OnBeforeEndGameEvent(GeneralEventArgs e); + public EventResult OnAfterEndGameEvent(GeneralEventArgs e); + public EventResult OnSucceedEndGameEvent(GeneralEventArgs e); + public EventResult OnFailedEndGameEvent(GeneralEventArgs e); } } diff --git a/FunGame.Core/Interface/Event/Events.cs b/FunGame.Core/Interface/Event/Events.cs index 3c07946..3630558 100644 --- a/FunGame.Core/Interface/Event/Events.cs +++ b/FunGame.Core/Interface/Event/Events.cs @@ -8,169 +8,169 @@ namespace Milimoe.FunGame.Core.Interface /// public interface IConnectEvent { - public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e); - public EventResult AfterConnectEvent(object sender, GeneralEventArgs e); - public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e); - public EventResult FailedConnectEvent(object sender, GeneralEventArgs e); + public EventResult BeforeConnect(object sender, GeneralEventArgs e); + public EventResult AfterConnect(object sender, GeneralEventArgs e); + public EventResult SucceedConnect(object sender, GeneralEventArgs e); + public EventResult FailedConnect(object sender, GeneralEventArgs e); } public interface IDisconnectEvent { - public EventResult BeforeDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult AfterDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult SucceedDisconnectEvent(object sender, GeneralEventArgs e); - public EventResult FailedDisconnectEvent(object sender, GeneralEventArgs e); + public EventResult BeforeDisconnect(object sender, GeneralEventArgs e); + public EventResult AfterDisconnect(object sender, GeneralEventArgs e); + public EventResult SucceedDisconnect(object sender, GeneralEventArgs e); + public EventResult FailedDisconnect(object sender, GeneralEventArgs e); } public interface ILoginEvent { - public EventResult BeforeLoginEvent(object sender, GeneralEventArgs e); - public EventResult AfterLoginEvent(object sender, GeneralEventArgs e); - public EventResult SucceedLoginEvent(object sender, GeneralEventArgs e); - public EventResult FailedLoginEvent(object sender, GeneralEventArgs e); + public EventResult BeforeLogin(object sender, GeneralEventArgs e); + public EventResult AfterLogin(object sender, GeneralEventArgs e); + public EventResult SucceedLogin(object sender, GeneralEventArgs e); + public EventResult FailedLogin(object sender, GeneralEventArgs e); } public interface ILogoutEvent { - public EventResult BeforeLogoutEvent(object sender, GeneralEventArgs e); - public EventResult AfterLogoutEvent(object sender, GeneralEventArgs e); - public EventResult SucceedLogoutEvent(object sender, GeneralEventArgs e); - public EventResult FailedLogoutEvent(object sender, GeneralEventArgs e); + public EventResult BeforeLogout(object sender, GeneralEventArgs e); + public EventResult AfterLogout(object sender, GeneralEventArgs e); + public EventResult SucceedLogout(object sender, GeneralEventArgs e); + public EventResult FailedLogout(object sender, GeneralEventArgs e); } public interface IRegEvent { - public EventResult BeforeRegEvent(object sender, GeneralEventArgs e); - public EventResult AfterRegEvent(object sender, GeneralEventArgs e); - public EventResult SucceedRegEvent(object sender, GeneralEventArgs e); - public EventResult FailedRegEvent(object sender, GeneralEventArgs e); + public EventResult BeforeReg(object sender, GeneralEventArgs e); + public EventResult AfterReg(object sender, GeneralEventArgs e); + public EventResult SucceedReg(object sender, GeneralEventArgs e); + public EventResult FailedReg(object sender, GeneralEventArgs e); } public interface IIntoRoomEvent { - public EventResult BeforeIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult AfterIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult SucceedIntoRoomEvent(object sender, GeneralEventArgs e); - public EventResult FailedIntoRoomEvent(object sender, GeneralEventArgs e); + public EventResult BeforeIntoRoom(object sender, GeneralEventArgs e); + public EventResult AfterIntoRoom(object sender, GeneralEventArgs e); + public EventResult SucceedIntoRoom(object sender, GeneralEventArgs e); + public EventResult FailedIntoRoom(object sender, GeneralEventArgs e); } public interface ISendTalkEvent { - public EventResult BeforeSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult AfterSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult SucceedSendTalkEvent(object sender, GeneralEventArgs e); - public EventResult FailedSendTalkEvent(object sender, GeneralEventArgs e); + public EventResult BeforeSendTalk(object sender, GeneralEventArgs e); + public EventResult AfterSendTalk(object sender, GeneralEventArgs e); + public EventResult SucceedSendTalk(object sender, GeneralEventArgs e); + public EventResult FailedSendTalk(object sender, GeneralEventArgs e); } public interface ICreateRoomEvent { - public EventResult BeforeCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult AfterCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult SucceedCreateRoomEvent(object sender, GeneralEventArgs e); - public EventResult FailedCreateRoomEvent(object sender, GeneralEventArgs e); + public EventResult BeforeCreateRoom(object sender, GeneralEventArgs e); + public EventResult AfterCreateRoom(object sender, GeneralEventArgs e); + public EventResult SucceedCreateRoom(object sender, GeneralEventArgs e); + public EventResult FailedCreateRoom(object sender, GeneralEventArgs e); } public interface IQuitRoomEvent { - public EventResult BeforeQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult AfterQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult SucceedQuitRoomEvent(object sender, GeneralEventArgs e); - public EventResult FailedQuitRoomEvent(object sender, GeneralEventArgs e); + public EventResult BeforeQuitRoom(object sender, GeneralEventArgs e); + public EventResult AfterQuitRoom(object sender, GeneralEventArgs e); + public EventResult SucceedQuitRoom(object sender, GeneralEventArgs e); + public EventResult FailedQuitRoom(object sender, GeneralEventArgs e); } public interface IChangeRoomSettingEvent { - public EventResult BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); - public EventResult FailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); + public EventResult BeforeChangeRoomSetting(object sender, GeneralEventArgs e); + public EventResult AfterChangeRoomSetting(object sender, GeneralEventArgs e); + public EventResult SucceedChangeRoomSetting(object sender, GeneralEventArgs e); + public EventResult FailedChangeRoomSetting(object sender, GeneralEventArgs e); } public interface IStartMatchEvent { - public EventResult BeforeStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult AfterStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult SucceedStartMatchEvent(object sender, GeneralEventArgs e); - public EventResult FailedStartMatchEvent(object sender, GeneralEventArgs e); + public EventResult BeforeStartMatch(object sender, GeneralEventArgs e); + public EventResult AfterStartMatch(object sender, GeneralEventArgs e); + public EventResult SucceedStartMatch(object sender, GeneralEventArgs e); + public EventResult FailedStartMatch(object sender, GeneralEventArgs e); } public interface IStartGameEvent { - public EventResult BeforeStartGameEvent(object sender, GeneralEventArgs e); - public EventResult AfterStartGameEvent(object sender, GeneralEventArgs e); - public EventResult SucceedStartGameEvent(object sender, GeneralEventArgs e); - public EventResult FailedStartGameEvent(object sender, GeneralEventArgs e); + public EventResult BeforeStartGame(object sender, GeneralEventArgs e); + public EventResult AfterStartGame(object sender, GeneralEventArgs e); + public EventResult SucceedStartGame(object sender, GeneralEventArgs e); + public EventResult FailedStartGame(object sender, GeneralEventArgs e); } public interface IChangeProfileEvent { - public EventResult BeforeChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult AfterChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult SucceedChangeProfileEvent(object sender, GeneralEventArgs e); - public EventResult FailedChangeProfileEvent(object sender, GeneralEventArgs e); + public EventResult BeforeChangeProfile(object sender, GeneralEventArgs e); + public EventResult AfterChangeProfile(object sender, GeneralEventArgs e); + public EventResult SucceedChangeProfile(object sender, GeneralEventArgs e); + public EventResult FailedChangeProfile(object sender, GeneralEventArgs e); } public interface IChangeAccountSettingEvent { - public EventResult BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); - public EventResult FailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); + public EventResult BeforeChangeAccountSetting(object sender, GeneralEventArgs e); + public EventResult AfterChangeAccountSetting(object sender, GeneralEventArgs e); + public EventResult SucceedChangeAccountSetting(object sender, GeneralEventArgs e); + public EventResult FailedChangeAccountSetting(object sender, GeneralEventArgs e); } public interface IOpenInventoryEvent { - public EventResult BeforeOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult AfterOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult SucceedOpenInventoryEvent(object sender, GeneralEventArgs e); - public EventResult FailedOpenInventoryEvent(object sender, GeneralEventArgs e); + public EventResult BeforeOpenInventory(object sender, GeneralEventArgs e); + public EventResult AfterOpenInventory(object sender, GeneralEventArgs e); + public EventResult SucceedOpenInventory(object sender, GeneralEventArgs e); + public EventResult FailedOpenInventory(object sender, GeneralEventArgs e); } public interface ISignInEvent { - public EventResult BeforeSignInEvent(object sender, GeneralEventArgs e); - public EventResult AfterSignInEvent(object sender, GeneralEventArgs e); - public EventResult SucceedSignInEvent(object sender, GeneralEventArgs e); - public EventResult FailedSignInEvent(object sender, GeneralEventArgs e); + public EventResult BeforeSignIn(object sender, GeneralEventArgs e); + public EventResult AfterSignIn(object sender, GeneralEventArgs e); + public EventResult SucceedSignIn(object sender, GeneralEventArgs e); + public EventResult FailedSignIn(object sender, GeneralEventArgs e); } public interface IOpenStoreEvent { - public EventResult BeforeOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult AfterOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult SucceedOpenStoreEvent(object sender, GeneralEventArgs e); - public EventResult FailedOpenStoreEvent(object sender, GeneralEventArgs e); + public EventResult BeforeOpenStore(object sender, GeneralEventArgs e); + public EventResult AfterOpenStore(object sender, GeneralEventArgs e); + public EventResult SucceedOpenStore(object sender, GeneralEventArgs e); + public EventResult FailedOpenStore(object sender, GeneralEventArgs e); } public interface IBuyItemEvent { - public EventResult BeforeBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult AfterBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult SucceedBuyItemEvent(object sender, GeneralEventArgs e); - public EventResult FailedBuyItemEvent(object sender, GeneralEventArgs e); + public EventResult BeforeBuyItem(object sender, GeneralEventArgs e); + public EventResult AfterBuyItem(object sender, GeneralEventArgs e); + public EventResult SucceedBuyItem(object sender, GeneralEventArgs e); + public EventResult FailedBuyItem(object sender, GeneralEventArgs e); } public interface IShowRankingEvent { - public EventResult BeforeShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult AfterShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult SucceedShowRankingEvent(object sender, GeneralEventArgs e); - public EventResult FailedShowRankingEvent(object sender, GeneralEventArgs e); + public EventResult BeforeShowRanking(object sender, GeneralEventArgs e); + public EventResult AfterShowRanking(object sender, GeneralEventArgs e); + public EventResult SucceedShowRanking(object sender, GeneralEventArgs e); + public EventResult FailedShowRanking(object sender, GeneralEventArgs e); } public interface IUseItemEvent { - public EventResult BeforeUseItemEvent(object sender, GeneralEventArgs e); - public EventResult AfterUseItemEvent(object sender, GeneralEventArgs e); - public EventResult SucceedUseItemEvent(object sender, GeneralEventArgs e); - public EventResult FailedUseItemEvent(object sender, GeneralEventArgs e); + public EventResult BeforeUseItem(object sender, GeneralEventArgs e); + public EventResult AfterUseItem(object sender, GeneralEventArgs e); + public EventResult SucceedUseItem(object sender, GeneralEventArgs e); + public EventResult FailedUseItem(object sender, GeneralEventArgs e); } public interface IEndGameEvent { - public EventResult BeforeEndGameEvent(object sender, GeneralEventArgs e); - public EventResult AfterEndGameEvent(object sender, GeneralEventArgs e); - public EventResult SucceedEndGameEvent(object sender, GeneralEventArgs e); - public EventResult FailedEndGameEvent(object sender, GeneralEventArgs e); + public EventResult BeforeEndGame(object sender, GeneralEventArgs e); + public EventResult AfterEndGame(object sender, GeneralEventArgs e); + public EventResult SucceedEndGame(object sender, GeneralEventArgs e); + public EventResult FailedEndGame(object sender, GeneralEventArgs e); } } diff --git a/FunGame.Core/Library/Common/Event/GeneralEventArgs.cs b/FunGame.Core/Library/Common/Event/GeneralEventArgs.cs index 53495ff..64b66ed 100644 --- a/FunGame.Core/Library/Common/Event/GeneralEventArgs.cs +++ b/FunGame.Core/Library/Common/Event/GeneralEventArgs.cs @@ -16,6 +16,11 @@ namespace Milimoe.FunGame.Core.Library.Common.Event this.EventMsg = EventMsg; this.Parameters = Parameters; } + + public GeneralEventArgs(params object[]? Parameters) + { + this.Parameters = Parameters; + } } public class GeneralEvent diff --git a/FunGame.Desktop/Library/Base/BaseMain.cs b/FunGame.Desktop/Library/Base/BaseMain.cs index 7018c0c..6bd8fa1 100644 --- a/FunGame.Desktop/Library/Base/BaseMain.cs +++ b/FunGame.Desktop/Library/Base/BaseMain.cs @@ -8,125 +8,125 @@ namespace Milimoe.FunGame.Desktop.Library.Base { public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILogoutEventHandler { - public event IEventHandler.BeforeEventHandler? BeforeConnectEventHandler; - public event IEventHandler.AfterEventHandler? AfterConnectEventHandler; - public event IEventHandler.SucceedEventHandler? SucceedConnectEventHandler; - public event IEventHandler.FailedEventHandler? FailedConnectEventHandler; + public event IEventHandler.BeforeEventHandler? BeforeConnectEvent; + public event IEventHandler.AfterEventHandler? AfterConnectEvent; + public event IEventHandler.SucceedEventHandler? SucceedConnectEvent; + 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; } - 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; } - 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; } - 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; } - public event IEventHandler.BeforeEventHandler? BeforeDisconnectEventHandler; - public event IEventHandler.AfterEventHandler? AfterDisconnectEventHandler; - public event IEventHandler.SucceedEventHandler? SucceedDisconnectEventHandler; - public event IEventHandler.FailedEventHandler? FailedDisconnectEventHandler; + public event IEventHandler.BeforeEventHandler? BeforeDisconnectEvent; + public event IEventHandler.AfterEventHandler? AfterDisconnectEvent; + public event IEventHandler.SucceedEventHandler? SucceedDisconnectEvent; + 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; } - 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; } - 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; } - 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; } - public event IEventHandler.BeforeEventHandler? BeforeLogoutEventHandler; - public event IEventHandler.AfterEventHandler? AfterLogoutEventHandler; - public event IEventHandler.SucceedEventHandler? SucceedLogoutEventHandler; - public event IEventHandler.FailedEventHandler? FailedLogoutEventHandler; + public event IEventHandler.BeforeEventHandler? BeforeLogoutEvent; + public event IEventHandler.AfterEventHandler? AfterLogoutEvent; + public event IEventHandler.SucceedEventHandler? SucceedLogoutEvent; + 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; } - 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; } - 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; } - 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; } diff --git a/FunGame.Desktop/Library/Component/GeneralForm.Designer.cs b/FunGame.Desktop/Library/Component/GeneralForm.Designer.cs index 556d15d..340d408 100644 --- a/FunGame.Desktop/Library/Component/GeneralForm.Designer.cs +++ b/FunGame.Desktop/Library/Component/GeneralForm.Designer.cs @@ -45,8 +45,8 @@ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "GeneralForm"; this.Text = "GeneralForm"; + this.FormClosed += FormClosedEvent; this.ResumeLayout(false); - } #endregion diff --git a/FunGame.Desktop/Library/Component/GeneralForm.cs b/FunGame.Desktop/Library/Component/GeneralForm.cs index 85aba88..b1f58ab 100644 --- a/FunGame.Desktop/Library/Component/GeneralForm.cs +++ b/FunGame.Desktop/Library/Component/GeneralForm.cs @@ -1,12 +1,5 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; +using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Desktop.UI; namespace Milimoe.FunGame.Desktop.Library.Component { @@ -57,5 +50,46 @@ namespace Milimoe.FunGame.Desktop.Library.Component Top += e.Location.Y - loc_y; } } + + /// + /// 自定义窗体销毁方法 + /// + 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(); + } } } diff --git a/FunGame.Desktop/Library/Config/Constant.cs b/FunGame.Desktop/Library/Config/Constant.cs index fbf81f3..df58898 100644 --- a/FunGame.Desktop/Library/Config/Constant.cs +++ b/FunGame.Desktop/Library/Config/Constant.cs @@ -28,9 +28,20 @@ namespace Milimoe.FunGame.Desktop.Library public const string Close = ".close"; } + /// + /// 运行时单例 + /// 插件接口可以从这里拿Socket和窗体 + /// public class RunTime { 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 diff --git a/FunGame.Desktop/Model/MainModel.cs b/FunGame.Desktop/Model/MainModel.cs index e0b1344..a2275b2 100644 --- a/FunGame.Desktop/Model/MainModel.cs +++ b/FunGame.Desktop/Model/MainModel.cs @@ -91,7 +91,7 @@ namespace Milimoe.FunGame.Desktop.Model public ConnectResult Connect() { - Main.OnBeforeConnectEvent(Main, new GeneralEventArgs()); + Main.OnBeforeConnectEvent(new GeneralEventArgs()); if (Constant.Server_Address == "" || Constant.Server_Port <= 0) { ShowMessage.ErrorMessage("查找可用的服务器失败!"); @@ -133,8 +133,8 @@ namespace Milimoe.FunGame.Desktop.Model Main.GetMessage("连接服务器成功,请登录账号以体验FunGame。"); Main.UpdateUI(MainControllerSet.Connected); StartReceiving(); - Main.OnSucceedConnectEvent(Main, new GeneralEventArgs()); - Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); + Main.OnSucceedConnectEvent(new GeneralEventArgs()); + Main.OnAfterConnectEvent(new GeneralEventArgs()); } }); return ConnectResult.Success; @@ -163,13 +163,13 @@ namespace Milimoe.FunGame.Desktop.Model if (Config.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连 }); Main.GetMessage("连接服务器失败,5秒后自动尝试重连。"); - Main.OnFailedConnectEvent(Main, new GeneralEventArgs()); - Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); + Main.OnFailedConnectEvent(new GeneralEventArgs()); + Main.OnAfterConnectEvent(new GeneralEventArgs()); } else { - Main.OnFailedConnectEvent(Main, new GeneralEventArgs()); - Main.OnAfterConnectEvent(Main, new GeneralEventArgs()); + Main.OnFailedConnectEvent(new GeneralEventArgs()); + Main.OnAfterConnectEvent(new GeneralEventArgs()); return ConnectResult.ConnectFailed; } } @@ -275,25 +275,25 @@ namespace Milimoe.FunGame.Desktop.Model switch (type) { case SocketMessageType.Connect: - SocketHandle_Connect(objs); + SocketHandler_Connect(objs); break; case SocketMessageType.GetNotice: - SocketHandle_GetNotice(objs); + SocketHandler_GetNotice(objs); break; case SocketMessageType.Login: break; case SocketMessageType.CheckLogin: - SocketHandle_CheckLogin(objs); + SocketHandler_CheckLogin(objs); break; case SocketMessageType.Logout: break; case SocketMessageType.Disconnect: - SocketHandle_Disconnect(objs); + SocketHandler_Disconnect(objs); break; case SocketMessageType.HeartBeat: @@ -317,7 +317,7 @@ namespace Milimoe.FunGame.Desktop.Model return result; } - private void SocketHandle_Connect(object[] objs) + private void SocketHandler_Connect(object[] objs) { string msg = ""; if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject(objs[0])!; @@ -333,12 +333,12 @@ namespace Milimoe.FunGame.Desktop.Model 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(objs[0])!; } - private void SocketHandle_CheckLogin(object[] objs) + private void SocketHandler_CheckLogin(object[] objs) { string msg = ""; // 返回的objs是该Login的User对象的各个属性 @@ -347,7 +347,7 @@ namespace Milimoe.FunGame.Desktop.Model Main.UpdateUI(MainControllerSet.SetUser, new object[] { Factory.New(msg) }); } - private void SocketHandle_Disconnect(object[] objs) + private void SocketHandler_Disconnect(object[] objs) { string msg = ""; if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject(objs[0])!; diff --git a/FunGame.Desktop/UI/Login/Login.cs b/FunGame.Desktop/UI/Login/Login.cs index 0346b6d..8fe3f0a 100644 --- a/FunGame.Desktop/UI/Login/Login.cs +++ b/FunGame.Desktop/UI/Login/Login.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Desktop.Library.Component; +using Milimoe.FunGame.Desktop.Utility; namespace Milimoe.FunGame.Desktop.UI { @@ -16,7 +17,7 @@ namespace Milimoe.FunGame.Desktop.UI /// private void RegButton_Click(object sender, EventArgs e) { - new Register().ShowDialog(); + OpenForm.SingleForm(Core.Library.Constant.FormType.Register, Core.Library.Constant.OpenFormType.Dialog); } } } diff --git a/FunGame.Desktop/UI/Main/Main.cs b/FunGame.Desktop/UI/Main/Main.cs index abe4168..5371a81 100644 --- a/FunGame.Desktop/UI/Main/Main.cs +++ b/FunGame.Desktop/UI/Main/Main.cs @@ -9,6 +9,7 @@ using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Library.Base; +using Milimoe.FunGame.Desktop.Utility; namespace Milimoe.FunGame.Desktop.UI { @@ -48,6 +49,7 @@ namespace Milimoe.FunGame.Desktop.UI /// public void Init() { + RunTime.Main = this; SetButtonEnableIfLogon(false, ClientState.WaitConnect); SetRoomid("-1"); // 房间号初始化 ShowFunGameInfo(); // 显示FunGame信息 @@ -76,10 +78,10 @@ namespace Milimoe.FunGame.Desktop.UI protected override void BindEvent() { base.BindEvent(); - AfterConnectEventHandler += AfterConnectEvent; - BeforeConnectEventHandler += BeforeConnectEvent; - FailedConnectEventHandler += FailedConnectEvent; - SucceedConnectEventHandler += SucceedConnectEvent; + AfterConnectEvent += AfterConnect; + BeforeConnectEvent += BeforeConnect; + FailedConnectEvent += FailedConnect; + SucceedConnectEvent += SucceedConnect; } #endregion @@ -213,7 +215,7 @@ namespace Milimoe.FunGame.Desktop.UI default: // 直接调用UpdateUI(string)为输出该string到控制台。 - // 和GetMessage(string)的效果不一样,输出格式为:HH:mm:ss >> string。 + // 相当于调用GetMessage(string) WritelnSystemInfo(updatetype); break; } @@ -948,7 +950,7 @@ namespace Milimoe.FunGame.Desktop.UI private void Login_Click(object sender, EventArgs e) { if (MainController != null && Config.FunGame_isConnected) - new Login().ShowDialog(); + OpenForm.SingleForm(FormType.Login, OpenFormType.Dialog); else ShowMessage.WarningMessage("请先连接服务器!"); } @@ -1107,7 +1109,7 @@ namespace Milimoe.FunGame.Desktop.UI /// 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 }); } @@ -1134,9 +1136,8 @@ namespace Milimoe.FunGame.Desktop.UI /// /// /// - public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e) + public EventResult BeforeConnect(object sender, GeneralEventArgs e) { - UpdateUI("触发【Before Connect】事件"); return EventResult.Success; } @@ -1146,9 +1147,8 @@ namespace Milimoe.FunGame.Desktop.UI /// /// /// - public EventResult AfterConnectEvent(object sender, GeneralEventArgs e) + public EventResult AfterConnect(object sender, GeneralEventArgs e) { - UpdateUI("触发【After Connect】事件"); return EventResult.Success; } @@ -1158,9 +1158,8 @@ namespace Milimoe.FunGame.Desktop.UI /// /// /// - public EventResult FailedConnectEvent(object sender, GeneralEventArgs e) + public EventResult FailedConnect(object sender, GeneralEventArgs e) { - UpdateUI("触发【Failed Connect】事件"); return EventResult.Success; } @@ -1170,13 +1169,12 @@ namespace Milimoe.FunGame.Desktop.UI /// /// /// - public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e) + public EventResult SucceedConnect(object sender, GeneralEventArgs e) { - UpdateUI("触发【Succeed Connect】事件"); if (MainController != null && Config.FunGame_isAutoLogin) { // 自动登录 [TODO] - + } return EventResult.Success; } diff --git a/FunGame.Desktop/Utility/OpenForm.cs b/FunGame.Desktop/Utility/OpenForm.cs index 4ab06b4..b820483 100644 --- a/FunGame.Desktop/Utility/OpenForm.cs +++ b/FunGame.Desktop/Utility/OpenForm.cs @@ -1,5 +1,6 @@ using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Library.Constant; +using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.UI; namespace Milimoe.FunGame.Desktop.Utility @@ -9,39 +10,54 @@ namespace Milimoe.FunGame.Desktop.Utility public static void SingleForm(FormType type, OpenFormType opentype = OpenFormType.General) { Form form = new(); + bool IsExist = false; switch (type) { case FormType.Register: form = new Register(); + IsExist = RunTime.Register != null; + RunTime.Register = (Register)form; break; case FormType.Login: form = new Login(); + IsExist = RunTime.Login != null; + RunTime.Login = (Login)form; break; case FormType.Inventory: form = new InventoryUI(); + IsExist = RunTime.Inventory != null; + RunTime.Inventory = (InventoryUI)form; break; case FormType.RoomSetting: form = new RoomSetting(); + IsExist = RunTime.RoomSetting != null; + RunTime.RoomSetting = (RoomSetting)form; break; case FormType.Store: form = new StoreUI(); + IsExist = RunTime.Store != null; + RunTime.Store = (StoreUI)form; break; case FormType.UserCenter: form = new UserCenter(); + IsExist = RunTime.UserCenter != null; + RunTime.UserCenter = (UserCenter)form; break; case FormType.Main: form = new Main(); + IsExist = RunTime.Main != null; + RunTime.Main = (Main)form; break; default: break; } - if (!Singleton.IsExist(form)) + if (Singleton.IsExist(form) || IsExist) { - NewSingleForm(form, opentype); + throw new Exception("目标窗口可能已处于打开状态。"); } else { - throw new Exception("目标窗口可能已处于打开状态。"); + NewSingleForm(form, opentype); } }