summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/minecraft/server/ItemInWorldManager.java20
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java15
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftInventoryPlayer.java9
3 files changed, 30 insertions, 14 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java
index 6b285e1b..011ace1b 100644
--- a/src/main/java/net/minecraft/server/ItemInWorldManager.java
+++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java
@@ -3,15 +3,17 @@ package net.minecraft.server;
public class ItemInWorldManager {
- private World b;
- public EntityPlayer a;
- private float c;
- private float d;
- private int e;
- private float f;
- private int g;
- private int h;
- private int i;
+ private World b; //currWorld
+ public EntityPlayer a; //currPlayer
+ private float c; // not used?
+ //Craftbukkit start
+ public float d; // blockDamage (0 up to 1) //Craftbukkit - Made public to get damage
+ //Craftbukkit stop
+ private int e; // funny counter
+ private float f; // blockHits
+ private int g; //posX
+ private int h; //posY
+ private int i; //posZ
public ItemInWorldManager(World world) {
d = 0.0F;
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 355dc77e..87df11b4 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -233,6 +233,13 @@ public class NetServerHandler extends NetHandler
e.a.b(new Packet13PlayerLookMove(d1, d2 + 1.6200000047683716D, d2, d3, f1, f2, false));
}
+ // CraftBukkit start
+ // Get position of last block hit for BlockDamageLevel.STOPPED
+ private int lastX;
+ private int lastY;
+ private int lastZ;
+ // Craftbukkit stop
+
public void a(Packet14BlockDig packet14blockdig) {
if (packet14blockdig.e == 4) {
e.L();
@@ -296,6 +303,9 @@ public class NetServerHandler extends NetHandler
}
}
} else if (packet14blockdig.e == 2) {
+ // Get last block that the player hit
+ // Otherwise the block is a Bedrock @(0,0,0)
+ block = (CraftBlock) player.getWorld().getBlockAt(lastX, lastY, lastZ);
BlockDamagedEvent event = new BlockDamagedEvent(Type.BLOCK_DAMAGED, block, BlockDamageLevel.STOPPED, player);
server.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
@@ -326,8 +336,11 @@ public class NetServerHandler extends NetHandler
e.a.b(new Packet53BlockChange(l, i1, j1, d.e));
}
}
+ lastX = l;
+ lastY = i1;
+ lastZ = j1;
// Craftbukkit stop
-
+
d.e.B = false;
}
// Craftbukkit start - store the last block right clicked and what type it was
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftInventoryPlayer.java
index 576661e2..b49d6d97 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftInventoryPlayer.java
@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit;
+import java.util.ArrayList;
import net.minecraft.server.InventoryPlayer;
import org.bukkit.ItemStack;
@@ -14,15 +15,15 @@ public class CraftInventoryPlayer extends CraftInventory implements PlayerInvent
return (InventoryPlayer) inventory;
}
- public CraftItemStack[] getArmorContents() {
+ public ArrayList<ItemStack> getArmorContents() {
net.minecraft.server.ItemStack[] mcItems = getInventory().getArmorContents();
- CraftItemStack[] items = new CraftItemStack[mcItems.length];
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
for (int i = 0; i < mcItems.length; i++ ) {
- items[i] = new CraftItemStack(mcItems[i]);
+ ret.add(new CraftItemStack(mcItems[i]));
}
- return items;
+ return ret;
}
public int getSize() {