--- a/net/minecraft/server/CustomFunction.java +++ b/net/minecraft/server/CustomFunction.java @@ -45,7 +45,7 @@ } try { - ParseResults parseresults = customfunctiondata.a().getCommandDispatcher().a().parse(s, customfunctiondata.f()); + ParseResults parseresults = customfunctiondata.d().parse(s, customfunctiondata.f()); // CraftBukkit if (parseresults.getReader().canRead()) { if (parseresults.getExceptions().size() == 1) { @@ -142,7 +142,14 @@ } public void a(CustomFunctionData customfunctiondata, CommandListenerWrapper commandlistenerwrapper, ArrayDeque arraydeque, int i) throws CommandSyntaxException { - customfunctiondata.d().execute(new ParseResults(this.a.getContext().withSource(commandlistenerwrapper), this.a.getReader(), this.a.getExceptions())); + // CraftBukkit start + org.bukkit.craftbukkit.command.VanillaCommandWrapper.WorldRescueContext rescue = new org.bukkit.craftbukkit.command.VanillaCommandWrapper.WorldRescueContext().start(commandlistenerwrapper.getWorld()); + try { + customfunctiondata.d().execute(new ParseResults(this.a.getContext().withSource(commandlistenerwrapper), this.a.getReader(), this.a.getExceptions())); + } finally { + rescue.end(); + } + // CraftBukkit end } public String toString() {