添加插件加载器和事件触发方法组 (#54)

* Add PluginLoader

* 删除event返回值

* 添加插件触发器(方法组)

* 删除冗余方法

* 将typeof(GetType())改写为this is

* 删除无用引用
This commit is contained in:
milimoe 2023-09-24 13:06:10 +08:00 committed by GitHub
parent eb0bb86f38
commit 082ce3b6f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1124 additions and 438 deletions

695
Api/Utility/PluginLoader.cs Normal file
View File

@ -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<string, BasePlugin> 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);
});
}
}
}

View File

@ -1,12 +1,14 @@
namespace Milimoe.FunGame.Core.Interface 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 Name { get; }
public string Description { get; } public string Description { get; }
public string Version { get; } public string Version { get; }
public string Author { get; } public string Author { get; }
public void Load(); public bool Load();
} }
} }

View File

@ -1,5 +1,4 @@
using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Interface namespace Milimoe.FunGame.Core.Interface
{ {
@ -8,28 +7,28 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary> /// </summary>
public interface IEventHandler public interface IEventHandler
{ {
public delegate EventResult BeforeEventHandler(object sender, GeneralEventArgs e); public delegate void BeforeEventHandler(object sender, GeneralEventArgs e);
public delegate EventResult AfterEventHandler(object sender, GeneralEventArgs e); public delegate void AfterEventHandler(object sender, GeneralEventArgs e);
public delegate EventResult SucceedEventHandler(object sender, GeneralEventArgs e); public delegate void SucceedEventHandler(object sender, GeneralEventArgs e);
public delegate EventResult FailedEventHandler(object sender, GeneralEventArgs e); public delegate void FailedEventHandler(object sender, GeneralEventArgs e);
} }
public interface IConnectEventHandler : IEventHandler public interface IConnectEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, ConnectEventArgs e); public new delegate void BeforeEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, ConnectEventArgs e); public new delegate void AfterEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, ConnectEventArgs e); public new delegate void SucceedEventHandler(object sender, ConnectEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, ConnectEventArgs e); public new delegate void FailedEventHandler(object sender, ConnectEventArgs e);
public event BeforeEventHandler? BeforeConnect; public event BeforeEventHandler? BeforeConnect;
public event AfterEventHandler? AfterConnect; public event AfterEventHandler? AfterConnect;
public event SucceedEventHandler? SucceedConnect; public event SucceedEventHandler? SucceedConnect;
public event FailedEventHandler? FailedConnect; public event FailedEventHandler? FailedConnect;
public EventResult OnBeforeConnectEvent(ConnectEventArgs e); public void OnBeforeConnectEvent(ConnectEventArgs e);
public EventResult OnAfterConnectEvent(ConnectEventArgs e); public void OnAfterConnectEvent(ConnectEventArgs e);
public EventResult OnSucceedConnectEvent(ConnectEventArgs e); public void OnSucceedConnectEvent(ConnectEventArgs e);
public EventResult OnFailedConnectEvent(ConnectEventArgs e); public void OnFailedConnectEvent(ConnectEventArgs e);
} }
public interface IDisconnectEventHandler : IEventHandler public interface IDisconnectEventHandler : IEventHandler
@ -39,28 +38,28 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedDisconnect; public event SucceedEventHandler? SucceedDisconnect;
public event FailedEventHandler? FailedDisconnect; public event FailedEventHandler? FailedDisconnect;
public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e); public void OnBeforeDisconnectEvent(GeneralEventArgs e);
public EventResult OnAfterDisconnectEvent(GeneralEventArgs e); public void OnAfterDisconnectEvent(GeneralEventArgs e);
public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e); public void OnSucceedDisconnectEvent(GeneralEventArgs e);
public EventResult OnFailedDisconnectEvent(GeneralEventArgs e); public void OnFailedDisconnectEvent(GeneralEventArgs e);
} }
public interface ILoginEventHandler : IEventHandler public interface ILoginEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, LoginEventArgs e); public new delegate void BeforeEventHandler(object sender, LoginEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, LoginEventArgs e); public new delegate void AfterEventHandler(object sender, LoginEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, LoginEventArgs e); public new delegate void SucceedEventHandler(object sender, LoginEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, LoginEventArgs e); public new delegate void FailedEventHandler(object sender, LoginEventArgs e);
public event BeforeEventHandler? BeforeLogin; public event BeforeEventHandler? BeforeLogin;
public event AfterEventHandler? AfterLogin; public event AfterEventHandler? AfterLogin;
public event SucceedEventHandler? SucceedLogin; public event SucceedEventHandler? SucceedLogin;
public event FailedEventHandler? FailedLogin; public event FailedEventHandler? FailedLogin;
public EventResult OnBeforeLoginEvent(LoginEventArgs e); public void OnBeforeLoginEvent(LoginEventArgs e);
public EventResult OnAfterLoginEvent(LoginEventArgs e); public void OnAfterLoginEvent(LoginEventArgs e);
public EventResult OnSucceedLoginEvent(LoginEventArgs e); public void OnSucceedLoginEvent(LoginEventArgs e);
public EventResult OnFailedLoginEvent(LoginEventArgs e); public void OnFailedLoginEvent(LoginEventArgs e);
} }
public interface ILogoutEventHandler : IEventHandler public interface ILogoutEventHandler : IEventHandler
@ -70,100 +69,100 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedLogout; public event SucceedEventHandler? SucceedLogout;
public event FailedEventHandler? FailedLogout; public event FailedEventHandler? FailedLogout;
public EventResult OnBeforeLogoutEvent(GeneralEventArgs e); public void OnBeforeLogoutEvent(GeneralEventArgs e);
public EventResult OnAfterLogoutEvent(GeneralEventArgs e); public void OnAfterLogoutEvent(GeneralEventArgs e);
public EventResult OnSucceedLogoutEvent(GeneralEventArgs e); public void OnSucceedLogoutEvent(GeneralEventArgs e);
public EventResult OnFailedLogoutEvent(GeneralEventArgs e); public void OnFailedLogoutEvent(GeneralEventArgs e);
} }
public interface IRegEventHandler : IEventHandler public interface IRegEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, RegisterEventArgs e); public new delegate void BeforeEventHandler(object sender, RegisterEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, RegisterEventArgs e); public new delegate void AfterEventHandler(object sender, RegisterEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, RegisterEventArgs e); public new delegate void SucceedEventHandler(object sender, RegisterEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, RegisterEventArgs e); public new delegate void FailedEventHandler(object sender, RegisterEventArgs e);
public event BeforeEventHandler? BeforeReg; public event BeforeEventHandler? BeforeReg;
public event AfterEventHandler? AfterReg; public event AfterEventHandler? AfterReg;
public event SucceedEventHandler? SucceedReg; public event SucceedEventHandler? SucceedReg;
public event FailedEventHandler? FailedReg; public event FailedEventHandler? FailedReg;
public EventResult OnBeforeRegEvent(RegisterEventArgs e); public void OnBeforeRegEvent(RegisterEventArgs e);
public EventResult OnAfterRegEvent(RegisterEventArgs e); public void OnAfterRegEvent(RegisterEventArgs e);
public EventResult OnSucceedRegEvent(RegisterEventArgs e); public void OnSucceedRegEvent(RegisterEventArgs e);
public EventResult OnFailedRegEvent(RegisterEventArgs e); public void OnFailedRegEvent(RegisterEventArgs e);
} }
public interface IIntoRoomEventHandler : IEventHandler public interface IIntoRoomEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); public new delegate void BeforeEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); public new delegate void AfterEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); public new delegate void SucceedEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); public new delegate void FailedEventHandler(object sender, RoomEventArgs e);
public event BeforeEventHandler? BeforeIntoRoom; public event BeforeEventHandler? BeforeIntoRoom;
public event AfterEventHandler? AfterIntoRoom; public event AfterEventHandler? AfterIntoRoom;
public event SucceedEventHandler? SucceedIntoRoom; public event SucceedEventHandler? SucceedIntoRoom;
public event FailedEventHandler? FailedIntoRoom; public event FailedEventHandler? FailedIntoRoom;
public EventResult OnBeforeIntoRoomEvent(RoomEventArgs e); public void OnBeforeIntoRoomEvent(RoomEventArgs e);
public EventResult OnAfterIntoRoomEvent(RoomEventArgs e); public void OnAfterIntoRoomEvent(RoomEventArgs e);
public EventResult OnSucceedIntoRoomEvent(RoomEventArgs e); public void OnSucceedIntoRoomEvent(RoomEventArgs e);
public EventResult OnFailedIntoRoomEvent(RoomEventArgs e); public void OnFailedIntoRoomEvent(RoomEventArgs e);
} }
public interface ISendTalkEventHandler : IEventHandler public interface ISendTalkEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, SendTalkEventArgs e); public new delegate void BeforeEventHandler(object sender, SendTalkEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, SendTalkEventArgs e); public new delegate void AfterEventHandler(object sender, SendTalkEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, SendTalkEventArgs e); public new delegate void SucceedEventHandler(object sender, SendTalkEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, SendTalkEventArgs e); public new delegate void FailedEventHandler(object sender, SendTalkEventArgs e);
public event BeforeEventHandler? BeforeSendTalk; public event BeforeEventHandler? BeforeSendTalk;
public event AfterEventHandler? AfterSendTalk; public event AfterEventHandler? AfterSendTalk;
public event SucceedEventHandler? SucceedSendTalk; public event SucceedEventHandler? SucceedSendTalk;
public event FailedEventHandler? FailedSendTalk; public event FailedEventHandler? FailedSendTalk;
public EventResult OnBeforeSendTalkEvent(SendTalkEventArgs e); public void OnBeforeSendTalkEvent(SendTalkEventArgs e);
public EventResult OnAfterSendTalkEvent(SendTalkEventArgs e); public void OnAfterSendTalkEvent(SendTalkEventArgs e);
public EventResult OnSucceedSendTalkEvent(SendTalkEventArgs e); public void OnSucceedSendTalkEvent(SendTalkEventArgs e);
public EventResult OnFailedSendTalkEvent(SendTalkEventArgs e); public void OnFailedSendTalkEvent(SendTalkEventArgs e);
} }
public interface ICreateRoomEventHandler : IEventHandler public interface ICreateRoomEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); public new delegate void BeforeEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); public new delegate void AfterEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); public new delegate void SucceedEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); public new delegate void FailedEventHandler(object sender, RoomEventArgs e);
public event BeforeEventHandler? BeforeCreateRoom; public event BeforeEventHandler? BeforeCreateRoom;
public event AfterEventHandler? AfterCreateRoom; public event AfterEventHandler? AfterCreateRoom;
public event SucceedEventHandler? SucceedCreateRoom; public event SucceedEventHandler? SucceedCreateRoom;
public event FailedEventHandler? FailedCreateRoom; public event FailedEventHandler? FailedCreateRoom;
public EventResult OnBeforeCreateRoomEvent(RoomEventArgs e); public void OnBeforeCreateRoomEvent(RoomEventArgs e);
public EventResult OnAfterCreateRoomEvent(RoomEventArgs e); public void OnAfterCreateRoomEvent(RoomEventArgs e);
public EventResult OnSucceedCreateRoomEvent(RoomEventArgs e); public void OnSucceedCreateRoomEvent(RoomEventArgs e);
public EventResult OnFailedCreateRoomEvent(RoomEventArgs e); public void OnFailedCreateRoomEvent(RoomEventArgs e);
} }
public interface IQuitRoomEventHandler : IEventHandler public interface IQuitRoomEventHandler : IEventHandler
{ {
public new delegate EventResult BeforeEventHandler(object sender, RoomEventArgs e); public new delegate void BeforeEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult AfterEventHandler(object sender, RoomEventArgs e); public new delegate void AfterEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult SucceedEventHandler(object sender, RoomEventArgs e); public new delegate void SucceedEventHandler(object sender, RoomEventArgs e);
public new delegate EventResult FailedEventHandler(object sender, RoomEventArgs e); public new delegate void FailedEventHandler(object sender, RoomEventArgs e);
public event BeforeEventHandler? BeforeQuitRoom; public event BeforeEventHandler? BeforeQuitRoom;
public event AfterEventHandler? AfterQuitRoom; public event AfterEventHandler? AfterQuitRoom;
public event SucceedEventHandler? SucceedQuitRoom; public event SucceedEventHandler? SucceedQuitRoom;
public event FailedEventHandler? FailedQuitRoom; public event FailedEventHandler? FailedQuitRoom;
public EventResult OnBeforeQuitRoomEvent(RoomEventArgs e); public void OnBeforeQuitRoomEvent(RoomEventArgs e);
public EventResult OnAfterQuitRoomEvent(RoomEventArgs e); public void OnAfterQuitRoomEvent(RoomEventArgs e);
public EventResult OnSucceedQuitRoomEvent(RoomEventArgs e); public void OnSucceedQuitRoomEvent(RoomEventArgs e);
public EventResult OnFailedQuitRoomEvent(RoomEventArgs e); public void OnFailedQuitRoomEvent(RoomEventArgs e);
} }
public interface IChangeRoomSettingEventHandler : IEventHandler public interface IChangeRoomSettingEventHandler : IEventHandler
@ -173,10 +172,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedChangeRoomSetting; public event SucceedEventHandler? SucceedChangeRoomSetting;
public event FailedEventHandler? FailedChangeRoomSetting; public event FailedEventHandler? FailedChangeRoomSetting;
public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e); public void OnBeforeChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e); public void OnAfterChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e); public void OnSucceedChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e); public void OnFailedChangeRoomSettingEvent(GeneralEventArgs e);
} }
public interface IStartMatchEventHandler : IEventHandler public interface IStartMatchEventHandler : IEventHandler
@ -186,10 +185,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedStartMatch; public event SucceedEventHandler? SucceedStartMatch;
public event FailedEventHandler? FailedStartMatch; public event FailedEventHandler? FailedStartMatch;
public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e); public void OnBeforeStartMatchEvent(GeneralEventArgs e);
public EventResult OnAfterStartMatchEvent(GeneralEventArgs e); public void OnAfterStartMatchEvent(GeneralEventArgs e);
public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e); public void OnSucceedStartMatchEvent(GeneralEventArgs e);
public EventResult OnFailedStartMatchEvent(GeneralEventArgs e); public void OnFailedStartMatchEvent(GeneralEventArgs e);
} }
public interface IStartGameEventHandler : IEventHandler public interface IStartGameEventHandler : IEventHandler
@ -199,10 +198,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedStartGame; public event SucceedEventHandler? SucceedStartGame;
public event FailedEventHandler? FailedStartGame; public event FailedEventHandler? FailedStartGame;
public EventResult OnBeforeStartGameEvent(GeneralEventArgs e); public void OnBeforeStartGameEvent(GeneralEventArgs e);
public EventResult OnAfterStartGameEvent(GeneralEventArgs e); public void OnAfterStartGameEvent(GeneralEventArgs e);
public EventResult OnSucceedStartGameEvent(GeneralEventArgs e); public void OnSucceedStartGameEvent(GeneralEventArgs e);
public EventResult OnFailedStartGameEvent(GeneralEventArgs e); public void OnFailedStartGameEvent(GeneralEventArgs e);
} }
public interface IChangeProfileEventHandler : IEventHandler public interface IChangeProfileEventHandler : IEventHandler
@ -212,10 +211,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedChangeProfile; public event SucceedEventHandler? SucceedChangeProfile;
public event FailedEventHandler? FailedChangeProfile; public event FailedEventHandler? FailedChangeProfile;
public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e); public void OnBeforeChangeProfileEvent(GeneralEventArgs e);
public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e); public void OnAfterChangeProfileEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e); public void OnSucceedChangeProfileEvent(GeneralEventArgs e);
public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e); public void OnFailedChangeProfileEvent(GeneralEventArgs e);
} }
public interface IChangeAccountSettingEventHandler : IEventHandler public interface IChangeAccountSettingEventHandler : IEventHandler
@ -225,10 +224,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedChangeAccountSetting; public event SucceedEventHandler? SucceedChangeAccountSetting;
public event FailedEventHandler? FailedChangeAccountSetting; public event FailedEventHandler? FailedChangeAccountSetting;
public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e); public void OnBeforeChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e); public void OnAfterChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e); public void OnSucceedChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e); public void OnFailedChangeAccountSettingEvent(GeneralEventArgs e);
} }
public interface IOpenInventoryEventHandler : IEventHandler public interface IOpenInventoryEventHandler : IEventHandler
@ -238,10 +237,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedOpenInventory; public event SucceedEventHandler? SucceedOpenInventory;
public event FailedEventHandler? FailedOpenInventory; public event FailedEventHandler? FailedOpenInventory;
public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e); public void OnBeforeOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e); public void OnAfterOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e); public void OnSucceedOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e); public void OnFailedOpenInventoryEvent(GeneralEventArgs e);
} }
public interface ISignInEventHandler : IEventHandler public interface ISignInEventHandler : IEventHandler
@ -251,10 +250,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedSignIn; public event SucceedEventHandler? SucceedSignIn;
public event FailedEventHandler? FailedSignIn; public event FailedEventHandler? FailedSignIn;
public EventResult OnBeforeSignInEvent(GeneralEventArgs e); public void OnBeforeSignInEvent(GeneralEventArgs e);
public EventResult OnAfterSignInEvent(GeneralEventArgs e); public void OnAfterSignInEvent(GeneralEventArgs e);
public EventResult OnSucceedSignInEvent(GeneralEventArgs e); public void OnSucceedSignInEvent(GeneralEventArgs e);
public EventResult OnFailedSignInEvent(GeneralEventArgs e); public void OnFailedSignInEvent(GeneralEventArgs e);
} }
public interface IOpenStoreEventHandler : IEventHandler public interface IOpenStoreEventHandler : IEventHandler
@ -264,10 +263,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedOpenStore; public event SucceedEventHandler? SucceedOpenStore;
public event FailedEventHandler? FailedOpenStore; public event FailedEventHandler? FailedOpenStore;
public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e); public void OnBeforeOpenStoreEvent(GeneralEventArgs e);
public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e); public void OnAfterOpenStoreEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e); public void OnSucceedOpenStoreEvent(GeneralEventArgs e);
public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e); public void OnFailedOpenStoreEvent(GeneralEventArgs e);
} }
public interface IBuyItemEventHandler : IEventHandler public interface IBuyItemEventHandler : IEventHandler
@ -277,10 +276,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedBuyItem; public event SucceedEventHandler? SucceedBuyItem;
public event FailedEventHandler? FailedBuyItem; public event FailedEventHandler? FailedBuyItem;
public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e); public void OnBeforeBuyItemEvent(GeneralEventArgs e);
public EventResult OnAfterBuyItemEvent(GeneralEventArgs e); public void OnAfterBuyItemEvent(GeneralEventArgs e);
public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e); public void OnSucceedBuyItemEvent(GeneralEventArgs e);
public EventResult OnFailedBuyItemEvent(GeneralEventArgs e); public void OnFailedBuyItemEvent(GeneralEventArgs e);
} }
public interface IShowRankingEventHandler : IEventHandler public interface IShowRankingEventHandler : IEventHandler
@ -290,10 +289,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedShowRanking; public event SucceedEventHandler? SucceedShowRanking;
public event FailedEventHandler? FailedShowRanking; public event FailedEventHandler? FailedShowRanking;
public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e); public void OnBeforeShowRankingEvent(GeneralEventArgs e);
public EventResult OnAfterShowRankingEvent(GeneralEventArgs e); public void OnAfterShowRankingEvent(GeneralEventArgs e);
public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e); public void OnSucceedShowRankingEvent(GeneralEventArgs e);
public EventResult OnFailedShowRankingEvent(GeneralEventArgs e); public void OnFailedShowRankingEvent(GeneralEventArgs e);
} }
public interface IUseItemEventHandler : IEventHandler public interface IUseItemEventHandler : IEventHandler
@ -303,10 +302,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedUseItem; public event SucceedEventHandler? SucceedUseItem;
public event FailedEventHandler? FailedUseItem; public event FailedEventHandler? FailedUseItem;
public EventResult OnBeforeUseItemEvent(GeneralEventArgs e); public void OnBeforeUseItemEvent(GeneralEventArgs e);
public EventResult OnAfterUseItemEvent(GeneralEventArgs e); public void OnAfterUseItemEvent(GeneralEventArgs e);
public EventResult OnSucceedUseItemEvent(GeneralEventArgs e); public void OnSucceedUseItemEvent(GeneralEventArgs e);
public EventResult OnFailedUseItemEvent(GeneralEventArgs e); public void OnFailedUseItemEvent(GeneralEventArgs e);
} }
public interface IEndGameEventHandler : IEventHandler public interface IEndGameEventHandler : IEventHandler
@ -316,9 +315,9 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedEndGame; public event SucceedEventHandler? SucceedEndGame;
public event FailedEventHandler? FailedEndGame; public event FailedEventHandler? FailedEndGame;
public EventResult OnBeforeEndGameEvent(GeneralEventArgs e); public void OnBeforeEndGameEvent(GeneralEventArgs e);
public EventResult OnAfterEndGameEvent(GeneralEventArgs e); public void OnAfterEndGameEvent(GeneralEventArgs e);
public EventResult OnSucceedEndGameEvent(GeneralEventArgs e); public void OnSucceedEndGameEvent(GeneralEventArgs e);
public EventResult OnFailedEndGameEvent(GeneralEventArgs e); public void OnFailedEndGameEvent(GeneralEventArgs e);
} }
} }

View File

@ -1,5 +1,4 @@
using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Interface namespace Milimoe.FunGame.Core.Interface
{ {
@ -8,169 +7,169 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary> /// </summary>
public interface IConnectEvent public interface IConnectEvent
{ {
public EventResult BeforeConnectEvent(object sender, ConnectEventArgs e); public void BeforeConnectEvent(object sender, ConnectEventArgs e);
public EventResult AfterConnectEvent(object sender, ConnectEventArgs e); public void AfterConnectEvent(object sender, ConnectEventArgs e);
public EventResult SucceedConnectEvent(object sender, ConnectEventArgs e); public void SucceedConnectEvent(object sender, ConnectEventArgs e);
public EventResult FailedConnectEvent(object sender, ConnectEventArgs e); public void FailedConnectEvent(object sender, ConnectEventArgs e);
} }
public interface IDisconnectEvent public interface IDisconnectEvent
{ {
public EventResult BeforeDisconnectEvent(object sender, GeneralEventArgs e); public void BeforeDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult AfterDisconnectEvent(object sender, GeneralEventArgs e); public void AfterDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult SucceedDisconnectEvent(object sender, GeneralEventArgs e); public void SucceedDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult FailedDisconnectEvent(object sender, GeneralEventArgs e); public void FailedDisconnectEvent(object sender, GeneralEventArgs e);
} }
public interface ILoginEvent public interface ILoginEvent
{ {
public EventResult BeforeLoginEvent(object sender, LoginEventArgs e); public void BeforeLoginEvent(object sender, LoginEventArgs e);
public EventResult AfterLoginEvent(object sender, LoginEventArgs e); public void AfterLoginEvent(object sender, LoginEventArgs e);
public EventResult SucceedLoginEvent(object sender, LoginEventArgs e); public void SucceedLoginEvent(object sender, LoginEventArgs e);
public EventResult FailedLoginEvent(object sender, LoginEventArgs e); public void FailedLoginEvent(object sender, LoginEventArgs e);
} }
public interface ILogoutEvent public interface ILogoutEvent
{ {
public EventResult BeforeLogoutEvent(object sender, GeneralEventArgs e); public void BeforeLogoutEvent(object sender, GeneralEventArgs e);
public EventResult AfterLogoutEvent(object sender, GeneralEventArgs e); public void AfterLogoutEvent(object sender, GeneralEventArgs e);
public EventResult SucceedLogoutEvent(object sender, GeneralEventArgs e); public void SucceedLogoutEvent(object sender, GeneralEventArgs e);
public EventResult FailedLogoutEvent(object sender, GeneralEventArgs e); public void FailedLogoutEvent(object sender, GeneralEventArgs e);
} }
public interface IRegEvent public interface IRegEvent
{ {
public EventResult BeforeRegEvent(object sender, RegisterEventArgs e); public void BeforeRegEvent(object sender, RegisterEventArgs e);
public EventResult AfterRegEvent(object sender, RegisterEventArgs e); public void AfterRegEvent(object sender, RegisterEventArgs e);
public EventResult SucceedRegEvent(object sender, RegisterEventArgs e); public void SucceedRegEvent(object sender, RegisterEventArgs e);
public EventResult FailedRegEvent(object sender, RegisterEventArgs e); public void FailedRegEvent(object sender, RegisterEventArgs e);
} }
public interface IIntoRoomEvent public interface IIntoRoomEvent
{ {
public EventResult BeforeIntoRoomEvent(object sender, RoomEventArgs e); public void BeforeIntoRoomEvent(object sender, RoomEventArgs e);
public EventResult AfterIntoRoomEvent(object sender, RoomEventArgs e); public void AfterIntoRoomEvent(object sender, RoomEventArgs e);
public EventResult SucceedIntoRoomEvent(object sender, RoomEventArgs e); public void SucceedIntoRoomEvent(object sender, RoomEventArgs e);
public EventResult FailedIntoRoomEvent(object sender, RoomEventArgs e); public void FailedIntoRoomEvent(object sender, RoomEventArgs e);
} }
public interface ISendTalkEvent public interface ISendTalkEvent
{ {
public EventResult BeforeSendTalkEvent(object sender, SendTalkEventArgs e); public void BeforeSendTalkEvent(object sender, SendTalkEventArgs e);
public EventResult AfterSendTalkEvent(object sender, SendTalkEventArgs e); public void AfterSendTalkEvent(object sender, SendTalkEventArgs e);
public EventResult SucceedSendTalkEvent(object sender, SendTalkEventArgs e); public void SucceedSendTalkEvent(object sender, SendTalkEventArgs e);
public EventResult FailedSendTalkEvent(object sender, SendTalkEventArgs e); public void FailedSendTalkEvent(object sender, SendTalkEventArgs e);
} }
public interface ICreateRoomEvent public interface ICreateRoomEvent
{ {
public EventResult BeforeCreateRoomEvent(object sender, RoomEventArgs e); public void BeforeCreateRoomEvent(object sender, RoomEventArgs e);
public EventResult AfterCreateRoomEvent(object sender, RoomEventArgs e); public void AfterCreateRoomEvent(object sender, RoomEventArgs e);
public EventResult SucceedCreateRoomEvent(object sender, RoomEventArgs e); public void SucceedCreateRoomEvent(object sender, RoomEventArgs e);
public EventResult FailedCreateRoomEvent(object sender, RoomEventArgs e); public void FailedCreateRoomEvent(object sender, RoomEventArgs e);
} }
public interface IQuitRoomEvent public interface IQuitRoomEvent
{ {
public EventResult BeforeQuitRoomEvent(object sender, RoomEventArgs e); public void BeforeQuitRoomEvent(object sender, RoomEventArgs e);
public EventResult AfterQuitRoomEvent(object sender, RoomEventArgs e); public void AfterQuitRoomEvent(object sender, RoomEventArgs e);
public EventResult SucceedQuitRoomEvent(object sender, RoomEventArgs e); public void SucceedQuitRoomEvent(object sender, RoomEventArgs e);
public EventResult FailedQuitRoomEvent(object sender, RoomEventArgs e); public void FailedQuitRoomEvent(object sender, RoomEventArgs e);
} }
public interface IChangeRoomSettingEvent public interface IChangeRoomSettingEvent
{ {
public EventResult BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); public void BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); public void AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public void SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public void FailedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
} }
public interface IStartMatchEvent public interface IStartMatchEvent
{ {
public EventResult BeforeStartMatchEvent(object sender, GeneralEventArgs e); public void BeforeStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult AfterStartMatchEvent(object sender, GeneralEventArgs e); public void AfterStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult SucceedStartMatchEvent(object sender, GeneralEventArgs e); public void SucceedStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult FailedStartMatchEvent(object sender, GeneralEventArgs e); public void FailedStartMatchEvent(object sender, GeneralEventArgs e);
} }
public interface IStartGameEvent public interface IStartGameEvent
{ {
public EventResult BeforeStartGameEvent(object sender, GeneralEventArgs e); public void BeforeStartGameEvent(object sender, GeneralEventArgs e);
public EventResult AfterStartGameEvent(object sender, GeneralEventArgs e); public void AfterStartGameEvent(object sender, GeneralEventArgs e);
public EventResult SucceedStartGameEvent(object sender, GeneralEventArgs e); public void SucceedStartGameEvent(object sender, GeneralEventArgs e);
public EventResult FailedStartGameEvent(object sender, GeneralEventArgs e); public void FailedStartGameEvent(object sender, GeneralEventArgs e);
} }
public interface IChangeProfileEvent public interface IChangeProfileEvent
{ {
public EventResult BeforeChangeProfileEvent(object sender, GeneralEventArgs e); public void BeforeChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeProfileEvent(object sender, GeneralEventArgs e); public void AfterChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeProfileEvent(object sender, GeneralEventArgs e); public void SucceedChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeProfileEvent(object sender, GeneralEventArgs e); public void FailedChangeProfileEvent(object sender, GeneralEventArgs e);
} }
public interface IChangeAccountSettingEvent public interface IChangeAccountSettingEvent
{ {
public EventResult BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); public void BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); public void AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public void SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public void FailedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
} }
public interface IOpenInventoryEvent public interface IOpenInventoryEvent
{ {
public EventResult BeforeOpenInventoryEvent(object sender, GeneralEventArgs e); public void BeforeOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult AfterOpenInventoryEvent(object sender, GeneralEventArgs e); public void AfterOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult SucceedOpenInventoryEvent(object sender, GeneralEventArgs e); public void SucceedOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult FailedOpenInventoryEvent(object sender, GeneralEventArgs e); public void FailedOpenInventoryEvent(object sender, GeneralEventArgs e);
} }
public interface ISignInEvent public interface ISignInEvent
{ {
public EventResult BeforeSignInEvent(object sender, GeneralEventArgs e); public void BeforeSignInEvent(object sender, GeneralEventArgs e);
public EventResult AfterSignInEvent(object sender, GeneralEventArgs e); public void AfterSignInEvent(object sender, GeneralEventArgs e);
public EventResult SucceedSignInEvent(object sender, GeneralEventArgs e); public void SucceedSignInEvent(object sender, GeneralEventArgs e);
public EventResult FailedSignInEvent(object sender, GeneralEventArgs e); public void FailedSignInEvent(object sender, GeneralEventArgs e);
} }
public interface IOpenStoreEvent public interface IOpenStoreEvent
{ {
public EventResult BeforeOpenStoreEvent(object sender, GeneralEventArgs e); public void BeforeOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult AfterOpenStoreEvent(object sender, GeneralEventArgs e); public void AfterOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult SucceedOpenStoreEvent(object sender, GeneralEventArgs e); public void SucceedOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult FailedOpenStoreEvent(object sender, GeneralEventArgs e); public void FailedOpenStoreEvent(object sender, GeneralEventArgs e);
} }
public interface IBuyItemEvent public interface IBuyItemEvent
{ {
public EventResult BeforeBuyItemEvent(object sender, GeneralEventArgs e); public void BeforeBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult AfterBuyItemEvent(object sender, GeneralEventArgs e); public void AfterBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult SucceedBuyItemEvent(object sender, GeneralEventArgs e); public void SucceedBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult FailedBuyItemEvent(object sender, GeneralEventArgs e); public void FailedBuyItemEvent(object sender, GeneralEventArgs e);
} }
public interface IShowRankingEvent public interface IShowRankingEvent
{ {
public EventResult BeforeShowRankingEvent(object sender, GeneralEventArgs e); public void BeforeShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult AfterShowRankingEvent(object sender, GeneralEventArgs e); public void AfterShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedShowRankingEvent(object sender, GeneralEventArgs e); public void SucceedShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult FailedShowRankingEvent(object sender, GeneralEventArgs e); public void FailedShowRankingEvent(object sender, GeneralEventArgs e);
} }
public interface IUseItemEvent public interface IUseItemEvent
{ {
public EventResult BeforeUseItemEvent(object sender, GeneralEventArgs e); public void BeforeUseItemEvent(object sender, GeneralEventArgs e);
public EventResult AfterUseItemEvent(object sender, GeneralEventArgs e); public void AfterUseItemEvent(object sender, GeneralEventArgs e);
public EventResult SucceedUseItemEvent(object sender, GeneralEventArgs e); public void SucceedUseItemEvent(object sender, GeneralEventArgs e);
public EventResult FailedUseItemEvent(object sender, GeneralEventArgs e); public void FailedUseItemEvent(object sender, GeneralEventArgs e);
} }
public interface IEndGameEvent public interface IEndGameEvent
{ {
public EventResult BeforeEndGameEvent(object sender, GeneralEventArgs e); public void BeforeEndGameEvent(object sender, GeneralEventArgs e);
public EventResult AfterEndGameEvent(object sender, GeneralEventArgs e); public void AfterEndGameEvent(object sender, GeneralEventArgs e);
public EventResult SucceedEndGameEvent(object sender, GeneralEventArgs e); public void SucceedEndGameEvent(object sender, GeneralEventArgs e);
public EventResult FailedEndGameEvent(object sender, GeneralEventArgs e); public void FailedEndGameEvent(object sender, GeneralEventArgs e);
} }
} }

View File

@ -3,15 +3,16 @@
public class GeneralEventArgs : EventArgs public class GeneralEventArgs : EventArgs
{ {
public string EventMsg { get; set; } = ""; public string EventMsg { get; set; } = "";
public object[]? Parameters { get; set; } = null; public object[] Parameters { get; set; } = Array.Empty<object>();
public bool Cancel { get; set; } = false;
public GeneralEventArgs(string EventMsg = "", object[]? Parameters = null) public GeneralEventArgs(string EventMsg, object[] Parameters)
{ {
this.EventMsg = EventMsg; this.EventMsg = EventMsg;
this.Parameters = Parameters; this.Parameters = Parameters;
} }
public GeneralEventArgs(params object[]? Parameters) public GeneralEventArgs(params object[] Parameters)
{ {
this.Parameters = Parameters; this.Parameters = Parameters;
} }
@ -19,10 +20,10 @@
public class GeneralEvent<T> public class GeneralEvent<T>
{ {
public T Instance { get; set; } public T? Instance { get; set; }
public GeneralEvent() public GeneralEvent()
{ {
Instance = Activator.CreateInstance<T>(); Instance = (T?)Activator.CreateInstance(typeof(T?));
} }
} }
} }

View File

@ -3,7 +3,7 @@ using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Library.Common.Event namespace Milimoe.FunGame.Core.Library.Common.Event
{ {
public class RoomEventArgs public class RoomEventArgs : GeneralEventArgs
{ {
public string RoomID { get; set; } = ""; public string RoomID { get; set; } = "";
public long RoomMaster { get; set; } = 0; public long RoomMaster { get; set; } = 0;

View File

@ -1,6 +1,6 @@
namespace Milimoe.FunGame.Core.Library.Common.Event namespace Milimoe.FunGame.Core.Library.Common.Event
{ {
public class SendTalkEventArgs public class SendTalkEventArgs : GeneralEventArgs
{ {
public string Message { get; set; } = ""; public string Message { get; set; } = "";

View File

@ -1,13 +1,9 @@
using Milimoe.FunGame.Core.Interface; using Milimoe.FunGame.Core.Interface;
using Milimoe.FunGame.Core.Library.Common.Event; 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 namespace Milimoe.FunGame.Core.Library.Common.Plugin
{ {
public abstract class BasePlugin : IPlugin, IConnectEventHandler, IDisconnectEventHandler, ILoginEventHandler, ILogoutEventHandler, IRegEventHandler, IIntoRoomEventHandler, ISendTalkEventHandler, public abstract class BasePlugin : IPlugin
ICreateRoomEventHandler, IQuitRoomEventHandler, IChangeRoomSettingEventHandler, IStartMatchEventHandler, IStartGameEventHandler, IChangeProfileEventHandler, IChangeAccountSettingEventHandler,
IOpenInventoryEventHandler, ISignInEventHandler, IOpenStoreEventHandler, IBuyItemEventHandler, IShowRankingEventHandler, IUseItemEventHandler, IEndGameEventHandler
{ {
/// <summary> /// <summary>
/// 插件名称 /// 插件名称
@ -37,11 +33,11 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
/// <summary> /// <summary>
/// 加载插件 /// 加载插件
/// </summary> /// </summary>
public void Load() public bool Load()
{ {
if (IsLoaded) if (IsLoaded)
{ {
return; return false;
} }
// BeforeLoad可以阻止加载此插件 // BeforeLoad可以阻止加载此插件
if (BeforeLoad()) if (BeforeLoad())
@ -53,6 +49,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
// 如果加载后需要执行代码请重写AfterLoad方法 // 如果加载后需要执行代码请重写AfterLoad方法
AfterLoad(); AfterLoad();
} }
return IsLoaded;
} }
/// <summary> /// <summary>
@ -77,9 +74,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
/// </summary> /// </summary>
private void BindEvent() private void BindEvent()
{ {
Type type = GetType(); if (this is IConnectEvent)
if (type == typeof(IConnectEvent))
{ {
IConnectEvent bind = (IConnectEvent)this; IConnectEvent bind = (IConnectEvent)this;
BeforeConnect += bind.BeforeConnectEvent; BeforeConnect += bind.BeforeConnectEvent;
@ -88,7 +83,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedConnect += bind.FailedConnectEvent; FailedConnect += bind.FailedConnectEvent;
} }
if (type == typeof(IDisconnectEvent)) if (this is IDisconnectEvent)
{ {
IDisconnectEvent bind = (IDisconnectEvent)this; IDisconnectEvent bind = (IDisconnectEvent)this;
BeforeDisconnect += bind.BeforeDisconnectEvent; BeforeDisconnect += bind.BeforeDisconnectEvent;
@ -97,7 +92,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedDisconnect += bind.FailedDisconnectEvent; FailedDisconnect += bind.FailedDisconnectEvent;
} }
if (type == typeof(ILoginEvent)) if (this is ILoginEvent)
{ {
ILoginEvent bind = (ILoginEvent)this; ILoginEvent bind = (ILoginEvent)this;
BeforeLogin += bind.BeforeLoginEvent; BeforeLogin += bind.BeforeLoginEvent;
@ -106,7 +101,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedLogin += bind.FailedLoginEvent; FailedLogin += bind.FailedLoginEvent;
} }
if (type == typeof(ILogoutEvent)) if (this is ILogoutEvent)
{ {
ILogoutEvent bind = (ILogoutEvent)this; ILogoutEvent bind = (ILogoutEvent)this;
BeforeLogout += bind.BeforeLogoutEvent; BeforeLogout += bind.BeforeLogoutEvent;
@ -115,7 +110,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedLogout += bind.FailedLogoutEvent; FailedLogout += bind.FailedLogoutEvent;
} }
if (type == typeof(IRegEvent)) if (this is IRegEvent)
{ {
IRegEvent bind = (IRegEvent)this; IRegEvent bind = (IRegEvent)this;
BeforeReg += bind.BeforeRegEvent; BeforeReg += bind.BeforeRegEvent;
@ -124,7 +119,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedReg += bind.FailedRegEvent; FailedReg += bind.FailedRegEvent;
} }
if (type == typeof(IIntoRoomEvent)) if (this is IIntoRoomEvent)
{ {
IIntoRoomEvent bind = (IIntoRoomEvent)this; IIntoRoomEvent bind = (IIntoRoomEvent)this;
BeforeIntoRoom += bind.BeforeIntoRoomEvent; BeforeIntoRoom += bind.BeforeIntoRoomEvent;
@ -133,7 +128,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedIntoRoom += bind.FailedIntoRoomEvent; FailedIntoRoom += bind.FailedIntoRoomEvent;
} }
if (type == typeof(ISendTalkEvent)) if (this is ISendTalkEvent)
{ {
ISendTalkEvent bind = (ISendTalkEvent)this; ISendTalkEvent bind = (ISendTalkEvent)this;
BeforeSendTalk += bind.BeforeSendTalkEvent; BeforeSendTalk += bind.BeforeSendTalkEvent;
@ -142,7 +137,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedSendTalk += bind.FailedSendTalkEvent; FailedSendTalk += bind.FailedSendTalkEvent;
} }
if (type == typeof(ICreateRoomEvent)) if (this is ICreateRoomEvent)
{ {
ICreateRoomEvent bind = (ICreateRoomEvent)this; ICreateRoomEvent bind = (ICreateRoomEvent)this;
BeforeCreateRoom += bind.BeforeCreateRoomEvent; BeforeCreateRoom += bind.BeforeCreateRoomEvent;
@ -151,7 +146,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedCreateRoom += bind.FailedCreateRoomEvent; FailedCreateRoom += bind.FailedCreateRoomEvent;
} }
if (type == typeof(IQuitRoomEvent)) if (this is IQuitRoomEvent)
{ {
IQuitRoomEvent bind = (IQuitRoomEvent)this; IQuitRoomEvent bind = (IQuitRoomEvent)this;
BeforeQuitRoom += bind.BeforeQuitRoomEvent; BeforeQuitRoom += bind.BeforeQuitRoomEvent;
@ -160,7 +155,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedQuitRoom += bind.FailedQuitRoomEvent; FailedQuitRoom += bind.FailedQuitRoomEvent;
} }
if (type == typeof(IChangeRoomSettingEvent)) if (this is IChangeRoomSettingEvent)
{ {
IChangeRoomSettingEvent bind = (IChangeRoomSettingEvent)this; IChangeRoomSettingEvent bind = (IChangeRoomSettingEvent)this;
BeforeChangeRoomSetting += bind.BeforeChangeRoomSettingEvent; BeforeChangeRoomSetting += bind.BeforeChangeRoomSettingEvent;
@ -169,7 +164,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedChangeRoomSetting += bind.FailedChangeRoomSettingEvent; FailedChangeRoomSetting += bind.FailedChangeRoomSettingEvent;
} }
if (type == typeof(IStartMatchEvent)) if (this is IStartMatchEvent)
{ {
IStartMatchEvent bind = (IStartMatchEvent)this; IStartMatchEvent bind = (IStartMatchEvent)this;
BeforeStartMatch += bind.BeforeStartMatchEvent; BeforeStartMatch += bind.BeforeStartMatchEvent;
@ -178,7 +173,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedStartMatch += bind.FailedStartMatchEvent; FailedStartMatch += bind.FailedStartMatchEvent;
} }
if (type == typeof(IStartGameEvent)) if (this is IStartGameEvent)
{ {
IStartGameEvent bind = (IStartGameEvent)this; IStartGameEvent bind = (IStartGameEvent)this;
BeforeStartGame += bind.BeforeStartGameEvent; BeforeStartGame += bind.BeforeStartGameEvent;
@ -187,7 +182,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedStartGame += bind.FailedStartGameEvent; FailedStartGame += bind.FailedStartGameEvent;
} }
if (type == typeof(IChangeProfileEvent)) if (this is IChangeProfileEvent)
{ {
IChangeProfileEvent bind = (IChangeProfileEvent)this; IChangeProfileEvent bind = (IChangeProfileEvent)this;
BeforeChangeProfile += bind.BeforeChangeProfileEvent; BeforeChangeProfile += bind.BeforeChangeProfileEvent;
@ -196,7 +191,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedChangeProfile += bind.FailedChangeProfileEvent; FailedChangeProfile += bind.FailedChangeProfileEvent;
} }
if (type == typeof(IChangeAccountSettingEvent)) if (this is IChangeAccountSettingEvent)
{ {
IChangeAccountSettingEvent bind = (IChangeAccountSettingEvent)this; IChangeAccountSettingEvent bind = (IChangeAccountSettingEvent)this;
BeforeChangeAccountSetting += bind.BeforeChangeAccountSettingEvent; BeforeChangeAccountSetting += bind.BeforeChangeAccountSettingEvent;
@ -205,7 +200,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedChangeAccountSetting += bind.FailedChangeAccountSettingEvent; FailedChangeAccountSetting += bind.FailedChangeAccountSettingEvent;
} }
if (type == typeof(IOpenInventoryEvent)) if (this is IOpenInventoryEvent)
{ {
IOpenInventoryEvent bind = (IOpenInventoryEvent)this; IOpenInventoryEvent bind = (IOpenInventoryEvent)this;
BeforeOpenInventory += bind.BeforeOpenInventoryEvent; BeforeOpenInventory += bind.BeforeOpenInventoryEvent;
@ -214,7 +209,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedOpenInventory += bind.FailedOpenInventoryEvent; FailedOpenInventory += bind.FailedOpenInventoryEvent;
} }
if (type == typeof(ISignInEvent)) if (this is ISignInEvent)
{ {
ISignInEvent bind = (ISignInEvent)this; ISignInEvent bind = (ISignInEvent)this;
BeforeSignIn += bind.BeforeSignInEvent; BeforeSignIn += bind.BeforeSignInEvent;
@ -223,7 +218,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedSignIn += bind.FailedSignInEvent; FailedSignIn += bind.FailedSignInEvent;
} }
if (type == typeof(IOpenStoreEvent)) if (this is IOpenStoreEvent)
{ {
IOpenStoreEvent bind = (IOpenStoreEvent)this; IOpenStoreEvent bind = (IOpenStoreEvent)this;
BeforeOpenStore += bind.BeforeOpenStoreEvent; BeforeOpenStore += bind.BeforeOpenStoreEvent;
@ -232,7 +227,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedOpenStore += bind.FailedOpenStoreEvent; FailedOpenStore += bind.FailedOpenStoreEvent;
} }
if (type == typeof(IBuyItemEvent)) if (this is IBuyItemEvent)
{ {
IBuyItemEvent bind = (IBuyItemEvent)this; IBuyItemEvent bind = (IBuyItemEvent)this;
BeforeBuyItem += bind.BeforeBuyItemEvent; BeforeBuyItem += bind.BeforeBuyItemEvent;
@ -241,7 +236,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedBuyItem += bind.FailedBuyItemEvent; FailedBuyItem += bind.FailedBuyItemEvent;
} }
if (type == typeof(IShowRankingEvent)) if (this is IShowRankingEvent)
{ {
IShowRankingEvent bind = (IShowRankingEvent)this; IShowRankingEvent bind = (IShowRankingEvent)this;
BeforeShowRanking += bind.BeforeShowRankingEvent; BeforeShowRanking += bind.BeforeShowRankingEvent;
@ -250,7 +245,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedShowRanking += bind.FailedShowRankingEvent; FailedShowRanking += bind.FailedShowRankingEvent;
} }
if (type == typeof(IUseItemEvent)) if (this is IUseItemEvent)
{ {
IUseItemEvent bind = (IUseItemEvent)this; IUseItemEvent bind = (IUseItemEvent)this;
BeforeUseItem += bind.BeforeUseItemEvent; BeforeUseItem += bind.BeforeUseItemEvent;
@ -259,7 +254,7 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
FailedUseItem += bind.FailedUseItemEvent; FailedUseItem += bind.FailedUseItemEvent;
} }
if (type == typeof(IEndGameEvent)) if (this is IEndGameEvent)
{ {
IEndGameEvent bind = (IEndGameEvent)this; IEndGameEvent bind = (IEndGameEvent)this;
BeforeEndGame += bind.BeforeEndGameEvent; BeforeEndGame += bind.BeforeEndGameEvent;
@ -354,424 +349,424 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
public event IEventHandler.SucceedEventHandler? SucceedEndGame; public event IEventHandler.SucceedEventHandler? SucceedEndGame;
public event IEventHandler.FailedEventHandler? FailedEndGame; 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);
} }
} }
} }

View File

@ -1,6 +1,5 @@
using Milimoe.FunGame.Core.Interface; using Milimoe.FunGame.Core.Interface;
using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Library.Common.Plugin namespace Milimoe.FunGame.Core.Library.Common.Plugin
{ {
@ -18,24 +17,24 @@ namespace Milimoe.FunGame.Core.Library.Common.Plugin
public override string Author => "FunGamer"; 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;
} }
} }
} }

View File

@ -5,32 +5,28 @@ namespace Milimoe.FunGame.Core.Service
{ {
internal class PluginManager internal class PluginManager
{ {
public static Dictionary<string, BasePlugin> LoadPlugin() /// <summary>
/// 从plugins目录加载所有插件
/// </summary>
/// <param name="plugins"></param>
/// <returns></returns>
internal static Dictionary<string, BasePlugin> LoadPlugins(Dictionary<string, BasePlugin> plugins)
{ {
Dictionary<string, BasePlugin> plugins = new(); string[] dlls = Directory.GetFiles("plugins", "*.dll");
string directory = "plugins";
// 获取目录中所有的 DLL 文件路径
string[] dlls = Directory.GetFiles(directory, "*.dll");
foreach (string dll in dlls) foreach (string dll in dlls)
{ {
try // 加载目录下所有的DLL
{ Assembly assembly = Assembly.LoadFrom(dll);
// 加载 DLL
Assembly assembly = Assembly.LoadFrom(dll);
// 遍历 DLL 中的类型 // 遍历DLL中继承了BasePlugin的类型
foreach (Type type in assembly.GetTypes().AsEnumerable().Where(type => type.IsSubclassOf(typeof(BasePlugin)))) foreach (Type type in assembly.GetTypes().AsEnumerable().Where(type => type.IsSubclassOf(typeof(BasePlugin))))
{
BasePlugin instance = Activator.CreateInstance<BasePlugin>();
plugins.Add(instance.Name, instance);
}
}
catch (Exception e)
{ {
Console.WriteLine($"Failed to load DLL: {dll}"); BasePlugin? instance = (BasePlugin?)Activator.CreateInstance(type);
Console.WriteLine($"Error: {e.Message}"); if (instance != null && instance.Load())
{
plugins.TryAdd(instance.Name, instance);
}
} }
} }