--- a/net/minecraft/server/rcon/thread/RconClient.java
+++ b/net/minecraft/server/rcon/thread/RconClient.java
@@ -23,11 +_,14 @@
     private final Socket client;
     private final byte[] buf = new byte[1460];
     private final String rconPassword;
-    private final ServerInterface serverInterface;
+    // CraftBukkit start
+    private final net.minecraft.server.dedicated.DedicatedServer serverInterface;
+    private final net.minecraft.server.rcon.RconConsoleSource rconConsoleSource;
+    // CraftBukkit end
 
     RconClient(ServerInterface serverInterface, String rconPassword, Socket client) {
         super("RCON Client " + client.getInetAddress());
-        this.serverInterface = serverInterface;
+        this.serverInterface = (net.minecraft.server.dedicated.DedicatedServer) serverInterface; // CraftBukkit
         this.client = client;
 
         try {
@@ -37,6 +_,7 @@
         }
 
         this.rconPassword = rconPassword;
+        this.rconConsoleSource = new net.minecraft.server.rcon.RconConsoleSource(this.serverInterface, client.getRemoteSocketAddress()); // CraftBukkit
     }
 
     @Override
@@ -67,7 +_,7 @@
                                 String string1 = PktUtils.stringFromByteArray(this.buf, i1, i);
 
                                 try {
-                                    this.sendCmdResponse(i3, this.serverInterface.runCommand(string1));
+                                    this.sendCmdResponse(i3, this.serverInterface.runCommand(this.rconConsoleSource, string1)); // CraftBukkit
                                 } catch (Exception var15) {
                                     this.sendCmdResponse(i3, "Error executing: " + string1 + " (" + var15.getMessage() + ")");
                                 }
