Adjusted CraftBukkit to work with the entity event convenience patch in Bukkit. Addresses BUKKIT-809
Dieser Commit ist enthalten in:
Ursprung
dcf016822d
Commit
92dfb2500b
@ -1,10 +1,6 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.craftbukkit.entity.CraftEntity;
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||
import org.bukkit.event.entity.CreeperPowerEvent;
|
||||
// CraftBukkit end
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent; // CraftBukkit
|
||||
|
||||
public class EntityCreeper extends EntityMonster {
|
||||
|
||||
@ -115,7 +111,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
// CraftBukkit start
|
||||
float radius = this.isPowered() ? 6.0F : 3.0F;
|
||||
|
||||
ExplosionPrimeEvent event = new ExplosionPrimeEvent(CraftEntity.getEntity(this.world.getServer(), this), radius, false);
|
||||
ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), radius, false);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
@ -152,10 +148,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
super.a(entityweatherlighting);
|
||||
|
||||
// CraftBukkit start
|
||||
CreeperPowerEvent event = new CreeperPowerEvent(this.getBukkitEntity(), entityweatherlighting.getBukkitEntity(), CreeperPowerEvent.PowerCause.LIGHTNING);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callCreeperPowerEvent(this, entityweatherlighting, org.bukkit.event.entity.CreeperPowerEvent.PowerCause.LIGHTNING).isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@ public class EntityEnderDragon extends EntityComplex {
|
||||
byte b0 = 4;
|
||||
|
||||
// CraftBukkit start - Replace any "this.world" in the following with just "world"!
|
||||
EntityCreatePortalEvent event = new EntityCreatePortalEvent(this.getBukkitEntity(), new ArrayList<BlockState>(), PortalType.ENDER);
|
||||
EntityCreatePortalEvent event = new EntityCreatePortalEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), new ArrayList<BlockState>(), PortalType.ENDER);
|
||||
BlockStateListPopulator world = new BlockStateListPopulator(this.world.getWorld(), event.getBlocks());
|
||||
|
||||
for (int l = k - 1; l <= k + 32; ++l) {
|
||||
|
@ -6,7 +6,6 @@ import java.util.List;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public class EntityEnderman extends EntityMonster {
|
||||
@ -107,10 +106,7 @@ public class EntityEnderman extends EntityMonster {
|
||||
l = this.world.getTypeId(i, j, k);
|
||||
if (b[l]) {
|
||||
// CraftBukkit start - pickup event
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent(this.getBukkitEntity(), this.world.getWorld().getBlockAt(i, j, k), org.bukkit.Material.AIR);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
if (!CraftEventFactory.callEntityChangeBlockEvent(this, this.world.getWorld().getBlockAt(i, j, k), org.bukkit.Material.AIR).isCancelled()) {
|
||||
this.setCarriedId(this.world.getTypeId(i, j, k));
|
||||
this.setCarriedData(this.world.getData(i, j, k));
|
||||
this.world.setTypeId(i, j, k, 0);
|
||||
@ -129,10 +125,7 @@ public class EntityEnderman extends EntityMonster {
|
||||
// CraftBukkit start - place event
|
||||
org.bukkit.block.Block bblock = this.world.getWorld().getBlockAt(i, j, k);
|
||||
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent(this.getBukkitEntity(), bblock, bblock.getType());
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
if (!CraftEventFactory.callEntityChangeBlockEvent(this, bblock, bblock.getType()).isCancelled()) {
|
||||
this.world.setTypeIdAndData(i, j, k, this.getCarriedId(), this.getCarriedData());
|
||||
this.setCarriedId(0);
|
||||
}
|
||||
|
@ -1,10 +1,5 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||
import org.bukkit.event.entity.PigZapEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public class EntityPig extends EntityAnimal {
|
||||
|
||||
public EntityPig(World world) {
|
||||
@ -76,17 +71,14 @@ public class EntityPig extends EntityAnimal {
|
||||
EntityPigZombie entitypigzombie = new EntityPigZombie(this.world);
|
||||
|
||||
// CraftBukkit start
|
||||
PigZapEvent event = new PigZapEvent(this.getBukkitEntity(), entityweatherlighting.getBukkitEntity(), entitypigzombie.getBukkitEntity());
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callPigZapEvent(this, entityweatherlighting, entitypigzombie).isCancelled()) {
|
||||
return;
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
entitypigzombie.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
|
||||
// CraftBukkit - added a reason for spawning this creature
|
||||
this.world.addEntity(entitypigzombie, SpawnReason.LIGHTNING);
|
||||
this.world.addEntity(entitypigzombie, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING);
|
||||
this.die();
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import java.util.Random;
|
||||
// CraftBukkit start
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.entity.Sheep;
|
||||
// CraftBukkit end
|
||||
|
||||
public class EntitySheep extends EntityAnimal {
|
||||
@ -79,13 +79,7 @@ public class EntitySheep extends EntityAnimal {
|
||||
|
||||
if (this.world.getTypeId(i, j, k) == Block.LONG_GRASS.id) {
|
||||
// CraftBukkit start
|
||||
org.bukkit.World bworld = this.world.getWorld();
|
||||
org.bukkit.block.Block bblock = bworld.getBlockAt(i, j, k);
|
||||
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent(this.getBukkitEntity(), bblock, Material.AIR);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
if (!CraftEventFactory.callEntityChangeBlockEvent(this.getBukkitEntity(), this.world.getWorld().getBlockAt(i, j, k), Material.AIR).isCancelled()) {
|
||||
this.world.f(2001, i, j, k, Block.LONG_GRASS.id + 256);
|
||||
this.world.setTypeId(i, j, k, 0);
|
||||
flag = true;
|
||||
@ -93,13 +87,7 @@ public class EntitySheep extends EntityAnimal {
|
||||
// CraftBukkit end
|
||||
} else if (this.world.getTypeId(i, j - 1, k) == Block.GRASS.id) {
|
||||
// CraftBukkit start
|
||||
org.bukkit.World bworld = this.world.getWorld();
|
||||
org.bukkit.block.Block bblock = bworld.getBlockAt(i, j - 1, k);
|
||||
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent(this.getBukkitEntity(), bblock, Material.DIRT);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
if (!CraftEventFactory.callEntityChangeBlockEvent(this.getBukkitEntity(), this.world.getWorld().getBlockAt(i, j - 1, k), Material.DIRT).isCancelled()) {
|
||||
this.world.f(2001, i, j - 1, k, Block.GRASS.id);
|
||||
this.world.setTypeId(i, j - 1, k, Block.DIRT.id);
|
||||
flag = true;
|
||||
@ -110,7 +98,7 @@ public class EntitySheep extends EntityAnimal {
|
||||
if (flag) {
|
||||
// CraftBukkit start
|
||||
if (!this.isBaby()) {
|
||||
org.bukkit.event.entity.SheepRegrowWoolEvent event = new org.bukkit.event.entity.SheepRegrowWoolEvent(this.getBukkitEntity());
|
||||
org.bukkit.event.entity.SheepRegrowWoolEvent event = new org.bukkit.event.entity.SheepRegrowWoolEvent((Sheep) this.getBukkitEntity());
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
|
@ -1,5 +1,7 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import org.bukkit.entity.Slime;
|
||||
|
||||
public class EntitySlime extends EntityLiving implements IMonster {
|
||||
|
||||
public float a;
|
||||
@ -139,7 +141,7 @@ public class EntitySlime extends EntityLiving implements IMonster {
|
||||
int j = 2 + this.random.nextInt(3);
|
||||
|
||||
// CraftBukkit start
|
||||
org.bukkit.event.entity.SlimeSplitEvent event = new org.bukkit.event.entity.SlimeSplitEvent(this.getBukkitEntity(), j);
|
||||
org.bukkit.event.entity.SlimeSplitEvent event = new org.bukkit.event.entity.SlimeSplitEvent((Slime) this.getBukkitEntity(), j);
|
||||
this.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled() && event.getCount() > 0) {
|
||||
|
@ -1,9 +1,6 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
// CraftBukkit end
|
||||
import org.bukkit.event.entity.EntityDamageEvent; // CraftBukkit
|
||||
|
||||
public class FoodMetaData {
|
||||
|
||||
@ -36,8 +33,7 @@ public class FoodMetaData {
|
||||
this.saturationLevel = Math.max(this.saturationLevel - 1.0F, 0.0F);
|
||||
} else if (i > 0) {
|
||||
// CraftBukkit start
|
||||
FoodLevelChangeEvent event = new FoodLevelChangeEvent(entityhuman.getBukkitEntity(), Math.max(this.foodLevel - 1, 0));
|
||||
entityhuman.world.getServer().getPluginManager().callEvent(event);
|
||||
org.bukkit.event.entity.FoodLevelChangeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callFoodLevelChangeEvent(entityhuman, Math.min(this.foodLevel - 1, 0));
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
this.foodLevel = event.getFoodLevel();
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import org.bukkit.entity.Player; // CraftBukkit
|
||||
import org.bukkit.entity.Sheep;
|
||||
|
||||
public class ItemDye extends Item {
|
||||
|
||||
@ -115,7 +116,7 @@ public class ItemDye extends Item {
|
||||
if (!entitysheep.isSheared() && entitysheep.getColor() != i) {
|
||||
// CraftBukkit start
|
||||
byte bColor = new Integer(i).byteValue();
|
||||
org.bukkit.event.entity.SheepDyeWoolEvent event = new org.bukkit.event.entity.SheepDyeWoolEvent(entitysheep.getBukkitEntity(), org.bukkit.DyeColor.getByData(bColor));
|
||||
org.bukkit.event.entity.SheepDyeWoolEvent event = new org.bukkit.event.entity.SheepDyeWoolEvent((Sheep) entitysheep.getBukkitEntity(), org.bukkit.DyeColor.getByData(bColor));
|
||||
entitysheep.world.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
|
@ -1,7 +1,5 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent; // CraftBukkit
|
||||
|
||||
public class ItemFood extends Item {
|
||||
|
||||
public final int a;
|
||||
@ -31,8 +29,7 @@ public class ItemFood extends Item {
|
||||
// CraftBukkit start
|
||||
int oldFoodLevel = entityhuman.getFoodData().foodLevel;
|
||||
|
||||
FoodLevelChangeEvent event = new FoodLevelChangeEvent(entityhuman.getBukkitEntity(), Math.min(this.getNutrition() + entityhuman.getFoodData().foodLevel, 20));
|
||||
entityhuman.world.getServer().getPluginManager().callEvent(event);
|
||||
org.bukkit.event.entity.FoodLevelChangeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callFoodLevelChangeEvent(entityhuman, Math.min(this.getNutrition() + oldFoodLevel, 20));
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
entityhuman.getFoodData().eat(event.getFoodLevel() - oldFoodLevel, this.getSaturationModifier());
|
||||
|
@ -19,7 +19,7 @@ public class CraftCreeper extends CraftMonster implements Creeper {
|
||||
|
||||
public void setPowered(boolean powered) {
|
||||
CraftServer server = this.server;
|
||||
org.bukkit.entity.Entity entity = this.getHandle().getBukkitEntity();
|
||||
Creeper entity = (Creeper) this.getHandle().getBukkitEntity();
|
||||
|
||||
if (powered) {
|
||||
CreeperPowerEvent event = new CreeperPowerEvent(entity, CreeperPowerEvent.PowerCause.SET_ON);
|
||||
|
@ -35,7 +35,11 @@ import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.AnimalTamer;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.LightningStrike;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Pig;
|
||||
import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.ThrownPotion;
|
||||
@ -215,7 +219,7 @@ public class CraftEventFactory {
|
||||
org.bukkit.entity.AnimalTamer bukkitTamer = (tamer != null ? (AnimalTamer) tamer.getBukkitEntity() : null);
|
||||
CraftServer craftServer = (CraftServer) bukkitEntity.getServer();
|
||||
|
||||
EntityTameEvent event = new EntityTameEvent(bukkitEntity, bukkitTamer);
|
||||
EntityTameEvent event = new EntityTameEvent((LivingEntity) bukkitEntity, bukkitTamer);
|
||||
craftServer.getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
@ -224,7 +228,7 @@ public class CraftEventFactory {
|
||||
* ItemSpawnEvent
|
||||
*/
|
||||
public static ItemSpawnEvent callItemSpawnEvent(EntityItem entityitem) {
|
||||
org.bukkit.entity.Entity entity = entityitem.getBukkitEntity();
|
||||
org.bukkit.entity.Item entity = (org.bukkit.entity.Item) entityitem.getBukkitEntity();
|
||||
CraftServer craftServer = (CraftServer) entity.getServer();
|
||||
|
||||
ItemSpawnEvent event = new ItemSpawnEvent(entity, entity.getLocation());
|
||||
@ -237,7 +241,7 @@ public class CraftEventFactory {
|
||||
* ItemDespawnEvent
|
||||
*/
|
||||
public static ItemDespawnEvent callItemDespawnEvent(EntityItem entityitem) {
|
||||
org.bukkit.entity.Entity entity = entityitem.getBukkitEntity();
|
||||
org.bukkit.entity.Item entity = (org.bukkit.entity.Item) entityitem.getBukkitEntity();
|
||||
|
||||
ItemDespawnEvent event = new ItemDespawnEvent(entity, entity.getLocation());
|
||||
|
||||
@ -350,7 +354,7 @@ public class CraftEventFactory {
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
return target.damageEntity(damagesource, damage);
|
||||
return target.damageEntity(damagesource, event.getDamage());
|
||||
}
|
||||
} else {
|
||||
// Other entities have their events (if any) handled in damageEntity
|
||||
@ -373,4 +377,34 @@ public class CraftEventFactory {
|
||||
state.update(true);
|
||||
}
|
||||
}
|
||||
|
||||
public static FoodLevelChangeEvent callFoodLevelChangeEvent(EntityHuman entity, int level) {
|
||||
FoodLevelChangeEvent event = new FoodLevelChangeEvent((Player) entity.getBukkitEntity(), level);
|
||||
entity.getBukkitEntity().getServer().getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
public static EntityChangeBlockEvent callEntityChangeBlockEvent(org.bukkit.entity.Entity entity, Block block, Material material) {
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent((LivingEntity) entity, block, material);
|
||||
entity.getServer().getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
public static PigZapEvent callPigZapEvent(Entity pig, Entity lightning, Entity pigzombie) {
|
||||
PigZapEvent event = new PigZapEvent((Pig) pig.getBukkitEntity(), (LightningStrike) lightning.getBukkitEntity(), (PigZombie) pigzombie.getBukkitEntity());
|
||||
pig.getBukkitEntity().getServer().getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
public static EntityChangeBlockEvent callEntityChangeBlockEvent(Entity entity, Block block, Material material) {
|
||||
EntityChangeBlockEvent event = new EntityChangeBlockEvent((LivingEntity) entity.getBukkitEntity(), block, material);
|
||||
entity.getBukkitEntity().getServer().getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
public static CreeperPowerEvent callCreeperPowerEvent(Entity creeper, Entity lightning, CreeperPowerEvent.PowerCause cause) {
|
||||
CreeperPowerEvent event = new CreeperPowerEvent((Creeper) creeper.getBukkitEntity(), (LightningStrike) lightning.getBukkitEntity(), cause);
|
||||
creeper.getBukkitEntity().getServer().getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren