From 4207eeffe027b6231b3f4fd416fcf33a55a1c28e Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Mon, 15 Dec 2014 14:14:59 +0000 Subject: SPIGOT-212: Modify the vanilla change gamemode method to call our version --- nms-patches/CommandGamemode.patch | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 nms-patches/CommandGamemode.patch (limited to 'nms-patches/CommandGamemode.patch') diff --git a/nms-patches/CommandGamemode.patch b/nms-patches/CommandGamemode.patch new file mode 100644 index 00000000..3f4dd212 --- /dev/null +++ b/nms-patches/CommandGamemode.patch @@ -0,0 +1,38 @@ +--- ../work/decompile-8eb82bde/net/minecraft/server/CommandGamemode.java 2014-12-15 14:13:23.910966159 +0000 ++++ src/main/java/net/minecraft/server/CommandGamemode.java 2014-12-15 14:13:23.910966159 +0000 +@@ -18,7 +18,7 @@ + return "commands.gamemode.usage"; + } + +- public void execute(ICommandListener icommandlistener, String[] astring) { ++ public void execute(ICommandListener icommandlistener, String[] astring) throws ExceptionUsage { // CraftBukkit - added throws + if (astring.length <= 0) { + throw new ExceptionUsage("commands.gamemode.usage", new Object[0]); + } else { +@@ -26,6 +26,14 @@ + EntityPlayer entityplayer = astring.length >= 2 ? a(icommandlistener, astring[1]) : b(icommandlistener); + + entityplayer.a(enumgamemode); ++ ++ // CraftBukkit start - handle event cancelling the change ++ if (entityplayer.playerInteractManager.getGameMode() != enumgamemode) { ++ icommandlistener.sendMessage(new ChatComponentText("Failed to set the gamemode of '" + entityplayer.getName() + "'")); ++ return; ++ } ++ // CraftBukkit end ++ + entityplayer.fallDistance = 0.0F; + if (icommandlistener.getWorld().getGameRules().getBoolean("sendCommandFeedback")) { + entityplayer.sendMessage(new ChatMessage("gameMode.changed", new Object[0])); +@@ -57,4 +65,11 @@ + public boolean isListStart(String[] astring, int i) { + return i == 1; + } ++ ++ // CraftBukkit start - fix decompiler error ++ @Override ++ public int compareTo(Object o) { ++ return a((ICommand) o); ++ } ++ // CraftBukkit end + } -- cgit v1.2.3