diff --git a/Api/Utility/PluginLoader.cs b/Api/Utility/PluginLoader.cs new file mode 100644 index 0000000..77265c5 --- /dev/null +++ b/Api/Utility/PluginLoader.cs @@ -0,0 +1,695 @@ +using Milimoe.FunGame.Core.Library.Common.Event; +using Milimoe.FunGame.Core.Library.Common.Plugin; +using Milimoe.FunGame.Core.Service; + +namespace Milimoe.FunGame.Core.Api.Utility +{ + public class PluginLoader + { + public Dictionary Plugins { get; } = new(); + + private PluginLoader() + { + + } + + public static PluginLoader LoadPlugins() + { + PluginLoader loader = new(); + PluginManager.LoadPlugins(loader.Plugins); + return loader; + } + + public void OnBeforeConnectEvent(ConnectEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeConnectEvent(e); + }); + } + + public void OnAfterConnectEvent(ConnectEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterConnectEvent(e); + }); + } + + public void OnSucceedConnectEvent(ConnectEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedConnectEvent(e); + }); + } + + public void OnFailedConnectEvent(ConnectEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedConnectEvent(e); + }); + } + + public void OnBeforeDisconnectEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeDisconnectEvent(e); + }); + } + + public void OnAfterDisconnectEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterDisconnectEvent(e); + }); + } + + public void OnSucceedDisconnectEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedDisconnectEvent(e); + }); + } + + public void OnFailedDisconnectEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedDisconnectEvent(e); + }); + } + + public void OnBeforeLoginEvent(LoginEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeLoginEvent(e); + }); + } + + public void OnAfterLoginEvent(LoginEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterLoginEvent(e); + }); + } + + public void OnSucceedLoginEvent(LoginEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedLoginEvent(e); + }); + } + + public void OnFailedLoginEvent(LoginEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedLoginEvent(e); + }); + } + + public void OnBeforeLogoutEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeLogoutEvent(e); + }); + } + + public void OnAfterLogoutEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterLogoutEvent(e); + }); + } + + public void OnSucceedLogoutEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedLogoutEvent(e); + }); + } + + public void OnFailedLogoutEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedLogoutEvent(e); + }); + } + + public void OnBeforeRegEvent(RegisterEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeRegEvent(e); + }); + } + + public void OnAfterRegEvent(RegisterEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterRegEvent(e); + }); + } + + public void OnSucceedRegEvent(RegisterEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedRegEvent(e); + }); + } + + public void OnFailedRegEvent(RegisterEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedRegEvent(e); + }); + } + + public void OnBeforeIntoRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeIntoRoomEvent(e); + }); + } + + public void OnAfterIntoRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterIntoRoomEvent(e); + }); + } + + public void OnSucceedIntoRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedIntoRoomEvent(e); + }); + } + + public void OnFailedIntoRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedIntoRoomEvent(e); + }); + } + + public void OnBeforeSendTalkEvent(SendTalkEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeSendTalkEvent(e); + }); + } + + public void OnAfterSendTalkEvent(SendTalkEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterSendTalkEvent(e); + }); + } + + public void OnSucceedSendTalkEvent(SendTalkEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedSendTalkEvent(e); + }); + } + + public void OnFailedSendTalkEvent(SendTalkEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedSendTalkEvent(e); + }); + } + + public void OnBeforeCreateRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeCreateRoomEvent(e); + }); + } + + public void OnAfterCreateRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterCreateRoomEvent(e); + }); + } + + public void OnSucceedCreateRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedCreateRoomEvent(e); + }); + } + + public void OnFailedCreateRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedCreateRoomEvent(e); + }); + } + + public void OnBeforeQuitRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeQuitRoomEvent(e); + }); + } + + public void OnAfterQuitRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterQuitRoomEvent(e); + }); + } + + public void OnSucceedQuitRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedQuitRoomEvent(e); + }); + } + + public void OnFailedQuitRoomEvent(RoomEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedQuitRoomEvent(e); + }); + } + + public void OnBeforeChangeRoomSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeChangeRoomSettingEvent(e); + }); + } + + public void OnAfterChangeRoomSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterChangeRoomSettingEvent(e); + }); + } + + public void OnSucceedChangeRoomSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedChangeRoomSettingEvent(e); + }); + } + + public void OnFailedChangeRoomSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedChangeRoomSettingEvent(e); + }); + } + + public void OnBeforeStartMatchEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeStartMatchEvent(e); + }); + } + + public void OnAfterStartMatchEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterStartMatchEvent(e); + }); + } + + public void OnSucceedStartMatchEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedStartMatchEvent(e); + }); + } + + public void OnFailedStartMatchEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedStartMatchEvent(e); + }); + } + + public void OnBeforeStartGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeStartGameEvent(e); + }); + } + + public void OnAfterStartGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterStartGameEvent(e); + }); + } + + public void OnSucceedStartGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedStartGameEvent(e); + }); + } + + public void OnFailedStartGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedStartGameEvent(e); + }); + } + + public void OnBeforeChangeProfileEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeChangeProfileEvent(e); + }); + } + + public void OnAfterChangeProfileEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterChangeProfileEvent(e); + }); + } + + public void OnSucceedChangeProfileEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedChangeProfileEvent(e); + }); + } + + public void OnFailedChangeProfileEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedChangeProfileEvent(e); + }); + } + + public void OnBeforeChangeAccountSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeChangeAccountSettingEvent(e); + }); + } + + public void OnAfterChangeAccountSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterChangeAccountSettingEvent(e); + }); + } + + public void OnSucceedChangeAccountSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedChangeAccountSettingEvent(e); + }); + } + + public void OnFailedChangeAccountSettingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedChangeAccountSettingEvent(e); + }); + } + + public void OnBeforeOpenInventoryEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeOpenInventoryEvent(e); + }); + } + + public void OnAfterOpenInventoryEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterOpenInventoryEvent(e); + }); + } + + public void OnSucceedOpenInventoryEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedOpenInventoryEvent(e); + }); + } + + public void OnFailedOpenInventoryEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedOpenInventoryEvent(e); + }); + } + + public void OnBeforeSignInEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeSignInEvent(e); + }); + } + + public void OnAfterSignInEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterSignInEvent(e); + }); + } + + public void OnSucceedSignInEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedSignInEvent(e); + }); + } + + public void OnFailedSignInEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedSignInEvent(e); + }); + } + + public void OnBeforeOpenStoreEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeOpenStoreEvent(e); + }); + } + + public void OnAfterOpenStoreEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterOpenStoreEvent(e); + }); + } + + public void OnSucceedOpenStoreEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedOpenStoreEvent(e); + }); + } + + public void OnFailedOpenStoreEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedOpenStoreEvent(e); + }); + } + + public void OnBeforeBuyItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeBuyItemEvent(e); + }); + } + + public void OnAfterBuyItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterBuyItemEvent(e); + }); + } + + public void OnSucceedBuyItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedBuyItemEvent(e); + }); + } + + public void OnFailedBuyItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedBuyItemEvent(e); + }); + } + + public void OnBeforeShowRankingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeShowRankingEvent(e); + }); + } + + public void OnAfterShowRankingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterShowRankingEvent(e); + }); + } + + public void OnSucceedShowRankingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedShowRankingEvent(e); + }); + } + + public void OnFailedShowRankingEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedShowRankingEvent(e); + }); + } + + public void OnBeforeUseItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeUseItemEvent(e); + }); + } + + public void OnAfterUseItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterUseItemEvent(e); + }); + } + + public void OnSucceedUseItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedUseItemEvent(e); + }); + } + + public void OnFailedUseItemEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedUseItemEvent(e); + }); + } + + public void OnBeforeEndGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnBeforeEndGameEvent(e); + }); + } + + public void OnAfterEndGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnAfterEndGameEvent(e); + }); + } + + public void OnSucceedEndGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnSucceedEndGameEvent(e); + }); + } + + public void OnFailedEndGameEvent(GeneralEventArgs e) + { + Parallel.ForEach(Plugins.Values, plugin => + { + plugin.OnFailedEndGameEvent(e); + }); + } + } +} diff --git a/Interface/Base/IPlugin.cs b/Interface/Base/IPlugin.cs index c29d6ca..1b307c3 100644 --- a/Interface/Base/IPlugin.cs +++ b/Interface/Base/IPlugin.cs @@ -1,12 +1,14 @@ namespace Milimoe.FunGame.Core.Interface { - public interface IPlugin + public interface IPlugin : IConnectEventHandler, IDisconnectEventHandler, ILoginEventHandler, ILogoutEventHandler, IRegEventHandler, IIntoRoomEventHandler, ISendTalkEventHandler, + ICreateRoomEventHandler, IQuitRoomEventHandler, IChangeRoomSettingEventHandler, IStartMatchEventHandler, IStartGameEventHandler, IChangeProfileEventHandler, IChangeAccountSettingEventHandler, + IOpenInventoryEventHandler, ISignInEventHandler, IOpenStoreEventHandler, IBuyItemEventHandler, IShowRankingEventHandler, IUseItemEventHandler, IEndGameEventHandler { public string Name { get; } public string Description { get; } public string Version { get; } public string Author { get; } - public void Load(); + public bool Load(); } } diff --git a/Interface/Event/EventHandlers.cs b/Interface/Event/EventHandlers.cs index 8a0287c..2391b08 100644 --- a/Interface/Event/EventHandlers.cs +++ b/Interface/Event/EventHandlers.cs @@ -1,5 +1,4 @@ using Milimoe.FunGame.Core.Library.Common.Event; -using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Interface { @@ -8,28 +7,28 @@ namespace Milimoe.FunGame.Core.Interface /// public interface IEventHandler { - public delegate EventResult BeforeEventHandler(object sender, GeneralEventArgs e); - public delegate EventResult AfterEventHandler(object sender, GeneralEventArgs e); - public delegate EventResult SucceedEventHandler(object sender, GeneralEventArgs e); - public delegate EventResult FailedEventHandler(object sender, GeneralEventArgs e); + public delegate void BeforeEventHandler(object sender, GeneralEventArgs e); + public delegate void AfterEventHandler(object sender, GeneralEventArgs e); + public delegate void SucceedEventHandler(object sender, GeneralEventArgs e); + public delegate void FailedEventHandler(object sender, GeneralEventArgs e); } public interface IConnectEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, ConnectEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, ConnectEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, ConnectEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, ConnectEventArgs e); + public new delegate void BeforeEventHandler(object sender, ConnectEventArgs e); + public new delegate void AfterEventHandler(object sender, ConnectEventArgs e); + public new delegate void SucceedEventHandler(object sender, ConnectEventArgs e); + public new delegate void FailedEventHandler(object sender, ConnectEventArgs e); public event BeforeEventHandler? BeforeConnect; public event AfterEventHandler? AfterConnect; public event SucceedEventHandler? SucceedConnect; public event FailedEventHandler? FailedConnect; - public EventResult OnBeforeConnectEvent(ConnectEventArgs e); - public EventResult OnAfterConnectEvent(ConnectEventArgs e); - public EventResult OnSucceedConnectEvent(ConnectEventArgs e); - public EventResult OnFailedConnectEvent(ConnectEventArgs e); + public void OnBeforeConnectEvent(ConnectEventArgs e); + public void OnAfterConnectEvent(ConnectEventArgs e); + public void OnSucceedConnectEvent(ConnectEventArgs e); + public void OnFailedConnectEvent(ConnectEventArgs e); } public interface IDisconnectEventHandler : IEventHandler @@ -39,28 +38,28 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedDisconnect; public event FailedEventHandler? FailedDisconnect; - public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e); - public EventResult OnAfterDisconnectEvent(GeneralEventArgs e); - public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e); - public EventResult OnFailedDisconnectEvent(GeneralEventArgs e); + public void OnBeforeDisconnectEvent(GeneralEventArgs e); + public void OnAfterDisconnectEvent(GeneralEventArgs e); + public void OnSucceedDisconnectEvent(GeneralEventArgs e); + public void OnFailedDisconnectEvent(GeneralEventArgs e); } public interface ILoginEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, LoginEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, LoginEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, LoginEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, LoginEventArgs e); + public new delegate void BeforeEventHandler(object sender, LoginEventArgs e); + public new delegate void AfterEventHandler(object sender, LoginEventArgs e); + public new delegate void SucceedEventHandler(object sender, LoginEventArgs e); + public new delegate void FailedEventHandler(object sender, LoginEventArgs e); public event BeforeEventHandler? BeforeLogin; public event AfterEventHandler? AfterLogin; public event SucceedEventHandler? SucceedLogin; public event FailedEventHandler? FailedLogin; - public EventResult OnBeforeLoginEvent(LoginEventArgs e); - public EventResult OnAfterLoginEvent(LoginEventArgs e); - public EventResult OnSucceedLoginEvent(LoginEventArgs e); - public EventResult OnFailedLoginEvent(LoginEventArgs e); + public void OnBeforeLoginEvent(LoginEventArgs e); + public void OnAfterLoginEvent(LoginEventArgs e); + public void OnSucceedLoginEvent(LoginEventArgs e); + public void OnFailedLoginEvent(LoginEventArgs e); } public interface ILogoutEventHandler : IEventHandler @@ -70,100 +69,100 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedLogout; public event FailedEventHandler? FailedLogout; - public EventResult OnBeforeLogoutEvent(GeneralEventArgs e); - public EventResult OnAfterLogoutEvent(GeneralEventArgs e); - public EventResult OnSucceedLogoutEvent(GeneralEventArgs e); - public EventResult OnFailedLogoutEvent(GeneralEventArgs e); + public void OnBeforeLogoutEvent(GeneralEventArgs e); + public void OnAfterLogoutEvent(GeneralEventArgs e); + public void OnSucceedLogoutEvent(GeneralEventArgs e); + public void OnFailedLogoutEvent(GeneralEventArgs e); } public interface IRegEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, RegisterEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, RegisterEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, RegisterEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, RegisterEventArgs e); + public new delegate void BeforeEventHandler(object sender, RegisterEventArgs e); + public new delegate void AfterEventHandler(object sender, RegisterEventArgs e); + public new delegate void SucceedEventHandler(object sender, RegisterEventArgs e); + public new delegate void FailedEventHandler(object sender, RegisterEventArgs e); public event BeforeEventHandler? BeforeReg; public event AfterEventHandler? AfterReg; public event SucceedEventHandler? SucceedReg; public event FailedEventHandler? FailedReg; - public EventResult OnBeforeRegEvent(RegisterEventArgs e); - public EventResult OnAfterRegEvent(RegisterEventArgs e); - public EventResult OnSucceedRegEvent(RegisterEventArgs e); - public EventResult OnFailedRegEvent(RegisterEventArgs e); + public void OnBeforeRegEvent(RegisterEventArgs e); + public void OnAfterRegEvent(RegisterEventArgs e); + public void OnSucceedRegEvent(RegisterEventArgs e); + public void OnFailedRegEvent(RegisterEventArgs e); } public interface IIntoRoomEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); + public new delegate void BeforeEventHandler(object sender, RoomEventArgs e); + public new delegate void AfterEventHandler(object sender, RoomEventArgs e); + public new delegate void SucceedEventHandler(object sender, RoomEventArgs e); + public new delegate void FailedEventHandler(object sender, RoomEventArgs e); public event BeforeEventHandler? BeforeIntoRoom; public event AfterEventHandler? AfterIntoRoom; public event SucceedEventHandler? SucceedIntoRoom; public event FailedEventHandler? FailedIntoRoom; - public EventResult OnBeforeIntoRoomEvent(RoomEventArgs e); - public EventResult OnAfterIntoRoomEvent(RoomEventArgs e); - public EventResult OnSucceedIntoRoomEvent(RoomEventArgs e); - public EventResult OnFailedIntoRoomEvent(RoomEventArgs e); + public void OnBeforeIntoRoomEvent(RoomEventArgs e); + public void OnAfterIntoRoomEvent(RoomEventArgs e); + public void OnSucceedIntoRoomEvent(RoomEventArgs e); + public void OnFailedIntoRoomEvent(RoomEventArgs e); } public interface ISendTalkEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, SendTalkEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, SendTalkEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, SendTalkEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, SendTalkEventArgs e); + public new delegate void BeforeEventHandler(object sender, SendTalkEventArgs e); + public new delegate void AfterEventHandler(object sender, SendTalkEventArgs e); + public new delegate void SucceedEventHandler(object sender, SendTalkEventArgs e); + public new delegate void FailedEventHandler(object sender, SendTalkEventArgs e); public event BeforeEventHandler? BeforeSendTalk; public event AfterEventHandler? AfterSendTalk; public event SucceedEventHandler? SucceedSendTalk; public event FailedEventHandler? FailedSendTalk; - public EventResult OnBeforeSendTalkEvent(SendTalkEventArgs e); - public EventResult OnAfterSendTalkEvent(SendTalkEventArgs e); - public EventResult OnSucceedSendTalkEvent(SendTalkEventArgs e); - public EventResult OnFailedSendTalkEvent(SendTalkEventArgs e); + public void OnBeforeSendTalkEvent(SendTalkEventArgs e); + public void OnAfterSendTalkEvent(SendTalkEventArgs e); + public void OnSucceedSendTalkEvent(SendTalkEventArgs e); + public void OnFailedSendTalkEvent(SendTalkEventArgs e); } public interface ICreateRoomEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); + public new delegate void BeforeEventHandler(object sender, RoomEventArgs e); + public new delegate void AfterEventHandler(object sender, RoomEventArgs e); + public new delegate void SucceedEventHandler(object sender, RoomEventArgs e); + public new delegate void FailedEventHandler(object sender, RoomEventArgs e); public event BeforeEventHandler? BeforeCreateRoom; public event AfterEventHandler? AfterCreateRoom; public event SucceedEventHandler? SucceedCreateRoom; public event FailedEventHandler? FailedCreateRoom; - public EventResult OnBeforeCreateRoomEvent(RoomEventArgs e); - public EventResult OnAfterCreateRoomEvent(RoomEventArgs e); - public EventResult OnSucceedCreateRoomEvent(RoomEventArgs e); - public EventResult OnFailedCreateRoomEvent(RoomEventArgs e); + public void OnBeforeCreateRoomEvent(RoomEventArgs e); + public void OnAfterCreateRoomEvent(RoomEventArgs e); + public void OnSucceedCreateRoomEvent(RoomEventArgs e); + public void OnFailedCreateRoomEvent(RoomEventArgs e); } public interface IQuitRoomEventHandler : IEventHandler { - public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); - public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); + public new delegate void BeforeEventHandler(object sender, RoomEventArgs e); + public new delegate void AfterEventHandler(object sender, RoomEventArgs e); + public new delegate void SucceedEventHandler(object sender, RoomEventArgs e); + public new delegate void FailedEventHandler(object sender, RoomEventArgs e); public event BeforeEventHandler? BeforeQuitRoom; public event AfterEventHandler? AfterQuitRoom; public event SucceedEventHandler? SucceedQuitRoom; public event FailedEventHandler? FailedQuitRoom; - public EventResult OnBeforeQuitRoomEvent(RoomEventArgs e); - public EventResult OnAfterQuitRoomEvent(RoomEventArgs e); - public EventResult OnSucceedQuitRoomEvent(RoomEventArgs e); - public EventResult OnFailedQuitRoomEvent(RoomEventArgs e); + public void OnBeforeQuitRoomEvent(RoomEventArgs e); + public void OnAfterQuitRoomEvent(RoomEventArgs e); + public void OnSucceedQuitRoomEvent(RoomEventArgs e); + public void OnFailedQuitRoomEvent(RoomEventArgs e); } public interface IChangeRoomSettingEventHandler : IEventHandler @@ -173,10 +172,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedChangeRoomSetting; public event FailedEventHandler? FailedChangeRoomSetting; - public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e); - public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e); - public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e); - public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e); + public void OnBeforeChangeRoomSettingEvent(GeneralEventArgs e); + public void OnAfterChangeRoomSettingEvent(GeneralEventArgs e); + public void OnSucceedChangeRoomSettingEvent(GeneralEventArgs e); + public void OnFailedChangeRoomSettingEvent(GeneralEventArgs e); } public interface IStartMatchEventHandler : IEventHandler @@ -186,10 +185,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedStartMatch; public event FailedEventHandler? FailedStartMatch; - public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e); - public EventResult OnAfterStartMatchEvent(GeneralEventArgs e); - public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e); - public EventResult OnFailedStartMatchEvent(GeneralEventArgs e); + public void OnBeforeStartMatchEvent(GeneralEventArgs e); + public void OnAfterStartMatchEvent(GeneralEventArgs e); + public void OnSucceedStartMatchEvent(GeneralEventArgs e); + public void OnFailedStartMatchEvent(GeneralEventArgs e); } public interface IStartGameEventHandler : IEventHandler @@ -199,10 +198,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedStartGame; public event FailedEventHandler? FailedStartGame; - public EventResult OnBeforeStartGameEvent(GeneralEventArgs e); - public EventResult OnAfterStartGameEvent(GeneralEventArgs e); - public EventResult OnSucceedStartGameEvent(GeneralEventArgs e); - public EventResult OnFailedStartGameEvent(GeneralEventArgs e); + public void OnBeforeStartGameEvent(GeneralEventArgs e); + public void OnAfterStartGameEvent(GeneralEventArgs e); + public void OnSucceedStartGameEvent(GeneralEventArgs e); + public void OnFailedStartGameEvent(GeneralEventArgs e); } public interface IChangeProfileEventHandler : IEventHandler @@ -212,10 +211,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedChangeProfile; public event FailedEventHandler? FailedChangeProfile; - public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e); - public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e); - public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e); - public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e); + public void OnBeforeChangeProfileEvent(GeneralEventArgs e); + public void OnAfterChangeProfileEvent(GeneralEventArgs e); + public void OnSucceedChangeProfileEvent(GeneralEventArgs e); + public void OnFailedChangeProfileEvent(GeneralEventArgs e); } public interface IChangeAccountSettingEventHandler : IEventHandler @@ -225,10 +224,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedChangeAccountSetting; public event FailedEventHandler? FailedChangeAccountSetting; - public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e); - public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e); - public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e); - public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e); + public void OnBeforeChangeAccountSettingEvent(GeneralEventArgs e); + public void OnAfterChangeAccountSettingEvent(GeneralEventArgs e); + public void OnSucceedChangeAccountSettingEvent(GeneralEventArgs e); + public void OnFailedChangeAccountSettingEvent(GeneralEventArgs e); } public interface IOpenInventoryEventHandler : IEventHandler @@ -238,10 +237,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedOpenInventory; public event FailedEventHandler? FailedOpenInventory; - public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e); - public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e); - public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e); - public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e); + public void OnBeforeOpenInventoryEvent(GeneralEventArgs e); + public void OnAfterOpenInventoryEvent(GeneralEventArgs e); + public void OnSucceedOpenInventoryEvent(GeneralEventArgs e); + public void OnFailedOpenInventoryEvent(GeneralEventArgs e); } public interface ISignInEventHandler : IEventHandler @@ -251,10 +250,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedSignIn; public event FailedEventHandler? FailedSignIn; - public EventResult OnBeforeSignInEvent(GeneralEventArgs e); - public EventResult OnAfterSignInEvent(GeneralEventArgs e); - public EventResult OnSucceedSignInEvent(GeneralEventArgs e); - public EventResult OnFailedSignInEvent(GeneralEventArgs e); + public void OnBeforeSignInEvent(GeneralEventArgs e); + public void OnAfterSignInEvent(GeneralEventArgs e); + public void OnSucceedSignInEvent(GeneralEventArgs e); + public void OnFailedSignInEvent(GeneralEventArgs e); } public interface IOpenStoreEventHandler : IEventHandler @@ -264,10 +263,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedOpenStore; public event FailedEventHandler? FailedOpenStore; - public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e); - public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e); - public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e); - public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e); + public void OnBeforeOpenStoreEvent(GeneralEventArgs e); + public void OnAfterOpenStoreEvent(GeneralEventArgs e); + public void OnSucceedOpenStoreEvent(GeneralEventArgs e); + public void OnFailedOpenStoreEvent(GeneralEventArgs e); } public interface IBuyItemEventHandler : IEventHandler @@ -277,10 +276,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedBuyItem; public event FailedEventHandler? FailedBuyItem; - public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e); - public EventResult OnAfterBuyItemEvent(GeneralEventArgs e); - public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e); - public EventResult OnFailedBuyItemEvent(GeneralEventArgs e); + public void OnBeforeBuyItemEvent(GeneralEventArgs e); + public void OnAfterBuyItemEvent(GeneralEventArgs e); + public void OnSucceedBuyItemEvent(GeneralEventArgs e); + public void OnFailedBuyItemEvent(GeneralEventArgs e); } public interface IShowRankingEventHandler : IEventHandler @@ -290,10 +289,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedShowRanking; public event FailedEventHandler? FailedShowRanking; - public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e); - public EventResult OnAfterShowRankingEvent(GeneralEventArgs e); - public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e); - public EventResult OnFailedShowRankingEvent(GeneralEventArgs e); + public void OnBeforeShowRankingEvent(GeneralEventArgs e); + public void OnAfterShowRankingEvent(GeneralEventArgs e); + public void OnSucceedShowRankingEvent(GeneralEventArgs e); + public void OnFailedShowRankingEvent(GeneralEventArgs e); } public interface IUseItemEventHandler : IEventHandler @@ -303,10 +302,10 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedUseItem; public event FailedEventHandler? FailedUseItem; - public EventResult OnBeforeUseItemEvent(GeneralEventArgs e); - public EventResult OnAfterUseItemEvent(GeneralEventArgs e); - public EventResult OnSucceedUseItemEvent(GeneralEventArgs e); - public EventResult OnFailedUseItemEvent(GeneralEventArgs e); + public void OnBeforeUseItemEvent(GeneralEventArgs e); + public void OnAfterUseItemEvent(GeneralEventArgs e); + public void OnSucceedUseItemEvent(GeneralEventArgs e); + public void OnFailedUseItemEvent(GeneralEventArgs e); } public interface IEndGameEventHandler : IEventHandler @@ -316,9 +315,9 @@ namespace Milimoe.FunGame.Core.Interface public event SucceedEventHandler? SucceedEndGame; public event FailedEventHandler? FailedEndGame; - public EventResult OnBeforeEndGameEvent(GeneralEventArgs e); - public EventResult OnAfterEndGameEvent(GeneralEventArgs e); - public EventResult OnSucceedEndGameEvent(GeneralEventArgs e); - public EventResult OnFailedEndGameEvent(GeneralEventArgs e); + public void OnBeforeEndGameEvent(GeneralEventArgs e); + public void OnAfterEndGameEvent(GeneralEventArgs e); + public void OnSucceedEndGameEvent(GeneralEventArgs e); + public void OnFailedEndGameEvent(GeneralEventArgs e); } } diff --git a/Interface/Event/Events.cs b/Interface/Event/Events.cs index 12fed64..4fc5a7c 100644 --- a/Interface/Event/Events.cs +++ b/Interface/Event/Events.cs @@ -1,5 +1,4 @@ using Milimoe.FunGame.Core.Library.Common.Event; -using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Interface { @@ -8,169 +7,169 @@ namespace Milimoe.FunGame.Core.Interface /// public interface IConnectEvent { - public EventResult BeforeConnectEvent(object sender, ConnectEventArgs e); - public EventResult AfterConnectEvent(object sender, ConnectEventArgs e); - public EventResult SucceedConnectEvent(object sender, ConnectEventArgs e); - public EventResult FailedConnectEvent(object sender, ConnectEventArgs e); + public void BeforeConnectEvent(object sender, ConnectEventArgs e); + public void AfterConnectEvent(object sender, ConnectEventArgs e); + public void SucceedConnectEvent(object sender, ConnectEventArgs e); + public void FailedConnectEvent(object sender, ConnectEventArgs 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 void BeforeDisconnectEvent(object sender, GeneralEventArgs e); + public void AfterDisconnectEvent(object sender, GeneralEventArgs e); + public void SucceedDisconnectEvent(object sender, GeneralEventArgs e); + public void FailedDisconnectEvent(object sender, GeneralEventArgs e); } public interface ILoginEvent { - public EventResult BeforeLoginEvent(object sender, LoginEventArgs e); - public EventResult AfterLoginEvent(object sender, LoginEventArgs e); - public EventResult SucceedLoginEvent(object sender, LoginEventArgs e); - public EventResult FailedLoginEvent(object sender, LoginEventArgs e); + public void BeforeLoginEvent(object sender, LoginEventArgs e); + public void AfterLoginEvent(object sender, LoginEventArgs e); + public void SucceedLoginEvent(object sender, LoginEventArgs e); + public void FailedLoginEvent(object sender, LoginEventArgs 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 void BeforeLogoutEvent(object sender, GeneralEventArgs e); + public void AfterLogoutEvent(object sender, GeneralEventArgs e); + public void SucceedLogoutEvent(object sender, GeneralEventArgs e); + public void FailedLogoutEvent(object sender, GeneralEventArgs e); } public interface IRegEvent { - public EventResult BeforeRegEvent(object sender, RegisterEventArgs e); - public EventResult AfterRegEvent(object sender, RegisterEventArgs e); - public EventResult SucceedRegEvent(object sender, RegisterEventArgs e); - public EventResult FailedRegEvent(object sender, RegisterEventArgs e); + public void BeforeRegEvent(object sender, RegisterEventArgs e); + public void AfterRegEvent(object sender, RegisterEventArgs e); + public void SucceedRegEvent(object sender, RegisterEventArgs e); + public void FailedRegEvent(object sender, RegisterEventArgs e); } public interface IIntoRoomEvent { - public EventResult BeforeIntoRoomEvent(object sender, RoomEventArgs e); - public EventResult AfterIntoRoomEvent(object sender, RoomEventArgs e); - public EventResult SucceedIntoRoomEvent(object sender, RoomEventArgs e); - public EventResult FailedIntoRoomEvent(object sender, RoomEventArgs e); + public void BeforeIntoRoomEvent(object sender, RoomEventArgs e); + public void AfterIntoRoomEvent(object sender, RoomEventArgs e); + public void SucceedIntoRoomEvent(object sender, RoomEventArgs e); + public void FailedIntoRoomEvent(object sender, RoomEventArgs e); } public interface ISendTalkEvent { - public EventResult BeforeSendTalkEvent(object sender, SendTalkEventArgs e); - public EventResult AfterSendTalkEvent(object sender, SendTalkEventArgs e); - public EventResult SucceedSendTalkEvent(object sender, SendTalkEventArgs e); - public EventResult FailedSendTalkEvent(object sender, SendTalkEventArgs e); + public void BeforeSendTalkEvent(object sender, SendTalkEventArgs e); + public void AfterSendTalkEvent(object sender, SendTalkEventArgs e); + public void SucceedSendTalkEvent(object sender, SendTalkEventArgs e); + public void FailedSendTalkEvent(object sender, SendTalkEventArgs e); } public interface ICreateRoomEvent { - public EventResult BeforeCreateRoomEvent(object sender, RoomEventArgs e); - public EventResult AfterCreateRoomEvent(object sender, RoomEventArgs e); - public EventResult SucceedCreateRoomEvent(object sender, RoomEventArgs e); - public EventResult FailedCreateRoomEvent(object sender, RoomEventArgs e); + public void BeforeCreateRoomEvent(object sender, RoomEventArgs e); + public void AfterCreateRoomEvent(object sender, RoomEventArgs e); + public void SucceedCreateRoomEvent(object sender, RoomEventArgs e); + public void FailedCreateRoomEvent(object sender, RoomEventArgs e); } public interface IQuitRoomEvent { - public EventResult BeforeQuitRoomEvent(object sender, RoomEventArgs e); - public EventResult AfterQuitRoomEvent(object sender, RoomEventArgs e); - public EventResult SucceedQuitRoomEvent(object sender, RoomEventArgs e); - public EventResult FailedQuitRoomEvent(object sender, RoomEventArgs e); + public void BeforeQuitRoomEvent(object sender, RoomEventArgs e); + public void AfterQuitRoomEvent(object sender, RoomEventArgs e); + public void SucceedQuitRoomEvent(object sender, RoomEventArgs e); + public void FailedQuitRoomEvent(object sender, RoomEventArgs 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 void BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); + public void AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); + public void SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); + public void FailedChangeRoomSettingEvent(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 void BeforeStartMatchEvent(object sender, GeneralEventArgs e); + public void AfterStartMatchEvent(object sender, GeneralEventArgs e); + public void SucceedStartMatchEvent(object sender, GeneralEventArgs e); + public void FailedStartMatchEvent(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 void BeforeStartGameEvent(object sender, GeneralEventArgs e); + public void AfterStartGameEvent(object sender, GeneralEventArgs e); + public void SucceedStartGameEvent(object sender, GeneralEventArgs e); + public void FailedStartGameEvent(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 void BeforeChangeProfileEvent(object sender, GeneralEventArgs e); + public void AfterChangeProfileEvent(object sender, GeneralEventArgs e); + public void SucceedChangeProfileEvent(object sender, GeneralEventArgs e); + public void FailedChangeProfileEvent(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 void BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); + public void AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); + public void SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); + public void FailedChangeAccountSettingEvent(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 void BeforeOpenInventoryEvent(object sender, GeneralEventArgs e); + public void AfterOpenInventoryEvent(object sender, GeneralEventArgs e); + public void SucceedOpenInventoryEvent(object sender, GeneralEventArgs e); + public void FailedOpenInventoryEvent(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 void BeforeSignInEvent(object sender, GeneralEventArgs e); + public void AfterSignInEvent(object sender, GeneralEventArgs e); + public void SucceedSignInEvent(object sender, GeneralEventArgs e); + public void FailedSignInEvent(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 void BeforeOpenStoreEvent(object sender, GeneralEventArgs e); + public void AfterOpenStoreEvent(object sender, GeneralEventArgs e); + public void SucceedOpenStoreEvent(object sender, GeneralEventArgs e); + public void FailedOpenStoreEvent(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 void BeforeBuyItemEvent(object sender, GeneralEventArgs e); + public void AfterBuyItemEvent(object sender, GeneralEventArgs e); + public void SucceedBuyItemEvent(object sender, GeneralEventArgs e); + public void FailedBuyItemEvent(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 void BeforeShowRankingEvent(object sender, GeneralEventArgs e); + public void AfterShowRankingEvent(object sender, GeneralEventArgs e); + public void SucceedShowRankingEvent(object sender, GeneralEventArgs e); + public void FailedShowRankingEvent(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 void BeforeUseItemEvent(object sender, GeneralEventArgs e); + public void AfterUseItemEvent(object sender, GeneralEventArgs e); + public void SucceedUseItemEvent(object sender, GeneralEventArgs e); + public void FailedUseItemEvent(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 void BeforeEndGameEvent(object sender, GeneralEventArgs e); + public void AfterEndGameEvent(object sender, GeneralEventArgs e); + public void SucceedEndGameEvent(object sender, GeneralEventArgs e); + public void FailedEndGameEvent(object sender, GeneralEventArgs e); } } diff --git a/Library/Common/Event/GeneralEventArgs.cs b/Library/Common/Event/GeneralEventArgs.cs index fb20fb2..1b925e8 100644 --- a/Library/Common/Event/GeneralEventArgs.cs +++ b/Library/Common/Event/GeneralEventArgs.cs @@ -3,15 +3,16 @@ public class GeneralEventArgs : EventArgs { public string EventMsg { get; set; } = ""; - public object[]? Parameters { get; set; } = null; + public object[] Parameters { get; set; } = Array.Empty(); + public bool Cancel { get; set; } = false; - public GeneralEventArgs(string EventMsg = "", object[]? Parameters = null) + public GeneralEventArgs(string EventMsg, object[] Parameters) { this.EventMsg = EventMsg; this.Parameters = Parameters; } - public GeneralEventArgs(params object[]? Parameters) + public GeneralEventArgs(params object[] Parameters) { this.Parameters = Parameters; } @@ -19,10 +20,10 @@ public class GeneralEvent { - public T Instance { get; set; } + public T? Instance { get; set; } public GeneralEvent() { - Instance = Activator.CreateInstance(); + Instance = (T?)Activator.CreateInstance(typeof(T?)); } } } diff --git a/Library/Common/Event/RoomEventArgs.cs b/Library/Common/Event/RoomEventArgs.cs index 4602d08..9579c3d 100644 --- a/Library/Common/Event/RoomEventArgs.cs +++ b/Library/Common/Event/RoomEventArgs.cs @@ -3,7 +3,7 @@ using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Library.Common.Event { - public class RoomEventArgs + public class RoomEventArgs : GeneralEventArgs { public string RoomID { get; set; } = ""; public long RoomMaster { get; set; } = 0; diff --git a/Library/Common/Event/SendTalkEventArgs.cs b/Library/Common/Event/SendTalkEventArgs.cs index f4ab73a..2aef9c0 100644 --- a/Library/Common/Event/SendTalkEventArgs.cs +++ b/Library/Common/Event/SendTalkEventArgs.cs @@ -1,6 +1,6 @@ namespace Milimoe.FunGame.Core.Library.Common.Event { - public class SendTalkEventArgs + public class SendTalkEventArgs : GeneralEventArgs { public string Message { get; set; } = ""; diff --git a/Library/Common/Plugin/BasePlugin.cs b/Library/Common/Plugin/BasePlugin.cs index 7c6aed1..c2825d6 100644 --- a/Library/Common/Plugin/BasePlugin.cs +++ b/Library/Common/Plugin/BasePlugin.cs @@ -1,13 +1,9 @@ using Milimoe.FunGame.Core.Interface; using Milimoe.FunGame.Core.Library.Common.Event; -using Milimoe.FunGame.Core.Library.Constant; -using Milimoe.FunGame.Core.Service; namespace Milimoe.FunGame.Core.Library.Common.Plugin { - public abstract class BasePlugin : IPlugin, IConnectEventHandler, IDisconnectEventHandler, ILoginEventHandler, ILogoutEventHandler, IRegEventHandler, IIntoRoomEventHandler, ISendTalkEventHandler, - ICreateRoomEventHandler, IQuitRoomEventHandler, IChangeRoomSettingEventHandler, IStartMatchEventHandler, IStartGameEventHandler, IChangeProfileEventHandler, IChangeAccountSettingEventHandler, - IOpenInventoryEventHandler, ISignInEventHandler, IOpenStoreEventHandler, IBuyItemEventHandler, IShowRankingEventHandler, IUseItemEventHandler, IEndGameEventHandler + public abstract class BasePlugin : IPlugin { /// /// 插件名称 @@ -37,11 +33,11 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin /// /// 加载插件 /// - public void Load() + public bool Load() { if (IsLoaded) { - return; + return false; } // BeforeLoad可以阻止加载此插件 if (BeforeLoad()) @@ -53,6 +49,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin // 如果加载后需要执行代码,请重写AfterLoad方法 AfterLoad(); } + return IsLoaded; } /// @@ -77,9 +74,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin /// private void BindEvent() { - Type type = GetType(); - - if (type == typeof(IConnectEvent)) + if (this is IConnectEvent) { IConnectEvent bind = (IConnectEvent)this; BeforeConnect += bind.BeforeConnectEvent; @@ -88,7 +83,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedConnect += bind.FailedConnectEvent; } - if (type == typeof(IDisconnectEvent)) + if (this is IDisconnectEvent) { IDisconnectEvent bind = (IDisconnectEvent)this; BeforeDisconnect += bind.BeforeDisconnectEvent; @@ -97,7 +92,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedDisconnect += bind.FailedDisconnectEvent; } - if (type == typeof(ILoginEvent)) + if (this is ILoginEvent) { ILoginEvent bind = (ILoginEvent)this; BeforeLogin += bind.BeforeLoginEvent; @@ -106,7 +101,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedLogin += bind.FailedLoginEvent; } - if (type == typeof(ILogoutEvent)) + if (this is ILogoutEvent) { ILogoutEvent bind = (ILogoutEvent)this; BeforeLogout += bind.BeforeLogoutEvent; @@ -115,7 +110,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedLogout += bind.FailedLogoutEvent; } - if (type == typeof(IRegEvent)) + if (this is IRegEvent) { IRegEvent bind = (IRegEvent)this; BeforeReg += bind.BeforeRegEvent; @@ -124,7 +119,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedReg += bind.FailedRegEvent; } - if (type == typeof(IIntoRoomEvent)) + if (this is IIntoRoomEvent) { IIntoRoomEvent bind = (IIntoRoomEvent)this; BeforeIntoRoom += bind.BeforeIntoRoomEvent; @@ -133,7 +128,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedIntoRoom += bind.FailedIntoRoomEvent; } - if (type == typeof(ISendTalkEvent)) + if (this is ISendTalkEvent) { ISendTalkEvent bind = (ISendTalkEvent)this; BeforeSendTalk += bind.BeforeSendTalkEvent; @@ -142,7 +137,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedSendTalk += bind.FailedSendTalkEvent; } - if (type == typeof(ICreateRoomEvent)) + if (this is ICreateRoomEvent) { ICreateRoomEvent bind = (ICreateRoomEvent)this; BeforeCreateRoom += bind.BeforeCreateRoomEvent; @@ -151,7 +146,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedCreateRoom += bind.FailedCreateRoomEvent; } - if (type == typeof(IQuitRoomEvent)) + if (this is IQuitRoomEvent) { IQuitRoomEvent bind = (IQuitRoomEvent)this; BeforeQuitRoom += bind.BeforeQuitRoomEvent; @@ -160,7 +155,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedQuitRoom += bind.FailedQuitRoomEvent; } - if (type == typeof(IChangeRoomSettingEvent)) + if (this is IChangeRoomSettingEvent) { IChangeRoomSettingEvent bind = (IChangeRoomSettingEvent)this; BeforeChangeRoomSetting += bind.BeforeChangeRoomSettingEvent; @@ -169,7 +164,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedChangeRoomSetting += bind.FailedChangeRoomSettingEvent; } - if (type == typeof(IStartMatchEvent)) + if (this is IStartMatchEvent) { IStartMatchEvent bind = (IStartMatchEvent)this; BeforeStartMatch += bind.BeforeStartMatchEvent; @@ -178,7 +173,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedStartMatch += bind.FailedStartMatchEvent; } - if (type == typeof(IStartGameEvent)) + if (this is IStartGameEvent) { IStartGameEvent bind = (IStartGameEvent)this; BeforeStartGame += bind.BeforeStartGameEvent; @@ -187,7 +182,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedStartGame += bind.FailedStartGameEvent; } - if (type == typeof(IChangeProfileEvent)) + if (this is IChangeProfileEvent) { IChangeProfileEvent bind = (IChangeProfileEvent)this; BeforeChangeProfile += bind.BeforeChangeProfileEvent; @@ -196,7 +191,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedChangeProfile += bind.FailedChangeProfileEvent; } - if (type == typeof(IChangeAccountSettingEvent)) + if (this is IChangeAccountSettingEvent) { IChangeAccountSettingEvent bind = (IChangeAccountSettingEvent)this; BeforeChangeAccountSetting += bind.BeforeChangeAccountSettingEvent; @@ -205,7 +200,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedChangeAccountSetting += bind.FailedChangeAccountSettingEvent; } - if (type == typeof(IOpenInventoryEvent)) + if (this is IOpenInventoryEvent) { IOpenInventoryEvent bind = (IOpenInventoryEvent)this; BeforeOpenInventory += bind.BeforeOpenInventoryEvent; @@ -214,7 +209,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedOpenInventory += bind.FailedOpenInventoryEvent; } - if (type == typeof(ISignInEvent)) + if (this is ISignInEvent) { ISignInEvent bind = (ISignInEvent)this; BeforeSignIn += bind.BeforeSignInEvent; @@ -223,7 +218,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedSignIn += bind.FailedSignInEvent; } - if (type == typeof(IOpenStoreEvent)) + if (this is IOpenStoreEvent) { IOpenStoreEvent bind = (IOpenStoreEvent)this; BeforeOpenStore += bind.BeforeOpenStoreEvent; @@ -232,7 +227,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedOpenStore += bind.FailedOpenStoreEvent; } - if (type == typeof(IBuyItemEvent)) + if (this is IBuyItemEvent) { IBuyItemEvent bind = (IBuyItemEvent)this; BeforeBuyItem += bind.BeforeBuyItemEvent; @@ -241,7 +236,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedBuyItem += bind.FailedBuyItemEvent; } - if (type == typeof(IShowRankingEvent)) + if (this is IShowRankingEvent) { IShowRankingEvent bind = (IShowRankingEvent)this; BeforeShowRanking += bind.BeforeShowRankingEvent; @@ -250,7 +245,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedShowRanking += bind.FailedShowRankingEvent; } - if (type == typeof(IUseItemEvent)) + if (this is IUseItemEvent) { IUseItemEvent bind = (IUseItemEvent)this; BeforeUseItem += bind.BeforeUseItemEvent; @@ -259,7 +254,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin FailedUseItem += bind.FailedUseItemEvent; } - if (type == typeof(IEndGameEvent)) + if (this is IEndGameEvent) { IEndGameEvent bind = (IEndGameEvent)this; BeforeEndGame += bind.BeforeEndGameEvent; @@ -354,424 +349,424 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin public event IEventHandler.SucceedEventHandler? SucceedEndGame; public event IEventHandler.FailedEventHandler? FailedEndGame; - public EventResult OnBeforeConnectEvent(ConnectEventArgs e) + public void OnBeforeConnectEvent(ConnectEventArgs e) { - return BeforeConnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeConnect?.Invoke(this, e); } - public EventResult OnAfterConnectEvent(ConnectEventArgs e) + public void OnAfterConnectEvent(ConnectEventArgs e) { - return AfterConnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterConnect?.Invoke(this, e); } - public EventResult OnSucceedConnectEvent(ConnectEventArgs e) + public void OnSucceedConnectEvent(ConnectEventArgs e) { - return SucceedConnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedConnect?.Invoke(this, e); } - public EventResult OnFailedConnectEvent(ConnectEventArgs e) + public void OnFailedConnectEvent(ConnectEventArgs e) { - return FailedConnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedConnect?.Invoke(this, e); } - public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e) + public void OnBeforeDisconnectEvent(GeneralEventArgs e) { - return BeforeDisconnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeDisconnect?.Invoke(this, e); } - public EventResult OnAfterDisconnectEvent(GeneralEventArgs e) + public void OnAfterDisconnectEvent(GeneralEventArgs e) { - return AfterDisconnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterDisconnect?.Invoke(this, e); } - public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e) + public void OnSucceedDisconnectEvent(GeneralEventArgs e) { - return SucceedDisconnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedDisconnect?.Invoke(this, e); } - public EventResult OnFailedDisconnectEvent(GeneralEventArgs e) + public void OnFailedDisconnectEvent(GeneralEventArgs e) { - return FailedDisconnect?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedDisconnect?.Invoke(this, e); } - public EventResult OnBeforeLoginEvent(LoginEventArgs e) + public void OnBeforeLoginEvent(LoginEventArgs e) { - return BeforeLogin?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeLogin?.Invoke(this, e); } - public EventResult OnAfterLoginEvent(LoginEventArgs e) + public void OnAfterLoginEvent(LoginEventArgs e) { - return AfterLogin?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterLogin?.Invoke(this, e); } - public EventResult OnSucceedLoginEvent(LoginEventArgs e) + public void OnSucceedLoginEvent(LoginEventArgs e) { - return SucceedLogin?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedLogin?.Invoke(this, e); } - public EventResult OnFailedLoginEvent(LoginEventArgs e) + public void OnFailedLoginEvent(LoginEventArgs e) { - return FailedLogin?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedLogin?.Invoke(this, e); } - public EventResult OnBeforeLogoutEvent(GeneralEventArgs e) + public void OnBeforeLogoutEvent(GeneralEventArgs e) { - return BeforeLogout?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeLogout?.Invoke(this, e); } - public EventResult OnAfterLogoutEvent(GeneralEventArgs e) + public void OnAfterLogoutEvent(GeneralEventArgs e) { - return AfterLogout?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterLogout?.Invoke(this, e); } - public EventResult OnSucceedLogoutEvent(GeneralEventArgs e) + public void OnSucceedLogoutEvent(GeneralEventArgs e) { - return SucceedLogout?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedLogout?.Invoke(this, e); } - public EventResult OnFailedLogoutEvent(GeneralEventArgs e) + public void OnFailedLogoutEvent(GeneralEventArgs e) { - return FailedLogout?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedLogout?.Invoke(this, e); } - public EventResult OnBeforeRegEvent(RegisterEventArgs e) + public void OnBeforeRegEvent(RegisterEventArgs e) { - return BeforeReg?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeReg?.Invoke(this, e); } - public EventResult OnAfterRegEvent(RegisterEventArgs e) + public void OnAfterRegEvent(RegisterEventArgs e) { - return AfterReg?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterReg?.Invoke(this, e); } - public EventResult OnSucceedRegEvent(RegisterEventArgs e) + public void OnSucceedRegEvent(RegisterEventArgs e) { - return SucceedReg?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedReg?.Invoke(this, e); } - public EventResult OnFailedRegEvent(RegisterEventArgs e) + public void OnFailedRegEvent(RegisterEventArgs e) { - return FailedReg?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedReg?.Invoke(this, e); } - public EventResult OnBeforeIntoRoomEvent(RoomEventArgs e) + public void OnBeforeIntoRoomEvent(RoomEventArgs e) { - return BeforeIntoRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeIntoRoom?.Invoke(this, e); } - public EventResult OnAfterIntoRoomEvent(RoomEventArgs e) + public void OnAfterIntoRoomEvent(RoomEventArgs e) { - return AfterIntoRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterIntoRoom?.Invoke(this, e); } - public EventResult OnSucceedIntoRoomEvent(RoomEventArgs e) + public void OnSucceedIntoRoomEvent(RoomEventArgs e) { - return SucceedIntoRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedIntoRoom?.Invoke(this, e); } - public EventResult OnFailedIntoRoomEvent(RoomEventArgs e) + public void OnFailedIntoRoomEvent(RoomEventArgs e) { - return FailedIntoRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedIntoRoom?.Invoke(this, e); } - public EventResult OnBeforeSendTalkEvent(SendTalkEventArgs e) + public void OnBeforeSendTalkEvent(SendTalkEventArgs e) { - return BeforeSendTalk?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeSendTalk?.Invoke(this, e); } - public EventResult OnAfterSendTalkEvent(SendTalkEventArgs e) + public void OnAfterSendTalkEvent(SendTalkEventArgs e) { - return AfterSendTalk?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterSendTalk?.Invoke(this, e); } - public EventResult OnSucceedSendTalkEvent(SendTalkEventArgs e) + public void OnSucceedSendTalkEvent(SendTalkEventArgs e) { - return SucceedSendTalk?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedSendTalk?.Invoke(this, e); } - public EventResult OnFailedSendTalkEvent(SendTalkEventArgs e) + public void OnFailedSendTalkEvent(SendTalkEventArgs e) { - return FailedSendTalk?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedSendTalk?.Invoke(this, e); } - public EventResult OnBeforeCreateRoomEvent(RoomEventArgs e) + public void OnBeforeCreateRoomEvent(RoomEventArgs e) { - return BeforeCreateRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeCreateRoom?.Invoke(this, e); } - public EventResult OnAfterCreateRoomEvent(RoomEventArgs e) + public void OnAfterCreateRoomEvent(RoomEventArgs e) { - return AfterCreateRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterCreateRoom?.Invoke(this, e); } - public EventResult OnSucceedCreateRoomEvent(RoomEventArgs e) + public void OnSucceedCreateRoomEvent(RoomEventArgs e) { - return SucceedCreateRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedCreateRoom?.Invoke(this, e); } - public EventResult OnFailedCreateRoomEvent(RoomEventArgs e) + public void OnFailedCreateRoomEvent(RoomEventArgs e) { - return FailedCreateRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedCreateRoom?.Invoke(this, e); } - public EventResult OnBeforeQuitRoomEvent(RoomEventArgs e) + public void OnBeforeQuitRoomEvent(RoomEventArgs e) { - return BeforeQuitRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeQuitRoom?.Invoke(this, e); } - public EventResult OnAfterQuitRoomEvent(RoomEventArgs e) + public void OnAfterQuitRoomEvent(RoomEventArgs e) { - return AfterQuitRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterQuitRoom?.Invoke(this, e); } - public EventResult OnSucceedQuitRoomEvent(RoomEventArgs e) + public void OnSucceedQuitRoomEvent(RoomEventArgs e) { - return SucceedQuitRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedQuitRoom?.Invoke(this, e); } - public EventResult OnFailedQuitRoomEvent(RoomEventArgs e) + public void OnFailedQuitRoomEvent(RoomEventArgs e) { - return FailedQuitRoom?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedQuitRoom?.Invoke(this, e); } - public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e) + public void OnBeforeChangeRoomSettingEvent(GeneralEventArgs e) { - return BeforeChangeRoomSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeChangeRoomSetting?.Invoke(this, e); } - public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e) + public void OnAfterChangeRoomSettingEvent(GeneralEventArgs e) { - return AfterChangeRoomSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterChangeRoomSetting?.Invoke(this, e); } - public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e) + public void OnSucceedChangeRoomSettingEvent(GeneralEventArgs e) { - return SucceedChangeRoomSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedChangeRoomSetting?.Invoke(this, e); } - public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e) + public void OnFailedChangeRoomSettingEvent(GeneralEventArgs e) { - return FailedChangeRoomSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedChangeRoomSetting?.Invoke(this, e); } - public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e) + public void OnBeforeStartMatchEvent(GeneralEventArgs e) { - return BeforeStartMatch?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeStartMatch?.Invoke(this, e); } - public EventResult OnAfterStartMatchEvent(GeneralEventArgs e) + public void OnAfterStartMatchEvent(GeneralEventArgs e) { - return AfterStartMatch?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterStartMatch?.Invoke(this, e); } - public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e) + public void OnSucceedStartMatchEvent(GeneralEventArgs e) { - return SucceedStartMatch?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedStartMatch?.Invoke(this, e); } - public EventResult OnFailedStartMatchEvent(GeneralEventArgs e) + public void OnFailedStartMatchEvent(GeneralEventArgs e) { - return FailedStartMatch?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedStartMatch?.Invoke(this, e); } - public EventResult OnBeforeStartGameEvent(GeneralEventArgs e) + public void OnBeforeStartGameEvent(GeneralEventArgs e) { - return BeforeStartGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeStartGame?.Invoke(this, e); } - public EventResult OnAfterStartGameEvent(GeneralEventArgs e) + public void OnAfterStartGameEvent(GeneralEventArgs e) { - return AfterStartGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterStartGame?.Invoke(this, e); } - public EventResult OnSucceedStartGameEvent(GeneralEventArgs e) + public void OnSucceedStartGameEvent(GeneralEventArgs e) { - return SucceedStartGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedStartGame?.Invoke(this, e); } - public EventResult OnFailedStartGameEvent(GeneralEventArgs e) + public void OnFailedStartGameEvent(GeneralEventArgs e) { - return FailedStartGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedStartGame?.Invoke(this, e); } - public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e) + public void OnBeforeChangeProfileEvent(GeneralEventArgs e) { - return BeforeChangeProfile?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeChangeProfile?.Invoke(this, e); } - public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e) + public void OnAfterChangeProfileEvent(GeneralEventArgs e) { - return AfterChangeProfile?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterChangeProfile?.Invoke(this, e); } - public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e) + public void OnSucceedChangeProfileEvent(GeneralEventArgs e) { - return SucceedChangeProfile?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedChangeProfile?.Invoke(this, e); } - public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e) + public void OnFailedChangeProfileEvent(GeneralEventArgs e) { - return FailedChangeProfile?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedChangeProfile?.Invoke(this, e); } - public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e) + public void OnBeforeChangeAccountSettingEvent(GeneralEventArgs e) { - return BeforeChangeAccountSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeChangeAccountSetting?.Invoke(this, e); } - public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e) + public void OnAfterChangeAccountSettingEvent(GeneralEventArgs e) { - return AfterChangeAccountSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterChangeAccountSetting?.Invoke(this, e); } - public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e) + public void OnSucceedChangeAccountSettingEvent(GeneralEventArgs e) { - return SucceedChangeAccountSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedChangeAccountSetting?.Invoke(this, e); } - public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e) + public void OnFailedChangeAccountSettingEvent(GeneralEventArgs e) { - return FailedChangeAccountSetting?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedChangeAccountSetting?.Invoke(this, e); } - public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e) + public void OnBeforeOpenInventoryEvent(GeneralEventArgs e) { - return BeforeOpenInventory?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeOpenInventory?.Invoke(this, e); } - public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e) + public void OnAfterOpenInventoryEvent(GeneralEventArgs e) { - return AfterOpenInventory?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterOpenInventory?.Invoke(this, e); } - public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e) + public void OnSucceedOpenInventoryEvent(GeneralEventArgs e) { - return SucceedOpenInventory?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedOpenInventory?.Invoke(this, e); } - public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e) + public void OnFailedOpenInventoryEvent(GeneralEventArgs e) { - return FailedOpenInventory?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedOpenInventory?.Invoke(this, e); } - public EventResult OnBeforeSignInEvent(GeneralEventArgs e) + public void OnBeforeSignInEvent(GeneralEventArgs e) { - return BeforeSignIn?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeSignIn?.Invoke(this, e); } - public EventResult OnAfterSignInEvent(GeneralEventArgs e) + public void OnAfterSignInEvent(GeneralEventArgs e) { - return AfterSignIn?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterSignIn?.Invoke(this, e); } - public EventResult OnSucceedSignInEvent(GeneralEventArgs e) + public void OnSucceedSignInEvent(GeneralEventArgs e) { - return SucceedSignIn?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedSignIn?.Invoke(this, e); } - public EventResult OnFailedSignInEvent(GeneralEventArgs e) + public void OnFailedSignInEvent(GeneralEventArgs e) { - return FailedSignIn?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedSignIn?.Invoke(this, e); } - public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e) + public void OnBeforeOpenStoreEvent(GeneralEventArgs e) { - return BeforeOpenStore?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeOpenStore?.Invoke(this, e); } - public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e) + public void OnAfterOpenStoreEvent(GeneralEventArgs e) { - return AfterOpenStore?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterOpenStore?.Invoke(this, e); } - public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e) + public void OnSucceedOpenStoreEvent(GeneralEventArgs e) { - return SucceedOpenStore?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedOpenStore?.Invoke(this, e); } - public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e) + public void OnFailedOpenStoreEvent(GeneralEventArgs e) { - return FailedOpenStore?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedOpenStore?.Invoke(this, e); } - public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e) + public void OnBeforeBuyItemEvent(GeneralEventArgs e) { - return BeforeBuyItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeBuyItem?.Invoke(this, e); } - public EventResult OnAfterBuyItemEvent(GeneralEventArgs e) + public void OnAfterBuyItemEvent(GeneralEventArgs e) { - return AfterBuyItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterBuyItem?.Invoke(this, e); } - public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e) + public void OnSucceedBuyItemEvent(GeneralEventArgs e) { - return SucceedBuyItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedBuyItem?.Invoke(this, e); } - public EventResult OnFailedBuyItemEvent(GeneralEventArgs e) + public void OnFailedBuyItemEvent(GeneralEventArgs e) { - return FailedBuyItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedBuyItem?.Invoke(this, e); } - public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e) + public void OnBeforeShowRankingEvent(GeneralEventArgs e) { - return BeforeShowRanking?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeShowRanking?.Invoke(this, e); } - public EventResult OnAfterShowRankingEvent(GeneralEventArgs e) + public void OnAfterShowRankingEvent(GeneralEventArgs e) { - return AfterShowRanking?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterShowRanking?.Invoke(this, e); } - public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e) + public void OnSucceedShowRankingEvent(GeneralEventArgs e) { - return SucceedShowRanking?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedShowRanking?.Invoke(this, e); } - public EventResult OnFailedShowRankingEvent(GeneralEventArgs e) + public void OnFailedShowRankingEvent(GeneralEventArgs e) { - return FailedShowRanking?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedShowRanking?.Invoke(this, e); } - public EventResult OnBeforeUseItemEvent(GeneralEventArgs e) + public void OnBeforeUseItemEvent(GeneralEventArgs e) { - return BeforeUseItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeUseItem?.Invoke(this, e); } - public EventResult OnAfterUseItemEvent(GeneralEventArgs e) + public void OnAfterUseItemEvent(GeneralEventArgs e) { - return AfterUseItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterUseItem?.Invoke(this, e); } - public EventResult OnSucceedUseItemEvent(GeneralEventArgs e) + public void OnSucceedUseItemEvent(GeneralEventArgs e) { - return SucceedUseItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedUseItem?.Invoke(this, e); } - public EventResult OnFailedUseItemEvent(GeneralEventArgs e) + public void OnFailedUseItemEvent(GeneralEventArgs e) { - return FailedUseItem?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedUseItem?.Invoke(this, e); } - public EventResult OnBeforeEndGameEvent(GeneralEventArgs e) + public void OnBeforeEndGameEvent(GeneralEventArgs e) { - return BeforeEndGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + BeforeEndGame?.Invoke(this, e); } - public EventResult OnAfterEndGameEvent(GeneralEventArgs e) + public void OnAfterEndGameEvent(GeneralEventArgs e) { - return AfterEndGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + AfterEndGame?.Invoke(this, e); } - public EventResult OnSucceedEndGameEvent(GeneralEventArgs e) + public void OnSucceedEndGameEvent(GeneralEventArgs e) { - return SucceedEndGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + SucceedEndGame?.Invoke(this, e); } - public EventResult OnFailedEndGameEvent(GeneralEventArgs e) + public void OnFailedEndGameEvent(GeneralEventArgs e) { - return FailedEndGame?.Invoke(this, e) ?? EventResult.NoEventImplement; + FailedEndGame?.Invoke(this, e); } } } diff --git a/Library/Common/Plugin/Example.cs b/Library/Common/Plugin/Example.cs index ea71628..0b5f6ae 100644 --- a/Library/Common/Plugin/Example.cs +++ b/Library/Common/Plugin/Example.cs @@ -1,6 +1,5 @@ using Milimoe.FunGame.Core.Interface; using Milimoe.FunGame.Core.Library.Common.Event; -using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Library.Common.Plugin { @@ -18,24 +17,24 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin public override string Author => "FunGamer"; - public EventResult AfterLoginEvent(object sender, LoginEventArgs e) + public void AfterLoginEvent(object sender, LoginEventArgs e) { - return EventResult.Success; + } - public EventResult BeforeLoginEvent(object sender, LoginEventArgs e) + public void BeforeLoginEvent(object sender, LoginEventArgs e) { - return EventResult.Success; + } - public EventResult FailedLoginEvent(object sender, LoginEventArgs e) + public void FailedLoginEvent(object sender, LoginEventArgs e) { - return EventResult.Success; + } - public EventResult SucceedLoginEvent(object sender, LoginEventArgs e) + public void SucceedLoginEvent(object sender, LoginEventArgs e) { - return EventResult.Success; + } } } diff --git a/Service/PluginManager.cs b/Service/PluginManager.cs index 229d040..ed75f14 100644 --- a/Service/PluginManager.cs +++ b/Service/PluginManager.cs @@ -5,32 +5,28 @@ namespace Milimoe.FunGame.Core.Service { internal class PluginManager { - public static Dictionary LoadPlugin() + /// + /// 从plugins目录加载所有插件 + /// + /// + /// + internal static Dictionary LoadPlugins(Dictionary plugins) { - Dictionary plugins = new(); - string directory = "plugins"; - - // 获取目录中所有的 DLL 文件路径 - string[] dlls = Directory.GetFiles(directory, "*.dll"); + string[] dlls = Directory.GetFiles("plugins", "*.dll"); foreach (string dll in dlls) { - try - { - // 加载 DLL - Assembly assembly = Assembly.LoadFrom(dll); + // 加载目录下所有的DLL + Assembly assembly = Assembly.LoadFrom(dll); - // 遍历 DLL 中的类型 - foreach (Type type in assembly.GetTypes().AsEnumerable().Where(type => type.IsSubclassOf(typeof(BasePlugin)))) - { - BasePlugin instance = Activator.CreateInstance(); - plugins.Add(instance.Name, instance); - } - } - catch (Exception e) + // 遍历DLL中继承了BasePlugin的类型 + foreach (Type type in assembly.GetTypes().AsEnumerable().Where(type => type.IsSubclassOf(typeof(BasePlugin)))) { - Console.WriteLine($"Failed to load DLL: {dll}"); - Console.WriteLine($"Error: {e.Message}"); + BasePlugin? instance = (BasePlugin?)Activator.CreateInstance(type); + if (instance != null && instance.Load()) + { + plugins.TryAdd(instance.Name, instance); + } } }