summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/TileEntityCommand.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java48
3 files changed, 51 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/TileEntityCommand.java b/src/main/java/net/minecraft/server/TileEntityCommand.java
index 9967524d..43e03e5e 100644
--- a/src/main/java/net/minecraft/server/TileEntityCommand.java
+++ b/src/main/java/net/minecraft/server/TileEntityCommand.java
@@ -9,7 +9,7 @@ import com.google.common.base.Joiner;
public class TileEntityCommand extends TileEntity implements ICommandListener {
private int a = 0;
- private String b = "";
+ public String b = ""; // CraftBukkit - private -> public
private String c = "@";
// CraftBukkit start
private final org.bukkit.command.BlockCommandSender sender;
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
index 90dae627..ecd08eb6 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -261,6 +261,8 @@ public class CraftBlock implements Block {
return new CraftBrewingStand(this);
case SKULL:
return new CraftSkull(this);
+ case COMMAND:
+ return new CraftCommandBlock(this);
default:
return new CraftBlockState(this);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java
new file mode 100644
index 00000000..4572438d
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCommandBlock.java
@@ -0,0 +1,48 @@
+package org.bukkit.craftbukkit.block;
+
+import net.minecraft.server.TileEntityCommand;
+import org.bukkit.block.Block;
+import org.bukkit.block.CommandBlock;
+import org.bukkit.craftbukkit.CraftWorld;
+
+public class CraftCommandBlock extends CraftBlockState implements CommandBlock {
+ private final TileEntityCommand commandBlock;
+ private String command;
+ private String name;
+
+ public CraftCommandBlock(Block block) {
+ super(block);
+
+ CraftWorld world = (CraftWorld) block.getWorld();
+ commandBlock = (TileEntityCommand) world.getTileEntityAt(getX(), getY(), getZ());
+ command = commandBlock.b;
+ name = commandBlock.getName();
+ }
+
+ public String getCommand() {
+ return command;
+ }
+
+ public void setCommand(String command) {
+ this.command = command != null ? command : "";
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name != null ? name : "@";
+ }
+
+ public boolean update(boolean forced) {
+ boolean result = super.update(forced);
+
+ if (result) {
+ commandBlock.b(command);
+ commandBlock.c(name);
+ }
+
+ return result;
+ }
+}