diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java index fcd0fce48..fdeba4a10 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java @@ -6,6 +6,8 @@ import org.bukkit.Server; import static com.earth2me.essentials.I18n.tl; +import net.ess3.api.events.VanishStatusChangeEvent; + public class Commandvanish extends EssentialsToggleCommand { public Commandvanish() { @@ -28,6 +30,13 @@ public class Commandvanish extends EssentialsToggleCommand { enabled = !user.isVanished(); } + final User controller = sender.isPlayer() ? ess.getUser(sender.getPlayer()) : null; + VanishStatusChangeEvent vanishEvent = new VanishStatusChangeEvent(controller, user, enabled); + ess.getServer().getPluginManager().callEvent(vanishEvent); + if (vanishEvent.isCancelled()) { + return; + } + user.setVanished(enabled); user.sendMessage(tl("vanish", user.getDisplayName(), enabled ? tl("enabled") : tl("disabled"))); @@ -38,4 +47,4 @@ public class Commandvanish extends EssentialsToggleCommand { sender.sendMessage(tl("vanish", user.getDisplayName(), enabled ? tl("enabled") : tl("disabled"))); } } -} \ No newline at end of file +} diff --git a/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java b/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java new file mode 100644 index 000000000..3bb6ca2ca --- /dev/null +++ b/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java @@ -0,0 +1,12 @@ +package net.ess3.api.events; + +import net.ess3.api.IUser; + +/** + * Called only in Commandvanish. For other events please use classes such as PlayerJoinEvent and eventually {@link IUser#isVanished()}. + */ +public class VanishStatusChangeEvent extends StatusChangeEvent { + public VanishStatusChangeEvent(IUser affected, IUser controller, boolean value) { + super(affected, controller, value); + } +}