--- a/net/minecraft/server/CommandGamerule.java
+++ b/net/minecraft/server/CommandGamerule.java
@@ -21,7 +21,7 @@
     }
 
     public void execute(MinecraftServer minecraftserver, ICommandListener icommandlistener, String[] astring) throws CommandException {
-        GameRules gamerules = this.a(minecraftserver);
+        GameRules gamerules = icommandlistener.getWorld().getGameRules(); // CraftBukkit - Use current world
         String s = astring.length > 0 ? astring[0] : "";
         String s1 = astring.length > 1 ? a(astring, 1) : "";
 
@@ -86,4 +86,11 @@
     private GameRules a(MinecraftServer minecraftserver) {
         return minecraftserver.getWorldServer(0).getGameRules();
     }
+
+    // CraftBukkit start - fix decompile error
+    @Override
+    public int compareTo(ICommand o) {
+        return a((ICommand) o);
+    }
+    // CraftBukkit end
 }