Ensure gameLoop function gets selectors applied.

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2017-05-26 16:43:56 +10:00
parent 0fc0496730
commit 691c25561d
3 changed files with 61 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
package org.bukkit.craftbukkit.command;
import net.minecraft.server.IChatBaseComponent;
import net.minecraft.server.ICommandListener;
import org.bukkit.craftbukkit.util.CraftChatMessage;
public class CraftFunctionCommandSender extends ServerCommandSender {
private final ICommandListener handle;
public CraftFunctionCommandSender(ICommandListener handle) {
this.handle = handle;
}
@Override
public void sendMessage(String message) {
for (IChatBaseComponent component : CraftChatMessage.fromString(message)) {
handle.sendMessage(component);
}
}
@Override
public void sendMessage(String[] messages) {
for (String message : messages) {
sendMessage(message);
}
}
@Override
public String getName() {
return handle.getName();
}
@Override
public boolean isOp() {
return true;
}
@Override
public void setOp(boolean value) {
throw new UnsupportedOperationException("Cannot change operator status of server function sender");
}
public ICommandListener getHandle() {
return handle;
}
}

View File

@@ -158,6 +158,9 @@ public final class VanillaCommandWrapper extends Command {
if (sender instanceof ProxiedCommandSender) {
return ((ProxiedNativeCommandSender) sender).getHandle();
}
if (sender instanceof CraftFunctionCommandSender) {
return ((CraftFunctionCommandSender) sender).getHandle();
}
throw new IllegalArgumentException("Cannot make " + sender + " a vanilla command listener");
}