summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2017-05-26 16:43:56 +1000
committermd_5 <git@md-5.net>2017-05-26 16:43:56 +1000
commita479029a85221fa6ce31742aee1abbcc1f998289 (patch)
treee0fbeb22225ab1d024c60283f5160dab0815bc71 /src/main
parentc7920f4302bce2042aa9c5d1d121e488cb88f7f0 (diff)
downloadcraftbukkit-a479029a85221fa6ce31742aee1abbcc1f998289.tar
craftbukkit-a479029a85221fa6ce31742aee1abbcc1f998289.tar.gz
craftbukkit-a479029a85221fa6ce31742aee1abbcc1f998289.tar.lz
craftbukkit-a479029a85221fa6ce31742aee1abbcc1f998289.tar.xz
craftbukkit-a479029a85221fa6ce31742aee1abbcc1f998289.zip
Ensure gameLoop function gets selectors applied.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/command/CraftFunctionCommandSender.java47
-rw-r--r--src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java3
2 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftFunctionCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftFunctionCommandSender.java
new file mode 100644
index 00000000..6bb69bb4
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/command/CraftFunctionCommandSender.java
@@ -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;
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
index 14115fb5..03d29fe8 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -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");
}