From 2a9d283a886dce4d3c6f5ac04cb5854496a8d7fa Mon Sep 17 00:00:00 2001 From: Iaccidentally Date: Fri, 28 Jun 2013 14:22:18 -0400 Subject: [API] A basic example of a custom event, more to come. --- .../api/events/UserToggleGodmodeEvent.java | 52 ++++++++++++++++++++++ .../earth2me/essentials/commands/Commandgod.java | 7 ++- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/api/events/UserToggleGodmodeEvent.java diff --git a/Essentials/src/com/earth2me/essentials/api/events/UserToggleGodmodeEvent.java b/Essentials/src/com/earth2me/essentials/api/events/UserToggleGodmodeEvent.java new file mode 100644 index 000000000..79f858fd4 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/api/events/UserToggleGodmodeEvent.java @@ -0,0 +1,52 @@ +package com.earth2me.essentials.api.events; + +import com.earth2me.essentials.User; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + + +public class UserToggleGodmodeEvent extends Event implements Cancellable +{ + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private User user; + private boolean enabled; + + /** + * Thrown when a user's god mode is toggled. + * + * @param user - the user whose god mode is toggled. + * @param enabled - true if god mode was enabled, false if disabled. + */ + public UserToggleGodmodeEvent (User user, boolean enabled) + { + enabled = this.enabled; + user = this.user; + this.cancelled = false; + } + + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public boolean isCancelled() + { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) + { + this.cancelled = cancelled; + } + +} diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgod.java b/Essentials/src/com/earth2me/essentials/commands/Commandgod.java index 8566e47d6..8da670ca8 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgod.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgod.java @@ -2,6 +2,7 @@ package com.earth2me.essentials.commands; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.User; +import com.earth2me.essentials.api.events.UserToggleGodmodeEvent; import org.bukkit.Server; import org.bukkit.command.CommandSender; @@ -35,7 +36,7 @@ public class Commandgod extends EssentialsToggleCommand } } else if (args.length == 2 && user.isAuthorized(othersPermission)) - { + { toggleOtherPlayers(server, user, args); } else @@ -51,8 +52,10 @@ public class Commandgod extends EssentialsToggleCommand { enabled = !user.isGodModeEnabled(); } - + user.setGodModeEnabled(enabled); + UserToggleGodmodeEvent event = new UserToggleGodmodeEvent(user, enabled); + ess.getServer().getPluginManager().callEvent(event); if (enabled && user.getHealth() != 0) { -- cgit v1.2.3