Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 20:40:07 +01:00
SPIGOT-3373: Fix /execute in gameloop functions
Dieser Commit ist enthalten in:
Ursprung
753a8e700d
Commit
258575110f
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
public class CommandExecute extends CommandAbstract {
|
public class CommandExecute extends CommandAbstract {
|
||||||
|
|
||||||
@@ -59,26 +63,59 @@
|
@@ -59,26 +63,61 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
String s = a(astring, b0);
|
String s = a(astring, b0);
|
||||||
@ -31,6 +31,8 @@
|
|||||||
+ sender = minecraftserver.remoteConsole;
|
+ sender = minecraftserver.remoteConsole;
|
||||||
+ } else if (listener instanceof CommandBlockListenerAbstract) {
|
+ } else if (listener instanceof CommandBlockListenerAbstract) {
|
||||||
+ sender = ((CommandBlockListenerAbstract) listener).sender;
|
+ sender = ((CommandBlockListenerAbstract) listener).sender;
|
||||||
|
+ } else if (listener instanceof CustomFunctionData.CustomFunctionListener) {
|
||||||
|
+ sender = ((CustomFunctionData.CustomFunctionListener) listener).sender;
|
||||||
+ } else if (listener instanceof CommandListenerWrapper) {
|
+ } else if (listener instanceof CommandListenerWrapper) {
|
||||||
+ listener = ((CommandListenerWrapper) listener).base; // Search deeper
|
+ listener = ((CommandListenerWrapper) listener).base; // Search deeper
|
||||||
+ } else if (VanillaCommandWrapper.lastSender != null) {
|
+ } else if (VanillaCommandWrapper.lastSender != null) {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
public void a(CustomFunctionData customfunctiondata, ICommandListener icommandlistener, ArrayDeque<CustomFunctionData.a> arraydeque, int i) {
|
public void a(CustomFunctionData customfunctiondata, ICommandListener icommandlistener, ArrayDeque<CustomFunctionData.a> arraydeque, int i) {
|
||||||
- customfunctiondata.a().a(icommandlistener, this.a);
|
- customfunctiondata.a().a(icommandlistener, this.a);
|
||||||
+ CommandBlockListenerAbstract.executeSafely(icommandlistener, new org.bukkit.craftbukkit.command.CraftFunctionCommandSender(icommandlistener), this.a); // CraftBukkit
|
+ CommandBlockListenerAbstract.executeSafely(icommandlistener, ((CustomFunctionData.CustomFunctionListener) icommandlistener).sender, this.a); // CraftBukkit
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
--- a/net/minecraft/server/CustomFunctionData.java
|
--- a/net/minecraft/server/CustomFunctionData.java
|
||||||
+++ b/net/minecraft/server/CustomFunctionData.java
|
+++ b/net/minecraft/server/CustomFunctionData.java
|
||||||
@@ -33,7 +33,7 @@
|
@@ -23,7 +23,14 @@
|
||||||
|
private CustomFunction f;
|
||||||
|
private final ArrayDeque<CustomFunctionData.a> g = new ArrayDeque();
|
||||||
|
private boolean h = false;
|
||||||
|
- private final ICommandListener i = new ICommandListener() {
|
||||||
|
+ // CraftBukkit start
|
||||||
|
+ private final ICommandListener i = new CustomFunctionListener();
|
||||||
|
+
|
||||||
|
+ public class CustomFunctionListener implements ICommandListener {
|
||||||
|
+
|
||||||
|
+ protected org.bukkit.command.CommandSender sender = new org.bukkit.craftbukkit.command.CraftFunctionCommandSender(this);
|
||||||
|
+ // CraftBukkit end
|
||||||
|
+
|
||||||
|
public String getName() {
|
||||||
|
return CustomFunctionData.this.e;
|
||||||
|
}
|
||||||
|
@@ -33,7 +40,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public World getWorld() {
|
public World getWorld() {
|
||||||
@ -9,7 +25,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MinecraftServer C_() {
|
public MinecraftServer C_() {
|
||||||
@@ -57,7 +57,7 @@
|
@@ -57,7 +64,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public int c() {
|
public int c() {
|
||||||
@ -18,7 +34,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Map<MinecraftKey, CustomFunction> d() {
|
public Map<MinecraftKey, CustomFunction> d() {
|
||||||
@@ -65,7 +65,7 @@
|
@@ -65,7 +72,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void e() {
|
public void e() {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren