FunGame-Core/Api/Utility/PluginLoader.cs
milimoe 082ce3b6f5
添加插件加载器和事件触发方法组 (#54)
* Add PluginLoader

* 删除event返回值

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

* 删除冗余方法

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

* 删除无用引用
2023-09-24 13:06:10 +08:00

696 lines
18 KiB
C#

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);
});
}
}
}