mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-23 04:32:50 -04:00
Get rid of pointless code duplication.
This commit is contained in:
parent
71d9e5def1
commit
9d66e40bef
@ -22,9 +22,6 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> Raised whenever a player's online money changes. </summary>
|
||||
public sealed class OnMoneyChangedEvent : IPluginEvent<Economy.OnMoneyChanged> {
|
||||
internal OnMoneyChangedEvent(Economy.OnMoneyChanged method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p));
|
||||
@ -32,10 +29,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> Raised whenever an economic transaction occurs. </summary>
|
||||
public sealed class OnEcoTransactionEvent : IPluginEvent<Economy.OnEcoTransaction> {
|
||||
internal OnEcoTransactionEvent(Economy.OnEcoTransaction method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnEcoTransactionEvent : IPluginEvent<Economy.OnEcoTransaction> {
|
||||
public static void Call(EcoTransaction transaction) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(transaction));
|
||||
|
@ -21,10 +21,6 @@ using System.Collections.Generic;
|
||||
namespace MCGalaxy.Events {
|
||||
|
||||
public sealed class OnGroupLoadedEvent : IPluginEvent<Group.GroupLoaded> {
|
||||
|
||||
internal OnGroupLoadedEvent(Group.GroupLoaded method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Group g) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(g));
|
||||
@ -32,10 +28,6 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
public sealed class OnGroupLoadEvent : IPluginEvent<Group.GroupLoad> {
|
||||
|
||||
internal OnGroupLoadEvent(Group.GroupLoad method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call() {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl());
|
||||
@ -43,10 +35,6 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
public sealed class OnGroupSaveEvent : IPluginEvent<Group.GroupSave> {
|
||||
|
||||
internal OnGroupSaveEvent(Group.GroupSave method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call() {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl());
|
||||
@ -54,10 +42,6 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
public sealed class OnPlayerRankSetEvent : IPluginEvent<Group.RankSet> {
|
||||
|
||||
internal OnPlayerRankSetEvent(Group.RankSet method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, Group newRank) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, newRank));
|
||||
|
@ -23,15 +23,9 @@ namespace MCGalaxy.Events {
|
||||
// This is because the static events are unique to each generic instantiation, not each subclass.
|
||||
public class IPluginEvent<IMethod> {
|
||||
protected internal static List<IPluginEvent<IMethod>> handlers = new List<IPluginEvent<IMethod>>();
|
||||
protected internal Plugin plugin;
|
||||
protected internal IMethod method;
|
||||
protected internal Priority priority;
|
||||
|
||||
internal IPluginEvent(IMethod method, Priority priority, Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
this.priority = priority;
|
||||
this.method = method;
|
||||
}
|
||||
protected Plugin plugin;
|
||||
protected IMethod method;
|
||||
protected Priority priority;
|
||||
|
||||
/// <summary> Register this event </summary>
|
||||
/// <param name="method">This is the delegate that will get called when this event occurs</param>
|
||||
@ -41,8 +35,11 @@ namespace MCGalaxy.Events {
|
||||
public static void Register(IMethod method, Priority priority, Plugin plugin, bool bypass = false) {
|
||||
if (Find(plugin) != null && !bypass)
|
||||
throw new ArgumentException("The user tried to register 2 of the same event!");
|
||||
handlers.Add(new IPluginEvent<IMethod>(method, priority, plugin));
|
||||
Organize();
|
||||
|
||||
IPluginEvent<IMethod> handler = new IPluginEvent<IMethod>();
|
||||
handler.plugin = plugin; handler.method = method; handler.priority = priority;
|
||||
handlers.Add(handler);
|
||||
SortHandlers();
|
||||
}
|
||||
|
||||
/// <summary> UnRegister this event </summary>
|
||||
@ -50,8 +47,8 @@ namespace MCGalaxy.Events {
|
||||
public static void UnRegister(Plugin plugin) {
|
||||
if (Find(plugin) == null)
|
||||
throw new ArgumentException("This plugin doesnt have this event registered!");
|
||||
else
|
||||
handlers.Remove(Find(plugin));
|
||||
|
||||
handlers.Remove(Find(plugin));
|
||||
}
|
||||
|
||||
public static IPluginEvent<IMethod> Find(Plugin plugin) {
|
||||
@ -62,7 +59,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
|
||||
protected static void Organize() {
|
||||
protected static void SortHandlers() {
|
||||
handlers.Sort((a, b) => b.priority.CompareTo(a.priority));
|
||||
}
|
||||
|
||||
|
@ -20,40 +20,28 @@ using MCGalaxy.Blocks.Physics;
|
||||
|
||||
namespace MCGalaxy.Events {
|
||||
|
||||
public sealed class OnLevelLoadedEvent : IPluginEvent<Level.OnLevelLoaded> {
|
||||
internal OnLevelLoadedEvent(Level.OnLevelLoaded method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnLevelLoadedEvent : IPluginEvent<Level.OnLevelLoaded> {
|
||||
public static void Call(Level l) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(l));
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class OnLevelLoadEvent : IPluginEvent<Level.OnLevelLoad> {
|
||||
internal OnLevelLoadEvent(Level.OnLevelLoad method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnLevelLoadEvent : IPluginEvent<Level.OnLevelLoad> {
|
||||
public static void Call(string name) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(name));
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class OnLevelSaveEvent : IPluginEvent<Level.OnLevelSave> {
|
||||
internal OnLevelSaveEvent(Level.OnLevelSave method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnLevelSaveEvent : IPluginEvent<Level.OnLevelSave> {
|
||||
public static void Call(Level l) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(l));
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class OnLevelUnloadEvent : IPluginEvent<Level.OnLevelUnload> {
|
||||
internal OnLevelUnloadEvent(Level.OnLevelUnload method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnLevelUnloadEvent : IPluginEvent<Level.OnLevelUnload> {
|
||||
public static void Call(Level l) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(l));
|
||||
@ -61,10 +49,6 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
public sealed class OnPhysicsUpdateEvent : IPluginEvent<Level.OnPhysicsUpdate> {
|
||||
|
||||
internal OnPhysicsUpdateEvent(Level.OnPhysicsUpdate method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(ushort x, ushort y, ushort z, PhysicsArgs extraInfo, Level l) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(x, y, z, extraInfo, l));
|
||||
|
@ -126,9 +126,6 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> Raised when a moderation action occurs. </summary>
|
||||
public sealed class OnModActionEvent : IPluginEvent<OnModAction> {
|
||||
internal OnModActionEvent(OnModAction method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(ModAction e) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(e));
|
||||
|
@ -21,10 +21,7 @@ using System.Collections.Generic;
|
||||
namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> This event is called whenever a player chats on the server </summary>
|
||||
public sealed class OnPlayerChatEvent : IPluginEvent<Player.OnPlayerChat> {
|
||||
internal OnPlayerChatEvent(Player.OnPlayerChat method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerChatEvent : IPluginEvent<Player.OnPlayerChat> {
|
||||
public static void Call(Player p, string message) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, message));
|
||||
@ -33,9 +30,6 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> This event is called whenever a player moves </summary>
|
||||
public sealed class OnPlayerMoveEvent : IPluginEvent<Player.OnPlayerMove> {
|
||||
internal OnPlayerMoveEvent(Player.OnPlayerMove method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, Position next, byte yaw, byte pitch) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, next, yaw, pitch));
|
||||
@ -44,9 +38,6 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> This event is called whenever the player goes AFK </summary>
|
||||
public sealed class OnPlayerAFKEvent: IPluginEvent<Player.OnAFK > {
|
||||
internal OnPlayerAFKEvent(Player.OnAFK method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p));
|
||||
@ -55,9 +46,6 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> This event is called whenever the server saves data to MySQL or SQLite </summary>
|
||||
public sealed class OnMySQLSaveEvent : IPluginEvent<Player.OnMySQLSave> {
|
||||
internal OnMySQLSaveEvent(Player.OnMySQLSave method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, string mysqlcommand) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, mysqlcommand));
|
||||
@ -65,10 +53,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player uses a command </summary>
|
||||
public sealed class OnPlayerCommandEvent : IPluginEvent<Player.OnPlayerCommand> {
|
||||
internal OnPlayerCommandEvent(Player.OnPlayerCommand method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerCommandEvent : IPluginEvent<Player.OnPlayerCommand> {
|
||||
public static void Call(string cmd, Player p, string message) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(cmd, p, message));
|
||||
@ -76,10 +61,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player connects to the server </summary>
|
||||
public sealed class OnPlayerConnectEvent: IPluginEvent<Player.OnPlayerConnect> {
|
||||
internal OnPlayerConnectEvent(Player.OnPlayerConnect method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerConnectEvent: IPluginEvent<Player.OnPlayerConnect> {
|
||||
public static void Call(Player p) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p));
|
||||
@ -87,10 +69,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player tries connecting to the server </summary>
|
||||
public sealed class OnPlayerConnectingEvent: IPluginEvent<Player.OnPlayerConnecting> {
|
||||
internal OnPlayerConnectingEvent(Player.OnPlayerConnecting method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerConnectingEvent: IPluginEvent<Player.OnPlayerConnecting> {
|
||||
public static void Call(Player p, string mppass) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, mppass));
|
||||
@ -98,10 +77,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player dies in-game </summary>
|
||||
public sealed class OnPlayerDeathEvent : IPluginEvent<Player.OnPlayerDeath> {
|
||||
internal OnPlayerDeathEvent(Player.OnPlayerDeath method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerDeathEvent : IPluginEvent<Player.OnPlayerDeath> {
|
||||
public static void Call(Player p, ExtBlock block) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, block));
|
||||
@ -109,10 +85,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player connects to the server </summary>
|
||||
public sealed class OnPlayerDisconnectEvent : IPluginEvent<Player.OnPlayerDisconnect> {
|
||||
internal OnPlayerDisconnectEvent(Player.OnPlayerDisconnect method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnPlayerDisconnectEvent : IPluginEvent<Player.OnPlayerDisconnect> {
|
||||
public static void Call(Player p, string reason) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, reason));
|
||||
@ -120,10 +93,7 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player places or deletes a block </summary>
|
||||
public sealed class OnBlockChangeEvent : IPluginEvent<Player.BlockchangeEventHandler> {
|
||||
internal OnBlockChangeEvent(Player.BlockchangeEventHandler method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnBlockChangeEvent : IPluginEvent<Player.BlockchangeEventHandler> {
|
||||
public static void Call(Player p, ushort x, ushort y, ushort z, ExtBlock block) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, x, y, z, block));
|
||||
@ -131,13 +101,9 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
/// <summary> This event is called whenever a player clicks their mouse </summary>
|
||||
public sealed class OnPlayerClickEvent : IPluginEvent<Player.PlayerClickHandler>
|
||||
{
|
||||
internal OnPlayerClickEvent(Player.PlayerClickHandler method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, MouseButton button, MouseAction action, ushort yaw, ushort pitch, byte entity, ushort x, ushort y, ushort z, TargetBlockFace face)
|
||||
{
|
||||
public sealed class OnPlayerClickEvent : IPluginEvent<Player.PlayerClickHandler> {
|
||||
public static void Call(Player p, MouseButton button, MouseAction action,
|
||||
ushort yaw, ushort pitch, byte entity, ushort x, ushort y, ushort z, TargetBlockFace face) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, button, action, yaw,
|
||||
pitch, entity, x, y, z, face));
|
||||
@ -146,21 +112,14 @@ namespace MCGalaxy.Events {
|
||||
|
||||
/// <summary> This event is called whenever a player recieves a message from the server or from another player </summary>
|
||||
public sealed class OnMessageRecieveEvent : IPluginEvent<Player.OnPlayerMessageReceived> {
|
||||
internal OnMessageRecieveEvent(Player.OnPlayerMessageReceived method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, string message) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, message));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary> This event is called when a player has joined a level. </summary>
|
||||
public sealed class OnJoinedLevelEvent : IPluginEvent<Player.JoinedLevel> {
|
||||
internal OnJoinedLevelEvent(Player.JoinedLevel method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(Player p, Level prevLevl, Level level) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(p, prevLevl, level));
|
||||
|
@ -20,20 +20,14 @@ using System.Collections.Generic;
|
||||
|
||||
namespace MCGalaxy.Events {
|
||||
|
||||
public sealed class OnConsoleCommandEvent : IPluginEvent<Server.OnConsoleCommand> {
|
||||
internal OnConsoleCommandEvent(Server.OnConsoleCommand method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnConsoleCommandEvent : IPluginEvent<Server.OnConsoleCommand> {
|
||||
public static void Call(string cmd, string message) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(cmd, message));
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class OnServerErrorEvent : IPluginEvent<Server.OnServerError> {
|
||||
internal OnServerErrorEvent(Server.OnServerError method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public sealed class OnServerErrorEvent : IPluginEvent<Server.OnServerError> {
|
||||
public static void Call(Exception ex) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(ex));
|
||||
@ -41,9 +35,6 @@ namespace MCGalaxy.Events {
|
||||
}
|
||||
|
||||
public sealed class OnServerLogEvent : IPluginEvent<Server.OnServerLog> {
|
||||
internal OnServerLogEvent(Server.OnServerLog method, Priority priority, Plugin plugin)
|
||||
: base(method, priority, plugin) { }
|
||||
|
||||
public static void Call(string message) {
|
||||
if (handlers.Count == 0) return;
|
||||
CallImpl(pl => pl(message));
|
||||
|
Loading…
x
Reference in New Issue
Block a user