summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/BlockPressurePlateBinary.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/BlockPressurePlateBinary.java')
-rw-r--r--src/main/java/net/minecraft/server/BlockPressurePlateBinary.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/BlockPressurePlateBinary.java b/src/main/java/net/minecraft/server/BlockPressurePlateBinary.java
new file mode 100644
index 00000000..ba7b6605
--- /dev/null
+++ b/src/main/java/net/minecraft/server/BlockPressurePlateBinary.java
@@ -0,0 +1,71 @@
+package net.minecraft.server;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.bukkit.event.entity.EntityInteractEvent; // CraftBukkit
+
+public class BlockPressurePlateBinary extends BlockPressurePlateAbstract {
+
+ private EnumMobType a;
+
+ protected BlockPressurePlateBinary(int i, String s, Material material, EnumMobType enummobtype) {
+ super(i, s, material);
+ this.a = enummobtype;
+ }
+
+ protected int d(int i) {
+ return i > 0 ? 1 : 0;
+ }
+
+ protected int c(int i) {
+ return i == 1 ? 15 : 0;
+ }
+
+ protected int e(World world, int i, int j, int k) {
+ List list = null;
+
+ if (this.a == EnumMobType.EVERYTHING) {
+ list = world.getEntities((Entity) null, this.a(i, j, k));
+ }
+
+ if (this.a == EnumMobType.MOBS) {
+ list = world.a(EntityLiving.class, this.a(i, j, k));
+ }
+
+ if (this.a == EnumMobType.PLAYERS) {
+ list = world.a(EntityHuman.class, this.a(i, j, k));
+ }
+
+ if (!list.isEmpty()) {
+ Iterator iterator = list.iterator();
+
+ while (iterator.hasNext()) {
+ Entity entity = (Entity) iterator.next();
+
+ // CraftBukkit start
+ org.bukkit.World bworld = world.getWorld();
+ org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager();
+ org.bukkit.event.Cancellable cancellable;
+
+ if (entity instanceof EntityHuman) {
+ cancellable = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent((EntityHuman) entity, org.bukkit.event.block.Action.PHYSICAL, i, j, k, -1, null);
+ } else {
+ cancellable = new EntityInteractEvent(entity.getBukkitEntity(), bworld.getBlockAt(i, j, k));
+ manager.callEvent((EntityInteractEvent) cancellable);
+ }
+
+ if (cancellable.isCancelled()) {
+ return 0;
+ }
+ // CraftBukkit end
+
+ if (!entity.at()) {
+ return 15;
+ }
+ }
+ }
+
+ return 0;
+ }
+}