Remap CraftBukkit to Mojang+Yarn Mappings

By: Initial Source <noreply+automated@papermc.io>
This commit is contained in:
CraftBukkit/Spigot
2024-12-11 22:26:55 +01:00
parent a265d64138
commit 30e4583dbe
1780 changed files with 44628 additions and 41274 deletions

View File

@@ -1,8 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.projectile.EntityArrow;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.Items;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
@@ -14,7 +13,7 @@ import org.bukkit.projectiles.ProjectileSource;
public class CraftAbstractArrow extends AbstractProjectile implements AbstractArrow {
public CraftAbstractArrow(CraftServer server, EntityArrow entity) {
public CraftAbstractArrow(CraftServer server, net.minecraft.world.entity.projectile.AbstractArrow entity) {
super(server, entity);
}
@@ -29,76 +28,76 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
@Override
public double getDamage() {
return getHandle().getBaseDamage();
return this.getHandle().getBaseDamage();
}
@Override
public void setDamage(double damage) {
Preconditions.checkArgument(damage >= 0, "Damage value (%s) must be positive", damage);
getHandle().setBaseDamage(damage);
this.getHandle().setBaseDamage(damage);
}
@Override
public int getPierceLevel() {
return getHandle().getPierceLevel();
return this.getHandle().getPierceLevel();
}
@Override
public void setPierceLevel(int pierceLevel) {
Preconditions.checkArgument(0 <= pierceLevel && pierceLevel <= Byte.MAX_VALUE, "Pierce level (%s) out of range, expected 0 < level < 127", pierceLevel);
getHandle().setPierceLevel((byte) pierceLevel);
this.getHandle().setPierceLevel((byte) pierceLevel);
}
@Override
public boolean isCritical() {
return getHandle().isCritArrow();
return this.getHandle().isCritArrow();
}
@Override
public void setCritical(boolean critical) {
getHandle().setCritArrow(critical);
this.getHandle().setCritArrow(critical);
}
@Override
public ProjectileSource getShooter() {
return getHandle().projectileSource;
return this.getHandle().projectileSource;
}
@Override
public void setShooter(ProjectileSource shooter) {
if (shooter instanceof Entity) {
getHandle().setOwner(((CraftEntity) shooter).getHandle());
this.getHandle().setOwner(((CraftEntity) shooter).getHandle());
} else {
getHandle().setOwner(null);
this.getHandle().setOwner(null);
}
getHandle().projectileSource = shooter;
this.getHandle().projectileSource = shooter;
}
@Override
public boolean isInBlock() {
return getHandle().isInGround();
return this.getHandle().isInGround();
}
@Override
public Block getAttachedBlock() {
if (!isInBlock()) {
if (!this.isInBlock()) {
return null;
}
BlockPosition pos = getHandle().blockPosition();
return getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
BlockPos pos = this.getHandle().blockPosition();
return this.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
}
@Override
public PickupStatus getPickupStatus() {
return PickupStatus.values()[getHandle().pickup.ordinal()];
return PickupStatus.values()[this.getHandle().pickup.ordinal()];
}
@Override
public void setPickupStatus(PickupStatus status) {
Preconditions.checkArgument(status != null, "PickupStatus cannot be null");
getHandle().pickup = EntityArrow.PickupStatus.byOrdinal(status.ordinal());
this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal());
}
@Override
@@ -106,12 +105,12 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
super.setTicksLived(value);
// Second field for EntityArrow
getHandle().life = value;
this.getHandle().life = value;
}
@Override
public boolean isShotFromCrossbow() {
net.minecraft.world.item.ItemStack firedFromWeapon = getHandle().getWeaponItem();
net.minecraft.world.item.ItemStack firedFromWeapon = this.getHandle().getWeaponItem();
return firedFromWeapon != null && firedFromWeapon.is(Items.CROSSBOW);
}
@@ -122,31 +121,31 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
@Override
public ItemStack getItem() {
return CraftItemStack.asBukkitCopy(getHandle().pickupItemStack);
return CraftItemStack.asBukkitCopy(this.getHandle().pickupItemStack);
}
@Override
public void setItem(ItemStack item) {
Preconditions.checkArgument(item != null, "ItemStack cannot be null");
getHandle().pickupItemStack = CraftItemStack.asNMSCopy(item);
this.getHandle().pickupItemStack = CraftItemStack.asNMSCopy(item);
}
@Override
public ItemStack getWeapon() {
return CraftItemStack.asBukkitCopy(getHandle().getWeaponItem());
return CraftItemStack.asBukkitCopy(this.getHandle().getWeaponItem());
}
@Override
public void setWeapon(ItemStack item) {
Preconditions.checkArgument(item != null, "ItemStack cannot be null");
getHandle().firedFromWeapon = CraftItemStack.asNMSCopy(item);
this.getHandle().firedFromWeapon = CraftItemStack.asNMSCopy(item);
}
@Override
public EntityArrow getHandle() {
return (EntityArrow) entity;
public net.minecraft.world.entity.projectile.AbstractArrow getHandle() {
return (net.minecraft.world.entity.projectile.AbstractArrow) this.entity;
}
@Override

View File

@@ -2,8 +2,7 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.UUID;
import net.minecraft.world.entity.ai.attributes.GenericAttributes;
import net.minecraft.world.entity.animal.horse.EntityHorseAbstract;
import net.minecraft.world.entity.ai.attributes.Attributes;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventoryAbstractHorse;
import org.bukkit.entity.AbstractHorse;
@@ -13,13 +12,13 @@ import org.bukkit.inventory.AbstractHorseInventory;
public abstract class CraftAbstractHorse extends CraftAnimals implements AbstractHorse {
public CraftAbstractHorse(CraftServer server, EntityHorseAbstract entity) {
public CraftAbstractHorse(CraftServer server, net.minecraft.world.entity.animal.horse.AbstractHorse entity) {
super(server, entity);
}
@Override
public EntityHorseAbstract getHandle() {
return (EntityHorseAbstract) entity;
public net.minecraft.world.entity.animal.horse.AbstractHorse getHandle() {
return (net.minecraft.world.entity.animal.horse.AbstractHorse) this.entity;
}
@Override
@@ -29,85 +28,85 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
@Override
public int getDomestication() {
return getHandle().getTemper();
return this.getHandle().getTemper();
}
@Override
public void setDomestication(int value) {
Preconditions.checkArgument(value >= 0 && value <= this.getMaxDomestication(), "Domestication level (%s) need to be between %s and %s (max domestication)", value, 0, this.getMaxDomestication());
getHandle().setTemper(value);
this.getHandle().setTemper(value);
}
@Override
public int getMaxDomestication() {
return getHandle().getMaxTemper();
return this.getHandle().getMaxTemper();
}
@Override
public void setMaxDomestication(int value) {
Preconditions.checkArgument(value > 0, "Max domestication (%s) cannot be zero or less", value);
getHandle().maxDomestication = value;
this.getHandle().maxDomestication = value;
}
@Override
public double getJumpStrength() {
return getHandle().getAttributeValue(GenericAttributes.JUMP_STRENGTH);
return this.getHandle().getAttributeValue(Attributes.JUMP_STRENGTH);
}
@Override
public void setJumpStrength(double strength) {
Preconditions.checkArgument(strength >= 0, "Jump strength (%s) cannot be less than zero", strength);
getHandle().getAttribute(GenericAttributes.JUMP_STRENGTH).setBaseValue(strength);
this.getHandle().getAttribute(Attributes.JUMP_STRENGTH).setBaseValue(strength);
}
@Override
public boolean isTamed() {
return getHandle().isTamed();
return this.getHandle().isTamed();
}
@Override
public void setTamed(boolean tamed) {
getHandle().setTamed(tamed);
this.getHandle().setTamed(tamed);
}
@Override
public AnimalTamer getOwner() {
if (getOwnerUUID() == null) return null;
return getServer().getOfflinePlayer(getOwnerUUID());
if (this.getOwnerUUID() == null) return null;
return this.getServer().getOfflinePlayer(this.getOwnerUUID());
}
@Override
public void setOwner(AnimalTamer owner) {
if (owner != null) {
setTamed(true);
getHandle().setTarget(null, null, false);
setOwnerUUID(owner.getUniqueId());
this.setTamed(true);
this.getHandle().setTarget(null, null, false);
this.setOwnerUUID(owner.getUniqueId());
} else {
setTamed(false);
setOwnerUUID(null);
this.setTamed(false);
this.setOwnerUUID(null);
}
}
public UUID getOwnerUUID() {
return getHandle().getOwnerUUID();
return this.getHandle().getOwnerUUID();
}
public void setOwnerUUID(UUID uuid) {
getHandle().setOwnerUUID(uuid);
this.getHandle().setOwnerUUID(uuid);
}
@Override
public boolean isEatingHaystack() {
return getHandle().isEating();
return this.getHandle().isEating();
}
@Override
public void setEatingHaystack(boolean eatingHaystack) {
getHandle().setEating(eatingHaystack);
this.getHandle().setEating(eatingHaystack);
}
@Override
public AbstractHorseInventory getInventory() {
return new CraftInventoryAbstractHorse(getHandle().inventory);
return new CraftInventoryAbstractHorse(this.getHandle().inventory);
}
}

View File

@@ -1,13 +1,12 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntitySkeletonAbstract;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.AbstractSkeleton;
import org.bukkit.entity.Skeleton;
public abstract class CraftAbstractSkeleton extends CraftMonster implements AbstractSkeleton {
public CraftAbstractSkeleton(CraftServer server, EntitySkeletonAbstract entity) {
public CraftAbstractSkeleton(CraftServer server, net.minecraft.world.entity.monster.AbstractSkeleton entity) {
super(server, entity);
}

View File

@@ -1,8 +1,7 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.npc.EntityVillager;
import net.minecraft.world.entity.npc.EntityVillagerAbstract;
import net.minecraft.world.item.trading.IMerchant;
import net.minecraft.world.entity.npc.Villager;
import net.minecraft.world.item.trading.Merchant;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventory;
import org.bukkit.craftbukkit.inventory.CraftMerchant;
@@ -12,18 +11,18 @@ import org.bukkit.inventory.InventoryHolder;
public class CraftAbstractVillager extends CraftAgeable implements CraftMerchant, AbstractVillager, InventoryHolder {
public CraftAbstractVillager(CraftServer server, EntityVillagerAbstract entity) {
public CraftAbstractVillager(CraftServer server, net.minecraft.world.entity.npc.AbstractVillager entity) {
super(server, entity);
}
@Override
public EntityVillagerAbstract getHandle() {
return (EntityVillager) entity;
public net.minecraft.world.entity.npc.AbstractVillager getHandle() {
return (Villager) this.entity;
}
@Override
public IMerchant getMerchant() {
return getHandle();
public Merchant getMerchant() {
return this.getHandle();
}
@Override
@@ -33,6 +32,6 @@ public class CraftAbstractVillager extends CraftAgeable implements CraftMerchant
@Override
public Inventory getInventory() {
return new CraftInventory(getHandle().getInventory());
return new CraftInventory(this.getHandle().getInventory());
}
}

View File

@@ -1,71 +1,71 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityAgeable;
import net.minecraft.world.entity.AgeableMob;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Ageable;
public class CraftAgeable extends CraftCreature implements Ageable {
public CraftAgeable(CraftServer server, EntityAgeable entity) {
public CraftAgeable(CraftServer server, AgeableMob entity) {
super(server, entity);
}
@Override
public int getAge() {
return getHandle().getAge();
return this.getHandle().getAge();
}
@Override
public void setAge(int age) {
getHandle().setAge(age);
this.getHandle().setAge(age);
}
@Override
public void setAgeLock(boolean lock) {
getHandle().ageLocked = lock;
this.getHandle().ageLocked = lock;
}
@Override
public boolean getAgeLock() {
return getHandle().ageLocked;
return this.getHandle().ageLocked;
}
@Override
public void setBaby() {
if (isAdult()) {
setAge(-24000);
if (this.isAdult()) {
this.setAge(-24000);
}
}
@Override
public void setAdult() {
if (!isAdult()) {
setAge(0);
if (!this.isAdult()) {
this.setAge(0);
}
}
@Override
public boolean isAdult() {
return getAge() >= 0;
return this.getAge() >= 0;
}
@Override
public boolean canBreed() {
return getAge() == 0;
return this.getAge() == 0;
}
@Override
public void setBreed(boolean breed) {
if (breed) {
setAge(0);
} else if (isAdult()) {
setAge(6000);
this.setAge(0);
} else if (this.isAdult()) {
this.setAge(6000);
}
}
@Override
public EntityAgeable getHandle() {
return (EntityAgeable) entity;
public AgeableMob getHandle() {
return (AgeableMob) this.entity;
}
@Override

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.animal.allay.Allay;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -18,7 +18,7 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay
@Override
public Allay getHandle() {
return (Allay) entity;
return (Allay) this.entity;
}
@Override
@@ -28,67 +28,67 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay
@Override
public Inventory getInventory() {
return new CraftInventory(getHandle().getInventory());
return new CraftInventory(this.getHandle().getInventory());
}
@Override
public boolean canDuplicate() {
return getHandle().canDuplicate();
return this.getHandle().canDuplicate();
}
@Override
public void setCanDuplicate(boolean canDuplicate) {
getHandle().setCanDuplicate(canDuplicate);
this.getHandle().setCanDuplicate(canDuplicate);
}
@Override
public long getDuplicationCooldown() {
return getHandle().duplicationCooldown;
return this.getHandle().duplicationCooldown;
}
@Override
public void setDuplicationCooldown(long l) {
getHandle().duplicationCooldown = l;
this.getHandle().duplicationCooldown = l;
}
@Override
public void resetDuplicationCooldown() {
getHandle().resetDuplicationCooldown();
this.getHandle().resetDuplicationCooldown();
}
@Override
public boolean isDancing() {
return getHandle().isDancing();
return this.getHandle().isDancing();
}
@Override
public void startDancing(Location location) {
Preconditions.checkArgument(location != null, "Location cannot be null");
Preconditions.checkArgument(location.getBlock().getType().equals(Material.JUKEBOX), "The Block in the Location need to be a JukeBox");
getHandle().setJukeboxPlaying(CraftLocation.toBlockPosition(location), true);
this.getHandle().setJukeboxPlaying(CraftLocation.toBlockPosition(location), true);
}
@Override
public void startDancing() {
getHandle().forceDancing = true;
getHandle().setDancing(true);
this.getHandle().forceDancing = true;
this.getHandle().setDancing(true);
}
@Override
public void stopDancing() {
getHandle().forceDancing = false;
getHandle().jukeboxPos = null;
getHandle().setJukeboxPlaying(null, false);
this.getHandle().forceDancing = false;
this.getHandle().jukeboxPos = null;
this.getHandle().setJukeboxPlaying(null, false);
}
@Override
public org.bukkit.entity.Allay duplicateAllay() {
Allay nmsAllay = getHandle().duplicateAllay();
Allay nmsAllay = this.getHandle().duplicateAllay();
return (nmsAllay != null) ? (org.bukkit.entity.Allay) nmsAllay.getBukkitEntity() : null;
}
public Location getJukebox() {
BlockPosition nmsJukeboxPos = getHandle().jukeboxPos;
return (nmsJukeboxPos != null) ? CraftLocation.toBukkit(nmsJukeboxPos, getWorld()) : null;
BlockPos nmsJukeboxPos = this.getHandle().jukeboxPos;
return (nmsJukeboxPos != null) ? CraftLocation.toBukkit(nmsJukeboxPos, this.getWorld()) : null;
}
}

View File

@@ -1,17 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.ambient.EntityAmbient;
import net.minecraft.world.entity.ambient.AmbientCreature;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Ambient;
public class CraftAmbient extends CraftMob implements Ambient {
public CraftAmbient(CraftServer server, EntityAmbient entity) {
public CraftAmbient(CraftServer server, AmbientCreature entity) {
super(server, entity);
}
@Override
public EntityAmbient getHandle() {
return (EntityAmbient) entity;
public AmbientCreature getHandle() {
return (AmbientCreature) this.entity;
}
@Override

View File

@@ -2,7 +2,7 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.UUID;
import net.minecraft.world.entity.animal.EntityAnimal;
import net.minecraft.world.entity.animal.Animal;
import org.bukkit.Material;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
@@ -11,13 +11,13 @@ import org.bukkit.inventory.ItemStack;
public class CraftAnimals extends CraftAgeable implements Animals {
public CraftAnimals(CraftServer server, EntityAnimal entity) {
public CraftAnimals(CraftServer server, Animal entity) {
super(server, entity);
}
@Override
public EntityAnimal getHandle() {
return (EntityAnimal) entity;
public Animal getHandle() {
return (Animal) this.entity;
}
@Override
@@ -27,37 +27,37 @@ public class CraftAnimals extends CraftAgeable implements Animals {
@Override
public UUID getBreedCause() {
return getHandle().loveCause;
return this.getHandle().loveCause;
}
@Override
public void setBreedCause(UUID uuid) {
getHandle().loveCause = uuid;
this.getHandle().loveCause = uuid;
}
@Override
public boolean isLoveMode() {
return getHandle().isInLove();
return this.getHandle().isInLove();
}
@Override
public void setLoveModeTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "Love mode ticks must be positive or 0");
getHandle().setInLoveTime(ticks);
this.getHandle().setInLoveTime(ticks);
}
@Override
public int getLoveModeTicks() {
return getHandle().inLove;
return this.getHandle().inLove;
}
@Override
public boolean isBreedItem(ItemStack itemStack) {
return getHandle().isFood(CraftItemStack.asNMSCopy(itemStack));
return this.getHandle().isFood(CraftItemStack.asNMSCopy(itemStack));
}
@Override
public boolean isBreedItem(Material material) {
return isBreedItem(new ItemStack(material));
return this.isBreedItem(new ItemStack(material));
}
}

View File

@@ -5,9 +5,7 @@ import java.util.List;
import java.util.Optional;
import net.minecraft.core.Holder;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectList;
import net.minecraft.world.entity.EntityAreaEffectCloud;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.item.alchemy.PotionContents;
import org.bukkit.Color;
import org.bukkit.Particle;
@@ -26,13 +24,13 @@ import org.bukkit.projectiles.ProjectileSource;
public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud {
public CraftAreaEffectCloud(CraftServer server, EntityAreaEffectCloud entity) {
public CraftAreaEffectCloud(CraftServer server, net.minecraft.world.entity.AreaEffectCloud entity) {
super(server, entity);
}
@Override
public EntityAreaEffectCloud getHandle() {
return (EntityAreaEffectCloud) super.getHandle();
public net.minecraft.world.entity.AreaEffectCloud getHandle() {
return (net.minecraft.world.entity.AreaEffectCloud) super.getHandle();
}
@Override
@@ -42,124 +40,124 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
@Override
public int getDuration() {
return getHandle().getDuration();
return this.getHandle().getDuration();
}
@Override
public void setDuration(int duration) {
getHandle().setDuration(duration);
this.getHandle().setDuration(duration);
}
@Override
public int getWaitTime() {
return getHandle().waitTime;
return this.getHandle().waitTime;
}
@Override
public void setWaitTime(int waitTime) {
getHandle().setWaitTime(waitTime);
this.getHandle().setWaitTime(waitTime);
}
@Override
public int getReapplicationDelay() {
return getHandle().reapplicationDelay;
return this.getHandle().reapplicationDelay;
}
@Override
public void setReapplicationDelay(int delay) {
getHandle().reapplicationDelay = delay;
this.getHandle().reapplicationDelay = delay;
}
@Override
public int getDurationOnUse() {
return getHandle().durationOnUse;
return this.getHandle().durationOnUse;
}
@Override
public void setDurationOnUse(int duration) {
getHandle().durationOnUse = duration;
this.getHandle().durationOnUse = duration;
}
@Override
public float getRadius() {
return getHandle().getRadius();
return this.getHandle().getRadius();
}
@Override
public void setRadius(float radius) {
getHandle().setRadius(radius);
this.getHandle().setRadius(radius);
}
@Override
public float getRadiusOnUse() {
return getHandle().radiusOnUse;
return this.getHandle().radiusOnUse;
}
@Override
public void setRadiusOnUse(float radius) {
getHandle().setRadiusOnUse(radius);
this.getHandle().setRadiusOnUse(radius);
}
@Override
public float getRadiusPerTick() {
return getHandle().radiusPerTick;
return this.getHandle().radiusPerTick;
}
@Override
public void setRadiusPerTick(float radius) {
getHandle().setRadiusPerTick(radius);
this.getHandle().setRadiusPerTick(radius);
}
@Override
public Particle getParticle() {
return CraftParticle.minecraftToBukkit(getHandle().getParticle().getType());
return CraftParticle.minecraftToBukkit(this.getHandle().getParticle().getType());
}
@Override
public void setParticle(Particle particle) {
setParticle(particle, null);
this.setParticle(particle, null);
}
@Override
public <T> void setParticle(Particle particle, T data) {
getHandle().setParticle(CraftParticle.createParticleParam(particle, data));
this.getHandle().setParticle(CraftParticle.createParticleParam(particle, data));
}
@Override
public Color getColor() {
return Color.fromRGB(getHandle().potionContents.getColor());
return Color.fromRGB(this.getHandle().potionContents.getColor());
}
@Override
public void setColor(Color color) {
PotionContents old = getHandle().potionContents;
getHandle().setPotionContents(new PotionContents(old.potion(), Optional.of(color.asRGB()), old.customEffects(), old.customName()));
PotionContents old = this.getHandle().potionContents;
this.getHandle().setPotionContents(new PotionContents(old.potion(), Optional.of(color.asRGB()), old.customEffects(), old.customName()));
}
@Override
public boolean addCustomEffect(PotionEffect effect, boolean override) {
if (hasCustomEffect(effect.getType())) {
if (this.hasCustomEffect(effect.getType())) {
if (!override) {
return false;
}
removeCustomEffect(effect.getType());
this.removeCustomEffect(effect.getType());
}
getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
getHandle().updateColor();
this.getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
this.getHandle().updateColor();
return true;
}
@Override
public void clearCustomEffects() {
PotionContents old = getHandle().potionContents;
getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of(), old.customName()));
getHandle().updateColor();
PotionContents old = this.getHandle().potionContents;
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of(), old.customName()));
this.getHandle().updateColor();
}
@Override
public List<PotionEffect> getCustomEffects() {
ImmutableList.Builder<PotionEffect> builder = ImmutableList.builder();
for (MobEffect effect : getHandle().potionContents.customEffects()) {
for (MobEffectInstance effect : this.getHandle().potionContents.customEffects()) {
builder.add(CraftPotionUtil.toBukkit(effect));
}
return builder.build();
@@ -167,7 +165,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
@Override
public boolean hasCustomEffect(PotionEffectType type) {
for (MobEffect effect : getHandle().potionContents.customEffects()) {
for (MobEffectInstance effect : this.getHandle().potionContents.customEffects()) {
if (CraftPotionUtil.equals(effect.getEffect(), type)) {
return true;
}
@@ -177,58 +175,58 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
@Override
public boolean hasCustomEffects() {
return !getHandle().potionContents.customEffects().isEmpty();
return !this.getHandle().potionContents.customEffects().isEmpty();
}
@Override
public boolean removeCustomEffect(PotionEffectType effect) {
if (!hasCustomEffect(effect)) {
if (!this.hasCustomEffect(effect)) {
return false;
}
Holder<MobEffectList> minecraft = CraftPotionEffectType.bukkitToMinecraftHolder(effect);
Holder<MobEffect> minecraft = CraftPotionEffectType.bukkitToMinecraftHolder(effect);
PotionContents old = getHandle().potionContents;
getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), old.customEffects().stream().filter((mobEffect) -> !mobEffect.getEffect().equals(minecraft)).toList(), old.customName()));
PotionContents old = this.getHandle().potionContents;
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), old.customEffects().stream().filter((mobEffect) -> !mobEffect.getEffect().equals(minecraft)).toList(), old.customName()));
return true;
}
@Override
public void setBasePotionData(PotionData data) {
setBasePotionType(CraftPotionUtil.fromBukkit(data));
this.setBasePotionType(CraftPotionUtil.fromBukkit(data));
}
@Override
public PotionData getBasePotionData() {
return CraftPotionUtil.toBukkit(getBasePotionType());
return CraftPotionUtil.toBukkit(this.getBasePotionType());
}
@Override
public void setBasePotionType(PotionType potionType) {
if (potionType != null) {
getHandle().setPotionContents(getHandle().potionContents.withPotion(CraftPotionType.bukkitToMinecraftHolder(potionType)));
this.getHandle().setPotionContents(this.getHandle().potionContents.withPotion(CraftPotionType.bukkitToMinecraftHolder(potionType)));
} else {
PotionContents old = getHandle().potionContents;
getHandle().setPotionContents(new PotionContents(Optional.empty(), old.customColor(), old.customEffects(), old.customName()));
PotionContents old = this.getHandle().potionContents;
this.getHandle().setPotionContents(new PotionContents(Optional.empty(), old.customColor(), old.customEffects(), old.customName()));
}
}
@Override
public PotionType getBasePotionType() {
return getHandle().potionContents.potion().map(CraftPotionType::minecraftHolderToBukkit).orElse(null);
return this.getHandle().potionContents.potion().map(CraftPotionType::minecraftHolderToBukkit).orElse(null);
}
@Override
public ProjectileSource getSource() {
EntityLiving source = getHandle().getOwner();
net.minecraft.world.entity.LivingEntity source = this.getHandle().getOwner();
return (source == null) ? null : (LivingEntity) source.getBukkitEntity();
}
@Override
public void setSource(ProjectileSource shooter) {
if (shooter instanceof CraftLivingEntity craftLivingEntity) {
getHandle().setOwner(craftLivingEntity.getHandle());
this.getHandle().setOwner(craftLivingEntity.getHandle());
} else {
getHandle().setOwner(null);
this.getHandle().setOwner(null);
}
}
}

View File

@@ -1,7 +1,6 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.core.Vector3f;
import net.minecraft.world.entity.decoration.EntityArmorStand;
import net.minecraft.core.Rotations;
import org.bukkit.craftbukkit.CraftEquipmentSlot;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ArmorStand;
@@ -12,7 +11,7 @@ import org.bukkit.util.EulerAngle;
public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
public CraftArmorStand(CraftServer server, EntityArmorStand entity) {
public CraftArmorStand(CraftServer server, net.minecraft.world.entity.decoration.ArmorStand entity) {
super(server, entity);
}
@@ -22,168 +21,168 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
}
@Override
public EntityArmorStand getHandle() {
return (EntityArmorStand) super.getHandle();
public net.minecraft.world.entity.decoration.ArmorStand getHandle() {
return (net.minecraft.world.entity.decoration.ArmorStand) super.getHandle();
}
@Override
public ItemStack getItemInHand() {
return getEquipment().getItemInHand();
return this.getEquipment().getItemInHand();
}
@Override
public void setItemInHand(ItemStack item) {
getEquipment().setItemInHand(item);
this.getEquipment().setItemInHand(item);
}
@Override
public ItemStack getBoots() {
return getEquipment().getBoots();
return this.getEquipment().getBoots();
}
@Override
public void setBoots(ItemStack item) {
getEquipment().setBoots(item);
this.getEquipment().setBoots(item);
}
@Override
public ItemStack getLeggings() {
return getEquipment().getLeggings();
return this.getEquipment().getLeggings();
}
@Override
public void setLeggings(ItemStack item) {
getEquipment().setLeggings(item);
this.getEquipment().setLeggings(item);
}
@Override
public ItemStack getChestplate() {
return getEquipment().getChestplate();
return this.getEquipment().getChestplate();
}
@Override
public void setChestplate(ItemStack item) {
getEquipment().setChestplate(item);
this.getEquipment().setChestplate(item);
}
@Override
public ItemStack getHelmet() {
return getEquipment().getHelmet();
return this.getEquipment().getHelmet();
}
@Override
public void setHelmet(ItemStack item) {
getEquipment().setHelmet(item);
this.getEquipment().setHelmet(item);
}
@Override
public EulerAngle getBodyPose() {
return fromNMS(getHandle().bodyPose);
return CraftArmorStand.fromNMS(this.getHandle().bodyPose);
}
@Override
public void setBodyPose(EulerAngle pose) {
getHandle().setBodyPose(toNMS(pose));
this.getHandle().setBodyPose(CraftArmorStand.toNMS(pose));
}
@Override
public EulerAngle getLeftArmPose() {
return fromNMS(getHandle().leftArmPose);
return CraftArmorStand.fromNMS(this.getHandle().leftArmPose);
}
@Override
public void setLeftArmPose(EulerAngle pose) {
getHandle().setLeftArmPose(toNMS(pose));
this.getHandle().setLeftArmPose(CraftArmorStand.toNMS(pose));
}
@Override
public EulerAngle getRightArmPose() {
return fromNMS(getHandle().rightArmPose);
return CraftArmorStand.fromNMS(this.getHandle().rightArmPose);
}
@Override
public void setRightArmPose(EulerAngle pose) {
getHandle().setRightArmPose(toNMS(pose));
this.getHandle().setRightArmPose(CraftArmorStand.toNMS(pose));
}
@Override
public EulerAngle getLeftLegPose() {
return fromNMS(getHandle().leftLegPose);
return CraftArmorStand.fromNMS(this.getHandle().leftLegPose);
}
@Override
public void setLeftLegPose(EulerAngle pose) {
getHandle().setLeftLegPose(toNMS(pose));
this.getHandle().setLeftLegPose(CraftArmorStand.toNMS(pose));
}
@Override
public EulerAngle getRightLegPose() {
return fromNMS(getHandle().rightLegPose);
return CraftArmorStand.fromNMS(this.getHandle().rightLegPose);
}
@Override
public void setRightLegPose(EulerAngle pose) {
getHandle().setRightLegPose(toNMS(pose));
this.getHandle().setRightLegPose(CraftArmorStand.toNMS(pose));
}
@Override
public EulerAngle getHeadPose() {
return fromNMS(getHandle().headPose);
return CraftArmorStand.fromNMS(this.getHandle().headPose);
}
@Override
public void setHeadPose(EulerAngle pose) {
getHandle().setHeadPose(toNMS(pose));
this.getHandle().setHeadPose(CraftArmorStand.toNMS(pose));
}
@Override
public boolean hasBasePlate() {
return getHandle().showBasePlate();
return this.getHandle().showBasePlate();
}
@Override
public void setBasePlate(boolean basePlate) {
getHandle().setNoBasePlate(!basePlate);
this.getHandle().setNoBasePlate(!basePlate);
}
@Override
public void setGravity(boolean gravity) {
super.setGravity(gravity);
// Armor stands are special
getHandle().noPhysics = !gravity;
this.getHandle().noPhysics = !gravity;
}
@Override
public boolean isVisible() {
return !getHandle().isInvisible();
return !this.getHandle().isInvisible();
}
@Override
public void setVisible(boolean visible) {
getHandle().setInvisible(!visible);
this.getHandle().setInvisible(!visible);
}
@Override
public boolean hasArms() {
return getHandle().showArms();
return this.getHandle().showArms();
}
@Override
public void setArms(boolean arms) {
getHandle().setShowArms(arms);
this.getHandle().setShowArms(arms);
}
@Override
public boolean isSmall() {
return getHandle().isSmall();
return this.getHandle().isSmall();
}
@Override
public void setSmall(boolean small) {
getHandle().setSmall(small);
this.getHandle().setSmall(small);
}
private static EulerAngle fromNMS(Vector3f old) {
private static EulerAngle fromNMS(Rotations old) {
return new EulerAngle(
Math.toRadians(old.getX()),
Math.toRadians(old.getY()),
@@ -191,8 +190,8 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
);
}
private static Vector3f toNMS(EulerAngle old) {
return new Vector3f(
private static Rotations toNMS(EulerAngle old) {
return new Rotations(
(float) Math.toDegrees(old.getX()),
(float) Math.toDegrees(old.getY()),
(float) Math.toDegrees(old.getZ())
@@ -201,26 +200,26 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
@Override
public boolean isMarker() {
return getHandle().isMarker();
return this.getHandle().isMarker();
}
@Override
public void setMarker(boolean marker) {
getHandle().setMarker(marker);
this.getHandle().setMarker(marker);
}
@Override
public void addEquipmentLock(EquipmentSlot equipmentSlot, LockType lockType) {
getHandle().disabledSlots |= (1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8));
this.getHandle().disabledSlots |= (1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8));
}
@Override
public void removeEquipmentLock(EquipmentSlot equipmentSlot, LockType lockType) {
getHandle().disabledSlots &= ~(1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8));
this.getHandle().disabledSlots &= ~(1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8));
}
@Override
public boolean hasEquipmentLock(EquipmentSlot equipmentSlot, LockType lockType) {
return (getHandle().disabledSlots & (1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8))) != 0;
return (this.getHandle().disabledSlots & (1 << CraftEquipmentSlot.getNMS(equipmentSlot).getFilterBit(lockType.ordinal() * 8))) != 0;
}
}

View File

@@ -5,8 +5,7 @@ import java.util.List;
import java.util.Optional;
import net.minecraft.core.Holder;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectList;
import net.minecraft.world.entity.projectile.EntityTippedArrow;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.item.alchemy.PotionContents;
import org.bukkit.Color;
import org.bukkit.craftbukkit.CraftServer;
@@ -21,13 +20,13 @@ import org.bukkit.potion.PotionType;
public class CraftArrow extends CraftAbstractArrow implements Arrow {
public CraftArrow(CraftServer server, EntityTippedArrow entity) {
public CraftArrow(CraftServer server, net.minecraft.world.entity.projectile.Arrow entity) {
super(server, entity);
}
@Override
public EntityTippedArrow getHandle() {
return (EntityTippedArrow) entity;
public net.minecraft.world.entity.projectile.Arrow getHandle() {
return (net.minecraft.world.entity.projectile.Arrow) this.entity;
}
@Override
@@ -37,28 +36,28 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
@Override
public boolean addCustomEffect(PotionEffect effect, boolean override) {
if (hasCustomEffect(effect.getType())) {
if (this.hasCustomEffect(effect.getType())) {
if (!override) {
return false;
}
removeCustomEffect(effect.getType());
this.removeCustomEffect(effect.getType());
}
getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
getHandle().updateColor();
this.getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
this.getHandle().updateColor();
return true;
}
@Override
public void clearCustomEffects() {
PotionContents old = getHandle().getPotionContents();
getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of(), old.customName()));
getHandle().updateColor();
PotionContents old = this.getHandle().getPotionContents();
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of(), old.customName()));
this.getHandle().updateColor();
}
@Override
public List<PotionEffect> getCustomEffects() {
ImmutableList.Builder<PotionEffect> builder = ImmutableList.builder();
for (MobEffect effect : getHandle().getPotionContents().customEffects()) {
for (MobEffectInstance effect : this.getHandle().getPotionContents().customEffects()) {
builder.add(CraftPotionUtil.toBukkit(effect));
}
return builder.build();
@@ -66,7 +65,7 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
@Override
public boolean hasCustomEffect(PotionEffectType type) {
for (MobEffect effect : getHandle().getPotionContents().customEffects()) {
for (MobEffectInstance effect : this.getHandle().getPotionContents().customEffects()) {
if (CraftPotionUtil.equals(effect.getEffect(), type)) {
return true;
}
@@ -76,58 +75,58 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
@Override
public boolean hasCustomEffects() {
return !getHandle().getPotionContents().customEffects().isEmpty();
return !this.getHandle().getPotionContents().customEffects().isEmpty();
}
@Override
public boolean removeCustomEffect(PotionEffectType effect) {
if (!hasCustomEffect(effect)) {
if (!this.hasCustomEffect(effect)) {
return false;
}
Holder<MobEffectList> minecraft = CraftPotionEffectType.bukkitToMinecraftHolder(effect);
Holder<MobEffect> minecraft = CraftPotionEffectType.bukkitToMinecraftHolder(effect);
PotionContents old = getHandle().getPotionContents();
getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), old.customEffects().stream().filter((mobEffect) -> !mobEffect.getEffect().equals(minecraft)).toList(), old.customName()));
PotionContents old = this.getHandle().getPotionContents();
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), old.customEffects().stream().filter((mobEffect) -> !mobEffect.getEffect().equals(minecraft)).toList(), old.customName()));
return true;
}
@Override
public void setBasePotionData(PotionData data) {
setBasePotionType(CraftPotionUtil.fromBukkit(data));
this.setBasePotionType(CraftPotionUtil.fromBukkit(data));
}
@Override
public PotionData getBasePotionData() {
return CraftPotionUtil.toBukkit(getBasePotionType());
return CraftPotionUtil.toBukkit(this.getBasePotionType());
}
@Override
public void setBasePotionType(PotionType potionType) {
if (potionType != null) {
getHandle().setPotionContents(getHandle().getPotionContents().withPotion(CraftPotionType.bukkitToMinecraftHolder(potionType)));
this.getHandle().setPotionContents(this.getHandle().getPotionContents().withPotion(CraftPotionType.bukkitToMinecraftHolder(potionType)));
} else {
PotionContents old = getHandle().getPotionContents();
getHandle().setPotionContents(new PotionContents(Optional.empty(), old.customColor(), old.customEffects(), old.customName()));
PotionContents old = this.getHandle().getPotionContents();
this.getHandle().setPotionContents(new PotionContents(Optional.empty(), old.customColor(), old.customEffects(), old.customName()));
}
}
@Override
public PotionType getBasePotionType() {
return getHandle().getPotionContents().potion().map(CraftPotionType::minecraftHolderToBukkit).orElse(null);
return this.getHandle().getPotionContents().potion().map(CraftPotionType::minecraftHolderToBukkit).orElse(null);
}
@Override
public void setColor(Color color) {
int colorRGB = (color == null) ? -1 : color.asRGB();
PotionContents old = getHandle().getPotionContents();
getHandle().setPotionContents(new PotionContents(old.potion(), Optional.of(colorRGB), old.customEffects(), old.customName()));
PotionContents old = this.getHandle().getPotionContents();
this.getHandle().setPotionContents(new PotionContents(old.potion(), Optional.of(colorRGB), old.customEffects(), old.customName()));
}
@Override
public Color getColor() {
if (getHandle().getColor() <= -1) {
if (this.getHandle().getColor() <= -1) {
return null;
}
return Color.fromRGB(getHandle().getColor());
return Color.fromRGB(this.getHandle().getColor());
}
}

View File

@@ -22,23 +22,23 @@ public class CraftAxolotl extends CraftAnimals implements Axolotl {
@Override
public boolean isPlayingDead() {
return getHandle().isPlayingDead();
return this.getHandle().isPlayingDead();
}
@Override
public void setPlayingDead(boolean playingDead) {
getHandle().setPlayingDead(playingDead);
this.getHandle().setPlayingDead(playingDead);
}
@Override
public Variant getVariant() {
return Variant.values()[getHandle().getVariant().ordinal()];
return Variant.values()[this.getHandle().getVariant().ordinal()];
}
@Override
public void setVariant(Variant variant) {
Preconditions.checkArgument(variant != null, "variant");
getHandle().setVariant(net.minecraft.world.entity.animal.axolotl.Axolotl.Variant.byId(variant.ordinal()));
this.getHandle().setVariant(net.minecraft.world.entity.animal.axolotl.Axolotl.Variant.byId(variant.ordinal()));
}
}

View File

@@ -1,17 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.ambient.EntityBat;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Bat;
public class CraftBat extends CraftAmbient implements Bat {
public CraftBat(CraftServer server, EntityBat entity) {
public CraftBat(CraftServer server, net.minecraft.world.entity.ambient.Bat entity) {
super(server, entity);
}
@Override
public EntityBat getHandle() {
return (EntityBat) entity;
public net.minecraft.world.entity.ambient.Bat getHandle() {
return (net.minecraft.world.entity.ambient.Bat) this.entity;
}
@Override
@@ -21,11 +20,11 @@ public class CraftBat extends CraftAmbient implements Bat {
@Override
public boolean isAwake() {
return !getHandle().isResting();
return !this.getHandle().isResting();
}
@Override
public void setAwake(boolean state) {
getHandle().setResting(!state);
this.getHandle().setResting(!state);
}
}

View File

@@ -1,8 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.animal.EntityBee;
import net.minecraft.core.BlockPos;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.util.CraftLocation;
@@ -10,13 +9,13 @@ import org.bukkit.entity.Bee;
public class CraftBee extends CraftAnimals implements Bee {
public CraftBee(CraftServer server, EntityBee entity) {
public CraftBee(CraftServer server, net.minecraft.world.entity.animal.Bee entity) {
super(server, entity);
}
@Override
public EntityBee getHandle() {
return (EntityBee) entity;
public net.minecraft.world.entity.animal.Bee getHandle() {
return (net.minecraft.world.entity.animal.Bee) this.entity;
}
@Override
@@ -26,65 +25,65 @@ public class CraftBee extends CraftAnimals implements Bee {
@Override
public Location getHive() {
BlockPosition hive = getHandle().getHivePos();
return (hive == null) ? null : CraftLocation.toBukkit(hive, getWorld());
BlockPos hive = this.getHandle().getHivePos();
return (hive == null) ? null : CraftLocation.toBukkit(hive, this.getWorld());
}
@Override
public void setHive(Location location) {
Preconditions.checkArgument(location == null || this.getWorld().equals(location.getWorld()), "Hive must be in same world");
getHandle().hivePos = (location == null) ? null : CraftLocation.toBlockPosition(location);
this.getHandle().hivePos = (location == null) ? null : CraftLocation.toBlockPosition(location);
}
@Override
public Location getFlower() {
BlockPosition flower = getHandle().getSavedFlowerPos();
return (flower == null) ? null : CraftLocation.toBukkit(flower, getWorld());
BlockPos flower = this.getHandle().getSavedFlowerPos();
return (flower == null) ? null : CraftLocation.toBukkit(flower, this.getWorld());
}
@Override
public void setFlower(Location location) {
Preconditions.checkArgument(location == null || this.getWorld().equals(location.getWorld()), "Flower must be in same world");
getHandle().setSavedFlowerPos(location == null ? null : CraftLocation.toBlockPosition(location));
this.getHandle().setSavedFlowerPos(location == null ? null : CraftLocation.toBlockPosition(location));
}
@Override
public boolean hasNectar() {
return getHandle().hasNectar();
return this.getHandle().hasNectar();
}
@Override
public void setHasNectar(boolean nectar) {
getHandle().setHasNectar(nectar);
this.getHandle().setHasNectar(nectar);
}
@Override
public boolean hasStung() {
return getHandle().hasStung();
return this.getHandle().hasStung();
}
@Override
public void setHasStung(boolean stung) {
getHandle().setHasStung(stung);
this.getHandle().setHasStung(stung);
}
@Override
public int getAnger() {
return getHandle().getRemainingPersistentAngerTime();
return this.getHandle().getRemainingPersistentAngerTime();
}
@Override
public void setAnger(int anger) {
getHandle().setRemainingPersistentAngerTime(anger);
this.getHandle().setRemainingPersistentAngerTime(anger);
}
@Override
public int getCannotEnterHiveTicks() {
return getHandle().stayOutOfHiveCountdown;
return this.getHandle().stayOutOfHiveCountdown;
}
@Override
public void setCannotEnterHiveTicks(int ticks) {
getHandle().setStayOutOfHiveCountdown(ticks);
this.getHandle().setStayOutOfHiveCountdown(ticks);
}
}

View File

@@ -1,17 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityBlaze;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Blaze;
public class CraftBlaze extends CraftMonster implements Blaze {
public CraftBlaze(CraftServer server, EntityBlaze entity) {
public CraftBlaze(CraftServer server, net.minecraft.world.entity.monster.Blaze entity) {
super(server, entity);
}
@Override
public EntityBlaze getHandle() {
return (EntityBlaze) entity;
public net.minecraft.world.entity.monster.Blaze getHandle() {
return (net.minecraft.world.entity.monster.Blaze) this.entity;
}
@Override

View File

@@ -10,7 +10,7 @@ public class CraftBlockAttachedEntity extends CraftEntity {
@Override
public BlockAttachedEntity getHandle() {
return (BlockAttachedEntity) entity;
return (BlockAttachedEntity) this.entity;
}
@Override

View File

@@ -24,13 +24,13 @@ public class CraftBlockDisplay extends CraftDisplay implements BlockDisplay {
@Override
public BlockData getBlock() {
return CraftBlockData.fromData(getHandle().getBlockState());
return CraftBlockData.fromData(this.getHandle().getBlockState());
}
@Override
public void setBlock(BlockData block) {
Preconditions.checkArgument(block != null, "Block cannot be null");
getHandle().setBlockState(((CraftBlockData) block).getState());
this.getHandle().setBlockState(((CraftBlockData) block).getState());
}
}

View File

@@ -1,9 +1,8 @@
package org.bukkit.craftbukkit.entity;
import java.util.stream.Collectors;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.vehicle.AbstractBoat;
import net.minecraft.world.entity.vehicle.EntityBoat;
import org.bukkit.TreeSpecies;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Boat;
@@ -17,7 +16,7 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
@Override
public TreeSpecies getWoodType() {
return getTreeSpecies(getHandle().getType());
return CraftBoat.getTreeSpecies(this.getHandle().getType());
}
@Override
@@ -27,7 +26,7 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
@Override
public Type getBoatType() {
return boatTypeFromNms(getHandle().getType());
return CraftBoat.boatTypeFromNms(this.getHandle().getType());
}
@Override
@@ -37,104 +36,104 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
@Override
public double getMaxSpeed() {
return getHandle().maxSpeed;
return this.getHandle().maxSpeed;
}
@Override
public void setMaxSpeed(double speed) {
if (speed >= 0D) {
getHandle().maxSpeed = speed;
this.getHandle().maxSpeed = speed;
}
}
@Override
public double getOccupiedDeceleration() {
return getHandle().occupiedDeceleration;
return this.getHandle().occupiedDeceleration;
}
@Override
public void setOccupiedDeceleration(double speed) {
if (speed >= 0D) {
getHandle().occupiedDeceleration = speed;
this.getHandle().occupiedDeceleration = speed;
}
}
@Override
public double getUnoccupiedDeceleration() {
return getHandle().unoccupiedDeceleration;
return this.getHandle().unoccupiedDeceleration;
}
@Override
public void setUnoccupiedDeceleration(double speed) {
getHandle().unoccupiedDeceleration = speed;
this.getHandle().unoccupiedDeceleration = speed;
}
@Override
public boolean getWorkOnLand() {
return getHandle().landBoats;
return this.getHandle().landBoats;
}
@Override
public void setWorkOnLand(boolean workOnLand) {
getHandle().landBoats = workOnLand;
this.getHandle().landBoats = workOnLand;
}
@Override
public Status getStatus() {
return boatStatusFromNms(getHandle().status);
return CraftBoat.boatStatusFromNms(this.getHandle().status);
}
@Override
public AbstractBoat getHandle() {
return (AbstractBoat) entity;
return (AbstractBoat) this.entity;
}
@Override
public String toString() {
return "CraftBoat{boatType=" + getBoatType() + ",status=" + getStatus() + ",passengers=" + getPassengers().stream().map(Entity::toString).collect(Collectors.joining("-", "{", "}")) + "}";
return "CraftBoat{boatType=" + this.getBoatType() + ",status=" + this.getStatus() + ",passengers=" + this.getPassengers().stream().map(Entity::toString).collect(Collectors.joining("-", "{", "}")) + "}";
}
public static Boat.Type boatTypeFromNms(EntityTypes<?> boatType) {
if (boatType == EntityTypes.OAK_BOAT || boatType == EntityTypes.OAK_CHEST_BOAT) {
public static Boat.Type boatTypeFromNms(EntityType<?> boatType) {
if (boatType == EntityType.OAK_BOAT || boatType == EntityType.OAK_CHEST_BOAT) {
return Type.OAK;
}
if (boatType == EntityTypes.BIRCH_BOAT || boatType == EntityTypes.BIRCH_CHEST_BOAT) {
if (boatType == EntityType.BIRCH_BOAT || boatType == EntityType.BIRCH_CHEST_BOAT) {
return Type.BIRCH;
}
if (boatType == EntityTypes.ACACIA_BOAT || boatType == EntityTypes.ACACIA_CHEST_BOAT) {
if (boatType == EntityType.ACACIA_BOAT || boatType == EntityType.ACACIA_CHEST_BOAT) {
return Type.ACACIA;
}
if (boatType == EntityTypes.CHERRY_BOAT || boatType == EntityTypes.CHERRY_CHEST_BOAT) {
if (boatType == EntityType.CHERRY_BOAT || boatType == EntityType.CHERRY_CHEST_BOAT) {
return Type.CHERRY;
}
if (boatType == EntityTypes.JUNGLE_BOAT || boatType == EntityTypes.JUNGLE_CHEST_BOAT) {
if (boatType == EntityType.JUNGLE_BOAT || boatType == EntityType.JUNGLE_CHEST_BOAT) {
return Type.JUNGLE;
}
if (boatType == EntityTypes.SPRUCE_BOAT || boatType == EntityTypes.SPRUCE_CHEST_BOAT) {
if (boatType == EntityType.SPRUCE_BOAT || boatType == EntityType.SPRUCE_CHEST_BOAT) {
return Type.SPRUCE;
}
if (boatType == EntityTypes.DARK_OAK_BOAT || boatType == EntityTypes.DARK_OAK_CHEST_BOAT) {
if (boatType == EntityType.DARK_OAK_BOAT || boatType == EntityType.DARK_OAK_CHEST_BOAT) {
return Type.DARK_OAK;
}
if (boatType == EntityTypes.MANGROVE_BOAT || boatType == EntityTypes.MANGROVE_CHEST_BOAT) {
if (boatType == EntityType.MANGROVE_BOAT || boatType == EntityType.MANGROVE_CHEST_BOAT) {
return Type.MANGROVE;
}
if (boatType == EntityTypes.BAMBOO_RAFT || boatType == EntityTypes.BAMBOO_CHEST_RAFT) {
if (boatType == EntityType.BAMBOO_RAFT || boatType == EntityType.BAMBOO_CHEST_RAFT) {
return Type.BAMBOO;
}
throw new EnumConstantNotPresentException(Type.class, boatType.toString());
}
public static Status boatStatusFromNms(EntityBoat.EnumStatus enumStatus) {
public static Status boatStatusFromNms(net.minecraft.world.entity.vehicle.Boat.EnumStatus enumStatus) {
return switch (enumStatus) {
default -> throw new EnumConstantNotPresentException(Status.class, enumStatus.name());
case IN_AIR -> Status.IN_AIR;
@@ -146,24 +145,24 @@ public abstract class CraftBoat extends CraftVehicle implements Boat {
}
@Deprecated
public static TreeSpecies getTreeSpecies(EntityTypes<?> boatType) {
if (boatType == EntityTypes.SPRUCE_BOAT || boatType == EntityTypes.SPRUCE_CHEST_BOAT) {
public static TreeSpecies getTreeSpecies(EntityType<?> boatType) {
if (boatType == EntityType.SPRUCE_BOAT || boatType == EntityType.SPRUCE_CHEST_BOAT) {
return TreeSpecies.REDWOOD;
}
if (boatType == EntityTypes.BIRCH_BOAT || boatType == EntityTypes.BIRCH_CHEST_BOAT) {
if (boatType == EntityType.BIRCH_BOAT || boatType == EntityType.BIRCH_CHEST_BOAT) {
return TreeSpecies.BIRCH;
}
if (boatType == EntityTypes.JUNGLE_BOAT || boatType == EntityTypes.JUNGLE_CHEST_BOAT) {
if (boatType == EntityType.JUNGLE_BOAT || boatType == EntityType.JUNGLE_CHEST_BOAT) {
return TreeSpecies.JUNGLE;
}
if (boatType == EntityTypes.ACACIA_BOAT || boatType == EntityTypes.ACACIA_CHEST_BOAT) {
if (boatType == EntityType.ACACIA_BOAT || boatType == EntityType.ACACIA_CHEST_BOAT) {
return TreeSpecies.ACACIA;
}
if (boatType == EntityTypes.DARK_OAK_BOAT || boatType == EntityTypes.DARK_OAK_CHEST_BOAT) {
if (boatType == EntityType.DARK_OAK_BOAT || boatType == EntityType.DARK_OAK_CHEST_BOAT) {
return TreeSpecies.DARK_OAK;
}

View File

@@ -12,7 +12,7 @@ public class CraftBogged extends CraftAbstractSkeleton implements Bogged {
@Override
public net.minecraft.world.entity.monster.Bogged getHandle() {
return (net.minecraft.world.entity.monster.Bogged) entity;
return (net.minecraft.world.entity.monster.Bogged) this.entity;
}
@Override
@@ -27,11 +27,11 @@ public class CraftBogged extends CraftAbstractSkeleton implements Bogged {
@Override
public boolean isSheared() {
return getHandle().isSheared();
return this.getHandle().isSheared();
}
@Override
public void setSheared(boolean flag) {
getHandle().setSheared(flag);
this.getHandle().setSheared(flag);
}
}

View File

@@ -1,6 +1,5 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.entity.ai.memory.MemoryModuleType;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Breeze;
@@ -14,13 +13,13 @@ public class CraftBreeze extends CraftMonster implements Breeze {
@Override
public net.minecraft.world.entity.monster.breeze.Breeze getHandle() {
return (net.minecraft.world.entity.monster.breeze.Breeze) entity;
return (net.minecraft.world.entity.monster.breeze.Breeze) this.entity;
}
@Override
public void setTarget(LivingEntity target) {
super.setTarget(target);
EntityLiving entityLivingTarget = (target instanceof CraftLivingEntity craftLivingEntity) ? craftLivingEntity.getHandle() : null;
net.minecraft.world.entity.LivingEntity entityLivingTarget = (target instanceof CraftLivingEntity craftLivingEntity) ? craftLivingEntity.getHandle() : null;
this.getHandle().getBrain().setMemory(MemoryModuleType.ATTACK_TARGET, entityLivingTarget); // SPIGOT-7957: We need override memory for set target and trigger attack behaviours
}

View File

@@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityPose;
import net.minecraft.world.entity.Pose;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Camel;
import org.bukkit.entity.Horse;
@@ -28,25 +28,25 @@ public class CraftCamel extends CraftAbstractHorse implements Camel {
@Override
public boolean isDashing() {
return getHandle().isDashing();
return this.getHandle().isDashing();
}
@Override
public void setDashing(boolean dashing) {
getHandle().setDashing(dashing);
this.getHandle().setDashing(dashing);
}
@Override
public boolean isSitting() {
return getHandle().getPose() == EntityPose.SITTING;
return this.getHandle().getPose() == Pose.SITTING;
}
@Override
public void setSitting(boolean sitting) {
if (sitting) {
getHandle().sitDown();
this.getHandle().sitDown();
} else {
getHandle().standUp();
this.getHandle().standUp();
}
}
}

View File

@@ -5,8 +5,6 @@ import java.util.Locale;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.entity.animal.CatVariant;
import net.minecraft.world.entity.animal.EntityCat;
import net.minecraft.world.item.EnumColor;
import org.bukkit.DyeColor;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
@@ -17,13 +15,13 @@ import org.bukkit.entity.Cat;
public class CraftCat extends CraftTameableAnimal implements Cat {
public CraftCat(CraftServer server, EntityCat entity) {
public CraftCat(CraftServer server, net.minecraft.world.entity.animal.Cat entity) {
super(server, entity);
}
@Override
public EntityCat getHandle() {
return (EntityCat) super.getHandle();
public net.minecraft.world.entity.animal.Cat getHandle() {
return (net.minecraft.world.entity.animal.Cat) super.getHandle();
}
@Override
@@ -33,24 +31,24 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
@Override
public Type getCatType() {
return CraftType.minecraftHolderToBukkit(getHandle().getVariant());
return CraftType.minecraftHolderToBukkit(this.getHandle().getVariant());
}
@Override
public void setCatType(Type type) {
Preconditions.checkArgument(type != null, "Cannot have null Type");
getHandle().setVariant(CraftType.bukkitToMinecraftHolder(type));
this.getHandle().setVariant(CraftType.bukkitToMinecraftHolder(type));
}
@Override
public DyeColor getCollarColor() {
return DyeColor.getByWoolData((byte) getHandle().getCollarColor().getId());
return DyeColor.getByWoolData((byte) this.getHandle().getCollarColor().getId());
}
@Override
public void setCollarColor(DyeColor color) {
getHandle().setCollarColor(EnumColor.byId(color.getWoolData()));
this.getHandle().setCollarColor(net.minecraft.world.item.DyeColor.byId(color.getWoolData()));
}
public static class CraftType implements Type, Handleable<CatVariant> {
@@ -61,7 +59,7 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
}
public static Type minecraftHolderToBukkit(Holder<CatVariant> minecraft) {
return minecraftToBukkit(minecraft.value());
return CraftType.minecraftToBukkit(minecraft.value());
}
public static CatVariant bukkitToMinecraft(Type bukkit) {
@@ -89,38 +87,38 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
} else {
this.name = key.toString();
}
this.ordinal = count++;
this.ordinal = CraftType.count++;
}
@Override
public CatVariant getHandle() {
return catVariant;
return this.catVariant;
}
@Override
public NamespacedKey getKey() {
return key;
return this.key;
}
@Override
public int compareTo(Type variant) {
return ordinal - variant.ordinal();
return this.ordinal - variant.ordinal();
}
@Override
public String name() {
return name;
return this.name;
}
@Override
public int ordinal() {
return ordinal;
return this.ordinal;
}
@Override
public String toString() {
// For backwards compatibility
return name();
return this.name();
}
@Override
@@ -133,12 +131,12 @@ public class CraftCat extends CraftTameableAnimal implements Cat {
return false;
}
return getKey().equals(((CraftType) other).getKey());
return this.getKey().equals(((CraftType) other).getKey());
}
@Override
public int hashCode() {
return getKey().hashCode();
return this.getKey().hashCode();
}
}
}

View File

@@ -1,17 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityCaveSpider;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.CaveSpider;
public class CraftCaveSpider extends CraftSpider implements CaveSpider {
public CraftCaveSpider(CraftServer server, EntityCaveSpider entity) {
public CraftCaveSpider(CraftServer server, net.minecraft.world.entity.monster.CaveSpider entity) {
super(server, entity);
}
@Override
public EntityCaveSpider getHandle() {
return (EntityCaveSpider) entity;
public net.minecraft.world.entity.monster.CaveSpider getHandle() {
return (net.minecraft.world.entity.monster.CaveSpider) this.entity;
}
@Override

View File

@@ -13,12 +13,12 @@ public abstract class CraftChestBoat extends CraftBoat implements org.bukkit.ent
public CraftChestBoat(CraftServer server, AbstractChestBoat entity) {
super(server, entity);
inventory = new CraftInventory(entity);
this.inventory = new CraftInventory(entity);
}
@Override
public AbstractChestBoat getHandle() {
return (AbstractChestBoat) entity;
return (AbstractChestBoat) this.entity;
}
@Override
@@ -28,31 +28,31 @@ public abstract class CraftChestBoat extends CraftBoat implements org.bukkit.ent
@Override
public Inventory getInventory() {
return inventory;
return this.inventory;
}
@Override
public void setLootTable(LootTable table) {
setLootTable(table, getSeed());
this.setLootTable(table, this.getSeed());
}
@Override
public LootTable getLootTable() {
return CraftLootTable.minecraftToBukkit(getHandle().getContainerLootTable());
return CraftLootTable.minecraftToBukkit(this.getHandle().getContainerLootTable());
}
@Override
public void setSeed(long seed) {
setLootTable(getLootTable(), seed);
this.setLootTable(this.getLootTable(), seed);
}
@Override
public long getSeed() {
return getHandle().getContainerLootTableSeed();
return this.getHandle().getContainerLootTableSeed();
}
private void setLootTable(LootTable table, long seed) {
getHandle().setContainerLootTable(CraftLootTable.bukkitToMinecraft(table));
getHandle().setContainerLootTableSeed(seed);
this.getHandle().setContainerLootTable(CraftLootTable.bukkitToMinecraft(table));
this.getHandle().setContainerLootTableSeed(seed);
}
}

View File

@@ -1,29 +1,29 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.horse.EntityHorseChestedAbstract;
import net.minecraft.world.entity.animal.horse.AbstractChestedHorse;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ChestedHorse;
public abstract class CraftChestedHorse extends CraftAbstractHorse implements ChestedHorse {
public CraftChestedHorse(CraftServer server, EntityHorseChestedAbstract entity) {
public CraftChestedHorse(CraftServer server, AbstractChestedHorse entity) {
super(server, entity);
}
@Override
public EntityHorseChestedAbstract getHandle() {
return (EntityHorseChestedAbstract) super.getHandle();
public AbstractChestedHorse getHandle() {
return (AbstractChestedHorse) super.getHandle();
}
@Override
public boolean isCarryingChest() {
return getHandle().hasChest();
return this.getHandle().hasChest();
}
@Override
public void setCarryingChest(boolean chest) {
if (chest == isCarryingChest()) return;
getHandle().setChest(chest);
getHandle().createInventory();
if (chest == this.isCarryingChest()) return;
this.getHandle().setChest(chest);
this.getHandle().createInventory();
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityChicken;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Chicken;
public class CraftChicken extends CraftAnimals implements Chicken {
public CraftChicken(CraftServer server, EntityChicken entity) {
public CraftChicken(CraftServer server, net.minecraft.world.entity.animal.Chicken entity) {
super(server, entity);
}
@Override
public EntityChicken getHandle() {
return (EntityChicken) entity;
public net.minecraft.world.entity.animal.Chicken getHandle() {
return (net.minecraft.world.entity.animal.Chicken) this.entity;
}
@Override

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityCod;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Cod;
public class CraftCod extends CraftFish implements Cod {
public CraftCod(CraftServer server, EntityCod entity) {
public CraftCod(CraftServer server, net.minecraft.world.entity.animal.Cod entity) {
super(server, entity);
}
@Override
public EntityCod getHandle() {
return (EntityCod) super.getHandle();
public net.minecraft.world.entity.animal.Cod getHandle() {
return (net.minecraft.world.entity.animal.Cod) super.getHandle();
}
@Override

View File

@@ -1,40 +1,40 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.boss.EntityComplexPart;
import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
import net.minecraft.world.entity.boss.EnderDragonPart;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ComplexEntityPart;
import org.bukkit.entity.ComplexLivingEntity;
import org.bukkit.event.entity.EntityDamageEvent;
public class CraftComplexPart extends CraftEntity implements ComplexEntityPart {
public CraftComplexPart(CraftServer server, EntityComplexPart entity) {
public CraftComplexPart(CraftServer server, EnderDragonPart entity) {
super(server, entity);
}
@Override
public ComplexLivingEntity getParent() {
return (ComplexLivingEntity) ((EntityEnderDragon) getHandle().parentMob).getBukkitEntity();
return (ComplexLivingEntity) ((EnderDragon) this.getHandle().parentMob).getBukkitEntity();
}
@Override
public void setLastDamageCause(EntityDamageEvent cause) {
getParent().setLastDamageCause(cause);
this.getParent().setLastDamageCause(cause);
}
@Override
public EntityDamageEvent getLastDamageCause() {
return getParent().getLastDamageCause();
return this.getParent().getLastDamageCause();
}
@Override
public boolean isValid() {
return getParent().isValid();
return this.getParent().isValid();
}
@Override
public EntityComplexPart getHandle() {
return (EntityComplexPart) entity;
public EnderDragonPart getHandle() {
return (EnderDragonPart) this.entity;
}
@Override

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityCow;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Cow;
public class CraftCow extends CraftAnimals implements Cow {
public CraftCow(CraftServer server, EntityCow entity) {
public CraftCow(CraftServer server, net.minecraft.world.entity.animal.Cow entity) {
super(server, entity);
}
@Override
public EntityCow getHandle() {
return (EntityCow) entity;
public net.minecraft.world.entity.animal.Cow getHandle() {
return (net.minecraft.world.entity.animal.Cow) this.entity;
}
@Override

View File

@@ -11,7 +11,7 @@ public class CraftCreaking extends CraftMonster implements org.bukkit.entity.Cre
@Override
public Creaking getHandle() {
return (Creaking) entity;
return (Creaking) this.entity;
}
@Override

View File

@@ -1,17 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityCreature;
import net.minecraft.world.entity.PathfinderMob;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Creature;
public class CraftCreature extends CraftMob implements Creature {
public CraftCreature(CraftServer server, EntityCreature entity) {
public CraftCreature(CraftServer server, PathfinderMob entity) {
super(server, entity);
}
@Override
public EntityCreature getHandle() {
return (EntityCreature) entity;
public PathfinderMob getHandle() {
return (PathfinderMob) this.entity;
}
@Override

View File

@@ -1,7 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.monster.EntityCreeper;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Entity;
@@ -9,13 +8,13 @@ import org.bukkit.event.entity.CreeperPowerEvent;
public class CraftCreeper extends CraftMonster implements Creeper {
public CraftCreeper(CraftServer server, EntityCreeper entity) {
public CraftCreeper(CraftServer server, net.minecraft.world.entity.monster.Creeper entity) {
super(server, entity);
}
@Override
public boolean isPowered() {
return getHandle().isPowered();
return this.getHandle().isPowered();
}
@Override
@@ -23,14 +22,14 @@ public class CraftCreeper extends CraftMonster implements Creeper {
CreeperPowerEvent.PowerCause cause = powered ? CreeperPowerEvent.PowerCause.SET_ON : CreeperPowerEvent.PowerCause.SET_OFF;
// only call event when we are not in world generation
if (getHandle().generation || !callPowerEvent(cause)) {
getHandle().setPowered(powered);
if (this.getHandle().generation || !this.callPowerEvent(cause)) {
this.getHandle().setPowered(powered);
}
}
private boolean callPowerEvent(CreeperPowerEvent.PowerCause cause) {
CreeperPowerEvent event = new CreeperPowerEvent((Creeper) getHandle().getBukkitEntity(), cause);
server.getPluginManager().callEvent(event);
CreeperPowerEvent event = new CreeperPowerEvent((Creeper) this.getHandle().getBukkitEntity(), cause);
this.server.getPluginManager().callEvent(event);
return event.isCancelled();
}
@@ -38,64 +37,64 @@ public class CraftCreeper extends CraftMonster implements Creeper {
public void setMaxFuseTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks < 0");
getHandle().maxSwell = ticks;
this.getHandle().maxSwell = ticks;
}
@Override
public int getMaxFuseTicks() {
return getHandle().maxSwell;
return this.getHandle().maxSwell;
}
@Override
public void setFuseTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks < 0");
Preconditions.checkArgument(ticks <= getMaxFuseTicks(), "ticks > maxFuseTicks");
Preconditions.checkArgument(ticks <= this.getMaxFuseTicks(), "ticks > maxFuseTicks");
getHandle().swell = ticks;
this.getHandle().swell = ticks;
}
@Override
public int getFuseTicks() {
return getHandle().swell;
return this.getHandle().swell;
}
@Override
public void setExplosionRadius(int radius) {
Preconditions.checkArgument(radius >= 0, "radius < 0");
getHandle().explosionRadius = radius;
this.getHandle().explosionRadius = radius;
}
@Override
public int getExplosionRadius() {
return getHandle().explosionRadius;
return this.getHandle().explosionRadius;
}
@Override
public void explode() {
getHandle().explodeCreeper();
this.getHandle().explodeCreeper();
}
@Override
public void ignite(Entity entity) {
Preconditions.checkNotNull(entity, "entity cannot be null");
getHandle().entityIgniter = ((CraftEntity) entity).getHandle();
getHandle().ignite();
this.getHandle().entityIgniter = ((CraftEntity) entity).getHandle();
this.getHandle().ignite();
}
@Override
public void ignite() {
getHandle().ignite();
this.getHandle().ignite();
}
@Override
public Entity getIgniter() {
return (getHandle().entityIgniter != null) ? getHandle().entityIgniter.getBukkitEntity() : null;
return (this.getHandle().entityIgniter != null) ? this.getHandle().entityIgniter.getBukkitEntity() : null;
}
@Override
public EntityCreeper getHandle() {
return (EntityCreeper) entity;
public net.minecraft.world.entity.monster.Creeper getHandle() {
return (net.minecraft.world.entity.monster.Creeper) this.entity;
}
@Override

View File

@@ -24,7 +24,7 @@ public class CraftDisplay extends CraftEntity implements Display {
@Override
public Transformation getTransformation() {
com.mojang.math.Transformation nms = net.minecraft.world.entity.Display.createTransformation(getHandle().getEntityData());
com.mojang.math.Transformation nms = net.minecraft.world.entity.Display.createTransformation(this.getHandle().getEntityData());
return new Transformation(nms.getTranslation(), nms.getLeftRotation(), nms.getScale(), nms.getRightRotation());
}
@@ -33,24 +33,24 @@ public class CraftDisplay extends CraftEntity implements Display {
public void setTransformation(Transformation transformation) {
Preconditions.checkArgument(transformation != null, "Transformation cannot be null");
getHandle().setTransformation(new com.mojang.math.Transformation(transformation.getTranslation(), transformation.getLeftRotation(), transformation.getScale(), transformation.getRightRotation()));
this.getHandle().setTransformation(new com.mojang.math.Transformation(transformation.getTranslation(), transformation.getLeftRotation(), transformation.getScale(), transformation.getRightRotation()));
}
@Override
public void setTransformationMatrix(org.joml.Matrix4f transformationMatrix) {
Preconditions.checkArgument(transformationMatrix != null, "Transformation matrix cannot be null");
getHandle().setTransformation(new com.mojang.math.Transformation(transformationMatrix));
this.getHandle().setTransformation(new com.mojang.math.Transformation(transformationMatrix));
}
@Override
public int getInterpolationDuration() {
return getHandle().getTransformationInterpolationDuration();
return this.getHandle().getTransformationInterpolationDuration();
}
@Override
public void setInterpolationDuration(int duration) {
getHandle().setTransformationInterpolationDuration(duration);
this.getHandle().setTransformationInterpolationDuration(duration);
}
@Override
@@ -66,79 +66,79 @@ public class CraftDisplay extends CraftEntity implements Display {
@Override
public float getViewRange() {
return getHandle().getViewRange();
return this.getHandle().getViewRange();
}
@Override
public void setViewRange(float range) {
getHandle().setViewRange(range);
this.getHandle().setViewRange(range);
}
@Override
public float getShadowRadius() {
return getHandle().getShadowRadius();
return this.getHandle().getShadowRadius();
}
@Override
public void setShadowRadius(float radius) {
getHandle().setShadowRadius(radius);
this.getHandle().setShadowRadius(radius);
}
@Override
public float getShadowStrength() {
return getHandle().getShadowStrength();
return this.getHandle().getShadowStrength();
}
@Override
public void setShadowStrength(float strength) {
getHandle().setShadowStrength(strength);
this.getHandle().setShadowStrength(strength);
}
@Override
public float getDisplayWidth() {
return getHandle().getWidth();
return this.getHandle().getWidth();
}
@Override
public void setDisplayWidth(float width) {
getHandle().setWidth(width);
this.getHandle().setWidth(width);
}
@Override
public float getDisplayHeight() {
return getHandle().getHeight();
return this.getHandle().getHeight();
}
@Override
public void setDisplayHeight(float height) {
getHandle().setHeight(height);
this.getHandle().setHeight(height);
}
@Override
public int getInterpolationDelay() {
return getHandle().getTransformationInterpolationDelay();
return this.getHandle().getTransformationInterpolationDelay();
}
@Override
public void setInterpolationDelay(int ticks) {
getHandle().setTransformationInterpolationDelay(ticks);
this.getHandle().setTransformationInterpolationDelay(ticks);
}
@Override
public Billboard getBillboard() {
return Billboard.valueOf(getHandle().getBillboardConstraints().name());
return Billboard.valueOf(this.getHandle().getBillboardConstraints().name());
}
@Override
public void setBillboard(Billboard billboard) {
Preconditions.checkArgument(billboard != null, "Billboard cannot be null");
getHandle().setBillboardConstraints(net.minecraft.world.entity.Display.BillboardConstraints.valueOf(billboard.name()));
this.getHandle().setBillboardConstraints(net.minecraft.world.entity.Display.BillboardConstraints.valueOf(billboard.name()));
}
@Override
public Color getGlowColorOverride() {
int color = getHandle().getGlowColorOverride();
int color = this.getHandle().getGlowColorOverride();
return (color == -1) ? null : Color.fromARGB(color);
}
@@ -146,15 +146,15 @@ public class CraftDisplay extends CraftEntity implements Display {
@Override
public void setGlowColorOverride(Color color) {
if (color == null) {
getHandle().setGlowColorOverride(-1);
this.getHandle().setGlowColorOverride(-1);
} else {
getHandle().setGlowColorOverride(color.asARGB());
this.getHandle().setGlowColorOverride(color.asARGB());
}
}
@Override
public Brightness getBrightness() {
net.minecraft.util.Brightness nms = getHandle().getBrightnessOverride();
net.minecraft.util.Brightness nms = this.getHandle().getBrightnessOverride();
return (nms != null) ? new Brightness(nms.block(), nms.sky()) : null;
}
@@ -162,9 +162,9 @@ public class CraftDisplay extends CraftEntity implements Display {
@Override
public void setBrightness(Brightness brightness) {
if (brightness != null) {
getHandle().setBrightnessOverride(new net.minecraft.util.Brightness(brightness.getBlockLight(), brightness.getSkyLight()));
this.getHandle().setBrightnessOverride(new net.minecraft.util.Brightness(brightness.getBlockLight(), brightness.getSkyLight()));
} else {
getHandle().setBrightnessOverride(null);
this.getHandle().setBrightnessOverride(null);
}
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityDolphin;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Dolphin;
public class CraftDolphin extends CraftAgeable implements Dolphin {
public CraftDolphin(CraftServer server, EntityDolphin entity) {
public CraftDolphin(CraftServer server, net.minecraft.world.entity.animal.Dolphin entity) {
super(server, entity);
}
@Override
public EntityDolphin getHandle() {
return (EntityDolphin) super.getHandle();
public net.minecraft.world.entity.animal.Dolphin getHandle() {
return (net.minecraft.world.entity.animal.Dolphin) super.getHandle();
}
@Override

View File

@@ -1,13 +1,12 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.horse.EntityHorseDonkey;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Donkey;
import org.bukkit.entity.Horse.Variant;
public class CraftDonkey extends CraftChestedHorse implements Donkey {
public CraftDonkey(CraftServer server, EntityHorseDonkey entity) {
public CraftDonkey(CraftServer server, net.minecraft.world.entity.animal.horse.Donkey entity) {
super(server, entity);
}

View File

@@ -1,11 +1,10 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.projectile.EntityDragonFireball;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.DragonFireball;
public class CraftDragonFireball extends CraftFireball implements DragonFireball {
public CraftDragonFireball(CraftServer server, EntityDragonFireball entity) {
public CraftDragonFireball(CraftServer server, net.minecraft.world.entity.projectile.DragonFireball entity) {
super(server, entity);
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityDrowned;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Drowned;
public class CraftDrowned extends CraftZombie implements Drowned {
public CraftDrowned(CraftServer server, EntityDrowned entity) {
public CraftDrowned(CraftServer server, net.minecraft.world.entity.monster.Drowned entity) {
super(server, entity);
}
@Override
public EntityDrowned getHandle() {
return (EntityDrowned) entity;
public net.minecraft.world.entity.monster.Drowned getHandle() {
return (net.minecraft.world.entity.monster.Drowned) this.entity;
}
@Override

View File

@@ -1,17 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.projectile.EntityEgg;
import net.minecraft.world.entity.projectile.ThrownEgg;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Egg;
public class CraftEgg extends CraftThrowableProjectile implements Egg {
public CraftEgg(CraftServer server, EntityEgg entity) {
public CraftEgg(CraftServer server, ThrownEgg entity) {
super(server, entity);
}
@Override
public EntityEgg getHandle() {
return (EntityEgg) entity;
public ThrownEgg getHandle() {
return (ThrownEgg) this.entity;
}
@Override

View File

@@ -1,12 +1,11 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityGuardianElder;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ElderGuardian;
public class CraftElderGuardian extends CraftGuardian implements ElderGuardian {
public CraftElderGuardian(CraftServer server, EntityGuardianElder entity) {
public CraftElderGuardian(CraftServer server, net.minecraft.world.entity.monster.ElderGuardian entity) {
super(server, entity);
}

View File

@@ -1,47 +1,47 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.boss.enderdragon.EntityEnderCrystal;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.boss.enderdragon.EndCrystal;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.util.CraftLocation;
import org.bukkit.entity.EnderCrystal;
public class CraftEnderCrystal extends CraftEntity implements EnderCrystal {
public CraftEnderCrystal(CraftServer server, EntityEnderCrystal entity) {
public CraftEnderCrystal(CraftServer server, EndCrystal entity) {
super(server, entity);
}
@Override
public boolean isShowingBottom() {
return getHandle().showsBottom();
return this.getHandle().showsBottom();
}
@Override
public void setShowingBottom(boolean showing) {
getHandle().setShowBottom(showing);
this.getHandle().setShowBottom(showing);
}
@Override
public Location getBeamTarget() {
BlockPosition pos = getHandle().getBeamTarget();
return pos == null ? null : CraftLocation.toBukkit(pos, getWorld());
BlockPos pos = this.getHandle().getBeamTarget();
return pos == null ? null : CraftLocation.toBukkit(pos, this.getWorld());
}
@Override
public void setBeamTarget(Location location) {
if (location == null) {
getHandle().setBeamTarget((BlockPosition) null);
} else if (location.getWorld() != getWorld()) {
this.getHandle().setBeamTarget((BlockPos) null);
} else if (location.getWorld() != this.getWorld()) {
throw new IllegalArgumentException("Cannot set beam target location to different world");
} else {
getHandle().setBeamTarget(CraftLocation.toBlockPosition(location));
this.getHandle().setBeamTarget(CraftLocation.toBlockPosition(location));
}
}
@Override
public EntityEnderCrystal getHandle() {
return (EntityEnderCrystal) entity;
public EndCrystal getHandle() {
return (EndCrystal) this.entity;
}
@Override

View File

@@ -3,9 +3,8 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
import java.util.Set;
import net.minecraft.world.entity.boss.EntityComplexPart;
import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
import net.minecraft.world.entity.boss.enderdragon.phases.DragonControllerPhase;
import net.minecraft.world.entity.boss.EnderDragonPart;
import net.minecraft.world.entity.boss.enderdragon.phases.EnderDragonPhase;
import org.bukkit.boss.BossBar;
import org.bukkit.boss.DragonBattle;
import org.bukkit.craftbukkit.CraftServer;
@@ -16,7 +15,7 @@ import org.bukkit.entity.EnderDragon.Phase;
public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnemy {
public CraftEnderDragon(CraftServer server, EntityEnderDragon entity) {
public CraftEnderDragon(CraftServer server, net.minecraft.world.entity.boss.enderdragon.EnderDragon entity) {
super(server, entity);
}
@@ -24,7 +23,7 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem
public Set<ComplexEntityPart> getParts() {
Builder<ComplexEntityPart> builder = ImmutableSet.builder();
for (EntityComplexPart part : getHandle().subEntities) {
for (EnderDragonPart part : this.getHandle().subEntities) {
builder.add((ComplexEntityPart) part.getBukkitEntity());
}
@@ -32,8 +31,8 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem
}
@Override
public EntityEnderDragon getHandle() {
return (EntityEnderDragon) entity;
public net.minecraft.world.entity.boss.enderdragon.EnderDragon getHandle() {
return (net.minecraft.world.entity.boss.enderdragon.EnderDragon) this.entity;
}
@Override
@@ -43,35 +42,35 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem
@Override
public Phase getPhase() {
return Phase.values()[getHandle().getEntityData().get(EntityEnderDragon.DATA_PHASE)];
return Phase.values()[this.getHandle().getEntityData().get(net.minecraft.world.entity.boss.enderdragon.EnderDragon.DATA_PHASE)];
}
@Override
public void setPhase(Phase phase) {
getHandle().getPhaseManager().setPhase(getMinecraftPhase(phase));
this.getHandle().getPhaseManager().setPhase(CraftEnderDragon.getMinecraftPhase(phase));
}
public static Phase getBukkitPhase(DragonControllerPhase phase) {
public static Phase getBukkitPhase(EnderDragonPhase phase) {
return Phase.values()[phase.getId()];
}
public static DragonControllerPhase getMinecraftPhase(Phase phase) {
return DragonControllerPhase.getById(phase.ordinal());
public static EnderDragonPhase getMinecraftPhase(Phase phase) {
return EnderDragonPhase.getById(phase.ordinal());
}
@Override
public BossBar getBossBar() {
DragonBattle battle = getDragonBattle();
DragonBattle battle = this.getDragonBattle();
return battle != null ? battle.getBossBar() : null;
}
@Override
public DragonBattle getDragonBattle() {
return getHandle().getDragonFight() != null ? new CraftDragonBattle(getHandle().getDragonFight()) : null;
return this.getHandle().getDragonFight() != null ? new CraftDragonBattle(this.getHandle().getDragonFight()) : null;
}
@Override
public int getDeathAnimationTicks() {
return getHandle().dragonDeathTime;
return this.getHandle().dragonDeathTime;
}
}

View File

@@ -1,6 +1,5 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.boss.EntityComplexPart;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.damage.DamageSource;
import org.bukkit.entity.EnderDragon;
@@ -8,7 +7,7 @@ import org.bukkit.entity.EnderDragonPart;
import org.bukkit.entity.Entity;
public class CraftEnderDragonPart extends CraftComplexPart implements EnderDragonPart {
public CraftEnderDragonPart(CraftServer server, EntityComplexPart entity) {
public CraftEnderDragonPart(CraftServer server, net.minecraft.world.entity.boss.EnderDragonPart entity) {
super(server, entity);
}
@@ -18,8 +17,8 @@ public class CraftEnderDragonPart extends CraftComplexPart implements EnderDrago
}
@Override
public EntityComplexPart getHandle() {
return (EntityComplexPart) entity;
public net.minecraft.world.entity.boss.EnderDragonPart getHandle() {
return (net.minecraft.world.entity.boss.EnderDragonPart) this.entity;
}
@Override
@@ -29,51 +28,51 @@ public class CraftEnderDragonPart extends CraftComplexPart implements EnderDrago
@Override
public void damage(double amount, DamageSource damageSource) {
getParent().damage(amount, damageSource);
this.getParent().damage(amount, damageSource);
}
@Override
public void damage(double amount) {
getParent().damage(amount);
this.getParent().damage(amount);
}
@Override
public void damage(double amount, Entity source) {
getParent().damage(amount, source);
this.getParent().damage(amount, source);
}
@Override
public double getHealth() {
return getParent().getHealth();
return this.getParent().getHealth();
}
@Override
public void setHealth(double health) {
getParent().setHealth(health);
this.getParent().setHealth(health);
}
@Override
public double getAbsorptionAmount() {
return getParent().getAbsorptionAmount();
return this.getParent().getAbsorptionAmount();
}
@Override
public void setAbsorptionAmount(double amount) {
getParent().setAbsorptionAmount(amount);
this.getParent().setAbsorptionAmount(amount);
}
@Override
public double getMaxHealth() {
return getParent().getMaxHealth();
return this.getParent().getMaxHealth();
}
@Override
public void setMaxHealth(double health) {
getParent().setMaxHealth(health);
this.getParent().setMaxHealth(health);
}
@Override
public void resetMaxHealth() {
getParent().resetMaxHealth();
this.getParent().resetMaxHealth();
}
}

View File

@@ -1,17 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.projectile.EntityEnderPearl;
import net.minecraft.world.entity.projectile.ThrownEnderpearl;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EnderPearl;
public class CraftEnderPearl extends CraftThrowableProjectile implements EnderPearl {
public CraftEnderPearl(CraftServer server, EntityEnderPearl entity) {
public CraftEnderPearl(CraftServer server, ThrownEnderpearl entity) {
super(server, entity);
}
@Override
public EntityEnderPearl getHandle() {
return (EntityEnderPearl) entity;
public ThrownEnderpearl getHandle() {
return (ThrownEnderpearl) this.entity;
}
@Override

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.projectile.EntityEnderSignal;
import net.minecraft.world.entity.projectile.EyeOfEnder;
import net.minecraft.world.item.Items;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
@@ -11,13 +11,13 @@ import org.bukkit.entity.EnderSignal;
import org.bukkit.inventory.ItemStack;
public class CraftEnderSignal extends CraftEntity implements EnderSignal {
public CraftEnderSignal(CraftServer server, EntityEnderSignal entity) {
public CraftEnderSignal(CraftServer server, EyeOfEnder entity) {
super(server, entity);
}
@Override
public EntityEnderSignal getHandle() {
return (EntityEnderSignal) entity;
public EyeOfEnder getHandle() {
return (EyeOfEnder) this.entity;
}
@Override
@@ -27,42 +27,42 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal {
@Override
public Location getTargetLocation() {
return new Location(getWorld(), getHandle().tx, getHandle().ty, getHandle().tz, getHandle().getYRot(), getHandle().getXRot());
return new Location(this.getWorld(), this.getHandle().tx, this.getHandle().ty, this.getHandle().tz, this.getHandle().getYRot(), this.getHandle().getXRot());
}
@Override
public void setTargetLocation(Location location) {
Preconditions.checkArgument(getWorld().equals(location.getWorld()), "Cannot target EnderSignal across worlds");
getHandle().signalTo(CraftLocation.toBlockPosition(location));
Preconditions.checkArgument(this.getWorld().equals(location.getWorld()), "Cannot target EnderSignal across worlds");
this.getHandle().signalTo(CraftLocation.toBlockPosition(location));
}
@Override
public boolean getDropItem() {
return getHandle().surviveAfterDeath;
return this.getHandle().surviveAfterDeath;
}
@Override
public void setDropItem(boolean shouldDropItem) {
getHandle().surviveAfterDeath = shouldDropItem;
this.getHandle().surviveAfterDeath = shouldDropItem;
}
@Override
public ItemStack getItem() {
return CraftItemStack.asBukkitCopy(getHandle().getItem());
return CraftItemStack.asBukkitCopy(this.getHandle().getItem());
}
@Override
public void setItem(ItemStack item) {
getHandle().setItem(item != null ? CraftItemStack.asNMSCopy(item) : Items.ENDER_EYE.getDefaultInstance());
this.getHandle().setItem(item != null ? CraftItemStack.asNMSCopy(item) : Items.ENDER_EYE.getDefaultInstance());
}
@Override
public int getDespawnTimer() {
return getHandle().life;
return this.getHandle().life;
}
@Override
public void setDespawnTimer(int time) {
getHandle().life = time;
this.getHandle().life = time;
}
}

View File

@@ -1,8 +1,8 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.monster.EntityEnderman;
import net.minecraft.world.level.block.state.IBlockData;
import net.minecraft.world.entity.monster.EnderMan;
import net.minecraft.world.level.block.state.BlockState;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.CraftServer;
@@ -13,35 +13,35 @@ import org.bukkit.entity.Entity;
import org.bukkit.material.MaterialData;
public class CraftEnderman extends CraftMonster implements Enderman {
public CraftEnderman(CraftServer server, EntityEnderman entity) {
public CraftEnderman(CraftServer server, EnderMan entity) {
super(server, entity);
}
@Override
public MaterialData getCarriedMaterial() {
IBlockData blockData = getHandle().getCarriedBlock();
BlockState blockData = this.getHandle().getCarriedBlock();
return (blockData == null) ? Material.AIR.getNewData((byte) 0) : CraftMagicNumbers.getMaterial(blockData);
}
@Override
public BlockData getCarriedBlock() {
IBlockData blockData = getHandle().getCarriedBlock();
BlockState blockData = this.getHandle().getCarriedBlock();
return (blockData == null) ? null : CraftBlockData.fromData(blockData);
}
@Override
public void setCarriedMaterial(MaterialData data) {
getHandle().setCarriedBlock(CraftMagicNumbers.getBlock(data));
this.getHandle().setCarriedBlock(CraftMagicNumbers.getBlock(data));
}
@Override
public void setCarriedBlock(BlockData blockData) {
getHandle().setCarriedBlock(blockData == null ? null : ((CraftBlockData) blockData).getState());
this.getHandle().setCarriedBlock(blockData == null ? null : ((CraftBlockData) blockData).getState());
}
@Override
public EntityEnderman getHandle() {
return (EntityEnderman) entity;
public EnderMan getHandle() {
return (EnderMan) this.entity;
}
@Override
@@ -51,13 +51,13 @@ public class CraftEnderman extends CraftMonster implements Enderman {
@Override
public boolean teleport() {
return getHandle().teleport();
return this.getHandle().teleport();
}
@Override
public boolean teleportTowards(Entity entity) {
Preconditions.checkArgument(entity != null, "entity cannot be null");
return getHandle().teleportTowards(((CraftEntity) entity).getHandle());
return this.getHandle().teleportTowards(((CraftEntity) entity).getHandle());
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityEndermite;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Endermite;
public class CraftEndermite extends CraftMonster implements Endermite {
public CraftEndermite(CraftServer server, EntityEndermite entity) {
public CraftEndermite(CraftServer server, net.minecraft.world.entity.monster.Endermite entity) {
super(server, entity);
}
@Override
public EntityEndermite getHandle() {
return (EntityEndermite) super.getHandle();
public net.minecraft.world.entity.monster.Endermite getHandle() {
return (net.minecraft.world.entity.monster.Endermite) super.getHandle();
}
@Override

View File

@@ -1,9 +1,8 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.IMonster;
import org.bukkit.entity.Enemy;
public interface CraftEnemy extends Enemy {
IMonster getHandle();
net.minecraft.world.entity.monster.Enemy getHandle();
}

View File

@@ -8,23 +8,21 @@ import com.google.common.collect.Lists;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.server.level.PlayerChunkMap;
import net.minecraft.server.level.WorldServer;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ChunkMap;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.ServerPlayerConnection;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntitySpawnReason;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.boss.EntityComplexPart;
import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
import net.minecraft.world.entity.player.EntityHuman;
import net.minecraft.world.entity.projectile.EntityArrow;
import net.minecraft.world.entity.boss.EnderDragonPart;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.level.portal.TeleportTransition;
import net.minecraft.world.phys.AxisAlignedBB;
import net.minecraft.world.phys.Vec3D;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.Server;
@@ -69,7 +67,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
protected Entity entity;
private final EntityType entityType;
private EntityDamageEvent lastDamageEvent;
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(DATA_TYPE_REGISTRY);
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY);
public CraftEntity(final CraftServer server, final Entity entity) {
this.server = server;
@@ -81,13 +79,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(entity != null, "Unknown entity");
// Special case human, since bukkit use Player interface for ...
if (entity instanceof EntityHuman && !(entity instanceof EntityPlayer)) {
return new CraftHumanEntity(server, (EntityHuman) entity);
if (entity instanceof net.minecraft.world.entity.player.Player && !(entity instanceof ServerPlayer)) {
return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity);
}
// Special case complex part, since there is no extra entity type for them
if (entity instanceof EntityComplexPart complexPart) {
if (complexPart.parentMob instanceof EntityEnderDragon) {
if (entity instanceof EnderDragonPart complexPart) {
if (complexPart.parentMob instanceof EnderDragon) {
return new CraftEnderDragonPart(server, complexPart);
} else {
return new CraftComplexPart(server, complexPart);
@@ -105,18 +103,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public Location getLocation() {
return CraftLocation.toBukkit(entity.position(), getWorld(), entity.getBukkitYaw(), entity.getXRot());
return CraftLocation.toBukkit(this.entity.position(), this.getWorld(), this.entity.getBukkitYaw(), this.entity.getXRot());
}
@Override
public Location getLocation(Location loc) {
if (loc != null) {
loc.setWorld(getWorld());
loc.setX(entity.getX());
loc.setY(entity.getY());
loc.setZ(entity.getZ());
loc.setYaw(entity.getBukkitYaw());
loc.setPitch(entity.getXRot());
loc.setWorld(this.getWorld());
loc.setX(this.entity.getX());
loc.setY(this.entity.getY());
loc.setZ(this.entity.getZ());
loc.setYaw(this.entity.getBukkitYaw());
loc.setPitch(this.entity.getXRot());
}
return loc;
@@ -124,49 +122,49 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public Vector getVelocity() {
return CraftVector.toBukkit(entity.getDeltaMovement());
return CraftVector.toBukkit(this.entity.getDeltaMovement());
}
@Override
public void setVelocity(Vector velocity) {
Preconditions.checkArgument(velocity != null, "velocity");
velocity.checkFinite();
entity.setDeltaMovement(CraftVector.toNMS(velocity));
entity.hurtMarked = true;
this.entity.setDeltaMovement(CraftVector.toNMS(velocity));
this.entity.hurtMarked = true;
}
@Override
public double getHeight() {
return getHandle().getBbHeight();
return this.getHandle().getBbHeight();
}
@Override
public double getWidth() {
return getHandle().getBbWidth();
return this.getHandle().getBbWidth();
}
@Override
public BoundingBox getBoundingBox() {
AxisAlignedBB bb = getHandle().getBoundingBox();
AABB bb = this.getHandle().getBoundingBox();
return new BoundingBox(bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ);
}
@Override
public boolean isOnGround() {
if (entity instanceof EntityArrow) {
return ((EntityArrow) entity).isInGround();
if (this.entity instanceof AbstractArrow) {
return ((AbstractArrow) this.entity).isInGround();
}
return entity.onGround();
return this.entity.onGround();
}
@Override
public boolean isInWater() {
return entity.isInWater();
return this.entity.isInWater();
}
@Override
public World getWorld() {
return entity.level().getWorld();
return this.entity.level().getWorld();
}
@Override
@@ -177,16 +175,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
yaw = Location.normalizeYaw(yaw);
pitch = Location.normalizePitch(pitch);
entity.setYRot(yaw);
entity.setXRot(pitch);
entity.yRotO = yaw;
entity.xRotO = pitch;
entity.setYHeadRot(yaw);
this.entity.setYRot(yaw);
this.entity.setXRot(pitch);
this.entity.yRotO = yaw;
this.entity.xRotO = pitch;
this.entity.setYHeadRot(yaw);
}
@Override
public boolean teleport(Location location) {
return teleport(location, TeleportCause.PLUGIN);
return this.teleport(location, TeleportCause.PLUGIN);
}
@Override
@@ -194,44 +192,44 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(location != null, "location cannot be null");
location.checkFinite();
if (entity.isVehicle() || entity.isRemoved()) {
if (this.entity.isVehicle() || this.entity.isRemoved()) {
return false;
}
// If this entity is riding another entity, we must dismount before teleporting.
entity.stopRiding();
this.entity.stopRiding();
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(getWorld())) {
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
// Prevent teleportation to an other world during world generation
Preconditions.checkState(!entity.generation, "Cannot teleport entity to an other world during world generation");
entity.teleport(new TeleportTransition(((CraftWorld) location.getWorld()).getHandle(), CraftLocation.toVec3D(location), Vec3D.ZERO, location.getPitch(), location.getYaw(), Set.of(), TeleportTransition.DO_NOTHING, TeleportCause.PLUGIN));
Preconditions.checkState(!this.entity.generation, "Cannot teleport entity to an other world during world generation");
this.entity.teleport(new TeleportTransition(((CraftWorld) location.getWorld()).getHandle(), CraftLocation.toVec3D(location), Vec3.ZERO, location.getPitch(), location.getYaw(), Set.of(), TeleportTransition.DO_NOTHING, TeleportCause.PLUGIN));
return true;
}
// entity.setLocation() throws no event, and so cannot be cancelled
entity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
this.entity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
// SPIGOT-619: Force sync head rotation also
entity.setYHeadRot(location.getYaw());
this.entity.setYHeadRot(location.getYaw());
return true;
}
@Override
public boolean teleport(org.bukkit.entity.Entity destination) {
return teleport(destination.getLocation());
return this.teleport(destination.getLocation());
}
@Override
public boolean teleport(org.bukkit.entity.Entity destination, TeleportCause cause) {
return teleport(destination.getLocation(), cause);
return this.teleport(destination.getLocation(), cause);
}
@Override
public List<org.bukkit.entity.Entity> getNearbyEntities(double x, double y, double z) {
Preconditions.checkState(!entity.generation, "Cannot get nearby entities during world generation");
Preconditions.checkState(!this.entity.generation, "Cannot get nearby entities during world generation");
List<Entity> notchEntityList = entity.level().getEntities(entity, entity.getBoundingBox().inflate(x, y, z), Predicates.alwaysTrue());
List<Entity> notchEntityList = this.entity.level().getEntities(this.entity, this.entity.getBoundingBox().inflate(x, y, z), Predicates.alwaysTrue());
List<org.bukkit.entity.Entity> bukkitEntityList = new java.util.ArrayList<org.bukkit.entity.Entity>(notchEntityList.size());
for (Entity e : notchEntityList) {
@@ -242,106 +240,106 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public int getEntityId() {
return entity.getId();
return this.entity.getId();
}
@Override
public int getFireTicks() {
return entity.getRemainingFireTicks();
return this.entity.getRemainingFireTicks();
}
@Override
public int getMaxFireTicks() {
return entity.getFireImmuneTicks();
return this.entity.getFireImmuneTicks();
}
@Override
public void setFireTicks(int ticks) {
entity.setRemainingFireTicks(ticks);
this.entity.setRemainingFireTicks(ticks);
}
@Override
public void setVisualFire(boolean fire) {
getHandle().hasVisualFire = fire;
this.getHandle().hasVisualFire = fire;
}
@Override
public boolean isVisualFire() {
return getHandle().hasVisualFire;
return this.getHandle().hasVisualFire;
}
@Override
public int getFreezeTicks() {
return getHandle().getTicksFrozen();
return this.getHandle().getTicksFrozen();
}
@Override
public int getMaxFreezeTicks() {
return getHandle().getTicksRequiredToFreeze();
return this.getHandle().getTicksRequiredToFreeze();
}
@Override
public void setFreezeTicks(int ticks) {
Preconditions.checkArgument(0 <= ticks, "Ticks (%s) cannot be less than 0", ticks);
getHandle().setTicksFrozen(ticks);
this.getHandle().setTicksFrozen(ticks);
}
@Override
public boolean isFrozen() {
return getHandle().isFullyFrozen();
return this.getHandle().isFullyFrozen();
}
@Override
public void remove() {
entity.pluginRemoved = true;
entity.discard(getHandle().generation ? null : EntityRemoveEvent.Cause.PLUGIN);
this.entity.pluginRemoved = true;
this.entity.discard(this.getHandle().generation ? null : EntityRemoveEvent.Cause.PLUGIN);
}
@Override
public boolean isDead() {
return !entity.isAlive();
return !this.entity.isAlive();
}
@Override
public boolean isValid() {
return entity.isAlive() && entity.valid && entity.isChunkLoaded() && isInWorld();
return this.entity.isAlive() && this.entity.valid && this.entity.isChunkLoaded() && this.isInWorld();
}
@Override
public Server getServer() {
return server;
return this.server;
}
@Override
public boolean isPersistent() {
return entity.persist;
return this.entity.persist;
}
@Override
public void setPersistent(boolean persistent) {
entity.persist = persistent;
this.entity.persist = persistent;
}
public Vector getMomentum() {
return getVelocity();
return this.getVelocity();
}
public void setMomentum(Vector value) {
setVelocity(value);
this.setVelocity(value);
}
@Override
public org.bukkit.entity.Entity getPassenger() {
return isEmpty() ? null : getHandle().passengers.get(0).getBukkitEntity();
return this.isEmpty() ? null : this.getHandle().passengers.get(0).getBukkitEntity();
}
@Override
public boolean setPassenger(org.bukkit.entity.Entity passenger) {
Preconditions.checkArgument(!this.equals(passenger), "Entity cannot ride itself.");
if (passenger instanceof CraftEntity) {
eject();
return ((CraftEntity) passenger).getHandle().startRiding(getHandle());
this.eject();
return ((CraftEntity) passenger).getHandle().startRiding(this.getHandle());
} else {
return false;
}
@@ -349,7 +347,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public List<org.bukkit.entity.Entity> getPassengers() {
return Lists.newArrayList(Lists.transform(getHandle().passengers, (Function<Entity, org.bukkit.entity.Entity>) input -> input.getBukkitEntity()));
return Lists.newArrayList(Lists.transform(this.getHandle().passengers, (Function<Entity, org.bukkit.entity.Entity>) input -> input.getBukkitEntity()));
}
@Override
@@ -357,7 +355,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(passenger != null, "Entity passenger cannot be null");
Preconditions.checkArgument(!this.equals(passenger), "Entity cannot ride itself.");
return ((CraftEntity) passenger).getHandle().startRiding(getHandle(), true);
return ((CraftEntity) passenger).getHandle().startRiding(this.getHandle(), true);
}
@Override
@@ -370,87 +368,87 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public boolean isEmpty() {
return !getHandle().isVehicle();
return !this.getHandle().isVehicle();
}
@Override
public boolean eject() {
if (isEmpty()) {
if (this.isEmpty()) {
return false;
}
getHandle().ejectPassengers();
this.getHandle().ejectPassengers();
return true;
}
@Override
public float getFallDistance() {
return getHandle().fallDistance;
return this.getHandle().fallDistance;
}
@Override
public void setFallDistance(float distance) {
getHandle().fallDistance = distance;
this.getHandle().fallDistance = distance;
}
@Override
public void setLastDamageCause(EntityDamageEvent event) {
lastDamageEvent = event;
this.lastDamageEvent = event;
}
@Override
public EntityDamageEvent getLastDamageCause() {
return lastDamageEvent;
return this.lastDamageEvent;
}
@Override
public UUID getUniqueId() {
return getHandle().getUUID();
return this.getHandle().getUUID();
}
@Override
public int getTicksLived() {
return getHandle().tickCount;
return this.getHandle().tickCount;
}
@Override
public void setTicksLived(int value) {
Preconditions.checkArgument(value > 0, "Age value (%s) must be greater than 0", value);
getHandle().tickCount = value;
this.getHandle().tickCount = value;
}
public Entity getHandle() {
return entity;
return this.entity;
}
@Override
public final EntityType getType() {
return entityType;
return this.entityType;
}
@Override
public void playEffect(EntityEffect type) {
Preconditions.checkArgument(type != null, "Type cannot be null");
Preconditions.checkState(!entity.generation, "Cannot play effect during world generation");
Preconditions.checkState(!this.entity.generation, "Cannot play effect during world generation");
if (type.getApplicable().isInstance(this)) {
this.getHandle().level().broadcastEntityEvent(getHandle(), type.getData());
this.getHandle().level().broadcastEntityEvent(this.getHandle(), type.getData());
}
}
@Override
public Sound getSwimSound() {
return CraftSound.minecraftToBukkit(getHandle().getSwimSound0());
return CraftSound.minecraftToBukkit(this.getHandle().getSwimSound0());
}
@Override
public Sound getSwimSplashSound() {
return CraftSound.minecraftToBukkit(getHandle().getSwimSplashSound0());
return CraftSound.minecraftToBukkit(this.getHandle().getSwimSplashSound0());
}
@Override
public Sound getSwimHighSpeedSplashSound() {
return CraftSound.minecraftToBukkit(getHandle().getSwimHighSpeedSplashSound0());
return CraftSound.minecraftToBukkit(this.getHandle().getSwimHighSpeedSplashSound0());
}
public void setHandle(final Entity entity) {
@@ -459,7 +457,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public String toString() {
return "CraftEntity{" + "id=" + getEntityId() + '}';
return "CraftEntity{" + "id=" + this.getEntityId() + '}';
}
@Override
@@ -467,7 +465,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
if (this.getClass() != obj.getClass()) {
return false;
}
final CraftEntity other = (CraftEntity) obj;
@@ -483,46 +481,46 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
server.getEntityMetadata().setMetadata(this, metadataKey, newMetadataValue);
this.server.getEntityMetadata().setMetadata(this, metadataKey, newMetadataValue);
}
@Override
public List<MetadataValue> getMetadata(String metadataKey) {
return server.getEntityMetadata().getMetadata(this, metadataKey);
return this.server.getEntityMetadata().getMetadata(this, metadataKey);
}
@Override
public boolean hasMetadata(String metadataKey) {
return server.getEntityMetadata().hasMetadata(this, metadataKey);
return this.server.getEntityMetadata().hasMetadata(this, metadataKey);
}
@Override
public void removeMetadata(String metadataKey, Plugin owningPlugin) {
server.getEntityMetadata().removeMetadata(this, metadataKey, owningPlugin);
this.server.getEntityMetadata().removeMetadata(this, metadataKey, owningPlugin);
}
@Override
public boolean isInsideVehicle() {
return getHandle().isPassenger();
return this.getHandle().isPassenger();
}
@Override
public boolean leaveVehicle() {
if (!isInsideVehicle()) {
if (!this.isInsideVehicle()) {
return false;
}
getHandle().stopRiding();
this.getHandle().stopRiding();
return true;
}
@Override
public org.bukkit.entity.Entity getVehicle() {
if (!isInsideVehicle()) {
if (!this.isInsideVehicle()) {
return null;
}
return getHandle().getVehicle().getBukkitEntity();
return this.getHandle().getVehicle().getBukkitEntity();
}
@Override
@@ -532,12 +530,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
name = name.substring(0, 256);
}
getHandle().setCustomName(CraftChatMessage.fromStringOrNull(name));
this.getHandle().setCustomName(CraftChatMessage.fromStringOrNull(name));
}
@Override
public String getCustomName() {
IChatBaseComponent name = getHandle().getCustomName();
Component name = this.getHandle().getCustomName();
if (name == null) {
return null;
@@ -548,45 +546,45 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public void setCustomNameVisible(boolean flag) {
getHandle().setCustomNameVisible(flag);
this.getHandle().setCustomNameVisible(flag);
}
@Override
public boolean isCustomNameVisible() {
return getHandle().isCustomNameVisible();
return this.getHandle().isCustomNameVisible();
}
@Override
public void setVisibleByDefault(boolean visible) {
if (getHandle().visibleByDefault != visible) {
if (this.getHandle().visibleByDefault != visible) {
if (visible) {
// Making visible by default, reset and show to all players
for (Player player : server.getOnlinePlayers()) {
for (Player player : this.server.getOnlinePlayers()) {
((CraftPlayer) player).resetAndShowEntity(this);
}
} else {
// Hiding by default, reset and hide from all players
for (Player player : server.getOnlinePlayers()) {
for (Player player : this.server.getOnlinePlayers()) {
((CraftPlayer) player).resetAndHideEntity(this);
}
}
getHandle().visibleByDefault = visible;
this.getHandle().visibleByDefault = visible;
}
}
@Override
public boolean isVisibleByDefault() {
return getHandle().visibleByDefault;
return this.getHandle().visibleByDefault;
}
@Override
public Set<Player> getTrackedBy() {
Preconditions.checkState(!entity.generation, "Cannot get tracking players during world generation");
Preconditions.checkState(!this.entity.generation, "Cannot get tracking players during world generation");
ImmutableSet.Builder<Player> players = ImmutableSet.builder();
WorldServer world = ((CraftWorld) getWorld()).getHandle();
PlayerChunkMap.EntityTracker entityTracker = world.getChunkSource().chunkMap.entityMap.get(getEntityId());
ServerLevel world = ((CraftWorld) this.getWorld()).getHandle();
ChunkMap.TrackedEntity entityTracker = world.getChunkSource().chunkMap.entityMap.get(this.getEntityId());
if (entityTracker != null) {
for (ServerPlayerConnection connection : entityTracker.seenBy) {
@@ -619,12 +617,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public String getName() {
return CraftChatMessage.fromComponent(getHandle().getName());
return CraftChatMessage.fromComponent(this.getHandle().getName());
}
@Override
public boolean isPermissionSet(String name) {
return getPermissibleBase().isPermissionSet(name);
return CraftEntity.getPermissibleBase().isPermissionSet(name);
}
@Override
@@ -634,159 +632,159 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public boolean hasPermission(String name) {
return getPermissibleBase().hasPermission(name);
return CraftEntity.getPermissibleBase().hasPermission(name);
}
@Override
public boolean hasPermission(Permission perm) {
return getPermissibleBase().hasPermission(perm);
return CraftEntity.getPermissibleBase().hasPermission(perm);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
return getPermissibleBase().addAttachment(plugin, name, value);
return CraftEntity.getPermissibleBase().addAttachment(plugin, name, value);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin) {
return getPermissibleBase().addAttachment(plugin);
return CraftEntity.getPermissibleBase().addAttachment(plugin);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
return getPermissibleBase().addAttachment(plugin, name, value, ticks);
return CraftEntity.getPermissibleBase().addAttachment(plugin, name, value, ticks);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
return getPermissibleBase().addAttachment(plugin, ticks);
return CraftEntity.getPermissibleBase().addAttachment(plugin, ticks);
}
@Override
public void removeAttachment(PermissionAttachment attachment) {
getPermissibleBase().removeAttachment(attachment);
CraftEntity.getPermissibleBase().removeAttachment(attachment);
}
@Override
public void recalculatePermissions() {
getPermissibleBase().recalculatePermissions();
CraftEntity.getPermissibleBase().recalculatePermissions();
}
@Override
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
return getPermissibleBase().getEffectivePermissions();
return CraftEntity.getPermissibleBase().getEffectivePermissions();
}
@Override
public boolean isOp() {
return getPermissibleBase().isOp();
return CraftEntity.getPermissibleBase().isOp();
}
@Override
public void setOp(boolean value) {
getPermissibleBase().setOp(value);
CraftEntity.getPermissibleBase().setOp(value);
}
@Override
public void setGlowing(boolean flag) {
getHandle().setGlowingTag(flag);
this.getHandle().setGlowingTag(flag);
}
@Override
public boolean isGlowing() {
return getHandle().isCurrentlyGlowing();
return this.getHandle().isCurrentlyGlowing();
}
@Override
public void setInvulnerable(boolean flag) {
getHandle().setInvulnerable(flag);
this.getHandle().setInvulnerable(flag);
}
@Override
public boolean isInvulnerable() {
return getHandle().isInvulnerableToBase(getHandle().damageSources().generic());
return this.getHandle().isInvulnerableToBase(this.getHandle().damageSources().generic());
}
@Override
public boolean isSilent() {
return getHandle().isSilent();
return this.getHandle().isSilent();
}
@Override
public void setSilent(boolean flag) {
getHandle().setSilent(flag);
this.getHandle().setSilent(flag);
}
@Override
public boolean hasGravity() {
return !getHandle().isNoGravity();
return !this.getHandle().isNoGravity();
}
@Override
public void setGravity(boolean gravity) {
getHandle().setNoGravity(!gravity);
this.getHandle().setNoGravity(!gravity);
}
@Override
public int getPortalCooldown() {
return getHandle().portalCooldown;
return this.getHandle().portalCooldown;
}
@Override
public void setPortalCooldown(int cooldown) {
getHandle().portalCooldown = cooldown;
this.getHandle().portalCooldown = cooldown;
}
@Override
public Set<String> getScoreboardTags() {
return getHandle().getTags();
return this.getHandle().getTags();
}
@Override
public boolean addScoreboardTag(String tag) {
return getHandle().addTag(tag);
return this.getHandle().addTag(tag);
}
@Override
public boolean removeScoreboardTag(String tag) {
return getHandle().removeTag(tag);
return this.getHandle().removeTag(tag);
}
@Override
public PistonMoveReaction getPistonMoveReaction() {
return PistonMoveReaction.getById(getHandle().getPistonPushReaction().ordinal());
return PistonMoveReaction.getById(this.getHandle().getPistonPushReaction().ordinal());
}
@Override
public BlockFace getFacing() {
// Use this method over getDirection because it handles boats and minecarts.
return CraftBlock.notchToBlockFace(getHandle().getMotionDirection());
return CraftBlock.notchToBlockFace(this.getHandle().getMotionDirection());
}
@Override
public CraftPersistentDataContainer getPersistentDataContainer() {
return persistentDataContainer;
return this.persistentDataContainer;
}
@Override
public Pose getPose() {
return Pose.values()[getHandle().getPose().ordinal()];
return Pose.values()[this.getHandle().getPose().ordinal()];
}
@Override
public SpawnCategory getSpawnCategory() {
return CraftSpawnCategory.toBukkit(getHandle().getType().getCategory());
return CraftSpawnCategory.toBukkit(this.getHandle().getType().getCategory());
}
@Override
public boolean isInWorld() {
return getHandle().inWorld;
return this.getHandle().inWorld;
}
@Override
public String getAsString() {
NBTTagCompound tag = new NBTTagCompound();
if (!getHandle().saveAsPassenger(tag, false)) {
CompoundTag tag = new CompoundTag();
if (!this.getHandle().saveAsPassenger(tag, false)) {
return null;
}
@@ -800,7 +798,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public org.bukkit.entity.Entity copy() {
Entity copy = copy(getHandle().level());
Entity copy = this.copy(this.getHandle().level());
Preconditions.checkArgument(copy != null, "Error creating new entity.");
return copy.getBukkitEntity();
@@ -810,76 +808,76 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public org.bukkit.entity.Entity copy(Location location) {
Preconditions.checkArgument(location.getWorld() != null, "Location has no world");
Entity copy = copy(((CraftWorld) location.getWorld()).getHandle());
Entity copy = this.copy(((CraftWorld) location.getWorld()).getHandle());
Preconditions.checkArgument(copy != null, "Error creating new entity.");
copy.setPos(location.getX(), location.getY(), location.getZ());
return location.getWorld().addEntity(copy.getBukkitEntity());
}
private Entity copy(net.minecraft.world.level.World level) {
NBTTagCompound compoundTag = new NBTTagCompound();
getHandle().saveAsPassenger(compoundTag, false);
private Entity copy(net.minecraft.world.level.Level level) {
CompoundTag compoundTag = new CompoundTag();
this.getHandle().saveAsPassenger(compoundTag, false);
return EntityTypes.loadEntityRecursive(compoundTag, level, EntitySpawnReason.LOAD, java.util.function.Function.identity());
return net.minecraft.world.entity.EntityType.loadEntityRecursive(compoundTag, level, EntitySpawnReason.LOAD, java.util.function.Function.identity());
}
public void storeBukkitValues(NBTTagCompound c) {
public void storeBukkitValues(CompoundTag c) {
if (!this.persistentDataContainer.isEmpty()) {
c.put("BukkitValues", this.persistentDataContainer.toTagCompound());
}
}
public void readBukkitValues(NBTTagCompound c) {
NBTBase base = c.get("BukkitValues");
if (base instanceof NBTTagCompound) {
this.persistentDataContainer.putAll((NBTTagCompound) base);
public void readBukkitValues(CompoundTag c) {
Tag base = c.get("BukkitValues");
if (base instanceof CompoundTag) {
this.persistentDataContainer.putAll((CompoundTag) base);
}
}
protected NBTTagCompound save() {
NBTTagCompound nbttagcompound = new NBTTagCompound();
protected CompoundTag save() {
CompoundTag nbttagcompound = new CompoundTag();
nbttagcompound.putString("id", getHandle().getEncodeId());
getHandle().saveWithoutId(nbttagcompound);
nbttagcompound.putString("id", this.getHandle().getEncodeId());
this.getHandle().saveWithoutId(nbttagcompound);
return nbttagcompound;
}
// re-sends the spawn entity packet to updated values which cannot be updated otherwise
protected void update() {
if (!getHandle().isAlive()) {
if (!this.getHandle().isAlive()) {
return;
}
WorldServer world = ((CraftWorld) getWorld()).getHandle();
PlayerChunkMap.EntityTracker entityTracker = world.getChunkSource().chunkMap.entityMap.get(getEntityId());
ServerLevel world = ((CraftWorld) this.getWorld()).getHandle();
ChunkMap.TrackedEntity entityTracker = world.getChunkSource().chunkMap.entityMap.get(this.getEntityId());
if (entityTracker == null) {
return;
}
entityTracker.broadcast(getHandle().getAddEntityPacket(entityTracker.serverEntity));
entityTracker.broadcast(this.getHandle().getAddEntityPacket(entityTracker.serverEntity));
}
public void update(EntityPlayer player) {
if (!getHandle().isAlive()) {
public void update(ServerPlayer player) {
if (!this.getHandle().isAlive()) {
return;
}
WorldServer world = ((CraftWorld) getWorld()).getHandle();
PlayerChunkMap.EntityTracker entityTracker = world.getChunkSource().chunkMap.entityMap.get(getEntityId());
ServerLevel world = ((CraftWorld) this.getWorld()).getHandle();
ChunkMap.TrackedEntity entityTracker = world.getChunkSource().chunkMap.entityMap.get(this.getEntityId());
if (entityTracker == null) {
return;
}
player.connection.send(getHandle().getAddEntityPacket(entityTracker.serverEntity));
player.connection.send(this.getHandle().getAddEntityPacket(entityTracker.serverEntity));
}
private static PermissibleBase getPermissibleBase() {
if (perm == null) {
perm = new PermissibleBase(new ServerOperator() {
if (CraftEntity.perm == null) {
CraftEntity.perm = new PermissibleBase(new ServerOperator() {
@Override
public boolean isOp() {
@@ -892,6 +890,6 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
});
}
return perm;
return CraftEntity.perm;
}
}

View File

@@ -2,9 +2,9 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.minecraft.nbt.MojangsonParser;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.TagParser;
import net.minecraft.world.entity.EntityType;
import org.bukkit.entity.EntityFactory;
import org.bukkit.entity.EntitySnapshot;
@@ -23,14 +23,14 @@ public class CraftEntityFactory implements EntityFactory {
public EntitySnapshot createEntitySnapshot(String input) {
Preconditions.checkArgument(input != null, "Input string cannot be null");
NBTTagCompound tag;
CompoundTag tag;
try {
tag = MojangsonParser.parseTag(input);
tag = TagParser.parseTag(input);
} catch (CommandSyntaxException e) {
throw new IllegalArgumentException("Could not parse Entity: " + input, e);
}
EntityTypes<?> type = EntityTypes.by(tag).orElse(null);
EntityType<?> type = EntityType.by(tag).orElse(null);
if (type == null) {
throw new IllegalArgumentException("Could not parse Entity: " + input);
}
@@ -39,6 +39,6 @@ public class CraftEntityFactory implements EntityFactory {
}
public static CraftEntityFactory instance() {
return instance;
return CraftEntityFactory.instance;
}
}

View File

@@ -2,9 +2,8 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.function.Function;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.EntitySpawnReason;
import net.minecraft.world.entity.EntityTypes;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.craftbukkit.CraftWorld;
@@ -13,22 +12,22 @@ import org.bukkit.entity.EntitySnapshot;
import org.bukkit.entity.EntityType;
public class CraftEntitySnapshot implements EntitySnapshot {
private final NBTTagCompound data;
private final CompoundTag data;
private final EntityType type;
private CraftEntitySnapshot(NBTTagCompound data, EntityType type) {
private CraftEntitySnapshot(CompoundTag data, EntityType type) {
this.data = data;
this.type = type;
}
@Override
public EntityType getEntityType() {
return type;
return this.type;
}
@Override
public Entity createEntity(World world) {
net.minecraft.world.entity.Entity internal = createInternal(world);
net.minecraft.world.entity.Entity internal = this.createInternal(world);
return internal.getBukkitEntity();
}
@@ -37,7 +36,7 @@ public class CraftEntitySnapshot implements EntitySnapshot {
public Entity createEntity(Location location) {
Preconditions.checkArgument(location.getWorld() != null, "Location has no world");
net.minecraft.world.entity.Entity internal = createInternal(location.getWorld());
net.minecraft.world.entity.Entity internal = this.createInternal(location.getWorld());
internal.setPos(location.getX(), location.getY(), location.getZ());
return location.getWorld().addEntity(internal.getBukkitEntity());
@@ -45,28 +44,28 @@ public class CraftEntitySnapshot implements EntitySnapshot {
@Override
public String getAsString() {
return data.getAsString();
return this.data.getAsString();
}
private net.minecraft.world.entity.Entity createInternal(World world) {
net.minecraft.world.level.World nms = ((CraftWorld) world).getHandle();
net.minecraft.world.entity.Entity internal = EntityTypes.loadEntityRecursive(data, nms, EntitySpawnReason.LOAD, Function.identity());
net.minecraft.world.level.Level nms = ((CraftWorld) world).getHandle();
net.minecraft.world.entity.Entity internal = net.minecraft.world.entity.EntityType.loadEntityRecursive(this.data, nms, EntitySpawnReason.LOAD, Function.identity());
if (internal == null) { // Try creating by type
internal = CraftEntityType.bukkitToMinecraft(type).create(nms, EntitySpawnReason.LOAD);
internal = CraftEntityType.bukkitToMinecraft(this.type).create(nms, EntitySpawnReason.LOAD);
}
Preconditions.checkArgument(internal != null, "Error creating new entity."); // This should only fail if the stored NBTTagCompound is malformed.
internal.load(data);
internal.load(this.data);
return internal;
}
public NBTTagCompound getData() {
return data;
public CompoundTag getData() {
return this.data;
}
public static CraftEntitySnapshot create(CraftEntity entity) {
NBTTagCompound tag = new NBTTagCompound();
CompoundTag tag = new CompoundTag();
if (!entity.getHandle().saveAsPassenger(tag, false)) {
return null;
}
@@ -74,7 +73,7 @@ public class CraftEntitySnapshot implements EntitySnapshot {
return new CraftEntitySnapshot(tag, entity.getType());
}
public static CraftEntitySnapshot create(NBTTagCompound tag, EntityType type) {
public static CraftEntitySnapshot create(CompoundTag tag, EntityType type) {
if (tag == null || tag.isEmpty() || type == null) {
return null;
}
@@ -82,8 +81,8 @@ public class CraftEntitySnapshot implements EntitySnapshot {
return new CraftEntitySnapshot(tag, type);
}
public static CraftEntitySnapshot create(NBTTagCompound tag) {
EntityType type = EntityTypes.by(tag).map(CraftEntityType::minecraftToBukkit).orElse(null);
return create(tag, type);
public static CraftEntitySnapshot create(CompoundTag tag) {
EntityType type = net.minecraft.world.entity.EntityType.by(tag).map(CraftEntityType::minecraftToBukkit).orElse(null);
return CraftEntitySnapshot.create(tag, type);
}
}

View File

@@ -3,9 +3,7 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.Locale;
import net.minecraft.core.Holder;
import net.minecraft.core.IRegistry;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.entity.EntityTypes;
import org.bukkit.NamespacedKey;
import org.bukkit.Registry;
import org.bukkit.craftbukkit.CraftRegistry;
@@ -16,10 +14,10 @@ import org.bukkit.entity.EntityType;
public class CraftEntityType {
public static EntityType minecraftToBukkit(EntityTypes<?> minecraft) {
public static EntityType minecraftToBukkit(net.minecraft.world.entity.EntityType<?> minecraft) {
Preconditions.checkArgument(minecraft != null);
IRegistry<EntityTypes<?>> registry = CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE);
net.minecraft.core.Registry<net.minecraft.world.entity.EntityType<?>> registry = CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE);
EntityType bukkit = Registry.ENTITY_TYPE.get(CraftNamespacedKey.fromMinecraft(registry.getResourceKey(minecraft).orElseThrow().location()));
Preconditions.checkArgument(bukkit != null);
@@ -27,19 +25,19 @@ public class CraftEntityType {
return bukkit;
}
public static EntityTypes<?> bukkitToMinecraft(EntityType bukkit) {
public static net.minecraft.world.entity.EntityType<?> bukkitToMinecraft(EntityType bukkit) {
Preconditions.checkArgument(bukkit != null);
return CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE)
.getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow();
}
public static Holder<EntityTypes<?>> bukkitToMinecraftHolder(EntityType bukkit) {
public static Holder<net.minecraft.world.entity.EntityType<?>> bukkitToMinecraftHolder(EntityType bukkit) {
Preconditions.checkArgument(bukkit != null);
IRegistry<EntityTypes<?>> registry = CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE);
net.minecraft.core.Registry<net.minecraft.world.entity.EntityType<?>> registry = CraftRegistry.getMinecraftRegistry(Registries.ENTITY_TYPE);
if (registry.wrapAsHolder(bukkitToMinecraft(bukkit)) instanceof Holder.c<EntityTypes<?>> holder) {
if (registry.wrapAsHolder(CraftEntityType.bukkitToMinecraft(bukkit)) instanceof Holder.Reference<net.minecraft.world.entity.EntityType<?>> holder) {
return holder;
}

View File

@@ -8,36 +8,27 @@ import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Function;
import net.minecraft.core.BlockPosition;
import net.minecraft.core.EnumDirection;
import net.minecraft.world.entity.EntityAreaEffectCloud;
import net.minecraft.world.entity.EntityExperienceOrb;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.EntitySpawnReason;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon;
import net.minecraft.world.entity.decoration.EntityHanging;
import net.minecraft.world.entity.decoration.EntityItemFrame;
import net.minecraft.world.entity.decoration.EntityLeash;
import net.minecraft.world.entity.decoration.EntityPainting;
import net.minecraft.world.entity.item.EntityFallingBlock;
import net.minecraft.world.entity.item.EntityItem;
import net.minecraft.world.entity.item.EntityTNTPrimed;
import net.minecraft.world.entity.projectile.EntityEgg;
import net.minecraft.world.entity.projectile.EntityEnderSignal;
import net.minecraft.world.entity.projectile.EntityEvokerFangs;
import net.minecraft.world.entity.projectile.EntityFireball;
import net.minecraft.world.entity.projectile.EntityFireworks;
import net.minecraft.world.entity.projectile.EntityPotion;
import net.minecraft.world.entity.projectile.EntitySnowball;
import net.minecraft.world.entity.vehicle.EntityMinecartAbstract;
import net.minecraft.world.entity.decoration.HangingEntity;
import net.minecraft.world.entity.decoration.LeashFenceKnotEntity;
import net.minecraft.world.entity.item.FallingBlockEntity;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.item.PrimedTnt;
import net.minecraft.world.entity.projectile.AbstractHurtingProjectile;
import net.minecraft.world.entity.projectile.EyeOfEnder;
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
import net.minecraft.world.entity.projectile.ThrownEgg;
import net.minecraft.world.entity.vehicle.AbstractMinecart;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.GeneratorAccessSeed;
import net.minecraft.world.level.World;
import net.minecraft.world.level.block.BlockDiodeAbstract;
import net.minecraft.world.level.block.state.IBlockData;
import net.minecraft.world.phys.AxisAlignedBB;
import net.minecraft.world.phys.Vec3D;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.block.DiodeBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
@@ -225,29 +216,29 @@ public final class CraftEntityTypes {
Function<SpawnData, M> spawnFunction) {
}
public record SpawnData(GeneratorAccessSeed world, Location location, boolean randomizeData, boolean normalWorld) {
public record SpawnData(WorldGenLevel world, Location location, boolean randomizeData, boolean normalWorld) {
double x() {
return location().getX();
return this.location().getX();
}
double y() {
return location().getY();
return this.location().getY();
}
double z() {
return location().getZ();
return this.location().getZ();
}
float yaw() {
return location().getYaw();
return this.location().getYaw();
}
float pitch() {
return location().getPitch();
return this.location().getPitch();
}
World minecraftWorld() {
return world().getMinecraftWorld();
Level minecraftWorld() {
return this.world().getMinecraftWorld();
}
}
@@ -258,206 +249,206 @@ public final class CraftEntityTypes {
};
private static final BiConsumer<SpawnData, net.minecraft.world.entity.Entity> MOVE = (spawnData, entity) -> entity.moveTo(spawnData.x(), spawnData.y(), spawnData.z(), spawnData.yaw(), spawnData.pitch());
private static final BiConsumer<SpawnData, net.minecraft.world.entity.Entity> MOVE_EMPTY_ROT = (spawnData, entity) -> entity.moveTo(spawnData.x(), spawnData.y(), spawnData.z(), 0, 0);
private static final BiConsumer<SpawnData, EntityFireball> DIRECTION = (spawnData, entity) -> {
private static final BiConsumer<SpawnData, AbstractHurtingProjectile> DIRECTION = (spawnData, entity) -> {
Vector direction = spawnData.location().getDirection();
entity.assignDirectionalMovement(new Vec3D(direction.getX(), direction.getY(), direction.getZ()), 1.0);
entity.assignDirectionalMovement(new Vec3(direction.getX(), direction.getY(), direction.getZ()), 1.0);
};
private static final Map<Class<?>, EntityTypeData<?, ?>> CLASS_TYPE_DATA = new HashMap<>();
private static final Map<EntityType, EntityTypeData<?, ?>> ENTITY_TYPE_DATA = new HashMap<>();
static {
// Living
register(new EntityTypeData<>(EntityType.ELDER_GUARDIAN, ElderGuardian.class, CraftElderGuardian::new, createLiving(EntityTypes.ELDER_GUARDIAN)));
register(new EntityTypeData<>(EntityType.WITHER_SKELETON, WitherSkeleton.class, CraftWitherSkeleton::new, createLiving(EntityTypes.WITHER_SKELETON)));
register(new EntityTypeData<>(EntityType.STRAY, Stray.class, CraftStray::new, createLiving(EntityTypes.STRAY)));
register(new EntityTypeData<>(EntityType.BOGGED, Bogged.class, CraftBogged::new, createLiving(EntityTypes.BOGGED)));
register(new EntityTypeData<>(EntityType.HUSK, Husk.class, CraftHusk::new, createLiving(EntityTypes.HUSK)));
register(new EntityTypeData<>(EntityType.ZOMBIE_VILLAGER, ZombieVillager.class, CraftVillagerZombie::new, createLiving(EntityTypes.ZOMBIE_VILLAGER)));
register(new EntityTypeData<>(EntityType.SKELETON_HORSE, SkeletonHorse.class, CraftSkeletonHorse::new, createLiving(EntityTypes.SKELETON_HORSE)));
register(new EntityTypeData<>(EntityType.ZOMBIE_HORSE, ZombieHorse.class, CraftZombieHorse::new, createLiving(EntityTypes.ZOMBIE_HORSE)));
register(new EntityTypeData<>(EntityType.ARMOR_STAND, ArmorStand.class, CraftArmorStand::new, createLiving(EntityTypes.ARMOR_STAND)));
register(new EntityTypeData<>(EntityType.DONKEY, Donkey.class, CraftDonkey::new, createLiving(EntityTypes.DONKEY)));
register(new EntityTypeData<>(EntityType.MULE, Mule.class, CraftMule::new, createLiving(EntityTypes.MULE)));
register(new EntityTypeData<>(EntityType.EVOKER, Evoker.class, CraftEvoker::new, createLiving(EntityTypes.EVOKER)));
register(new EntityTypeData<>(EntityType.VEX, Vex.class, CraftVex::new, createLiving(EntityTypes.VEX)));
register(new EntityTypeData<>(EntityType.VINDICATOR, Vindicator.class, CraftVindicator::new, createLiving(EntityTypes.VINDICATOR)));
register(new EntityTypeData<>(EntityType.ILLUSIONER, Illusioner.class, CraftIllusioner::new, createLiving(EntityTypes.ILLUSIONER)));
register(new EntityTypeData<>(EntityType.CREEPER, Creeper.class, CraftCreeper::new, createLiving(EntityTypes.CREEPER)));
register(new EntityTypeData<>(EntityType.SKELETON, Skeleton.class, CraftSkeleton::new, createLiving(EntityTypes.SKELETON)));
register(new EntityTypeData<>(EntityType.SPIDER, Spider.class, CraftSpider::new, createLiving(EntityTypes.SPIDER)));
register(new EntityTypeData<>(EntityType.GIANT, Giant.class, CraftGiant::new, createLiving(EntityTypes.GIANT)));
register(new EntityTypeData<>(EntityType.ZOMBIE, Zombie.class, CraftZombie::new, createLiving(EntityTypes.ZOMBIE)));
register(new EntityTypeData<>(EntityType.SLIME, Slime.class, CraftSlime::new, createLiving(EntityTypes.SLIME)));
register(new EntityTypeData<>(EntityType.GHAST, Ghast.class, CraftGhast::new, createLiving(EntityTypes.GHAST)));
register(new EntityTypeData<>(EntityType.ZOMBIFIED_PIGLIN, PigZombie.class, CraftPigZombie::new, createLiving(EntityTypes.ZOMBIFIED_PIGLIN)));
register(new EntityTypeData<>(EntityType.ENDERMAN, Enderman.class, CraftEnderman::new, createLiving(EntityTypes.ENDERMAN)));
register(new EntityTypeData<>(EntityType.CAVE_SPIDER, CaveSpider.class, CraftCaveSpider::new, createLiving(EntityTypes.CAVE_SPIDER)));
register(new EntityTypeData<>(EntityType.SILVERFISH, Silverfish.class, CraftSilverfish::new, createLiving(EntityTypes.SILVERFISH)));
register(new EntityTypeData<>(EntityType.BLAZE, Blaze.class, CraftBlaze::new, createLiving(EntityTypes.BLAZE)));
register(new EntityTypeData<>(EntityType.MAGMA_CUBE, MagmaCube.class, CraftMagmaCube::new, createLiving(EntityTypes.MAGMA_CUBE)));
register(new EntityTypeData<>(EntityType.WITHER, Wither.class, CraftWither::new, createLiving(EntityTypes.WITHER)));
register(new EntityTypeData<>(EntityType.BAT, Bat.class, CraftBat::new, createLiving(EntityTypes.BAT)));
register(new EntityTypeData<>(EntityType.WITCH, Witch.class, CraftWitch::new, createLiving(EntityTypes.WITCH)));
register(new EntityTypeData<>(EntityType.ENDERMITE, Endermite.class, CraftEndermite::new, createLiving(EntityTypes.ENDERMITE)));
register(new EntityTypeData<>(EntityType.GUARDIAN, Guardian.class, CraftGuardian::new, createLiving(EntityTypes.GUARDIAN)));
register(new EntityTypeData<>(EntityType.SHULKER, Shulker.class, CraftShulker::new, createLiving(EntityTypes.SHULKER)));
register(new EntityTypeData<>(EntityType.PIG, Pig.class, CraftPig::new, createLiving(EntityTypes.PIG)));
register(new EntityTypeData<>(EntityType.SHEEP, Sheep.class, CraftSheep::new, createLiving(EntityTypes.SHEEP)));
register(new EntityTypeData<>(EntityType.COW, Cow.class, CraftCow::new, createLiving(EntityTypes.COW)));
register(new EntityTypeData<>(EntityType.CHICKEN, Chicken.class, CraftChicken::new, createLiving(EntityTypes.CHICKEN)));
register(new EntityTypeData<>(EntityType.SQUID, Squid.class, CraftSquid::new, createLiving(EntityTypes.SQUID)));
register(new EntityTypeData<>(EntityType.WOLF, Wolf.class, CraftWolf::new, createLiving(EntityTypes.WOLF)));
register(new EntityTypeData<>(EntityType.MOOSHROOM, MushroomCow.class, CraftMushroomCow::new, createLiving(EntityTypes.MOOSHROOM)));
register(new EntityTypeData<>(EntityType.SNOW_GOLEM, Snowman.class, CraftSnowman::new, createLiving(EntityTypes.SNOW_GOLEM)));
register(new EntityTypeData<>(EntityType.OCELOT, Ocelot.class, CraftOcelot::new, createLiving(EntityTypes.OCELOT)));
register(new EntityTypeData<>(EntityType.IRON_GOLEM, IronGolem.class, CraftIronGolem::new, createLiving(EntityTypes.IRON_GOLEM)));
register(new EntityTypeData<>(EntityType.HORSE, Horse.class, CraftHorse::new, createLiving(EntityTypes.HORSE)));
register(new EntityTypeData<>(EntityType.RABBIT, Rabbit.class, CraftRabbit::new, createLiving(EntityTypes.RABBIT)));
register(new EntityTypeData<>(EntityType.POLAR_BEAR, PolarBear.class, CraftPolarBear::new, createLiving(EntityTypes.POLAR_BEAR)));
register(new EntityTypeData<>(EntityType.LLAMA, Llama.class, CraftLlama::new, createLiving(EntityTypes.LLAMA)));
register(new EntityTypeData<>(EntityType.PARROT, Parrot.class, CraftParrot::new, createLiving(EntityTypes.PARROT)));
register(new EntityTypeData<>(EntityType.VILLAGER, Villager.class, CraftVillager::new, createLiving(EntityTypes.VILLAGER)));
register(new EntityTypeData<>(EntityType.TURTLE, Turtle.class, CraftTurtle::new, createLiving(EntityTypes.TURTLE)));
register(new EntityTypeData<>(EntityType.PHANTOM, Phantom.class, CraftPhantom::new, createLiving(EntityTypes.PHANTOM)));
register(new EntityTypeData<>(EntityType.COD, Cod.class, CraftCod::new, createLiving(EntityTypes.COD)));
register(new EntityTypeData<>(EntityType.SALMON, Salmon.class, CraftSalmon::new, createLiving(EntityTypes.SALMON)));
register(new EntityTypeData<>(EntityType.PUFFERFISH, PufferFish.class, CraftPufferFish::new, createLiving(EntityTypes.PUFFERFISH)));
register(new EntityTypeData<>(EntityType.TROPICAL_FISH, TropicalFish.class, CraftTropicalFish::new, createLiving(EntityTypes.TROPICAL_FISH)));
register(new EntityTypeData<>(EntityType.DROWNED, Drowned.class, CraftDrowned::new, createLiving(EntityTypes.DROWNED)));
register(new EntityTypeData<>(EntityType.DOLPHIN, Dolphin.class, CraftDolphin::new, createLiving(EntityTypes.DOLPHIN)));
register(new EntityTypeData<>(EntityType.CAT, Cat.class, CraftCat::new, createLiving(EntityTypes.CAT)));
register(new EntityTypeData<>(EntityType.PANDA, Panda.class, CraftPanda::new, createLiving(EntityTypes.PANDA)));
register(new EntityTypeData<>(EntityType.PILLAGER, Pillager.class, CraftPillager::new, createLiving(EntityTypes.PILLAGER)));
register(new EntityTypeData<>(EntityType.RAVAGER, Ravager.class, CraftRavager::new, createLiving(EntityTypes.RAVAGER)));
register(new EntityTypeData<>(EntityType.TRADER_LLAMA, TraderLlama.class, CraftTraderLlama::new, createLiving(EntityTypes.TRADER_LLAMA)));
register(new EntityTypeData<>(EntityType.WANDERING_TRADER, WanderingTrader.class, CraftWanderingTrader::new, createLiving(EntityTypes.WANDERING_TRADER)));
register(new EntityTypeData<>(EntityType.FOX, Fox.class, CraftFox::new, createLiving(EntityTypes.FOX)));
register(new EntityTypeData<>(EntityType.BEE, Bee.class, CraftBee::new, createLiving(EntityTypes.BEE)));
register(new EntityTypeData<>(EntityType.HOGLIN, Hoglin.class, CraftHoglin::new, createLiving(EntityTypes.HOGLIN)));
register(new EntityTypeData<>(EntityType.PIGLIN, Piglin.class, CraftPiglin::new, createLiving(EntityTypes.PIGLIN)));
register(new EntityTypeData<>(EntityType.STRIDER, Strider.class, CraftStrider::new, createLiving(EntityTypes.STRIDER)));
register(new EntityTypeData<>(EntityType.ZOGLIN, Zoglin.class, CraftZoglin::new, createLiving(EntityTypes.ZOGLIN)));
register(new EntityTypeData<>(EntityType.PIGLIN_BRUTE, PiglinBrute.class, CraftPiglinBrute::new, createLiving(EntityTypes.PIGLIN_BRUTE)));
register(new EntityTypeData<>(EntityType.AXOLOTL, Axolotl.class, CraftAxolotl::new, createLiving(EntityTypes.AXOLOTL)));
register(new EntityTypeData<>(EntityType.GLOW_SQUID, GlowSquid.class, CraftGlowSquid::new, createLiving(EntityTypes.GLOW_SQUID)));
register(new EntityTypeData<>(EntityType.GOAT, Goat.class, CraftGoat::new, createLiving(EntityTypes.GOAT)));
register(new EntityTypeData<>(EntityType.ALLAY, Allay.class, CraftAllay::new, createLiving(EntityTypes.ALLAY)));
register(new EntityTypeData<>(EntityType.FROG, Frog.class, CraftFrog::new, createLiving(EntityTypes.FROG)));
register(new EntityTypeData<>(EntityType.TADPOLE, Tadpole.class, CraftTadpole::new, createLiving(EntityTypes.TADPOLE)));
register(new EntityTypeData<>(EntityType.WARDEN, Warden.class, CraftWarden::new, createLiving(EntityTypes.WARDEN)));
register(new EntityTypeData<>(EntityType.CAMEL, Camel.class, CraftCamel::new, createLiving(EntityTypes.CAMEL)));
register(new EntityTypeData<>(EntityType.SNIFFER, Sniffer.class, CraftSniffer::new, createLiving(EntityTypes.SNIFFER)));
register(new EntityTypeData<>(EntityType.BREEZE, Breeze.class, CraftBreeze::new, createLiving(EntityTypes.BREEZE)));
register(new EntityTypeData<>(EntityType.ARMADILLO, Armadillo.class, CraftArmadillo::new, createLiving(EntityTypes.ARMADILLO)));
register(new EntityTypeData<>(EntityType.CREAKING, Creaking.class, CraftCreaking::new, createLiving(EntityTypes.CREAKING)));
register(new EntityTypeData<>(EntityType.ELDER_GUARDIAN, ElderGuardian.class, CraftElderGuardian::new, createLiving(net.minecraft.world.entity.EntityType.ELDER_GUARDIAN)));
register(new EntityTypeData<>(EntityType.WITHER_SKELETON, WitherSkeleton.class, CraftWitherSkeleton::new, createLiving(net.minecraft.world.entity.EntityType.WITHER_SKELETON)));
register(new EntityTypeData<>(EntityType.STRAY, Stray.class, CraftStray::new, createLiving(net.minecraft.world.entity.EntityType.STRAY)));
register(new EntityTypeData<>(EntityType.BOGGED, Bogged.class, CraftBogged::new, createLiving(net.minecraft.world.entity.EntityType.BOGGED)));
register(new EntityTypeData<>(EntityType.HUSK, Husk.class, CraftHusk::new, createLiving(net.minecraft.world.entity.EntityType.HUSK)));
register(new EntityTypeData<>(EntityType.ZOMBIE_VILLAGER, ZombieVillager.class, CraftVillagerZombie::new, createLiving(net.minecraft.world.entity.EntityType.ZOMBIE_VILLAGER)));
register(new EntityTypeData<>(EntityType.SKELETON_HORSE, SkeletonHorse.class, CraftSkeletonHorse::new, createLiving(net.minecraft.world.entity.EntityType.SKELETON_HORSE)));
register(new EntityTypeData<>(EntityType.ZOMBIE_HORSE, ZombieHorse.class, CraftZombieHorse::new, createLiving(net.minecraft.world.entity.EntityType.ZOMBIE_HORSE)));
register(new EntityTypeData<>(EntityType.ARMOR_STAND, ArmorStand.class, CraftArmorStand::new, createLiving(net.minecraft.world.entity.EntityType.ARMOR_STAND)));
register(new EntityTypeData<>(EntityType.DONKEY, Donkey.class, CraftDonkey::new, createLiving(net.minecraft.world.entity.EntityType.DONKEY)));
register(new EntityTypeData<>(EntityType.MULE, Mule.class, CraftMule::new, createLiving(net.minecraft.world.entity.EntityType.MULE)));
register(new EntityTypeData<>(EntityType.EVOKER, Evoker.class, CraftEvoker::new, createLiving(net.minecraft.world.entity.EntityType.EVOKER)));
register(new EntityTypeData<>(EntityType.VEX, Vex.class, CraftVex::new, createLiving(net.minecraft.world.entity.EntityType.VEX)));
register(new EntityTypeData<>(EntityType.VINDICATOR, Vindicator.class, CraftVindicator::new, createLiving(net.minecraft.world.entity.EntityType.VINDICATOR)));
register(new EntityTypeData<>(EntityType.ILLUSIONER, Illusioner.class, CraftIllusioner::new, createLiving(net.minecraft.world.entity.EntityType.ILLUSIONER)));
register(new EntityTypeData<>(EntityType.CREEPER, Creeper.class, CraftCreeper::new, createLiving(net.minecraft.world.entity.EntityType.CREEPER)));
register(new EntityTypeData<>(EntityType.SKELETON, Skeleton.class, CraftSkeleton::new, createLiving(net.minecraft.world.entity.EntityType.SKELETON)));
register(new EntityTypeData<>(EntityType.SPIDER, Spider.class, CraftSpider::new, createLiving(net.minecraft.world.entity.EntityType.SPIDER)));
register(new EntityTypeData<>(EntityType.GIANT, Giant.class, CraftGiant::new, createLiving(net.minecraft.world.entity.EntityType.GIANT)));
register(new EntityTypeData<>(EntityType.ZOMBIE, Zombie.class, CraftZombie::new, createLiving(net.minecraft.world.entity.EntityType.ZOMBIE)));
register(new EntityTypeData<>(EntityType.SLIME, Slime.class, CraftSlime::new, createLiving(net.minecraft.world.entity.EntityType.SLIME)));
register(new EntityTypeData<>(EntityType.GHAST, Ghast.class, CraftGhast::new, createLiving(net.minecraft.world.entity.EntityType.GHAST)));
register(new EntityTypeData<>(EntityType.ZOMBIFIED_PIGLIN, PigZombie.class, CraftPigZombie::new, createLiving(net.minecraft.world.entity.EntityType.ZOMBIFIED_PIGLIN)));
register(new EntityTypeData<>(EntityType.ENDERMAN, Enderman.class, CraftEnderman::new, createLiving(net.minecraft.world.entity.EntityType.ENDERMAN)));
register(new EntityTypeData<>(EntityType.CAVE_SPIDER, CaveSpider.class, CraftCaveSpider::new, createLiving(net.minecraft.world.entity.EntityType.CAVE_SPIDER)));
register(new EntityTypeData<>(EntityType.SILVERFISH, Silverfish.class, CraftSilverfish::new, createLiving(net.minecraft.world.entity.EntityType.SILVERFISH)));
register(new EntityTypeData<>(EntityType.BLAZE, Blaze.class, CraftBlaze::new, createLiving(net.minecraft.world.entity.EntityType.BLAZE)));
register(new EntityTypeData<>(EntityType.MAGMA_CUBE, MagmaCube.class, CraftMagmaCube::new, createLiving(net.minecraft.world.entity.EntityType.MAGMA_CUBE)));
register(new EntityTypeData<>(EntityType.WITHER, Wither.class, CraftWither::new, createLiving(net.minecraft.world.entity.EntityType.WITHER)));
register(new EntityTypeData<>(EntityType.BAT, Bat.class, CraftBat::new, createLiving(net.minecraft.world.entity.EntityType.BAT)));
register(new EntityTypeData<>(EntityType.WITCH, Witch.class, CraftWitch::new, createLiving(net.minecraft.world.entity.EntityType.WITCH)));
register(new EntityTypeData<>(EntityType.ENDERMITE, Endermite.class, CraftEndermite::new, createLiving(net.minecraft.world.entity.EntityType.ENDERMITE)));
register(new EntityTypeData<>(EntityType.GUARDIAN, Guardian.class, CraftGuardian::new, createLiving(net.minecraft.world.entity.EntityType.GUARDIAN)));
register(new EntityTypeData<>(EntityType.SHULKER, Shulker.class, CraftShulker::new, createLiving(net.minecraft.world.entity.EntityType.SHULKER)));
register(new EntityTypeData<>(EntityType.PIG, Pig.class, CraftPig::new, createLiving(net.minecraft.world.entity.EntityType.PIG)));
register(new EntityTypeData<>(EntityType.SHEEP, Sheep.class, CraftSheep::new, createLiving(net.minecraft.world.entity.EntityType.SHEEP)));
register(new EntityTypeData<>(EntityType.COW, Cow.class, CraftCow::new, createLiving(net.minecraft.world.entity.EntityType.COW)));
register(new EntityTypeData<>(EntityType.CHICKEN, Chicken.class, CraftChicken::new, createLiving(net.minecraft.world.entity.EntityType.CHICKEN)));
register(new EntityTypeData<>(EntityType.SQUID, Squid.class, CraftSquid::new, createLiving(net.minecraft.world.entity.EntityType.SQUID)));
register(new EntityTypeData<>(EntityType.WOLF, Wolf.class, CraftWolf::new, createLiving(net.minecraft.world.entity.EntityType.WOLF)));
register(new EntityTypeData<>(EntityType.MOOSHROOM, MushroomCow.class, CraftMushroomCow::new, createLiving(net.minecraft.world.entity.EntityType.MOOSHROOM)));
register(new EntityTypeData<>(EntityType.SNOW_GOLEM, Snowman.class, CraftSnowman::new, createLiving(net.minecraft.world.entity.EntityType.SNOW_GOLEM)));
register(new EntityTypeData<>(EntityType.OCELOT, Ocelot.class, CraftOcelot::new, createLiving(net.minecraft.world.entity.EntityType.OCELOT)));
register(new EntityTypeData<>(EntityType.IRON_GOLEM, IronGolem.class, CraftIronGolem::new, createLiving(net.minecraft.world.entity.EntityType.IRON_GOLEM)));
register(new EntityTypeData<>(EntityType.HORSE, Horse.class, CraftHorse::new, createLiving(net.minecraft.world.entity.EntityType.HORSE)));
register(new EntityTypeData<>(EntityType.RABBIT, Rabbit.class, CraftRabbit::new, createLiving(net.minecraft.world.entity.EntityType.RABBIT)));
register(new EntityTypeData<>(EntityType.POLAR_BEAR, PolarBear.class, CraftPolarBear::new, createLiving(net.minecraft.world.entity.EntityType.POLAR_BEAR)));
register(new EntityTypeData<>(EntityType.LLAMA, Llama.class, CraftLlama::new, createLiving(net.minecraft.world.entity.EntityType.LLAMA)));
register(new EntityTypeData<>(EntityType.PARROT, Parrot.class, CraftParrot::new, createLiving(net.minecraft.world.entity.EntityType.PARROT)));
register(new EntityTypeData<>(EntityType.VILLAGER, Villager.class, CraftVillager::new, createLiving(net.minecraft.world.entity.EntityType.VILLAGER)));
register(new EntityTypeData<>(EntityType.TURTLE, Turtle.class, CraftTurtle::new, createLiving(net.minecraft.world.entity.EntityType.TURTLE)));
register(new EntityTypeData<>(EntityType.PHANTOM, Phantom.class, CraftPhantom::new, createLiving(net.minecraft.world.entity.EntityType.PHANTOM)));
register(new EntityTypeData<>(EntityType.COD, Cod.class, CraftCod::new, createLiving(net.minecraft.world.entity.EntityType.COD)));
register(new EntityTypeData<>(EntityType.SALMON, Salmon.class, CraftSalmon::new, createLiving(net.minecraft.world.entity.EntityType.SALMON)));
register(new EntityTypeData<>(EntityType.PUFFERFISH, PufferFish.class, CraftPufferFish::new, createLiving(net.minecraft.world.entity.EntityType.PUFFERFISH)));
register(new EntityTypeData<>(EntityType.TROPICAL_FISH, TropicalFish.class, CraftTropicalFish::new, createLiving(net.minecraft.world.entity.EntityType.TROPICAL_FISH)));
register(new EntityTypeData<>(EntityType.DROWNED, Drowned.class, CraftDrowned::new, createLiving(net.minecraft.world.entity.EntityType.DROWNED)));
register(new EntityTypeData<>(EntityType.DOLPHIN, Dolphin.class, CraftDolphin::new, createLiving(net.minecraft.world.entity.EntityType.DOLPHIN)));
register(new EntityTypeData<>(EntityType.CAT, Cat.class, CraftCat::new, createLiving(net.minecraft.world.entity.EntityType.CAT)));
register(new EntityTypeData<>(EntityType.PANDA, Panda.class, CraftPanda::new, createLiving(net.minecraft.world.entity.EntityType.PANDA)));
register(new EntityTypeData<>(EntityType.PILLAGER, Pillager.class, CraftPillager::new, createLiving(net.minecraft.world.entity.EntityType.PILLAGER)));
register(new EntityTypeData<>(EntityType.RAVAGER, Ravager.class, CraftRavager::new, createLiving(net.minecraft.world.entity.EntityType.RAVAGER)));
register(new EntityTypeData<>(EntityType.TRADER_LLAMA, TraderLlama.class, CraftTraderLlama::new, createLiving(net.minecraft.world.entity.EntityType.TRADER_LLAMA)));
register(new EntityTypeData<>(EntityType.WANDERING_TRADER, WanderingTrader.class, CraftWanderingTrader::new, createLiving(net.minecraft.world.entity.EntityType.WANDERING_TRADER)));
register(new EntityTypeData<>(EntityType.FOX, Fox.class, CraftFox::new, createLiving(net.minecraft.world.entity.EntityType.FOX)));
register(new EntityTypeData<>(EntityType.BEE, Bee.class, CraftBee::new, createLiving(net.minecraft.world.entity.EntityType.BEE)));
register(new EntityTypeData<>(EntityType.HOGLIN, Hoglin.class, CraftHoglin::new, createLiving(net.minecraft.world.entity.EntityType.HOGLIN)));
register(new EntityTypeData<>(EntityType.PIGLIN, Piglin.class, CraftPiglin::new, createLiving(net.minecraft.world.entity.EntityType.PIGLIN)));
register(new EntityTypeData<>(EntityType.STRIDER, Strider.class, CraftStrider::new, createLiving(net.minecraft.world.entity.EntityType.STRIDER)));
register(new EntityTypeData<>(EntityType.ZOGLIN, Zoglin.class, CraftZoglin::new, createLiving(net.minecraft.world.entity.EntityType.ZOGLIN)));
register(new EntityTypeData<>(EntityType.PIGLIN_BRUTE, PiglinBrute.class, CraftPiglinBrute::new, createLiving(net.minecraft.world.entity.EntityType.PIGLIN_BRUTE)));
register(new EntityTypeData<>(EntityType.AXOLOTL, Axolotl.class, CraftAxolotl::new, createLiving(net.minecraft.world.entity.EntityType.AXOLOTL)));
register(new EntityTypeData<>(EntityType.GLOW_SQUID, GlowSquid.class, CraftGlowSquid::new, createLiving(net.minecraft.world.entity.EntityType.GLOW_SQUID)));
register(new EntityTypeData<>(EntityType.GOAT, Goat.class, CraftGoat::new, createLiving(net.minecraft.world.entity.EntityType.GOAT)));
register(new EntityTypeData<>(EntityType.ALLAY, Allay.class, CraftAllay::new, createLiving(net.minecraft.world.entity.EntityType.ALLAY)));
register(new EntityTypeData<>(EntityType.FROG, Frog.class, CraftFrog::new, createLiving(net.minecraft.world.entity.EntityType.FROG)));
register(new EntityTypeData<>(EntityType.TADPOLE, Tadpole.class, CraftTadpole::new, createLiving(net.minecraft.world.entity.EntityType.TADPOLE)));
register(new EntityTypeData<>(EntityType.WARDEN, Warden.class, CraftWarden::new, createLiving(net.minecraft.world.entity.EntityType.WARDEN)));
register(new EntityTypeData<>(EntityType.CAMEL, Camel.class, CraftCamel::new, createLiving(net.minecraft.world.entity.EntityType.CAMEL)));
register(new EntityTypeData<>(EntityType.SNIFFER, Sniffer.class, CraftSniffer::new, createLiving(net.minecraft.world.entity.EntityType.SNIFFER)));
register(new EntityTypeData<>(EntityType.BREEZE, Breeze.class, CraftBreeze::new, createLiving(net.minecraft.world.entity.EntityType.BREEZE)));
register(new EntityTypeData<>(EntityType.ARMADILLO, Armadillo.class, CraftArmadillo::new, createLiving(net.minecraft.world.entity.EntityType.ARMADILLO)));
register(new EntityTypeData<>(EntityType.CREAKING, Creaking.class, CraftCreaking::new, createLiving(net.minecraft.world.entity.EntityType.CREAKING)));
Function<SpawnData, EntityEnderDragon> dragonFunction = createLiving(EntityTypes.ENDER_DRAGON);
Function<SpawnData, net.minecraft.world.entity.boss.enderdragon.EnderDragon> dragonFunction = createLiving(net.minecraft.world.entity.EntityType.ENDER_DRAGON);
register(new EntityTypeData<>(EntityType.ENDER_DRAGON, EnderDragon.class, CraftEnderDragon::new, spawnData -> {
Preconditions.checkArgument(spawnData.normalWorld(), "Cannot spawn entity %s during world generation", EnderDragon.class.getName());
return dragonFunction.apply(spawnData);
}));
// Fireball
register(new EntityTypeData<>(EntityType.FIREBALL, LargeFireball.class, CraftLargeFireball::new, createFireball(EntityTypes.FIREBALL)));
register(new EntityTypeData<>(EntityType.SMALL_FIREBALL, SmallFireball.class, CraftSmallFireball::new, createFireball(EntityTypes.SMALL_FIREBALL)));
register(new EntityTypeData<>(EntityType.WITHER_SKULL, WitherSkull.class, CraftWitherSkull::new, createFireball(EntityTypes.WITHER_SKULL)));
register(new EntityTypeData<>(EntityType.DRAGON_FIREBALL, DragonFireball.class, CraftDragonFireball::new, createFireball(EntityTypes.DRAGON_FIREBALL)));
register(new EntityTypeData<>(EntityType.WIND_CHARGE, WindCharge.class, CraftWindCharge::new, createFireball(EntityTypes.WIND_CHARGE)));
register(new EntityTypeData<>(EntityType.BREEZE_WIND_CHARGE, BreezeWindCharge.class, CraftBreezeWindCharge::new, createFireball(EntityTypes.BREEZE_WIND_CHARGE)));
register(new EntityTypeData<>(EntityType.FIREBALL, LargeFireball.class, CraftLargeFireball::new, createFireball(net.minecraft.world.entity.EntityType.FIREBALL)));
register(new EntityTypeData<>(EntityType.SMALL_FIREBALL, SmallFireball.class, CraftSmallFireball::new, createFireball(net.minecraft.world.entity.EntityType.SMALL_FIREBALL)));
register(new EntityTypeData<>(EntityType.WITHER_SKULL, WitherSkull.class, CraftWitherSkull::new, createFireball(net.minecraft.world.entity.EntityType.WITHER_SKULL)));
register(new EntityTypeData<>(EntityType.DRAGON_FIREBALL, DragonFireball.class, CraftDragonFireball::new, createFireball(net.minecraft.world.entity.EntityType.DRAGON_FIREBALL)));
register(new EntityTypeData<>(EntityType.WIND_CHARGE, WindCharge.class, CraftWindCharge::new, createFireball(net.minecraft.world.entity.EntityType.WIND_CHARGE)));
register(new EntityTypeData<>(EntityType.BREEZE_WIND_CHARGE, BreezeWindCharge.class, CraftBreezeWindCharge::new, createFireball(net.minecraft.world.entity.EntityType.BREEZE_WIND_CHARGE)));
// Hanging
register(new EntityTypeData<>(EntityType.PAINTING, Painting.class, CraftPainting::new, createHanging(Painting.class, (spawnData, hangingData) -> {
if (spawnData.normalWorld && hangingData.randomize()) {
return EntityPainting.create(spawnData.minecraftWorld(), hangingData.position(), hangingData.direction()).orElse(null);
return net.minecraft.world.entity.decoration.Painting.create(spawnData.minecraftWorld(), hangingData.position(), hangingData.direction()).orElse(null);
} else {
EntityPainting entity = new EntityPainting(EntityTypes.PAINTING, spawnData.minecraftWorld());
net.minecraft.world.entity.decoration.Painting entity = new net.minecraft.world.entity.decoration.Painting(net.minecraft.world.entity.EntityType.PAINTING, spawnData.minecraftWorld());
entity.absMoveTo(spawnData.x(), spawnData.y(), spawnData.z(), spawnData.yaw(), spawnData.pitch());
entity.setDirection(hangingData.direction());
return entity;
}
}
)));
register(new EntityTypeData<>(EntityType.ITEM_FRAME, ItemFrame.class, CraftItemFrame::new, createHanging(ItemFrame.class, (spawnData, hangingData) -> new EntityItemFrame(spawnData.minecraftWorld(), hangingData.position(), hangingData.direction()))));
register(new EntityTypeData<>(EntityType.ITEM_FRAME, ItemFrame.class, CraftItemFrame::new, createHanging(ItemFrame.class, (spawnData, hangingData) -> new net.minecraft.world.entity.decoration.ItemFrame(spawnData.minecraftWorld(), hangingData.position(), hangingData.direction()))));
register(new EntityTypeData<>(EntityType.GLOW_ITEM_FRAME, GlowItemFrame.class, CraftGlowItemFrame::new, createHanging(GlowItemFrame.class, (spawnData, hangingData) -> new net.minecraft.world.entity.decoration.GlowItemFrame(spawnData.minecraftWorld(), hangingData.position(), hangingData.direction()))));
// Move no rotation
register(new EntityTypeData<>(EntityType.ARROW, Arrow.class, CraftArrow::new, createAndMoveEmptyRot(EntityTypes.ARROW)));
register(new EntityTypeData<>(EntityType.ENDER_PEARL, EnderPearl.class, CraftEnderPearl::new, createAndMoveEmptyRot(EntityTypes.ENDER_PEARL)));
register(new EntityTypeData<>(EntityType.EXPERIENCE_BOTTLE, ThrownExpBottle.class, CraftThrownExpBottle::new, createAndMoveEmptyRot(EntityTypes.EXPERIENCE_BOTTLE)));
register(new EntityTypeData<>(EntityType.SPECTRAL_ARROW, SpectralArrow.class, CraftSpectralArrow::new, createAndMoveEmptyRot(EntityTypes.SPECTRAL_ARROW)));
register(new EntityTypeData<>(EntityType.END_CRYSTAL, EnderCrystal.class, CraftEnderCrystal::new, createAndMoveEmptyRot(EntityTypes.END_CRYSTAL)));
register(new EntityTypeData<>(EntityType.TRIDENT, Trident.class, CraftTrident::new, createAndMoveEmptyRot(EntityTypes.TRIDENT)));
register(new EntityTypeData<>(EntityType.LIGHTNING_BOLT, LightningStrike.class, CraftLightningStrike::new, createAndMoveEmptyRot(EntityTypes.LIGHTNING_BOLT)));
register(new EntityTypeData<>(EntityType.ARROW, Arrow.class, CraftArrow::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.ARROW)));
register(new EntityTypeData<>(EntityType.ENDER_PEARL, EnderPearl.class, CraftEnderPearl::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.ENDER_PEARL)));
register(new EntityTypeData<>(EntityType.EXPERIENCE_BOTTLE, ThrownExpBottle.class, CraftThrownExpBottle::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.EXPERIENCE_BOTTLE)));
register(new EntityTypeData<>(EntityType.SPECTRAL_ARROW, SpectralArrow.class, CraftSpectralArrow::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.SPECTRAL_ARROW)));
register(new EntityTypeData<>(EntityType.END_CRYSTAL, EnderCrystal.class, CraftEnderCrystal::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.END_CRYSTAL)));
register(new EntityTypeData<>(EntityType.TRIDENT, Trident.class, CraftTrident::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.TRIDENT)));
register(new EntityTypeData<>(EntityType.LIGHTNING_BOLT, LightningStrike.class, CraftLightningStrike::new, createAndMoveEmptyRot(net.minecraft.world.entity.EntityType.LIGHTNING_BOLT)));
// Move
register(new EntityTypeData<>(EntityType.SHULKER_BULLET, ShulkerBullet.class, CraftShulkerBullet::new, createAndMove(EntityTypes.SHULKER_BULLET)));
register(new EntityTypeData<>(EntityType.LLAMA_SPIT, LlamaSpit.class, CraftLlamaSpit::new, createAndMove(EntityTypes.LLAMA_SPIT)));
register(new EntityTypeData<>(EntityType.OMINOUS_ITEM_SPAWNER, OminousItemSpawner.class, CraftOminousItemSpawner::new, createAndMove(EntityTypes.OMINOUS_ITEM_SPAWNER)));
register(new EntityTypeData<>(EntityType.SHULKER_BULLET, ShulkerBullet.class, CraftShulkerBullet::new, createAndMove(net.minecraft.world.entity.EntityType.SHULKER_BULLET)));
register(new EntityTypeData<>(EntityType.LLAMA_SPIT, LlamaSpit.class, CraftLlamaSpit::new, createAndMove(net.minecraft.world.entity.EntityType.LLAMA_SPIT)));
register(new EntityTypeData<>(EntityType.OMINOUS_ITEM_SPAWNER, OminousItemSpawner.class, CraftOminousItemSpawner::new, createAndMove(net.minecraft.world.entity.EntityType.OMINOUS_ITEM_SPAWNER)));
// Move (boats)
register(new EntityTypeData<>(EntityType.ACACIA_BOAT, AcaciaBoat.class, CraftAcaciaBoat::new, createAndMove(EntityTypes.ACACIA_BOAT)));
register(new EntityTypeData<>(EntityType.ACACIA_CHEST_BOAT, AcaciaChestBoat.class, CraftAcaciaChestBoat::new, createAndMove(EntityTypes.ACACIA_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.BAMBOO_RAFT, BambooRaft.class, CraftBambooRaft::new, createAndMove(EntityTypes.BAMBOO_RAFT)));
register(new EntityTypeData<>(EntityType.BAMBOO_CHEST_RAFT, BambooChestRaft.class, CraftBambooChestRaft::new, createAndMove(EntityTypes.BAMBOO_CHEST_RAFT)));
register(new EntityTypeData<>(EntityType.BIRCH_BOAT, BirchBoat.class, CraftBirchBoat::new, createAndMove(EntityTypes.BIRCH_BOAT)));
register(new EntityTypeData<>(EntityType.BIRCH_CHEST_BOAT, BirchChestBoat.class, CraftBirchChestBoat::new, createAndMove(EntityTypes.BIRCH_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.CHERRY_BOAT, CherryBoat.class, CraftCherryBoat::new, createAndMove(EntityTypes.CHERRY_BOAT)));
register(new EntityTypeData<>(EntityType.CHERRY_CHEST_BOAT, CherryChestBoat.class, CraftCherryChestBoat::new, createAndMove(EntityTypes.CHERRY_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.DARK_OAK_BOAT, DarkOakBoat.class, CraftDarkOakBoat::new, createAndMove(EntityTypes.DARK_OAK_BOAT)));
register(new EntityTypeData<>(EntityType.DARK_OAK_CHEST_BOAT, DarkOakChestBoat.class, CraftDarkOakChestBoat::new, createAndMove(EntityTypes.DARK_OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.JUNGLE_BOAT, JungleBoat.class, CraftJungleBoat::new, createAndMove(EntityTypes.JUNGLE_BOAT)));
register(new EntityTypeData<>(EntityType.JUNGLE_CHEST_BOAT, JungleChestBoat.class, CraftJungleChestBoat::new, createAndMove(EntityTypes.JUNGLE_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.MANGROVE_BOAT, MangroveBoat.class, CraftMangroveBoat::new, createAndMove(EntityTypes.MANGROVE_BOAT)));
register(new EntityTypeData<>(EntityType.MANGROVE_CHEST_BOAT, MangroveChestBoat.class, CraftMangroveChestBoat::new, createAndMove(EntityTypes.MANGROVE_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.OAK_BOAT, OakBoat.class, CraftOakBoat::new, createAndMove(EntityTypes.OAK_BOAT)));
register(new EntityTypeData<>(EntityType.OAK_CHEST_BOAT, OakChestBoat.class, CraftOakChestBoat::new, createAndMove(EntityTypes.OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.PALE_OAK_BOAT, PaleOakBoat.class, CraftPaleOakBoat::new, createAndMove(EntityTypes.PALE_OAK_BOAT)));
register(new EntityTypeData<>(EntityType.PALE_OAK_CHEST_BOAT, PaleOakChestBoat.class, CraftPaleOakChestBoat::new, createAndMove(EntityTypes.PALE_OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.SPRUCE_BOAT, SpruceBoat.class, CraftSpruceBoat::new, createAndMove(EntityTypes.SPRUCE_BOAT)));
register(new EntityTypeData<>(EntityType.SPRUCE_CHEST_BOAT, SpruceChestBoat.class, CraftSpruceChestBoat::new, createAndMove(EntityTypes.SPRUCE_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.ACACIA_BOAT, AcaciaBoat.class, CraftAcaciaBoat::new, createAndMove(net.minecraft.world.entity.EntityType.ACACIA_BOAT)));
register(new EntityTypeData<>(EntityType.ACACIA_CHEST_BOAT, AcaciaChestBoat.class, CraftAcaciaChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.ACACIA_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.BAMBOO_RAFT, BambooRaft.class, CraftBambooRaft::new, createAndMove(net.minecraft.world.entity.EntityType.BAMBOO_RAFT)));
register(new EntityTypeData<>(EntityType.BAMBOO_CHEST_RAFT, BambooChestRaft.class, CraftBambooChestRaft::new, createAndMove(net.minecraft.world.entity.EntityType.BAMBOO_CHEST_RAFT)));
register(new EntityTypeData<>(EntityType.BIRCH_BOAT, BirchBoat.class, CraftBirchBoat::new, createAndMove(net.minecraft.world.entity.EntityType.BIRCH_BOAT)));
register(new EntityTypeData<>(EntityType.BIRCH_CHEST_BOAT, BirchChestBoat.class, CraftBirchChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.BIRCH_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.CHERRY_BOAT, CherryBoat.class, CraftCherryBoat::new, createAndMove(net.minecraft.world.entity.EntityType.CHERRY_BOAT)));
register(new EntityTypeData<>(EntityType.CHERRY_CHEST_BOAT, CherryChestBoat.class, CraftCherryChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.CHERRY_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.DARK_OAK_BOAT, DarkOakBoat.class, CraftDarkOakBoat::new, createAndMove(net.minecraft.world.entity.EntityType.DARK_OAK_BOAT)));
register(new EntityTypeData<>(EntityType.DARK_OAK_CHEST_BOAT, DarkOakChestBoat.class, CraftDarkOakChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.DARK_OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.JUNGLE_BOAT, JungleBoat.class, CraftJungleBoat::new, createAndMove(net.minecraft.world.entity.EntityType.JUNGLE_BOAT)));
register(new EntityTypeData<>(EntityType.JUNGLE_CHEST_BOAT, JungleChestBoat.class, CraftJungleChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.JUNGLE_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.MANGROVE_BOAT, MangroveBoat.class, CraftMangroveBoat::new, createAndMove(net.minecraft.world.entity.EntityType.MANGROVE_BOAT)));
register(new EntityTypeData<>(EntityType.MANGROVE_CHEST_BOAT, MangroveChestBoat.class, CraftMangroveChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.MANGROVE_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.OAK_BOAT, OakBoat.class, CraftOakBoat::new, createAndMove(net.minecraft.world.entity.EntityType.OAK_BOAT)));
register(new EntityTypeData<>(EntityType.OAK_CHEST_BOAT, OakChestBoat.class, CraftOakChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.PALE_OAK_BOAT, PaleOakBoat.class, CraftPaleOakBoat::new, createAndMove(net.minecraft.world.entity.EntityType.PALE_OAK_BOAT)));
register(new EntityTypeData<>(EntityType.PALE_OAK_CHEST_BOAT, PaleOakChestBoat.class, CraftPaleOakChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.PALE_OAK_CHEST_BOAT)));
register(new EntityTypeData<>(EntityType.SPRUCE_BOAT, SpruceBoat.class, CraftSpruceBoat::new, createAndMove(net.minecraft.world.entity.EntityType.SPRUCE_BOAT)));
register(new EntityTypeData<>(EntityType.SPRUCE_CHEST_BOAT, SpruceChestBoat.class, CraftSpruceChestBoat::new, createAndMove(net.minecraft.world.entity.EntityType.SPRUCE_CHEST_BOAT)));
// Set pos
register(new EntityTypeData<>(EntityType.MARKER, Marker.class, CraftMarker::new, createAndSetPos(EntityTypes.MARKER)));
register(new EntityTypeData<>(EntityType.BLOCK_DISPLAY, BlockDisplay.class, CraftBlockDisplay::new, createAndSetPos(EntityTypes.BLOCK_DISPLAY)));
register(new EntityTypeData<>(EntityType.INTERACTION, Interaction.class, CraftInteraction::new, createAndSetPos(EntityTypes.INTERACTION)));
register(new EntityTypeData<>(EntityType.ITEM_DISPLAY, ItemDisplay.class, CraftItemDisplay::new, createAndSetPos(EntityTypes.ITEM_DISPLAY)));
register(new EntityTypeData<>(EntityType.TEXT_DISPLAY, TextDisplay.class, CraftTextDisplay::new, createAndSetPos(EntityTypes.TEXT_DISPLAY)));
register(new EntityTypeData<>(EntityType.MARKER, Marker.class, CraftMarker::new, createAndSetPos(net.minecraft.world.entity.EntityType.MARKER)));
register(new EntityTypeData<>(EntityType.BLOCK_DISPLAY, BlockDisplay.class, CraftBlockDisplay::new, createAndSetPos(net.minecraft.world.entity.EntityType.BLOCK_DISPLAY)));
register(new EntityTypeData<>(EntityType.INTERACTION, Interaction.class, CraftInteraction::new, createAndSetPos(net.minecraft.world.entity.EntityType.INTERACTION)));
register(new EntityTypeData<>(EntityType.ITEM_DISPLAY, ItemDisplay.class, CraftItemDisplay::new, createAndSetPos(net.minecraft.world.entity.EntityType.ITEM_DISPLAY)));
register(new EntityTypeData<>(EntityType.TEXT_DISPLAY, TextDisplay.class, CraftTextDisplay::new, createAndSetPos(net.minecraft.world.entity.EntityType.TEXT_DISPLAY)));
// MISC
register(new EntityTypeData<>(EntityType.ITEM, Item.class, CraftItem::new, spawnData -> {
// We use stone instead of empty, to give the plugin developer a visual clue, that the spawn method is working,
// and that the item stack should probably be changed.
net.minecraft.world.item.ItemStack itemStack = new net.minecraft.world.item.ItemStack(Items.STONE);
EntityItem item = new EntityItem(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), itemStack);
ItemEntity item = new ItemEntity(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), itemStack);
item.setPickUpDelay(10);
return item;
}));
register(new EntityTypeData<>(EntityType.EXPERIENCE_ORB, ExperienceOrb.class, CraftExperienceOrb::new,
spawnData -> new EntityExperienceOrb(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), 0)
spawnData -> new net.minecraft.world.entity.ExperienceOrb(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), 0)
));
register(new EntityTypeData<>(EntityType.AREA_EFFECT_CLOUD, AreaEffectCloud.class, CraftAreaEffectCloud::new, spawnData -> new EntityAreaEffectCloud(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z())));
register(new EntityTypeData<>(EntityType.EGG, Egg.class, CraftEgg::new, spawnData -> new EntityEgg(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.EGG))));
register(new EntityTypeData<>(EntityType.LEASH_KNOT, LeashHitch.class, CraftLeash::new, spawnData -> new EntityLeash(spawnData.minecraftWorld(), BlockPosition.containing(spawnData.x(), spawnData.y(), spawnData.z())))); // SPIGOT-5732: LeashHitch has no direction and is always centered at a block
register(new EntityTypeData<>(EntityType.SNOWBALL, Snowball.class, CraftSnowball::new, spawnData -> new EntitySnowball(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.SNOWBALL))));
register(new EntityTypeData<>(EntityType.EYE_OF_ENDER, EnderSignal.class, CraftEnderSignal::new, spawnData -> new EntityEnderSignal(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z())));
register(new EntityTypeData<>(EntityType.AREA_EFFECT_CLOUD, AreaEffectCloud.class, CraftAreaEffectCloud::new, spawnData -> new net.minecraft.world.entity.AreaEffectCloud(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z())));
register(new EntityTypeData<>(EntityType.EGG, Egg.class, CraftEgg::new, spawnData -> new ThrownEgg(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.EGG))));
register(new EntityTypeData<>(EntityType.LEASH_KNOT, LeashHitch.class, CraftLeash::new, spawnData -> new LeashFenceKnotEntity(spawnData.minecraftWorld(), BlockPos.containing(spawnData.x(), spawnData.y(), spawnData.z())))); // SPIGOT-5732: LeashHitch has no direction and is always centered at a block
register(new EntityTypeData<>(EntityType.SNOWBALL, Snowball.class, CraftSnowball::new, spawnData -> new net.minecraft.world.entity.projectile.Snowball(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.SNOWBALL))));
register(new EntityTypeData<>(EntityType.EYE_OF_ENDER, EnderSignal.class, CraftEnderSignal::new, spawnData -> new EyeOfEnder(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z())));
register(new EntityTypeData<>(EntityType.POTION, ThrownPotion.class, CraftThrownPotion::new, spawnData -> {
EntityPotion entity = new EntityPotion(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.SPLASH_POTION));
net.minecraft.world.entity.projectile.ThrownPotion entity = new net.minecraft.world.entity.projectile.ThrownPotion(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), new net.minecraft.world.item.ItemStack(Items.SPLASH_POTION));
return entity;
}));
register(new EntityTypeData<>(EntityType.TNT, TNTPrimed.class, CraftTNTPrimed::new, spawnData -> new EntityTNTPrimed(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), null)));
register(new EntityTypeData<>(EntityType.TNT, TNTPrimed.class, CraftTNTPrimed::new, spawnData -> new PrimedTnt(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), null)));
register(new EntityTypeData<>(EntityType.FALLING_BLOCK, FallingBlock.class, CraftFallingBlock::new, spawnData -> {
BlockPosition pos = BlockPosition.containing(spawnData.x(), spawnData.y(), spawnData.z());
return EntityFallingBlock.fall(spawnData.minecraftWorld(), pos, spawnData.world().getBlockState(pos));
BlockPos pos = BlockPos.containing(spawnData.x(), spawnData.y(), spawnData.z());
return FallingBlockEntity.fall(spawnData.minecraftWorld(), pos, spawnData.world().getBlockState(pos));
}));
register(new EntityTypeData<>(EntityType.FIREWORK_ROCKET, Firework.class, CraftFirework::new, spawnData -> new EntityFireworks(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), net.minecraft.world.item.ItemStack.EMPTY)));
register(new EntityTypeData<>(EntityType.EVOKER_FANGS, EvokerFangs.class, CraftEvokerFangs::new, spawnData -> new EntityEvokerFangs(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), (float) Math.toRadians(spawnData.yaw()), 0, null)));
register(new EntityTypeData<>(EntityType.COMMAND_BLOCK_MINECART, CommandMinecart.class, CraftMinecartCommand::new, createMinecart(EntityTypes.COMMAND_BLOCK_MINECART)));
register(new EntityTypeData<>(EntityType.MINECART, RideableMinecart.class, CraftMinecartRideable::new, createMinecart(EntityTypes.MINECART)));
register(new EntityTypeData<>(EntityType.CHEST_MINECART, StorageMinecart.class, CraftMinecartChest::new, createMinecart(EntityTypes.CHEST_MINECART)));
register(new EntityTypeData<>(EntityType.FURNACE_MINECART, PoweredMinecart.class, CraftMinecartFurnace::new, createMinecart(EntityTypes.FURNACE_MINECART)));
register(new EntityTypeData<>(EntityType.TNT_MINECART, ExplosiveMinecart.class, CraftMinecartTNT::new, createMinecart(EntityTypes.TNT_MINECART)));
register(new EntityTypeData<>(EntityType.HOPPER_MINECART, HopperMinecart.class, CraftMinecartHopper::new, createMinecart(EntityTypes.HOPPER_MINECART)));
register(new EntityTypeData<>(EntityType.SPAWNER_MINECART, SpawnerMinecart.class, CraftMinecartMobSpawner::new, createMinecart(EntityTypes.SPAWNER_MINECART)));
register(new EntityTypeData<>(EntityType.FIREWORK_ROCKET, Firework.class, CraftFirework::new, spawnData -> new FireworkRocketEntity(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), net.minecraft.world.item.ItemStack.EMPTY)));
register(new EntityTypeData<>(EntityType.EVOKER_FANGS, EvokerFangs.class, CraftEvokerFangs::new, spawnData -> new net.minecraft.world.entity.projectile.EvokerFangs(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), (float) Math.toRadians(spawnData.yaw()), 0, null)));
register(new EntityTypeData<>(EntityType.COMMAND_BLOCK_MINECART, CommandMinecart.class, CraftMinecartCommand::new, createMinecart(net.minecraft.world.entity.EntityType.COMMAND_BLOCK_MINECART)));
register(new EntityTypeData<>(EntityType.MINECART, RideableMinecart.class, CraftMinecartRideable::new, createMinecart(net.minecraft.world.entity.EntityType.MINECART)));
register(new EntityTypeData<>(EntityType.CHEST_MINECART, StorageMinecart.class, CraftMinecartChest::new, createMinecart(net.minecraft.world.entity.EntityType.CHEST_MINECART)));
register(new EntityTypeData<>(EntityType.FURNACE_MINECART, PoweredMinecart.class, CraftMinecartFurnace::new, createMinecart(net.minecraft.world.entity.EntityType.FURNACE_MINECART)));
register(new EntityTypeData<>(EntityType.TNT_MINECART, ExplosiveMinecart.class, CraftMinecartTNT::new, createMinecart(net.minecraft.world.entity.EntityType.TNT_MINECART)));
register(new EntityTypeData<>(EntityType.HOPPER_MINECART, HopperMinecart.class, CraftMinecartHopper::new, createMinecart(net.minecraft.world.entity.EntityType.HOPPER_MINECART)));
register(new EntityTypeData<>(EntityType.SPAWNER_MINECART, SpawnerMinecart.class, CraftMinecartMobSpawner::new, createMinecart(net.minecraft.world.entity.EntityType.SPAWNER_MINECART)));
// None spawn able
register(new EntityTypeData<>(EntityType.FISHING_BOBBER, FishHook.class, CraftFishHook::new, null)); // Cannot spawn a fish hook
@@ -465,55 +456,55 @@ public final class CraftEntityTypes {
}
private static void register(EntityTypeData<?, ?> typeData) {
EntityTypeData<?, ?> other = CLASS_TYPE_DATA.put(typeData.entityClass(), typeData);
EntityTypeData<?, ?> other = CraftEntityTypes.CLASS_TYPE_DATA.put(typeData.entityClass(), typeData);
if (other != null) {
Bukkit.getLogger().warning(String.format("Found multiple entity type data for class %s, replacing '%s' with new value '%s'", typeData.entityClass().getName(), other, typeData));
}
other = ENTITY_TYPE_DATA.put(typeData.entityType(), typeData);
other = CraftEntityTypes.ENTITY_TYPE_DATA.put(typeData.entityType(), typeData);
if (other != null) {
Bukkit.getLogger().warning(String.format("Found multiple entity type data for entity type %s, replacing '%s' with new value '%s'", typeData.entityType().getKey(), other, typeData));
}
}
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> fromEntityType(EntityTypes<R> entityTypes) {
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> fromEntityType(net.minecraft.world.entity.EntityType<R> entityTypes) {
return spawnData -> entityTypes.create(spawnData.minecraftWorld(), EntitySpawnReason.COMMAND);
}
private static <R extends net.minecraft.world.entity.EntityLiving> Function<SpawnData, R> createLiving(EntityTypes<R> entityTypes) {
return combine(fromEntityType(entityTypes), ABS_MOVE);
private static <R extends net.minecraft.world.entity.LivingEntity> Function<SpawnData, R> createLiving(net.minecraft.world.entity.EntityType<R> entityTypes) {
return CraftEntityTypes.combine(CraftEntityTypes.fromEntityType(entityTypes), CraftEntityTypes.ABS_MOVE);
}
private static <R extends EntityFireball> Function<SpawnData, R> createFireball(EntityTypes<R> entityTypes) {
return combine(createAndMove(entityTypes), DIRECTION);
private static <R extends AbstractHurtingProjectile> Function<SpawnData, R> createFireball(net.minecraft.world.entity.EntityType<R> entityTypes) {
return CraftEntityTypes.combine(CraftEntityTypes.createAndMove(entityTypes), CraftEntityTypes.DIRECTION);
}
private static <R extends EntityMinecartAbstract> Function<SpawnData, R> createMinecart(EntityTypes<R> entityTypes) {
private static <R extends AbstractMinecart> Function<SpawnData, R> createMinecart(net.minecraft.world.entity.EntityType<R> entityTypes) {
return spawnData -> {
if (spawnData.normalWorld()) {
return EntityMinecartAbstract.createMinecart(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), entityTypes, EntitySpawnReason.TRIGGERED, ItemStack.EMPTY, null);
return AbstractMinecart.createMinecart(spawnData.minecraftWorld(), spawnData.x(), spawnData.y(), spawnData.z(), entityTypes, EntitySpawnReason.TRIGGERED, ItemStack.EMPTY, null);
} else {
return combine(fromEntityType(entityTypes), (spawnData2, entity) -> entity.setInitialPos(spawnData.x(), spawnData.y(), spawnData.z())).apply(spawnData);
return CraftEntityTypes.combine(CraftEntityTypes.fromEntityType(entityTypes), (spawnData2, entity) -> entity.setInitialPos(spawnData.x(), spawnData.y(), spawnData.z())).apply(spawnData);
}
};
}
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndMove(EntityTypes<R> entityTypes) {
return combine(fromEntityType(entityTypes), MOVE);
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndMove(net.minecraft.world.entity.EntityType<R> entityTypes) {
return CraftEntityTypes.combine(CraftEntityTypes.fromEntityType(entityTypes), CraftEntityTypes.MOVE);
}
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndMoveEmptyRot(EntityTypes<R> entityTypes) {
return combine(fromEntityType(entityTypes), MOVE_EMPTY_ROT);
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndMoveEmptyRot(net.minecraft.world.entity.EntityType<R> entityTypes) {
return CraftEntityTypes.combine(CraftEntityTypes.fromEntityType(entityTypes), CraftEntityTypes.MOVE_EMPTY_ROT);
}
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndSetPos(EntityTypes<R> entityTypes) {
return combine(fromEntityType(entityTypes), POS);
private static <R extends net.minecraft.world.entity.Entity> Function<SpawnData, R> createAndSetPos(net.minecraft.world.entity.EntityType<R> entityTypes) {
return CraftEntityTypes.combine(CraftEntityTypes.fromEntityType(entityTypes), CraftEntityTypes.POS);
}
private record HangingData(boolean randomize, BlockPosition position, EnumDirection direction) {
private record HangingData(boolean randomize, BlockPos position, Direction direction) {
}
private static <E extends Hanging, R extends EntityHanging> Function<SpawnData, R> createHanging(Class<E> clazz, BiFunction<SpawnData, HangingData, R> spawnFunction) {
private static <E extends Hanging, R extends HangingEntity> Function<SpawnData, R> createHanging(Class<E> clazz, BiFunction<SpawnData, HangingData, R> spawnFunction) {
return spawnData -> {
boolean randomizeData = spawnData.randomizeData();
BlockFace face = BlockFace.SELF;
@@ -528,18 +519,18 @@ public final class CraftEntityTypes {
faces = new BlockFace[]{BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH, BlockFace.UP, BlockFace.DOWN};
}
final BlockPosition pos = BlockPosition.containing(spawnData.x(), spawnData.y(), spawnData.z());
final BlockPos pos = BlockPos.containing(spawnData.x(), spawnData.y(), spawnData.z());
for (BlockFace dir : faces) {
IBlockData nmsBlock = spawnData.world().getBlockState(pos.relative(CraftBlock.blockFaceToNotch(dir)));
if (nmsBlock.isSolid() || BlockDiodeAbstract.isDiode(nmsBlock)) {
BlockState nmsBlock = spawnData.world().getBlockState(pos.relative(CraftBlock.blockFaceToNotch(dir)));
if (nmsBlock.isSolid() || DiodeBlock.isDiode(nmsBlock)) {
boolean taken = false;
AxisAlignedBB bb = (ItemFrame.class.isAssignableFrom(clazz))
? EntityItemFrame.calculateBoundingBoxStatic(pos, CraftBlock.blockFaceToNotch(dir).getOpposite())
: EntityPainting.calculateBoundingBoxStatic(pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
AABB bb = (ItemFrame.class.isAssignableFrom(clazz))
? net.minecraft.world.entity.decoration.ItemFrame.calculateBoundingBoxStatic(pos, CraftBlock.blockFaceToNotch(dir).getOpposite())
: net.minecraft.world.entity.decoration.Painting.calculateBoundingBoxStatic(pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
List<net.minecraft.world.entity.Entity> list = spawnData.world().getEntities(null, bb);
for (Iterator<net.minecraft.world.entity.Entity> it = list.iterator(); !taken && it.hasNext(); ) {
net.minecraft.world.entity.Entity e = it.next();
if (e instanceof EntityHanging) {
if (e instanceof HangingEntity) {
taken = true; // Hanging entities do not like hanging entities which intersect them.
}
}
@@ -558,7 +549,7 @@ public final class CraftEntityTypes {
randomizeData = false; // Don't randomize if no valid face is found, prevents null painting
}
EnumDirection dir = CraftBlock.blockFaceToNotch(face).getOpposite();
Direction dir = CraftBlock.blockFaceToNotch(face).getOpposite();
return spawnFunction.apply(spawnData, new HangingData(randomizeData, pos, dir));
};
}
@@ -572,11 +563,11 @@ public final class CraftEntityTypes {
}
public static <E extends Entity, M extends net.minecraft.world.entity.Entity> EntityTypeData<E, M> getEntityTypeData(EntityType entityType) {
return (EntityTypeData<E, M>) ENTITY_TYPE_DATA.get(entityType);
return (EntityTypeData<E, M>) CraftEntityTypes.ENTITY_TYPE_DATA.get(entityType);
}
public static <E extends Entity, M extends net.minecraft.world.entity.Entity> EntityTypeData<E, M> getEntityTypeData(Class<E> entityClass) {
return (EntityTypeData<E, M>) CLASS_TYPE_DATA.get(entityClass);
return (EntityTypeData<E, M>) CraftEntityTypes.CLASS_TYPE_DATA.get(entityClass);
}
private CraftEntityTypes() {

View File

@@ -1,19 +1,18 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityEvoker;
import net.minecraft.world.entity.monster.EntityIllagerWizard;
import net.minecraft.world.entity.monster.SpellcasterIllager;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Evoker;
public class CraftEvoker extends CraftSpellcaster implements Evoker {
public CraftEvoker(CraftServer server, EntityEvoker entity) {
public CraftEvoker(CraftServer server, net.minecraft.world.entity.monster.Evoker entity) {
super(server, entity);
}
@Override
public EntityEvoker getHandle() {
return (EntityEvoker) super.getHandle();
public net.minecraft.world.entity.monster.Evoker getHandle() {
return (net.minecraft.world.entity.monster.Evoker) super.getHandle();
}
@Override
@@ -23,11 +22,11 @@ public class CraftEvoker extends CraftSpellcaster implements Evoker {
@Override
public Evoker.Spell getCurrentSpell() {
return Evoker.Spell.values()[getHandle().getCurrentSpell().ordinal()];
return Evoker.Spell.values()[this.getHandle().getCurrentSpell().ordinal()];
}
@Override
public void setCurrentSpell(Evoker.Spell spell) {
getHandle().setIsCastingSpell(spell == null ? EntityIllagerWizard.Spell.NONE : EntityIllagerWizard.Spell.byId(spell.ordinal()));
this.getHandle().setIsCastingSpell(spell == null ? SpellcasterIllager.IllagerSpell.NONE : SpellcasterIllager.IllagerSpell.byId(spell.ordinal()));
}
}

View File

@@ -1,21 +1,19 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.entity.projectile.EntityEvokerFangs;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EvokerFangs;
import org.bukkit.entity.LivingEntity;
public class CraftEvokerFangs extends CraftEntity implements EvokerFangs {
public CraftEvokerFangs(CraftServer server, EntityEvokerFangs entity) {
public CraftEvokerFangs(CraftServer server, net.minecraft.world.entity.projectile.EvokerFangs entity) {
super(server, entity);
}
@Override
public EntityEvokerFangs getHandle() {
return (EntityEvokerFangs) super.getHandle();
public net.minecraft.world.entity.projectile.EvokerFangs getHandle() {
return (net.minecraft.world.entity.projectile.EvokerFangs) super.getHandle();
}
@Override
@@ -25,25 +23,25 @@ public class CraftEvokerFangs extends CraftEntity implements EvokerFangs {
@Override
public LivingEntity getOwner() {
EntityLiving owner = getHandle().getOwner();
net.minecraft.world.entity.LivingEntity owner = this.getHandle().getOwner();
return (owner == null) ? null : (LivingEntity) owner.getBukkitEntity();
}
@Override
public void setOwner(LivingEntity owner) {
getHandle().setOwner(owner == null ? null : ((CraftLivingEntity) owner).getHandle());
this.getHandle().setOwner(owner == null ? null : ((CraftLivingEntity) owner).getHandle());
}
@Override
public int getAttackDelay() {
return getHandle().warmupDelayTicks;
return this.getHandle().warmupDelayTicks;
}
@Override
public void setAttackDelay(int delay) {
Preconditions.checkArgument(delay >= 0, "Delay must be positive");
getHandle().warmupDelayTicks = delay;
this.getHandle().warmupDelayTicks = delay;
}
}

View File

@@ -1,27 +1,26 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityExperienceOrb;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ExperienceOrb;
public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb {
public CraftExperienceOrb(CraftServer server, EntityExperienceOrb entity) {
public CraftExperienceOrb(CraftServer server, net.minecraft.world.entity.ExperienceOrb entity) {
super(server, entity);
}
@Override
public int getExperience() {
return getHandle().value;
return this.getHandle().value;
}
@Override
public void setExperience(int value) {
getHandle().value = value;
this.getHandle().value = value;
}
@Override
public EntityExperienceOrb getHandle() {
return (EntityExperienceOrb) entity;
public net.minecraft.world.entity.ExperienceOrb getHandle() {
return (net.minecraft.world.entity.ExperienceOrb) this.entity;
}
@Override

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.item.EntityFallingBlock;
import net.minecraft.world.entity.item.FallingBlockEntity;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.CraftServer;
@@ -10,13 +10,13 @@ import org.bukkit.entity.FallingBlock;
public class CraftFallingBlock extends CraftEntity implements FallingBlock {
public CraftFallingBlock(CraftServer server, EntityFallingBlock entity) {
public CraftFallingBlock(CraftServer server, FallingBlockEntity entity) {
super(server, entity);
}
@Override
public EntityFallingBlock getHandle() {
return (EntityFallingBlock) entity;
public FallingBlockEntity getHandle() {
return (FallingBlockEntity) this.entity;
}
@Override
@@ -26,42 +26,42 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
@Override
public Material getMaterial() {
return getBlockData().getMaterial();
return this.getBlockData().getMaterial();
}
@Override
public BlockData getBlockData() {
return CraftBlockData.fromData(getHandle().getBlockState());
return CraftBlockData.fromData(this.getHandle().getBlockState());
}
@Override
public boolean getDropItem() {
return getHandle().dropItem;
return this.getHandle().dropItem;
}
@Override
public void setDropItem(boolean drop) {
getHandle().dropItem = drop;
this.getHandle().dropItem = drop;
}
@Override
public boolean getCancelDrop() {
return getHandle().cancelDrop;
return this.getHandle().cancelDrop;
}
@Override
public void setCancelDrop(boolean cancelDrop) {
getHandle().cancelDrop = cancelDrop;
this.getHandle().cancelDrop = cancelDrop;
}
@Override
public boolean canHurtEntities() {
return getHandle().hurtEntities;
return this.getHandle().hurtEntities;
}
@Override
public void setHurtEntities(boolean hurtEntities) {
getHandle().hurtEntities = hurtEntities;
this.getHandle().hurtEntities = hurtEntities;
}
@Override
@@ -69,19 +69,19 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
super.setTicksLived(value);
// Second field for EntityFallingBlock
getHandle().time = value;
this.getHandle().time = value;
}
@Override
public float getDamagePerBlock() {
return getHandle().fallDamagePerDistance;
return this.getHandle().fallDamagePerDistance;
}
@Override
public void setDamagePerBlock(float damage) {
Preconditions.checkArgument(damage >= 0.0, "damage must be >= 0.0, given %s", damage);
getHandle().fallDamagePerDistance = damage;
this.getHandle().fallDamagePerDistance = damage;
if (damage > 0.0) {
this.setHurtEntities(true);
}
@@ -89,14 +89,14 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
@Override
public int getMaxDamage() {
return getHandle().fallDamageMax;
return this.getHandle().fallDamageMax;
}
@Override
public void setMaxDamage(int damage) {
Preconditions.checkArgument(damage >= 0, "damage must be >= 0, given %s", damage);
getHandle().fallDamageMax = damage;
this.getHandle().fallDamageMax = damage;
if (damage > 0) {
this.setHurtEntities(true);
}

View File

@@ -1,8 +1,8 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.projectile.EntityFireball;
import net.minecraft.world.phys.Vec3D;
import net.minecraft.world.entity.projectile.AbstractHurtingProjectile;
import net.minecraft.world.phys.Vec3;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Fireball;
import org.bukkit.projectiles.ProjectileSource;
@@ -10,62 +10,62 @@ import org.bukkit.util.Vector;
import org.jetbrains.annotations.NotNull;
public class CraftFireball extends AbstractProjectile implements Fireball {
public CraftFireball(CraftServer server, EntityFireball entity) {
public CraftFireball(CraftServer server, AbstractHurtingProjectile entity) {
super(server, entity);
}
@Override
public float getYield() {
return getHandle().bukkitYield;
return this.getHandle().bukkitYield;
}
@Override
public boolean isIncendiary() {
return getHandle().isIncendiary;
return this.getHandle().isIncendiary;
}
@Override
public void setIsIncendiary(boolean isIncendiary) {
getHandle().isIncendiary = isIncendiary;
this.getHandle().isIncendiary = isIncendiary;
}
@Override
public void setYield(float yield) {
getHandle().bukkitYield = yield;
this.getHandle().bukkitYield = yield;
}
@Override
public ProjectileSource getShooter() {
return getHandle().projectileSource;
return this.getHandle().projectileSource;
}
@Override
public void setShooter(ProjectileSource shooter) {
if (shooter instanceof CraftLivingEntity) {
getHandle().setOwner(((CraftLivingEntity) shooter).getHandle());
this.getHandle().setOwner(((CraftLivingEntity) shooter).getHandle());
} else {
getHandle().setOwner(null);
this.getHandle().setOwner(null);
}
getHandle().projectileSource = shooter;
this.getHandle().projectileSource = shooter;
}
@Override
public Vector getDirection() {
return getAcceleration();
return this.getAcceleration();
}
@Override
public void setDirection(Vector direction) {
Preconditions.checkArgument(direction != null, "Vector direction cannot be null");
if (direction.isZero()) {
setVelocity(direction);
setAcceleration(direction);
this.setVelocity(direction);
this.setAcceleration(direction);
return;
}
direction = direction.clone().normalize();
setVelocity(direction.clone().multiply(getVelocity().length()));
setAcceleration(direction.multiply(getAcceleration().length()));
this.setVelocity(direction.clone().multiply(this.getVelocity().length()));
this.setAcceleration(direction.multiply(this.getAcceleration().length()));
}
@Override
@@ -73,20 +73,20 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
Preconditions.checkArgument(acceleration != null, "Vector acceleration cannot be null");
// SPIGOT-6993: EntityFireball#assignPower will normalize the given values
// Note: Because of MC-80142 the fireball will stutter on the client when setting the power to something other than 0 or the normalized vector * 0.1
getHandle().assignDirectionalMovement(new Vec3D(acceleration.getX(), acceleration.getY(), acceleration.getZ()), acceleration.length());
update(); // SPIGOT-6579
this.getHandle().assignDirectionalMovement(new Vec3(acceleration.getX(), acceleration.getY(), acceleration.getZ()), acceleration.length());
this.update(); // SPIGOT-6579
}
@NotNull
@Override
public Vector getAcceleration() {
Vec3D delta = getHandle().getDeltaMovement();
Vec3 delta = this.getHandle().getDeltaMovement();
return new Vector(delta.x, delta.y, delta.z);
}
@Override
public EntityFireball getHandle() {
return (EntityFireball) entity;
public AbstractHurtingProjectile getHandle() {
return (AbstractHurtingProjectile) this.entity;
}
@Override

View File

@@ -2,8 +2,7 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.Random;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.entity.projectile.EntityFireworks;
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import org.bukkit.Material;
@@ -18,14 +17,14 @@ public class CraftFirework extends CraftProjectile implements Firework {
private final Random random = new Random();
private final CraftItemStack item;
public CraftFirework(CraftServer server, EntityFireworks entity) {
public CraftFirework(CraftServer server, FireworkRocketEntity entity) {
super(server, entity);
ItemStack item = getHandle().getEntityData().get(EntityFireworks.DATA_ID_FIREWORKS_ITEM);
ItemStack item = this.getHandle().getEntityData().get(FireworkRocketEntity.DATA_ID_FIREWORKS_ITEM);
if (item.isEmpty()) {
item = new ItemStack(Items.FIREWORK_ROCKET);
getHandle().getEntityData().set(EntityFireworks.DATA_ID_FIREWORKS_ITEM, item);
this.getHandle().getEntityData().set(FireworkRocketEntity.DATA_ID_FIREWORKS_ITEM, item);
}
this.item = CraftItemStack.asCraftMirror(item);
@@ -37,8 +36,8 @@ public class CraftFirework extends CraftProjectile implements Firework {
}
@Override
public EntityFireworks getHandle() {
return (EntityFireworks) entity;
public FireworkRocketEntity getHandle() {
return (FireworkRocketEntity) this.entity;
}
@Override
@@ -48,32 +47,32 @@ public class CraftFirework extends CraftProjectile implements Firework {
@Override
public FireworkMeta getFireworkMeta() {
return (FireworkMeta) item.getItemMeta();
return (FireworkMeta) this.item.getItemMeta();
}
@Override
public void setFireworkMeta(FireworkMeta meta) {
item.setItemMeta(meta);
this.item.setItemMeta(meta);
// Copied from EntityFireworks constructor, update firework lifetime/power
getHandle().lifetime = 10 * (1 + meta.getPower()) + random.nextInt(6) + random.nextInt(7);
this.getHandle().lifetime = 10 * (1 + meta.getPower()) + this.random.nextInt(6) + this.random.nextInt(7);
getHandle().getEntityData().markDirty(EntityFireworks.DATA_ID_FIREWORKS_ITEM);
this.getHandle().getEntityData().markDirty(FireworkRocketEntity.DATA_ID_FIREWORKS_ITEM);
}
@Override
public boolean setAttachedTo(LivingEntity entity) {
if (isDetonated()) {
if (this.isDetonated()) {
return false;
}
getHandle().attachedToEntity = (entity != null) ? ((CraftLivingEntity) entity).getHandle() : null;
this.getHandle().attachedToEntity = (entity != null) ? ((CraftLivingEntity) entity).getHandle() : null;
return true;
}
@Override
public LivingEntity getAttachedTo() {
EntityLiving entity = getHandle().attachedToEntity;
net.minecraft.world.entity.LivingEntity entity = this.getHandle().attachedToEntity;
return (entity != null) ? (LivingEntity) entity.getBukkitEntity() : null;
}
@@ -81,53 +80,53 @@ public class CraftFirework extends CraftProjectile implements Firework {
public boolean setLife(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks must be greater than or equal to 0");
if (isDetonated()) {
if (this.isDetonated()) {
return false;
}
getHandle().life = ticks;
this.getHandle().life = ticks;
return true;
}
@Override
public int getLife() {
return getHandle().life;
return this.getHandle().life;
}
@Override
public boolean setMaxLife(int ticks) {
Preconditions.checkArgument(ticks > 0, "ticks must be greater than 0");
if (isDetonated()) {
if (this.isDetonated()) {
return false;
}
getHandle().lifetime = ticks;
this.getHandle().lifetime = ticks;
return true;
}
@Override
public int getMaxLife() {
return getHandle().lifetime;
return this.getHandle().lifetime;
}
@Override
public void detonate() {
this.setLife(getMaxLife() + 1);
this.setLife(this.getMaxLife() + 1);
}
@Override
public boolean isDetonated() {
return getHandle().life > getHandle().lifetime;
return this.getHandle().life > this.getHandle().lifetime;
}
@Override
public boolean isShotAtAngle() {
return getHandle().isShotAtAngle();
return this.getHandle().isShotAtAngle();
}
@Override
public void setShotAtAngle(boolean shotAtAngle) {
getHandle().getEntityData().set(EntityFireworks.DATA_SHOT_AT_ANGLE, shotAtAngle);
this.getHandle().getEntityData().set(FireworkRocketEntity.DATA_SHOT_AT_ANGLE, shotAtAngle);
}
}

View File

@@ -1,18 +1,18 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityFish;
import net.minecraft.world.entity.animal.AbstractFish;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Fish;
public class CraftFish extends CraftWaterMob implements Fish {
public CraftFish(CraftServer server, EntityFish entity) {
public CraftFish(CraftServer server, AbstractFish entity) {
super(server, entity);
}
@Override
public EntityFish getHandle() {
return (EntityFish) entity;
public AbstractFish getHandle() {
return (AbstractFish) this.entity;
}
@Override

View File

@@ -1,8 +1,8 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.BlockPosition;
import net.minecraft.world.entity.projectile.EntityFishingHook;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.projectile.FishingHook;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Entity;
import org.bukkit.entity.FishHook;
@@ -10,13 +10,13 @@ import org.bukkit.entity.FishHook;
public class CraftFishHook extends CraftProjectile implements FishHook {
private double biteChance = -1;
public CraftFishHook(CraftServer server, EntityFishingHook entity) {
public CraftFishHook(CraftServer server, FishingHook entity) {
super(server, entity);
}
@Override
public EntityFishingHook getHandle() {
return (EntityFishingHook) entity;
public FishingHook getHandle() {
return (FishingHook) this.entity;
}
@Override
@@ -26,129 +26,129 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public int getMinWaitTime() {
return getHandle().minWaitTime;
return this.getHandle().minWaitTime;
}
@Override
public void setMinWaitTime(int minWaitTime) {
Preconditions.checkArgument(minWaitTime >= 0 && minWaitTime <= this.getMaxWaitTime(), "The minimum wait time should be between %s and %s (the maximum wait time)", 0, this.getMaxWaitTime());
EntityFishingHook hook = getHandle();
FishingHook hook = this.getHandle();
hook.minWaitTime = minWaitTime;
}
@Override
public int getMaxWaitTime() {
return getHandle().maxWaitTime;
return this.getHandle().maxWaitTime;
}
@Override
public void setMaxWaitTime(int maxWaitTime) {
Preconditions.checkArgument(maxWaitTime >= 0 && maxWaitTime >= this.getMinWaitTime(), "The maximum wait time should be between %s and %s (the minimum wait time)", 0, this.getMinWaitTime());
EntityFishingHook hook = getHandle();
FishingHook hook = this.getHandle();
hook.maxWaitTime = maxWaitTime;
}
@Override
public void setWaitTime(int min, int max) {
Preconditions.checkArgument(min >= 0 && max >= 0 && min <= max, "The minimum/maximum wait time should be higher than or equal to 0 and the minimum wait time");
getHandle().minWaitTime = min;
getHandle().maxWaitTime = max;
this.getHandle().minWaitTime = min;
this.getHandle().maxWaitTime = max;
}
@Override
public int getMinLureTime() {
return getHandle().minLureTime;
return this.getHandle().minLureTime;
}
@Override
public void setMinLureTime(int minLureTime) {
Preconditions.checkArgument(minLureTime >= 0 && minLureTime <= this.getMaxLureTime(), "The minimum lure time (%s) should be between 0 and %s (the maximum wait time)", minLureTime, this.getMaxLureTime());
getHandle().minLureTime = minLureTime;
this.getHandle().minLureTime = minLureTime;
}
@Override
public int getMaxLureTime() {
return getHandle().maxLureTime;
return this.getHandle().maxLureTime;
}
@Override
public void setMaxLureTime(int maxLureTime) {
Preconditions.checkArgument(maxLureTime >= 0 && maxLureTime >= this.getMinLureTime(), "The maximum lure time (%s) should be higher than or equal to 0 and %s (the minimum wait time)", maxLureTime, this.getMinLureTime());
getHandle().maxLureTime = maxLureTime;
this.getHandle().maxLureTime = maxLureTime;
}
@Override
public void setLureTime(int min, int max) {
Preconditions.checkArgument(min >= 0 && max >= 0 && min <= max, "The minimum/maximum lure time should be higher than or equal to 0 and the minimum wait time.");
getHandle().minLureTime = min;
getHandle().maxLureTime = max;
this.getHandle().minLureTime = min;
this.getHandle().maxLureTime = max;
}
@Override
public float getMinLureAngle() {
return getHandle().minLureAngle;
return this.getHandle().minLureAngle;
}
@Override
public void setMinLureAngle(float minLureAngle) {
Preconditions.checkArgument(minLureAngle <= this.getMaxLureAngle(), "The minimum lure angle (%s) should be less than %s (the maximum lure angle)", minLureAngle, this.getMaxLureAngle());
getHandle().minLureAngle = minLureAngle;
this.getHandle().minLureAngle = minLureAngle;
}
@Override
public float getMaxLureAngle() {
return getHandle().maxLureAngle;
return this.getHandle().maxLureAngle;
}
@Override
public void setMaxLureAngle(float maxLureAngle) {
Preconditions.checkArgument(maxLureAngle >= this.getMinLureAngle(), "The minimum lure angle (%s) should be less than %s (the maximum lure angle)", maxLureAngle, this.getMinLureAngle());
getHandle().maxLureAngle = maxLureAngle;
this.getHandle().maxLureAngle = maxLureAngle;
}
@Override
public void setLureAngle(float min, float max) {
Preconditions.checkArgument(min <= max, "The minimum lure (%s) angle should be less than the maximum lure angle (%s)", min, max);
getHandle().minLureAngle = min;
getHandle().maxLureAngle = max;
this.getHandle().minLureAngle = min;
this.getHandle().maxLureAngle = max;
}
@Override
public boolean isSkyInfluenced() {
return getHandle().skyInfluenced;
return this.getHandle().skyInfluenced;
}
@Override
public void setSkyInfluenced(boolean skyInfluenced) {
getHandle().skyInfluenced = skyInfluenced;
this.getHandle().skyInfluenced = skyInfluenced;
}
@Override
public boolean isRainInfluenced() {
return getHandle().rainInfluenced;
return this.getHandle().rainInfluenced;
}
@Override
public void setRainInfluenced(boolean rainInfluenced) {
getHandle().rainInfluenced = rainInfluenced;
this.getHandle().rainInfluenced = rainInfluenced;
}
@Override
public boolean getApplyLure() {
return getHandle().applyLure;
return this.getHandle().applyLure;
}
@Override
public void setApplyLure(boolean applyLure) {
getHandle().applyLure = applyLure;
this.getHandle().applyLure = applyLure;
}
@Override
public double getBiteChance() {
EntityFishingHook hook = getHandle();
FishingHook hook = this.getHandle();
if (this.biteChance == -1) {
if (hook.level().isRainingAt(BlockPosition.containing(hook.position()).offset(0, 1, 0))) {
if (hook.level().isRainingAt(BlockPos.containing(hook.position()).offset(0, 1, 0))) {
return 1 / 300.0;
}
return 1 / 500.0;
@@ -164,26 +164,26 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public boolean isInOpenWater() {
return getHandle().isOpenWaterFishing();
return this.getHandle().isOpenWaterFishing();
}
@Override
public Entity getHookedEntity() {
net.minecraft.world.entity.Entity hooked = getHandle().hookedIn;
net.minecraft.world.entity.Entity hooked = this.getHandle().hookedIn;
return (hooked != null) ? hooked.getBukkitEntity() : null;
}
@Override
public void setHookedEntity(Entity entity) {
EntityFishingHook hook = getHandle();
FishingHook hook = this.getHandle();
hook.hookedIn = (entity != null) ? ((CraftEntity) entity).getHandle() : null;
hook.getEntityData().set(EntityFishingHook.DATA_HOOKED_ENTITY, hook.hookedIn != null ? hook.hookedIn.getId() + 1 : 0);
hook.getEntityData().set(FishingHook.DATA_HOOKED_ENTITY, hook.hookedIn != null ? hook.hookedIn.getId() + 1 : 0);
}
@Override
public boolean pullHookedEntity() {
EntityFishingHook hook = getHandle();
FishingHook hook = this.getHandle();
if (hook.hookedIn == null) {
return false;
}
@@ -194,6 +194,6 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public HookState getState() {
return HookState.values()[getHandle().currentState.ordinal()];
return HookState.values()[this.getHandle().currentState.ordinal()];
}
}

View File

@@ -1,18 +1,18 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.EntityFlying;
import net.minecraft.world.entity.FlyingMob;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Flying;
public class CraftFlying extends CraftMob implements Flying {
public CraftFlying(CraftServer server, EntityFlying entity) {
public CraftFlying(CraftServer server, FlyingMob entity) {
super(server, entity);
}
@Override
public EntityFlying getHandle() {
return (EntityFlying) entity;
public FlyingMob getHandle() {
return (FlyingMob) this.entity;
}
@Override

View File

@@ -3,7 +3,6 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.Optional;
import java.util.UUID;
import net.minecraft.world.entity.animal.EntityFox;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Fox;
@@ -11,13 +10,13 @@ import org.bukkit.entity.Fox.Type;
public class CraftFox extends CraftAnimals implements Fox {
public CraftFox(CraftServer server, EntityFox entity) {
public CraftFox(CraftServer server, net.minecraft.world.entity.animal.Fox entity) {
super(server, entity);
}
@Override
public EntityFox getHandle() {
return (EntityFox) super.getHandle();
public net.minecraft.world.entity.animal.Fox getHandle() {
return (net.minecraft.world.entity.animal.Fox) super.getHandle();
}
@Override
@@ -27,51 +26,51 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public Type getFoxType() {
return Type.values()[getHandle().getVariant().ordinal()];
return Type.values()[this.getHandle().getVariant().ordinal()];
}
@Override
public void setFoxType(Type type) {
Preconditions.checkArgument(type != null, "type");
getHandle().setVariant(EntityFox.Type.values()[type.ordinal()]);
this.getHandle().setVariant(net.minecraft.world.entity.animal.Fox.Variant.values()[type.ordinal()]);
}
@Override
public boolean isCrouching() {
return getHandle().isCrouching();
return this.getHandle().isCrouching();
}
@Override
public void setCrouching(boolean crouching) {
getHandle().setIsCrouching(crouching);
this.getHandle().setIsCrouching(crouching);
}
@Override
public boolean isSitting() {
return getHandle().isSitting();
return this.getHandle().isSitting();
}
@Override
public void setSitting(boolean sitting) {
getHandle().setSitting(sitting);
this.getHandle().setSitting(sitting);
}
@Override
public void setSleeping(boolean sleeping) {
getHandle().setSleeping(sleeping);
this.getHandle().setSleeping(sleeping);
}
@Override
public AnimalTamer getFirstTrustedPlayer() {
UUID uuid = getHandle().getEntityData().get(EntityFox.DATA_TRUSTED_ID_0).orElse(null);
UUID uuid = this.getHandle().getEntityData().get(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_0).orElse(null);
if (uuid == null) {
return null;
}
AnimalTamer player = getServer().getPlayer(uuid);
AnimalTamer player = this.getServer().getPlayer(uuid);
if (player == null) {
player = getServer().getOfflinePlayer(uuid);
player = this.getServer().getOfflinePlayer(uuid);
}
return player;
@@ -80,22 +79,22 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public void setFirstTrustedPlayer(AnimalTamer player) {
if (player == null) {
Preconditions.checkState(getHandle().getEntityData().get(EntityFox.DATA_TRUSTED_ID_1).isEmpty(), "Must remove second trusted player first");
Preconditions.checkState(this.getHandle().getEntityData().get(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_1).isEmpty(), "Must remove second trusted player first");
}
getHandle().getEntityData().set(EntityFox.DATA_TRUSTED_ID_0, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
this.getHandle().getEntityData().set(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_0, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
}
@Override
public AnimalTamer getSecondTrustedPlayer() {
UUID uuid = getHandle().getEntityData().get(EntityFox.DATA_TRUSTED_ID_1).orElse(null);
UUID uuid = this.getHandle().getEntityData().get(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_1).orElse(null);
if (uuid == null) {
return null;
}
AnimalTamer player = getServer().getPlayer(uuid);
AnimalTamer player = this.getServer().getPlayer(uuid);
if (player == null) {
player = getServer().getOfflinePlayer(uuid);
player = this.getServer().getOfflinePlayer(uuid);
}
return player;
@@ -104,14 +103,14 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public void setSecondTrustedPlayer(AnimalTamer player) {
if (player != null) {
Preconditions.checkState(getHandle().getEntityData().get(EntityFox.DATA_TRUSTED_ID_0).isPresent(), "Must add first trusted player first");
Preconditions.checkState(this.getHandle().getEntityData().get(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_0).isPresent(), "Must add first trusted player first");
}
getHandle().getEntityData().set(EntityFox.DATA_TRUSTED_ID_1, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
this.getHandle().getEntityData().set(net.minecraft.world.entity.animal.Fox.DATA_TRUSTED_ID_1, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
}
@Override
public boolean isFaceplanted() {
return getHandle().isFaceplanted();
return this.getHandle().isFaceplanted();
}
}

View File

@@ -21,7 +21,7 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog {
@Override
public Frog getHandle() {
return (Frog) entity;
return (Frog) this.entity;
}
@Override
@@ -31,28 +31,28 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog {
@Override
public Entity getTongueTarget() {
return getHandle().getTongueTarget().map(net.minecraft.world.entity.Entity::getBukkitEntity).orElse(null);
return this.getHandle().getTongueTarget().map(net.minecraft.world.entity.Entity::getBukkitEntity).orElse(null);
}
@Override
public void setTongueTarget(Entity target) {
if (target == null) {
getHandle().eraseTongueTarget();
this.getHandle().eraseTongueTarget();
} else {
getHandle().setTongueTarget(((CraftEntity) target).getHandle());
this.getHandle().setTongueTarget(((CraftEntity) target).getHandle());
}
}
@Override
public Variant getVariant() {
return CraftVariant.minecraftHolderToBukkit(getHandle().getVariant());
return CraftVariant.minecraftHolderToBukkit(this.getHandle().getVariant());
}
@Override
public void setVariant(Variant variant) {
Preconditions.checkArgument(variant != null, "variant");
getHandle().setVariant(CraftVariant.bukkitToMinecraftHolder(variant));
this.getHandle().setVariant(CraftVariant.bukkitToMinecraftHolder(variant));
}
public static class CraftVariant implements Variant, Handleable<FrogVariant> {
@@ -63,7 +63,7 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog {
}
public static Variant minecraftHolderToBukkit(Holder<FrogVariant> minecraft) {
return minecraftToBukkit(minecraft.value());
return CraftVariant.minecraftToBukkit(minecraft.value());
}
public static FrogVariant bukkitToMinecraft(Variant bukkit) {
@@ -91,38 +91,38 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog {
} else {
this.name = key.toString();
}
this.ordinal = count++;
this.ordinal = CraftVariant.count++;
}
@Override
public FrogVariant getHandle() {
return frogVariant;
return this.frogVariant;
}
@Override
public NamespacedKey getKey() {
return key;
return this.key;
}
@Override
public int compareTo(Variant variant) {
return ordinal - variant.ordinal();
return this.ordinal - variant.ordinal();
}
@Override
public String name() {
return name;
return this.name;
}
@Override
public int ordinal() {
return ordinal;
return this.ordinal;
}
@Override
public String toString() {
// For backwards compatibility
return name();
return this.name();
}
@Override
@@ -135,12 +135,12 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog {
return false;
}
return getKey().equals(((Variant) other).getKey());
return this.getKey().equals(((Variant) other).getKey());
}
@Override
public int hashCode() {
return getKey().hashCode();
return this.getKey().hashCode();
}
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityGhast;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Ghast;
public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy {
public CraftGhast(CraftServer server, EntityGhast entity) {
public CraftGhast(CraftServer server, net.minecraft.world.entity.monster.Ghast entity) {
super(server, entity);
}
@Override
public EntityGhast getHandle() {
return (EntityGhast) entity;
public net.minecraft.world.entity.monster.Ghast getHandle() {
return (net.minecraft.world.entity.monster.Ghast) this.entity;
}
@Override
@@ -22,11 +21,11 @@ public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy {
@Override
public boolean isCharging() {
return getHandle().isCharging();
return this.getHandle().isCharging();
}
@Override
public void setCharging(boolean flag) {
getHandle().setCharging(flag);
this.getHandle().setCharging(flag);
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityGiantZombie;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Giant;
public class CraftGiant extends CraftMonster implements Giant {
public CraftGiant(CraftServer server, EntityGiantZombie entity) {
public CraftGiant(CraftServer server, net.minecraft.world.entity.monster.Giant entity) {
super(server, entity);
}
@Override
public EntityGiantZombie getHandle() {
return (EntityGiantZombie) entity;
public net.minecraft.world.entity.monster.Giant getHandle() {
return (net.minecraft.world.entity.monster.Giant) this.entity;
}
@Override

View File

@@ -16,6 +16,6 @@ public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame
@Override
public String toString() {
return "CraftGlowItemFrame{item=" + getItem() + ", rotation=" + getRotation() + "}";
return "CraftGlowItemFrame{item=" + this.getItem() + ", rotation=" + this.getRotation() + "}";
}
}

View File

@@ -22,12 +22,12 @@ public class CraftGlowSquid extends CraftSquid implements GlowSquid {
@Override
public int getDarkTicksRemaining() {
return getHandle().getDarkTicksRemaining();
return this.getHandle().getDarkTicksRemaining();
}
@Override
public void setDarkTicksRemaining(int darkTicksRemaining) {
Preconditions.checkArgument(darkTicksRemaining >= 0, "darkTicksRemaining must be >= 0");
getHandle().setDarkTicks(darkTicksRemaining);
this.getHandle().setDarkTicks(darkTicksRemaining);
}
}

View File

@@ -21,31 +21,31 @@ public class CraftGoat extends CraftAnimals implements Goat {
@Override
public boolean hasLeftHorn() {
return getHandle().hasLeftHorn();
return this.getHandle().hasLeftHorn();
}
@Override
public void setLeftHorn(boolean hasHorn) {
getHandle().getEntityData().set(net.minecraft.world.entity.animal.goat.Goat.DATA_HAS_LEFT_HORN, hasHorn);
this.getHandle().getEntityData().set(net.minecraft.world.entity.animal.goat.Goat.DATA_HAS_LEFT_HORN, hasHorn);
}
@Override
public boolean hasRightHorn() {
return getHandle().hasRightHorn();
return this.getHandle().hasRightHorn();
}
@Override
public void setRightHorn(boolean hasHorn) {
getHandle().getEntityData().set(net.minecraft.world.entity.animal.goat.Goat.DATA_HAS_RIGHT_HORN, hasHorn);
this.getHandle().getEntityData().set(net.minecraft.world.entity.animal.goat.Goat.DATA_HAS_RIGHT_HORN, hasHorn);
}
@Override
public boolean isScreaming() {
return getHandle().isScreamingGoat();
return this.getHandle().isScreamingGoat();
}
@Override
public void setScreaming(boolean screaming) {
getHandle().setScreamingGoat(screaming);
this.getHandle().setScreamingGoat(screaming);
}
}

View File

@@ -1,17 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityGolem;
import net.minecraft.world.entity.animal.AbstractGolem;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Golem;
public class CraftGolem extends CraftCreature implements Golem {
public CraftGolem(CraftServer server, EntityGolem entity) {
public CraftGolem(CraftServer server, AbstractGolem entity) {
super(server, entity);
}
@Override
public EntityGolem getHandle() {
return (EntityGolem) entity;
public AbstractGolem getHandle() {
return (AbstractGolem) this.entity;
}
@Override

View File

@@ -1,7 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.monster.EntityGuardian;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.LivingEntity;
@@ -10,13 +9,13 @@ public class CraftGuardian extends CraftMonster implements Guardian {
private static final int MINIMUM_ATTACK_TICKS = -10;
public CraftGuardian(CraftServer server, EntityGuardian entity) {
public CraftGuardian(CraftServer server, net.minecraft.world.entity.monster.Guardian entity) {
super(server, entity);
}
@Override
public EntityGuardian getHandle() {
return (EntityGuardian) super.getHandle();
public net.minecraft.world.entity.monster.Guardian getHandle() {
return (net.minecraft.world.entity.monster.Guardian) super.getHandle();
}
@Override
@@ -30,21 +29,21 @@ public class CraftGuardian extends CraftMonster implements Guardian {
// clean up laser target, when target is removed
if (target == null) {
getHandle().setActiveAttackTarget(0);
this.getHandle().setActiveAttackTarget(0);
}
}
@Override
public boolean setLaser(boolean activated) {
if (activated) {
LivingEntity target = getTarget();
LivingEntity target = this.getTarget();
if (target == null) {
return false;
}
getHandle().setActiveAttackTarget(target.getEntityId());
this.getHandle().setActiveAttackTarget(target.getEntityId());
} else {
getHandle().setActiveAttackTarget(0);
this.getHandle().setActiveAttackTarget(0);
}
return true;
@@ -52,19 +51,19 @@ public class CraftGuardian extends CraftMonster implements Guardian {
@Override
public boolean hasLaser() {
return getHandle().hasActiveAttackTarget();
return this.getHandle().hasActiveAttackTarget();
}
@Override
public int getLaserDuration() {
return getHandle().getAttackDuration();
return this.getHandle().getAttackDuration();
}
@Override
public void setLaserTicks(int ticks) {
Preconditions.checkArgument(ticks >= MINIMUM_ATTACK_TICKS, "ticks must be >= %s. Given %s", MINIMUM_ATTACK_TICKS, ticks);
Preconditions.checkArgument(ticks >= CraftGuardian.MINIMUM_ATTACK_TICKS, "ticks must be >= %s. Given %s", CraftGuardian.MINIMUM_ATTACK_TICKS, ticks);
EntityGuardian.PathfinderGoalGuardianAttack goal = getHandle().guardianAttackGoal;
net.minecraft.world.entity.monster.Guardian.GuardianAttackGoal goal = this.getHandle().guardianAttackGoal;
if (goal != null) {
goal.attackTime = ticks;
}
@@ -72,8 +71,8 @@ public class CraftGuardian extends CraftMonster implements Guardian {
@Override
public int getLaserTicks() {
EntityGuardian.PathfinderGoalGuardianAttack goal = getHandle().guardianAttackGoal;
return (goal != null) ? goal.attackTime : MINIMUM_ATTACK_TICKS;
net.minecraft.world.entity.monster.Guardian.GuardianAttackGoal goal = this.getHandle().guardianAttackGoal;
return (goal != null) ? goal.attackTime : CraftGuardian.MINIMUM_ATTACK_TICKS;
}
@Override
@@ -88,6 +87,6 @@ public class CraftGuardian extends CraftMonster implements Guardian {
@Override
public boolean isMoving() {
return getHandle().isMoving();
return this.getHandle().isMoving();
}
}

View File

@@ -1,48 +1,48 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.core.EnumDirection;
import net.minecraft.world.entity.decoration.EntityHanging;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.decoration.HangingEntity;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.entity.Hanging;
public class CraftHanging extends CraftBlockAttachedEntity implements Hanging {
public CraftHanging(CraftServer server, EntityHanging entity) {
public CraftHanging(CraftServer server, HangingEntity entity) {
super(server, entity);
}
@Override
public BlockFace getAttachedFace() {
return getFacing().getOppositeFace();
return this.getFacing().getOppositeFace();
}
@Override
public void setFacingDirection(BlockFace face) {
setFacingDirection(face, false);
this.setFacingDirection(face, false);
}
@Override
public boolean setFacingDirection(BlockFace face, boolean force) {
EntityHanging hanging = getHandle();
EnumDirection dir = hanging.getDirection();
HangingEntity hanging = this.getHandle();
Direction dir = hanging.getDirection();
switch (face) {
case SOUTH:
getHandle().setDirection(EnumDirection.SOUTH);
this.getHandle().setDirection(Direction.SOUTH);
break;
case WEST:
getHandle().setDirection(EnumDirection.WEST);
this.getHandle().setDirection(Direction.WEST);
break;
case NORTH:
getHandle().setDirection(EnumDirection.NORTH);
this.getHandle().setDirection(Direction.NORTH);
break;
case EAST:
getHandle().setDirection(EnumDirection.EAST);
this.getHandle().setDirection(Direction.EAST);
break;
default:
throw new IllegalArgumentException(String.format("%s is not a valid facing direction", face));
}
if (!force && !getHandle().generation && !hanging.survives()) {
if (!force && !this.getHandle().generation && !hanging.survives()) {
// Revert since it doesn't fit
hanging.setDirection(dir);
return false;
@@ -52,14 +52,14 @@ public class CraftHanging extends CraftBlockAttachedEntity implements Hanging {
@Override
public BlockFace getFacing() {
EnumDirection direction = this.getHandle().getDirection();
Direction direction = this.getHandle().getDirection();
if (direction == null) return BlockFace.SELF;
return CraftBlock.notchToBlockFace(direction);
}
@Override
public EntityHanging getHandle() {
return (EntityHanging) entity;
public HangingEntity getHandle() {
return (HangingEntity) this.entity;
}
@Override

View File

@@ -1,60 +1,59 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.monster.hoglin.EntityHoglin;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Hoglin;
public class CraftHoglin extends CraftAnimals implements Hoglin, CraftEnemy {
public CraftHoglin(CraftServer server, EntityHoglin entity) {
public CraftHoglin(CraftServer server, net.minecraft.world.entity.monster.hoglin.Hoglin entity) {
super(server, entity);
}
@Override
public boolean isImmuneToZombification() {
return getHandle().isImmuneToZombification();
return this.getHandle().isImmuneToZombification();
}
@Override
public void setImmuneToZombification(boolean flag) {
getHandle().setImmuneToZombification(flag);
this.getHandle().setImmuneToZombification(flag);
}
@Override
public boolean isAbleToBeHunted() {
return getHandle().cannotBeHunted;
return this.getHandle().cannotBeHunted;
}
@Override
public void setIsAbleToBeHunted(boolean flag) {
getHandle().cannotBeHunted = flag;
this.getHandle().cannotBeHunted = flag;
}
@Override
public int getConversionTime() {
Preconditions.checkState(isConverting(), "Entity not converting");
return getHandle().timeInOverworld;
Preconditions.checkState(this.isConverting(), "Entity not converting");
return this.getHandle().timeInOverworld;
}
@Override
public void setConversionTime(int time) {
if (time < 0) {
getHandle().timeInOverworld = -1;
getHandle().setImmuneToZombification(false);
this.getHandle().timeInOverworld = -1;
this.getHandle().setImmuneToZombification(false);
} else {
getHandle().timeInOverworld = time;
this.getHandle().timeInOverworld = time;
}
}
@Override
public boolean isConverting() {
return getHandle().isConverting();
return this.getHandle().isConverting();
}
@Override
public EntityHoglin getHandle() {
return (EntityHoglin) entity;
public net.minecraft.world.entity.monster.hoglin.Hoglin getHandle() {
return (net.minecraft.world.entity.monster.hoglin.Hoglin) this.entity;
}
@Override

View File

@@ -1,9 +1,7 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.animal.horse.EntityHorse;
import net.minecraft.world.entity.animal.horse.HorseColor;
import net.minecraft.world.entity.animal.horse.HorseStyle;
import net.minecraft.world.entity.animal.horse.Markings;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventoryHorse;
import org.bukkit.entity.Horse;
@@ -11,13 +9,13 @@ import org.bukkit.inventory.HorseInventory;
public class CraftHorse extends CraftAbstractHorse implements Horse {
public CraftHorse(CraftServer server, EntityHorse entity) {
public CraftHorse(CraftServer server, net.minecraft.world.entity.animal.horse.Horse entity) {
super(server, entity);
}
@Override
public EntityHorse getHandle() {
return (EntityHorse) super.getHandle();
public net.minecraft.world.entity.animal.horse.Horse getHandle() {
return (net.minecraft.world.entity.animal.horse.Horse) super.getHandle();
}
@Override
@@ -27,24 +25,24 @@ public class CraftHorse extends CraftAbstractHorse implements Horse {
@Override
public Color getColor() {
return Color.values()[getHandle().getVariant().getId()];
return Color.values()[this.getHandle().getVariant().getId()];
}
@Override
public void setColor(Color color) {
Preconditions.checkArgument(color != null, "Color cannot be null");
getHandle().setVariantAndMarkings(HorseColor.byId(color.ordinal()), getHandle().getMarkings());
this.getHandle().setVariantAndMarkings(net.minecraft.world.entity.animal.horse.Variant.byId(color.ordinal()), this.getHandle().getMarkings());
}
@Override
public Style getStyle() {
return Style.values()[getHandle().getMarkings().getId()];
return Style.values()[this.getHandle().getMarkings().getId()];
}
@Override
public void setStyle(Style style) {
Preconditions.checkArgument(style != null, "Style cannot be null");
getHandle().setVariantAndMarkings(getHandle().getVariant(), HorseStyle.byId(style.ordinal()));
this.getHandle().setVariantAndMarkings(this.getHandle().getVariant(), Markings.byId(style.ordinal()));
}
@Override
@@ -59,11 +57,11 @@ public class CraftHorse extends CraftAbstractHorse implements Horse {
@Override
public HorseInventory getInventory() {
return new CraftInventoryHorse(getHandle().inventory, getHandle().getBodyArmorAccess());
return new CraftInventoryHorse(this.getHandle().inventory, this.getHandle().getBodyArmorAccess());
}
@Override
public String toString() {
return "CraftHorse{variant=" + getVariant() + ", owner=" + getOwner() + '}';
return "CraftHorse{variant=" + this.getVariant() + ", owner=" + this.getOwner() + '}';
}
}

View File

@@ -7,30 +7,29 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Optional;
import java.util.Set;
import net.minecraft.core.BlockPosition;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.PacketPlayInCloseWindow;
import net.minecraft.network.protocol.game.PacketPlayOutOpenWindow;
import net.minecraft.resources.MinecraftKey;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.ITileInventory;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.protocol.game.ClientboundOpenScreenPacket;
import net.minecraft.network.protocol.game.ServerboundContainerClosePacket;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntitySpawnReason;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.EnumMainHand;
import net.minecraft.world.entity.player.EntityHuman;
import net.minecraft.world.entity.projectile.EntityFireworks;
import net.minecraft.world.inventory.Container;
import net.minecraft.world.inventory.Containers;
import net.minecraft.world.item.ItemCooldown;
import net.minecraft.world.item.crafting.CraftingManager;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.ItemCooldowns;
import net.minecraft.world.item.crafting.RecipeHolder;
import net.minecraft.world.item.trading.IMerchant;
import net.minecraft.world.level.block.BlockBed;
import net.minecraft.world.item.crafting.RecipeManager;
import net.minecraft.world.level.block.BedBlock;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.TileEntity;
import net.minecraft.world.level.block.state.IBlockData;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -75,90 +74,90 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private boolean op;
private GameMode mode;
public CraftHumanEntity(final CraftServer server, final EntityHuman entity) {
public CraftHumanEntity(final CraftServer server, final Player entity) {
super(server, entity);
mode = server.getDefaultGameMode();
this.mode = server.getDefaultGameMode();
this.inventory = new CraftInventoryPlayer(entity.getInventory());
enderChest = new CraftInventory(entity.getEnderChestInventory());
this.enderChest = new CraftInventory(entity.getEnderChestInventory());
}
@Override
public PlayerInventory getInventory() {
return inventory;
return this.inventory;
}
@Override
public EntityEquipment getEquipment() {
return inventory;
return this.inventory;
}
@Override
public Inventory getEnderChest() {
return enderChest;
return this.enderChest;
}
@Override
public MainHand getMainHand() {
return getHandle().getMainArm() == EnumMainHand.LEFT ? MainHand.LEFT : MainHand.RIGHT;
return this.getHandle().getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT;
}
@Override
public ItemStack getItemInHand() {
return getInventory().getItemInHand();
return this.getInventory().getItemInHand();
}
@Override
public void setItemInHand(ItemStack item) {
getInventory().setItemInHand(item);
this.getInventory().setItemInHand(item);
}
@Override
public ItemStack getItemOnCursor() {
return CraftItemStack.asCraftMirror(getHandle().containerMenu.getCarried());
return CraftItemStack.asCraftMirror(this.getHandle().containerMenu.getCarried());
}
@Override
public void setItemOnCursor(ItemStack item) {
net.minecraft.world.item.ItemStack stack = CraftItemStack.asNMSCopy(item);
getHandle().containerMenu.setCarried(stack);
this.getHandle().containerMenu.setCarried(stack);
if (this instanceof CraftPlayer) {
getHandle().containerMenu.broadcastCarriedItem(); // Send set slot for cursor
this.getHandle().containerMenu.broadcastCarriedItem(); // Send set slot for cursor
}
}
@Override
public int getSleepTicks() {
return getHandle().sleepCounter;
return this.getHandle().sleepCounter;
}
@Override
public boolean sleep(Location location, boolean force) {
Preconditions.checkArgument(location != null, "Location cannot be null");
Preconditions.checkArgument(location.getWorld() != null, "Location needs to be in a world");
Preconditions.checkArgument(location.getWorld().equals(getWorld()), "Cannot sleep across worlds");
Preconditions.checkArgument(location.getWorld().equals(this.getWorld()), "Cannot sleep across worlds");
BlockPosition blockposition = CraftLocation.toBlockPosition(location);
IBlockData iblockdata = getHandle().level().getBlockState(blockposition);
if (!(iblockdata.getBlock() instanceof BlockBed)) {
BlockPos blockposition = CraftLocation.toBlockPosition(location);
BlockState iblockdata = this.getHandle().level().getBlockState(blockposition);
if (!(iblockdata.getBlock() instanceof BedBlock)) {
return false;
}
if (getHandle().startSleepInBed(blockposition, force).left().isPresent()) {
if (this.getHandle().startSleepInBed(blockposition, force).left().isPresent()) {
return false;
}
// From BlockBed
iblockdata = iblockdata.setValue(BlockBed.OCCUPIED, true);
getHandle().level().setBlock(blockposition, iblockdata, 4);
iblockdata = iblockdata.setValue(BedBlock.OCCUPIED, true);
this.getHandle().level().setBlock(blockposition, iblockdata, 4);
return true;
}
@Override
public void wakeup(boolean setSpawnLocation) {
Preconditions.checkState(isSleeping(), "Cannot wakeup if not sleeping");
Preconditions.checkState(this.isSleeping(), "Cannot wakeup if not sleeping");
getHandle().stopSleepInBed(true, setSpawnLocation);
this.getHandle().stopSleepInBed(true, setSpawnLocation);
}
@Override
@@ -166,30 +165,30 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(duration > 0, "Duration must be greater than 0");
Preconditions.checkArgument(damage >= 0, "Damage must not be negative");
getHandle().startAutoSpinAttack(duration, damage, CraftItemStack.asNMSCopy(attackItem));
this.getHandle().startAutoSpinAttack(duration, damage, CraftItemStack.asNMSCopy(attackItem));
}
@Override
public Location getBedLocation() {
Preconditions.checkState(isSleeping(), "Not sleeping");
Preconditions.checkState(this.isSleeping(), "Not sleeping");
BlockPosition bed = getHandle().getSleepingPos().get();
return CraftLocation.toBukkit(bed, getWorld());
BlockPos bed = this.getHandle().getSleepingPos().get();
return CraftLocation.toBukkit(bed, this.getWorld());
}
@Override
public String getName() {
return getHandle().getScoreboardName();
return this.getHandle().getScoreboardName();
}
@Override
public boolean isOp() {
return op;
return this.op;
}
@Override
public boolean isPermissionSet(String name) {
return perm.isPermissionSet(name);
return this.perm.isPermissionSet(name);
}
@Override
@@ -199,7 +198,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public boolean hasPermission(String name) {
return perm.hasPermission(name);
return this.perm.hasPermission(name);
}
@Override
@@ -209,48 +208,48 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
return perm.addAttachment(plugin, name, value);
return this.perm.addAttachment(plugin, name, value);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin) {
return perm.addAttachment(plugin);
return this.perm.addAttachment(plugin);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
return perm.addAttachment(plugin, name, value, ticks);
return this.perm.addAttachment(plugin, name, value, ticks);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
return perm.addAttachment(plugin, ticks);
return this.perm.addAttachment(plugin, ticks);
}
@Override
public void removeAttachment(PermissionAttachment attachment) {
perm.removeAttachment(attachment);
this.perm.removeAttachment(attachment);
}
@Override
public void recalculatePermissions() {
perm.recalculatePermissions();
this.perm.recalculatePermissions();
}
@Override
public void setOp(boolean value) {
this.op = value;
perm.recalculatePermissions();
this.perm.recalculatePermissions();
}
@Override
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
return perm.getEffectivePermissions();
return this.perm.getEffectivePermissions();
}
@Override
public GameMode getGameMode() {
return mode;
return this.mode;
}
@Override
@@ -261,79 +260,79 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
}
@Override
public EntityHuman getHandle() {
return (EntityHuman) entity;
public Player getHandle() {
return (Player) this.entity;
}
public void setHandle(final EntityHuman entity) {
public void setHandle(final Player entity) {
super.setHandle(entity);
this.inventory = new CraftInventoryPlayer(entity.getInventory());
}
@Override
public String toString() {
return "CraftHumanEntity{" + "id=" + getEntityId() + "name=" + getName() + '}';
return "CraftHumanEntity{" + "id=" + this.getEntityId() + "name=" + this.getName() + '}';
}
@Override
public InventoryView getOpenInventory() {
return getHandle().containerMenu.getBukkitView();
return this.getHandle().containerMenu.getBukkitView();
}
@Override
public InventoryView openInventory(Inventory inventory) {
if (!(getHandle() instanceof EntityPlayer)) return null;
EntityPlayer player = (EntityPlayer) getHandle();
Container formerContainer = getHandle().containerMenu;
if (!(this.getHandle() instanceof ServerPlayer)) return null;
ServerPlayer player = (ServerPlayer) this.getHandle();
AbstractContainerMenu formerContainer = this.getHandle().containerMenu;
ITileInventory tileInventory = null;
MenuProvider tileInventory = null;
if (inventory instanceof CraftInventoryDoubleChest) {
tileInventory = ((CraftInventoryDoubleChest) inventory).tile;
} else if (inventory instanceof CraftInventoryLectern) {
tileInventory = ((CraftInventoryLectern) inventory).tile;
} else if (inventory instanceof CraftInventory) {
CraftInventory craft = (CraftInventory) inventory;
if (craft.getInventory() instanceof ITileInventory) {
tileInventory = (ITileInventory) craft.getInventory();
if (craft.getInventory() instanceof MenuProvider) {
tileInventory = (MenuProvider) craft.getInventory();
}
}
if (tileInventory instanceof ITileInventory) {
if (tileInventory instanceof TileEntity) {
TileEntity te = (TileEntity) tileInventory;
if (tileInventory instanceof MenuProvider) {
if (tileInventory instanceof BlockEntity) {
BlockEntity te = (BlockEntity) tileInventory;
if (!te.hasLevel()) {
te.setLevel(getHandle().level());
te.setLevel(this.getHandle().level());
}
}
}
if (tileInventory instanceof ITileInventory) {
getHandle().openMenu(tileInventory);
if (tileInventory instanceof MenuProvider) {
this.getHandle().openMenu(tileInventory);
} else if (inventory instanceof CraftInventoryAbstractHorse craft && craft.getInventory().getOwner() instanceof CraftAbstractHorse horse) {
getHandle().openHorseInventory(horse.getHandle(), craft.getInventory());
this.getHandle().openHorseInventory(horse.getHandle(), craft.getInventory());
} else {
Containers<?> container = CraftContainer.getNotchInventoryType(inventory);
openCustomInventory(inventory, player, container);
MenuType<?> container = CraftContainer.getNotchInventoryType(inventory);
CraftHumanEntity.openCustomInventory(inventory, player, container);
}
if (getHandle().containerMenu == formerContainer) {
if (this.getHandle().containerMenu == formerContainer) {
return null;
}
getHandle().containerMenu.checkReachable = false;
return getHandle().containerMenu.getBukkitView();
this.getHandle().containerMenu.checkReachable = false;
return this.getHandle().containerMenu.getBukkitView();
}
private static void openCustomInventory(Inventory inventory, EntityPlayer player, Containers<?> windowType) {
private static void openCustomInventory(Inventory inventory, ServerPlayer player, MenuType<?> windowType) {
if (player.connection == null) return;
Preconditions.checkArgument(windowType != null, "Unknown windowType");
Container container = new CraftContainer(inventory, player, player.nextContainerCounter());
AbstractContainerMenu container = new CraftContainer(inventory, player, player.nextContainerCounter());
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) return;
String title = container.getBukkitView().getTitle();
player.connection.send(new PacketPlayOutOpenWindow(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
@@ -341,7 +340,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public InventoryView openWorkbench(Location location, boolean force) {
if (location == null) {
location = getLocation();
location = this.getLocation();
}
if (!force) {
Block block = location.getBlock();
@@ -349,17 +348,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return null;
}
}
getHandle().openMenu(Blocks.CRAFTING_TABLE.defaultBlockState().getMenuProvider(getHandle().level(), CraftLocation.toBlockPosition(location)));
this.getHandle().openMenu(Blocks.CRAFTING_TABLE.defaultBlockState().getMenuProvider(this.getHandle().level(), CraftLocation.toBlockPosition(location)));
if (force) {
getHandle().containerMenu.checkReachable = false;
this.getHandle().containerMenu.checkReachable = false;
}
return getHandle().containerMenu.getBukkitView();
return this.getHandle().containerMenu.getBukkitView();
}
@Override
public InventoryView openEnchanting(Location location, boolean force) {
if (location == null) {
location = getLocation();
location = this.getLocation();
}
if (!force) {
Block block = location.getBlock();
@@ -369,26 +368,26 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
}
// If there isn't an enchant table we can force create one, won't be very useful though.
BlockPosition pos = CraftLocation.toBlockPosition(location);
getHandle().openMenu(Blocks.ENCHANTING_TABLE.defaultBlockState().getMenuProvider(getHandle().level(), pos));
BlockPos pos = CraftLocation.toBlockPosition(location);
this.getHandle().openMenu(Blocks.ENCHANTING_TABLE.defaultBlockState().getMenuProvider(this.getHandle().level(), pos));
if (force) {
getHandle().containerMenu.checkReachable = false;
this.getHandle().containerMenu.checkReachable = false;
}
return getHandle().containerMenu.getBukkitView();
return this.getHandle().containerMenu.getBukkitView();
}
@Override
public void openInventory(InventoryView inventory) {
Preconditions.checkArgument(this.equals(inventory.getPlayer()), "InventoryView must belong to the opening player");
if (!(getHandle() instanceof EntityPlayer)) return; // TODO: NPC support?
if (((EntityPlayer) getHandle()).connection == null) return;
if (getHandle().containerMenu != getHandle().inventoryMenu) {
if (!(this.getHandle() instanceof ServerPlayer)) return; // TODO: NPC support?
if (((ServerPlayer) this.getHandle()).connection == null) return;
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
((EntityPlayer) getHandle()).connection.handleContainerClose(new PacketPlayInCloseWindow(getHandle().containerMenu.containerId));
((ServerPlayer) this.getHandle()).connection.handleContainerClose(new ServerboundContainerClosePacket(this.getHandle().containerMenu.containerId));
}
EntityPlayer player = (EntityPlayer) getHandle();
Container container;
ServerPlayer player = (ServerPlayer) this.getHandle();
AbstractContainerMenu container;
if (inventory instanceof CraftInventoryView) {
container = ((CraftInventoryView) inventory).getHandle();
} else {
@@ -402,9 +401,9 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
}
// Now open the window
Containers<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
MenuType<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
String title = inventory.getTitle();
player.connection.send(new PacketPlayOutOpenWindow(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
@@ -427,8 +426,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
merchant.getTrader().closeInventory();
}
IMerchant mcMerchant;
IChatBaseComponent name;
net.minecraft.world.item.trading.Merchant mcMerchant;
Component name;
int level = 1; // note: using level 0 with active 'is-regular-villager'-flag allows hiding the name suffix
if (merchant instanceof CraftAbstractVillager) {
mcMerchant = ((CraftAbstractVillager) merchant).getHandle();
@@ -451,17 +450,17 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void closeInventory() {
getHandle().closeContainer();
this.getHandle().closeContainer();
}
@Override
public boolean isBlocking() {
return getHandle().isBlocking();
return this.getHandle().isBlocking();
}
@Override
public boolean isHandRaised() {
return getHandle().isUsingItem();
return this.getHandle().isUsingItem();
}
@Override
@@ -471,22 +470,22 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public int getEnchantmentSeed() {
return getHandle().enchantmentSeed;
return this.getHandle().enchantmentSeed;
}
@Override
public void setEnchantmentSeed(int i) {
getHandle().enchantmentSeed = i;
this.getHandle().enchantmentSeed = i;
}
@Override
public int getExpToLevel() {
return getHandle().getXpNeededForNextLevel();
return this.getHandle().getXpNeededForNextLevel();
}
@Override
public float getAttackCooldown() {
return getHandle().getAttackStrengthScale(0.5f);
return this.getHandle().getAttackStrengthScale(0.5f);
}
@Override
@@ -494,7 +493,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(material != null, "Material cannot be null");
Preconditions.checkArgument(material.isItem(), "Material %s is not an item", material);
return hasCooldown(new ItemStack(material));
return this.hasCooldown(new ItemStack(material));
}
@Override
@@ -502,32 +501,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(material != null, "Material cannot be null");
Preconditions.checkArgument(material.isItem(), "Material %s is not an item", material);
return getCooldown(new ItemStack(material));
return this.getCooldown(new ItemStack(material));
}
@Override
public void setCooldown(Material material, int ticks) {
setCooldown(new ItemStack(material), ticks);
this.setCooldown(new ItemStack(material), ticks);
}
@Override
public boolean hasCooldown(ItemStack item) {
Preconditions.checkArgument(item != null, "Material cannot be null");
return getHandle().getCooldowns().isOnCooldown(CraftItemStack.asNMSCopy(item));
return this.getHandle().getCooldowns().isOnCooldown(CraftItemStack.asNMSCopy(item));
}
@Override
public int getCooldown(ItemStack item) {
Preconditions.checkArgument(item != null, "Material cannot be null");
MinecraftKey group = getHandle().getCooldowns().getCooldownGroup(CraftItemStack.asNMSCopy(item));
ResourceLocation group = this.getHandle().getCooldowns().getCooldownGroup(CraftItemStack.asNMSCopy(item));
if (group == null) {
return 0;
}
ItemCooldown.Info cooldown = getHandle().getCooldowns().cooldowns.get(group);
return (cooldown == null) ? 0 : Math.max(0, cooldown.endTime - getHandle().getCooldowns().tickCount);
ItemCooldowns.CooldownInstance cooldown = this.getHandle().getCooldowns().cooldowns.get(group);
return (cooldown == null) ? 0 : Math.max(0, cooldown.endTime - this.getHandle().getCooldowns().tickCount);
}
@Override
@@ -535,27 +534,27 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(item != null, "Material cannot be null");
Preconditions.checkArgument(ticks >= 0, "Cannot have negative cooldown");
getHandle().getCooldowns().addCooldown(CraftItemStack.asNMSCopy(item), ticks);
this.getHandle().getCooldowns().addCooldown(CraftItemStack.asNMSCopy(item), ticks);
}
@Override
public boolean discoverRecipe(NamespacedKey recipe) {
return discoverRecipes(Arrays.asList(recipe)) != 0;
return this.discoverRecipes(Arrays.asList(recipe)) != 0;
}
@Override
public int discoverRecipes(Collection<NamespacedKey> recipes) {
return getHandle().awardRecipes(bukkitKeysToMinecraftRecipes(recipes));
return this.getHandle().awardRecipes(this.bukkitKeysToMinecraftRecipes(recipes));
}
@Override
public boolean undiscoverRecipe(NamespacedKey recipe) {
return undiscoverRecipes(Arrays.asList(recipe)) != 0;
return this.undiscoverRecipes(Arrays.asList(recipe)) != 0;
}
@Override
public int undiscoverRecipes(Collection<NamespacedKey> recipes) {
return getHandle().resetRecipes(bukkitKeysToMinecraftRecipes(recipes));
return this.getHandle().resetRecipes(this.bukkitKeysToMinecraftRecipes(recipes));
}
@Override
@@ -570,7 +569,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private Collection<RecipeHolder<?>> bukkitKeysToMinecraftRecipes(Collection<NamespacedKey> recipeKeys) {
Collection<RecipeHolder<?>> recipes = new ArrayList<>();
CraftingManager manager = getHandle().level().getServer().getRecipeManager();
RecipeManager manager = this.getHandle().level().getServer().getRecipeManager();
for (NamespacedKey recipeKey : recipeKeys) {
Optional<? extends RecipeHolder<?>> recipe = manager.byKey(CraftRecipe.toMinecraft(recipeKey));
@@ -586,8 +585,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityLeft() {
if (!getHandle().getShoulderEntityLeft().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityLeft(), getHandle().level(), EntitySpawnReason.LOAD);
if (!this.getHandle().getShoulderEntityLeft().isEmpty()) {
Optional<Entity> shoulder = EntityType.create(this.getHandle().getShoulderEntityLeft(), this.getHandle().level(), EntitySpawnReason.LOAD);
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}
@@ -597,7 +596,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void setShoulderEntityLeft(org.bukkit.entity.Entity entity) {
getHandle().setShoulderEntityLeft(entity == null ? new NBTTagCompound() : ((CraftEntity) entity).save());
this.getHandle().setShoulderEntityLeft(entity == null ? new CompoundTag() : ((CraftEntity) entity).save());
if (entity != null) {
entity.remove();
}
@@ -605,8 +604,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityRight() {
if (!getHandle().getShoulderEntityRight().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.create(getHandle().getShoulderEntityRight(), getHandle().level(), EntitySpawnReason.LOAD);
if (!this.getHandle().getShoulderEntityRight().isEmpty()) {
Optional<Entity> shoulder = EntityType.create(this.getHandle().getShoulderEntityRight(), this.getHandle().level(), EntitySpawnReason.LOAD);
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}
@@ -616,7 +615,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void setShoulderEntityRight(org.bukkit.entity.Entity entity) {
getHandle().setShoulderEntityRight(entity == null ? new NBTTagCompound() : ((CraftEntity) entity).save());
this.getHandle().setShoulderEntityRight(entity == null ? new CompoundTag() : ((CraftEntity) entity).save());
if (entity != null) {
entity.remove();
}
@@ -624,81 +623,81 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public boolean dropItem(boolean dropAll) {
if (!(getHandle() instanceof EntityPlayer)) return false;
return ((EntityPlayer) getHandle()).drop(dropAll);
if (!(this.getHandle() instanceof ServerPlayer)) return false;
return ((ServerPlayer) this.getHandle()).drop(dropAll);
}
@Override
public float getExhaustion() {
return getHandle().getFoodData().exhaustionLevel;
return this.getHandle().getFoodData().exhaustionLevel;
}
@Override
public void setExhaustion(float value) {
getHandle().getFoodData().exhaustionLevel = value;
this.getHandle().getFoodData().exhaustionLevel = value;
}
@Override
public float getSaturation() {
return getHandle().getFoodData().saturationLevel;
return this.getHandle().getFoodData().saturationLevel;
}
@Override
public void setSaturation(float value) {
getHandle().getFoodData().saturationLevel = value;
this.getHandle().getFoodData().saturationLevel = value;
}
@Override
public int getFoodLevel() {
return getHandle().getFoodData().foodLevel;
return this.getHandle().getFoodData().foodLevel;
}
@Override
public void setFoodLevel(int value) {
getHandle().getFoodData().foodLevel = value;
this.getHandle().getFoodData().foodLevel = value;
}
@Override
public int getSaturatedRegenRate() {
return getHandle().getFoodData().saturatedRegenRate;
return this.getHandle().getFoodData().saturatedRegenRate;
}
@Override
public void setSaturatedRegenRate(int i) {
getHandle().getFoodData().saturatedRegenRate = i;
this.getHandle().getFoodData().saturatedRegenRate = i;
}
@Override
public int getUnsaturatedRegenRate() {
return getHandle().getFoodData().unsaturatedRegenRate;
return this.getHandle().getFoodData().unsaturatedRegenRate;
}
@Override
public void setUnsaturatedRegenRate(int i) {
getHandle().getFoodData().unsaturatedRegenRate = i;
this.getHandle().getFoodData().unsaturatedRegenRate = i;
}
@Override
public int getStarvationRate() {
return getHandle().getFoodData().starvationRate;
return this.getHandle().getFoodData().starvationRate;
}
@Override
public void setStarvationRate(int i) {
getHandle().getFoodData().starvationRate = i;
this.getHandle().getFoodData().starvationRate = i;
}
@Override
public Location getLastDeathLocation() {
return getHandle().getLastDeathLocation().map(CraftMemoryMapper::fromNms).orElse(null);
return this.getHandle().getLastDeathLocation().map(CraftMemoryMapper::fromNms).orElse(null);
}
@Override
public void setLastDeathLocation(Location location) {
if (location == null) {
getHandle().setLastDeathLocation(Optional.empty());
this.getHandle().setLastDeathLocation(Optional.empty());
} else {
getHandle().setLastDeathLocation(Optional.of(CraftMemoryMapper.toNms(location)));
this.getHandle().setLastDeathLocation(Optional.of(CraftMemoryMapper.toNms(location)));
}
}
@@ -707,8 +706,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(fireworkItemStack != null, "fireworkItemStack must not be null");
Preconditions.checkArgument(fireworkItemStack.getType() == Material.FIREWORK_ROCKET, "fireworkItemStack must be of type %s", Material.FIREWORK_ROCKET);
EntityFireworks fireworks = new EntityFireworks(getHandle().level(), CraftItemStack.asNMSCopy(fireworkItemStack), getHandle());
boolean success = getHandle().level().addFreshEntity(fireworks, SpawnReason.CUSTOM);
FireworkRocketEntity fireworks = new FireworkRocketEntity(this.getHandle().level(), CraftItemStack.asNMSCopy(fireworkItemStack), this.getHandle());
boolean success = this.getHandle().level().addFreshEntity(fireworks, SpawnReason.CUSTOM);
return success ? (Firework) fireworks.getBukkitEntity() : null;
}

View File

@@ -1,12 +1,11 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityZombieHusk;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Husk;
public class CraftHusk extends CraftZombie implements Husk {
public CraftHusk(CraftServer server, EntityZombieHusk entity) {
public CraftHusk(CraftServer server, net.minecraft.world.entity.monster.Husk entity) {
super(server, entity);
}

View File

@@ -1,18 +1,18 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityIllagerAbstract;
import net.minecraft.world.entity.monster.AbstractIllager;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Illager;
public class CraftIllager extends CraftRaider implements Illager {
public CraftIllager(CraftServer server, EntityIllagerAbstract entity) {
public CraftIllager(CraftServer server, AbstractIllager entity) {
super(server, entity);
}
@Override
public EntityIllagerAbstract getHandle() {
return (EntityIllagerAbstract) super.getHandle();
public AbstractIllager getHandle() {
return (AbstractIllager) super.getHandle();
}
@Override

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityIllagerIllusioner;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Illusioner;
public class CraftIllusioner extends CraftSpellcaster implements Illusioner {
public CraftIllusioner(CraftServer server, EntityIllagerIllusioner entity) {
public CraftIllusioner(CraftServer server, net.minecraft.world.entity.monster.Illusioner entity) {
super(server, entity);
}
@Override
public EntityIllagerIllusioner getHandle() {
return (EntityIllagerIllusioner) super.getHandle();
public net.minecraft.world.entity.monster.Illusioner getHandle() {
return (net.minecraft.world.entity.monster.Illusioner) super.getHandle();
}
@Override

View File

@@ -24,44 +24,44 @@ public class CraftInteraction extends CraftEntity implements Interaction {
@Override
public float getInteractionWidth() {
return getHandle().getWidth();
return this.getHandle().getWidth();
}
@Override
public void setInteractionWidth(float width) {
getHandle().setWidth(width);
this.getHandle().setWidth(width);
}
@Override
public float getInteractionHeight() {
return getHandle().getHeight();
return this.getHandle().getHeight();
}
@Override
public void setInteractionHeight(float height) {
getHandle().setHeight(height);
this.getHandle().setHeight(height);
}
@Override
public boolean isResponsive() {
return getHandle().getResponse();
return this.getHandle().getResponse();
}
@Override
public void setResponsive(boolean response) {
getHandle().setResponse(response);
this.getHandle().setResponse(response);
}
@Override
public PreviousInteraction getLastAttack() {
net.minecraft.world.entity.Interaction.PlayerAction last = getHandle().attack;
net.minecraft.world.entity.Interaction.PlayerAction last = this.getHandle().attack;
return (last != null) ? new CraftPreviousInteraction(last.player(), last.timestamp()) : null;
}
@Override
public PreviousInteraction getLastInteraction() {
net.minecraft.world.entity.Interaction.PlayerAction last = getHandle().interaction;
net.minecraft.world.entity.Interaction.PlayerAction last = this.getHandle().interaction;
return (last != null) ? new CraftPreviousInteraction(last.player(), last.timestamp()) : null;
}
@@ -78,12 +78,12 @@ public class CraftInteraction extends CraftEntity implements Interaction {
@Override
public OfflinePlayer getPlayer() {
return Bukkit.getOfflinePlayer(uuid);
return Bukkit.getOfflinePlayer(this.uuid);
}
@Override
public long getTimestamp() {
return timestamp;
return this.timestamp;
}
}
}

View File

@@ -1,17 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.animal.EntityIronGolem;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.IronGolem;
public class CraftIronGolem extends CraftGolem implements IronGolem {
public CraftIronGolem(CraftServer server, EntityIronGolem entity) {
public CraftIronGolem(CraftServer server, net.minecraft.world.entity.animal.IronGolem entity) {
super(server, entity);
}
@Override
public EntityIronGolem getHandle() {
return (EntityIronGolem) entity;
public net.minecraft.world.entity.animal.IronGolem getHandle() {
return (net.minecraft.world.entity.animal.IronGolem) this.entity;
}
@Override
@@ -21,11 +20,11 @@ public class CraftIronGolem extends CraftGolem implements IronGolem {
@Override
public boolean isPlayerCreated() {
return getHandle().isPlayerCreated();
return this.getHandle().isPlayerCreated();
}
@Override
public void setPlayerCreated(boolean playerCreated) {
getHandle().setPlayerCreated(playerCreated);
this.getHandle().setPlayerCreated(playerCreated);
}
}

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import java.util.UUID;
import net.minecraft.world.entity.item.EntityItem;
import net.minecraft.world.entity.item.ItemEntity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.Item;
@@ -9,48 +9,48 @@ import org.bukkit.inventory.ItemStack;
public class CraftItem extends CraftEntity implements Item {
public CraftItem(CraftServer server, EntityItem entity) {
public CraftItem(CraftServer server, ItemEntity entity) {
super(server, entity);
}
@Override
public EntityItem getHandle() {
return (EntityItem) entity;
public ItemEntity getHandle() {
return (ItemEntity) this.entity;
}
@Override
public ItemStack getItemStack() {
return CraftItemStack.asCraftMirror(getHandle().getItem());
return CraftItemStack.asCraftMirror(this.getHandle().getItem());
}
@Override
public void setItemStack(ItemStack stack) {
getHandle().setItem(CraftItemStack.asNMSCopy(stack));
this.getHandle().setItem(CraftItemStack.asNMSCopy(stack));
}
@Override
public int getPickupDelay() {
return getHandle().pickupDelay;
return this.getHandle().pickupDelay;
}
@Override
public void setPickupDelay(int delay) {
getHandle().pickupDelay = Math.min(delay, Short.MAX_VALUE);
this.getHandle().pickupDelay = Math.min(delay, Short.MAX_VALUE);
}
@Override
public void setUnlimitedLifetime(boolean unlimited) {
if (unlimited) {
// See EntityItem#INFINITE_LIFETIME
getHandle().age = Short.MIN_VALUE;
this.getHandle().age = Short.MIN_VALUE;
} else {
getHandle().age = getTicksLived();
this.getHandle().age = this.getTicksLived();
}
}
@Override
public boolean isUnlimitedLifetime() {
return getHandle().age == Short.MIN_VALUE;
return this.getHandle().age == Short.MIN_VALUE;
}
@Override
@@ -58,29 +58,29 @@ public class CraftItem extends CraftEntity implements Item {
super.setTicksLived(value);
// Second field for EntityItem (don't set if lifetime is unlimited)
if (!isUnlimitedLifetime()) {
getHandle().age = value;
if (!this.isUnlimitedLifetime()) {
this.getHandle().age = value;
}
}
@Override
public void setOwner(UUID uuid) {
getHandle().setTarget(uuid);
this.getHandle().setTarget(uuid);
}
@Override
public UUID getOwner() {
return getHandle().target;
return this.getHandle().target;
}
@Override
public void setThrower(UUID uuid) {
getHandle().thrower = uuid;
this.getHandle().thrower = uuid;
}
@Override
public UUID getThrower() {
return getHandle().thrower;
return this.getHandle().thrower;
}
@Override

View File

@@ -25,23 +25,23 @@ public class CraftItemDisplay extends CraftDisplay implements ItemDisplay {
@Override
public ItemStack getItemStack() {
return CraftItemStack.asBukkitCopy(getHandle().getItemStack());
return CraftItemStack.asBukkitCopy(this.getHandle().getItemStack());
}
@Override
public void setItemStack(ItemStack item) {
getHandle().setItemStack(CraftItemStack.asNMSCopy(item));
this.getHandle().setItemStack(CraftItemStack.asNMSCopy(item));
}
@Override
public ItemDisplayTransform getItemDisplayTransform() {
return ItemDisplayTransform.values()[getHandle().getItemTransform().ordinal()];
return ItemDisplayTransform.values()[this.getHandle().getItemTransform().ordinal()];
}
@Override
public void setItemDisplayTransform(ItemDisplayTransform display) {
Preconditions.checkArgument(display != null, "Display cannot be null");
getHandle().setItemTransform(ItemDisplayContext.BY_ID.apply(display.ordinal()));
this.getHandle().setItemTransform(ItemDisplayContext.BY_ID.apply(display.ordinal()));
}
}

View File

@@ -1,9 +1,8 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.core.EnumDirection;
import net.minecraft.world.entity.decoration.EntityHanging;
import net.minecraft.world.entity.decoration.EntityItemFrame;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.decoration.HangingEntity;
import net.minecraft.world.level.block.Blocks;
import org.bukkit.Rotation;
import org.bukkit.block.BlockFace;
@@ -13,25 +12,25 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.ItemFrame;
public class CraftItemFrame extends CraftHanging implements ItemFrame {
public CraftItemFrame(CraftServer server, EntityItemFrame entity) {
public CraftItemFrame(CraftServer server, net.minecraft.world.entity.decoration.ItemFrame entity) {
super(server, entity);
}
@Override
public boolean setFacingDirection(BlockFace face, boolean force) {
EntityHanging hanging = getHandle();
EnumDirection oldDir = hanging.getDirection();
EnumDirection newDir = CraftBlock.blockFaceToNotch(face);
HangingEntity hanging = this.getHandle();
Direction oldDir = hanging.getDirection();
Direction newDir = CraftBlock.blockFaceToNotch(face);
Preconditions.checkArgument(newDir != null, "%s is not a valid facing direction", face);
getHandle().setDirection(newDir);
if (!force && !getHandle().generation && !hanging.survives()) {
this.getHandle().setDirection(newDir);
if (!force && !this.getHandle().generation && !hanging.survives()) {
hanging.setDirection(oldDir);
return false;
}
update();
this.update();
return true;
}
@@ -41,45 +40,45 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
super.update();
// mark dirty, so that the client gets updated with item and rotation
getHandle().getEntityData().markDirty(EntityItemFrame.DATA_ITEM);
getHandle().getEntityData().markDirty(EntityItemFrame.DATA_ROTATION);
this.getHandle().getEntityData().markDirty(net.minecraft.world.entity.decoration.ItemFrame.DATA_ITEM);
this.getHandle().getEntityData().markDirty(net.minecraft.world.entity.decoration.ItemFrame.DATA_ROTATION);
// update redstone
if (!getHandle().generation) {
getHandle().level().updateNeighbourForOutputSignal(getHandle().getPos(), Blocks.AIR);
if (!this.getHandle().generation) {
this.getHandle().level().updateNeighbourForOutputSignal(this.getHandle().getPos(), Blocks.AIR);
}
}
@Override
public void setItem(org.bukkit.inventory.ItemStack item) {
setItem(item, true);
this.setItem(item, true);
}
@Override
public void setItem(org.bukkit.inventory.ItemStack item, boolean playSound) {
// only updated redstone and play sound when it is not in generation
getHandle().setItem(CraftItemStack.asNMSCopy(item), !getHandle().generation, !getHandle().generation && playSound);
this.getHandle().setItem(CraftItemStack.asNMSCopy(item), !this.getHandle().generation, !this.getHandle().generation && playSound);
}
@Override
public org.bukkit.inventory.ItemStack getItem() {
return CraftItemStack.asBukkitCopy(getHandle().getItem());
return CraftItemStack.asBukkitCopy(this.getHandle().getItem());
}
@Override
public float getItemDropChance() {
return getHandle().dropChance;
return this.getHandle().dropChance;
}
@Override
public void setItemDropChance(float chance) {
Preconditions.checkArgument(0.0 <= chance && chance <= 1.0, "Chance (%s) outside range [0, 1]", chance);
getHandle().dropChance = chance;
this.getHandle().dropChance = chance;
}
@Override
public Rotation getRotation() {
return toBukkitRotation(getHandle().getRotation());
return this.toBukkitRotation(this.getHandle().getRotation());
}
Rotation toBukkitRotation(int value) {
@@ -102,14 +101,14 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
case 7:
return Rotation.COUNTER_CLOCKWISE_45;
default:
throw new AssertionError("Unknown rotation " + value + " for " + getHandle());
throw new AssertionError("Unknown rotation " + value + " for " + this.getHandle());
}
}
@Override
public void setRotation(Rotation rotation) {
Preconditions.checkArgument(rotation != null, "Rotation cannot be null");
getHandle().setRotation(toInteger(rotation));
this.getHandle().setRotation(CraftItemFrame.toInteger(rotation));
}
static int toInteger(Rotation rotation) {
@@ -138,31 +137,31 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
@Override
public boolean isVisible() {
return !getHandle().isInvisible();
return !this.getHandle().isInvisible();
}
@Override
public void setVisible(boolean visible) {
getHandle().setInvisible(!visible);
this.getHandle().setInvisible(!visible);
}
@Override
public boolean isFixed() {
return getHandle().fixed;
return this.getHandle().fixed;
}
@Override
public void setFixed(boolean fixed) {
getHandle().fixed = fixed;
this.getHandle().fixed = fixed;
}
@Override
public EntityItemFrame getHandle() {
return (EntityItemFrame) entity;
public net.minecraft.world.entity.decoration.ItemFrame getHandle() {
return (net.minecraft.world.entity.decoration.ItemFrame) this.entity;
}
@Override
public String toString() {
return "CraftItemFrame{item=" + getItem() + ", rotation=" + getRotation() + "}";
return "CraftItemFrame{item=" + this.getItem() + ", rotation=" + this.getRotation() + "}";
}
}

View File

@@ -1,23 +1,22 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.projectile.EntityLargeFireball;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.LargeFireball;
public class CraftLargeFireball extends CraftSizedFireball implements LargeFireball {
public CraftLargeFireball(CraftServer server, EntityLargeFireball entity) {
public CraftLargeFireball(CraftServer server, net.minecraft.world.entity.projectile.LargeFireball entity) {
super(server, entity);
}
@Override
public void setYield(float yield) {
super.setYield(yield);
getHandle().explosionPower = (int) yield;
this.getHandle().explosionPower = (int) yield;
}
@Override
public EntityLargeFireball getHandle() {
return (EntityLargeFireball) entity;
public net.minecraft.world.entity.projectile.LargeFireball getHandle() {
return (net.minecraft.world.entity.projectile.LargeFireball) this.entity;
}
@Override

View File

@@ -1,13 +1,13 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.decoration.EntityLeash;
import net.minecraft.world.entity.decoration.LeashFenceKnotEntity;
import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.LeashHitch;
public class CraftLeash extends CraftBlockAttachedEntity implements LeashHitch {
public CraftLeash(CraftServer server, EntityLeash entity) {
public CraftLeash(CraftServer server, LeashFenceKnotEntity entity) {
super(server, entity);
}
@@ -15,7 +15,7 @@ public class CraftLeash extends CraftBlockAttachedEntity implements LeashHitch {
public boolean setFacingDirection(BlockFace face, boolean force) {
Preconditions.checkArgument(face == BlockFace.SELF, "%s is not a valid facing direction", face);
return force || getHandle().generation || getHandle().survives();
return force || this.getHandle().generation || this.getHandle().survives();
}
@Override
@@ -36,8 +36,8 @@ public class CraftLeash extends CraftBlockAttachedEntity implements LeashHitch {
}
@Override
public EntityLeash getHandle() {
return (EntityLeash) entity;
public LeashFenceKnotEntity getHandle() {
return (LeashFenceKnotEntity) this.entity;
}
@Override

View File

@@ -1,49 +1,49 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.level.EntityPlayer;
import net.minecraft.world.entity.EntityLightning;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.LightningBolt;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.LightningStrike;
import org.bukkit.entity.Player;
public class CraftLightningStrike extends CraftEntity implements LightningStrike {
public CraftLightningStrike(final CraftServer server, final EntityLightning entity) {
public CraftLightningStrike(final CraftServer server, final LightningBolt entity) {
super(server, entity);
}
@Override
public boolean isEffect() {
return getHandle().visualOnly;
return this.getHandle().visualOnly;
}
public int getFlashes() {
return getHandle().flashes;
return this.getHandle().flashes;
}
public void setFlashes(int flashes) {
getHandle().flashes = flashes;
this.getHandle().flashes = flashes;
}
public int getLifeTicks() {
return getHandle().life;
return this.getHandle().life;
}
public void setLifeTicks(int ticks) {
getHandle().life = ticks;
this.getHandle().life = ticks;
}
public Player getCausingPlayer() {
EntityPlayer player = getHandle().getCause();
ServerPlayer player = this.getHandle().getCause();
return (player != null) ? player.getBukkitEntity() : null;
}
public void setCausingPlayer(Player player) {
getHandle().setCause((player != null) ? ((CraftPlayer) player).getHandle() : null);
this.getHandle().setCause((player != null) ? ((CraftPlayer) player).getHandle() : null);
}
@Override
public EntityLightning getHandle() {
return (EntityLightning) entity;
public LightningBolt getHandle() {
return (LightningBolt) this.entity;
}
@Override

View File

@@ -10,42 +10,30 @@ import java.util.Set;
import java.util.UUID;
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.protocol.game.ClientboundHurtAnimationPacket;
import net.minecraft.server.level.WorldServer;
import net.minecraft.sounds.SoundEffect;
import net.minecraft.sounds.SoundEffects;
import net.minecraft.world.EnumHand;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.entity.EntityInsentient;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.entity.EntitySpawnReason;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.ai.attributes.GenericAttributes;
import net.minecraft.world.entity.boss.wither.EntityWither;
import net.minecraft.world.entity.decoration.EntityArmorStand;
import net.minecraft.world.entity.player.EntityHuman;
import net.minecraft.world.entity.projectile.EntityArrow;
import net.minecraft.world.entity.projectile.EntityDragonFireball;
import net.minecraft.world.entity.projectile.EntityEgg;
import net.minecraft.world.entity.projectile.EntityEnderPearl;
import net.minecraft.world.entity.projectile.EntityFireball;
import net.minecraft.world.entity.projectile.EntityFireworks;
import net.minecraft.world.entity.projectile.EntityFishingHook;
import net.minecraft.world.entity.projectile.EntityLargeFireball;
import net.minecraft.world.entity.projectile.EntityLlamaSpit;
import net.minecraft.world.entity.projectile.EntityPotion;
import net.minecraft.world.entity.projectile.EntityProjectile;
import net.minecraft.world.entity.projectile.EntityShulkerBullet;
import net.minecraft.world.entity.projectile.EntitySmallFireball;
import net.minecraft.world.entity.projectile.EntitySnowball;
import net.minecraft.world.entity.projectile.EntitySpectralArrow;
import net.minecraft.world.entity.projectile.EntityThrownExpBottle;
import net.minecraft.world.entity.projectile.EntityThrownTrident;
import net.minecraft.world.entity.projectile.EntityTippedArrow;
import net.minecraft.world.entity.projectile.EntityWitherSkull;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.boss.wither.WitherBoss;
import net.minecraft.world.entity.decoration.ArmorStand;
import net.minecraft.world.entity.projectile.AbstractHurtingProjectile;
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
import net.minecraft.world.entity.projectile.FishingHook;
import net.minecraft.world.entity.projectile.LargeFireball;
import net.minecraft.world.entity.projectile.ThrowableProjectile;
import net.minecraft.world.entity.projectile.ThrownEgg;
import net.minecraft.world.entity.projectile.ThrownEnderpearl;
import net.minecraft.world.entity.projectile.ThrownExperienceBottle;
import net.minecraft.world.entity.projectile.ThrownTrident;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.component.Consumable;
import net.minecraft.world.phys.Vec3D;
import net.minecraft.world.phys.Vec3;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -104,17 +92,17 @@ import org.bukkit.util.Vector;
public class CraftLivingEntity extends CraftEntity implements LivingEntity {
private CraftEntityEquipment equipment;
public CraftLivingEntity(final CraftServer server, final EntityLiving entity) {
public CraftLivingEntity(final CraftServer server, final net.minecraft.world.entity.LivingEntity entity) {
super(server, entity);
if (entity instanceof EntityInsentient || entity instanceof EntityArmorStand) {
equipment = new CraftEntityEquipment(this);
if (entity instanceof Mob || entity instanceof ArmorStand) {
this.equipment = new CraftEntityEquipment(this);
}
}
@Override
public double getHealth() {
return Math.min(Math.max(0, getHandle().getHealth()), getMaxHealth());
return Math.min(Math.max(0, this.getHandle().getHealth()), this.getMaxHealth());
}
@Override
@@ -123,63 +111,63 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
Preconditions.checkArgument(health >= 0 && health <= this.getMaxHealth(), "Health value (%s) must be between 0 and %s", health, this.getMaxHealth());
// during world generation, we don't want to run logic for dropping items and xp
if (getHandle().generation && health == 0) {
getHandle().discard(null); // Add Bukkit remove cause
if (this.getHandle().generation && health == 0) {
this.getHandle().discard(null); // Add Bukkit remove cause
return;
}
getHandle().setHealth((float) health);
this.getHandle().setHealth((float) health);
if (health == 0) {
getHandle().die(getHandle().damageSources().generic());
this.getHandle().die(this.getHandle().damageSources().generic());
}
}
@Override
public double getAbsorptionAmount() {
return getHandle().getAbsorptionAmount();
return this.getHandle().getAbsorptionAmount();
}
@Override
public void setAbsorptionAmount(double amount) {
Preconditions.checkArgument(amount >= 0 && Double.isFinite(amount), "amount < 0 or non-finite");
getHandle().setAbsorptionAmount((float) amount);
this.getHandle().setAbsorptionAmount((float) amount);
}
@Override
public double getMaxHealth() {
return getHandle().getMaxHealth();
return this.getHandle().getMaxHealth();
}
@Override
public void setMaxHealth(double amount) {
Preconditions.checkArgument(amount > 0, "Max health amount (%s) must be greater than 0", amount);
getHandle().getAttribute(GenericAttributes.MAX_HEALTH).setBaseValue(amount);
this.getHandle().getAttribute(Attributes.MAX_HEALTH).setBaseValue(amount);
if (getHealth() > amount) {
setHealth(amount);
if (this.getHealth() > amount) {
this.setHealth(amount);
}
}
@Override
public void resetMaxHealth() {
setMaxHealth(getHandle().getAttribute(GenericAttributes.MAX_HEALTH).getAttribute().value().getDefaultValue());
this.setMaxHealth(this.getHandle().getAttribute(Attributes.MAX_HEALTH).getAttribute().value().getDefaultValue());
}
@Override
public double getEyeHeight() {
return getHandle().getEyeHeight();
return this.getHandle().getEyeHeight();
}
@Override
public double getEyeHeight(boolean ignorePose) {
return getEyeHeight();
return this.getEyeHeight();
}
private List<Block> getLineOfSight(Set<Material> transparent, int maxDistance, int maxLength) {
Preconditions.checkState(!getHandle().generation, "Cannot get line of sight during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot get line of sight during world generation");
if (transparent == null) {
transparent = Sets.newHashSet(Material.AIR, Material.CAVE_AIR, Material.VOID_AIR);
@@ -205,18 +193,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public List<Block> getLineOfSight(Set<Material> transparent, int maxDistance) {
return getLineOfSight(transparent, maxDistance, 0);
return this.getLineOfSight(transparent, maxDistance, 0);
}
@Override
public Block getTargetBlock(Set<Material> transparent, int maxDistance) {
List<Block> blocks = getLineOfSight(transparent, maxDistance, 1);
List<Block> blocks = this.getLineOfSight(transparent, maxDistance, 1);
return blocks.get(0);
}
@Override
public List<Block> getLastTwoTargetBlocks(Set<Material> transparent, int maxDistance) {
return getLineOfSight(transparent, maxDistance, 2);
return this.getLineOfSight(transparent, maxDistance, 2);
}
@Override
@@ -237,7 +225,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public RayTraceResult rayTraceBlocks(double maxDistance, FluidCollisionMode fluidCollisionMode) {
Preconditions.checkState(!getHandle().generation, "Cannot ray tray blocks during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot ray tray blocks during world generation");
Location eyeLocation = this.getEyeLocation();
Vector direction = eyeLocation.getDirection();
@@ -246,173 +234,173 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public int getRemainingAir() {
return getHandle().getAirSupply();
return this.getHandle().getAirSupply();
}
@Override
public void setRemainingAir(int ticks) {
getHandle().setAirSupply(ticks);
this.getHandle().setAirSupply(ticks);
}
@Override
public int getMaximumAir() {
return getHandle().maxAirTicks;
return this.getHandle().maxAirTicks;
}
@Override
public void setMaximumAir(int ticks) {
getHandle().maxAirTicks = ticks;
this.getHandle().maxAirTicks = ticks;
}
@Override
public ItemStack getItemInUse() {
net.minecraft.world.item.ItemStack item = getHandle().getUseItem();
net.minecraft.world.item.ItemStack item = this.getHandle().getUseItem();
return item.isEmpty() ? null : CraftItemStack.asCraftMirror(item);
}
@Override
public int getItemInUseTicks() {
return getHandle().getUseItemRemainingTicks();
return this.getHandle().getUseItemRemainingTicks();
}
@Override
public void setItemInUseTicks(int ticks) {
getHandle().useItemRemaining = ticks;
this.getHandle().useItemRemaining = ticks;
}
@Override
public int getArrowCooldown() {
return getHandle().removeArrowTime;
return this.getHandle().removeArrowTime;
}
@Override
public void setArrowCooldown(int ticks) {
getHandle().removeArrowTime = ticks;
this.getHandle().removeArrowTime = ticks;
}
@Override
public int getArrowsInBody() {
return getHandle().getArrowCount();
return this.getHandle().getArrowCount();
}
@Override
public void setArrowsInBody(int count) {
Preconditions.checkArgument(count >= 0, "New arrow amount must be >= 0");
getHandle().getEntityData().set(EntityLiving.DATA_ARROW_COUNT_ID, count);
this.getHandle().getEntityData().set(net.minecraft.world.entity.LivingEntity.DATA_ARROW_COUNT_ID, count);
}
@Override
public boolean isInvulnerable() {
return getHandle().isInvulnerableTo((WorldServer) getHandle().level(), getHandle().damageSources().generic());
return this.getHandle().isInvulnerableTo((ServerLevel) this.getHandle().level(), this.getHandle().damageSources().generic());
}
@Override
public void damage(double amount) {
damage(amount, getHandle().damageSources().generic());
this.damage(amount, this.getHandle().damageSources().generic());
}
@Override
public void damage(double amount, org.bukkit.entity.Entity source) {
DamageSource reason = getHandle().damageSources().generic();
DamageSource reason = this.getHandle().damageSources().generic();
if (source instanceof HumanEntity) {
reason = getHandle().damageSources().playerAttack(((CraftHumanEntity) source).getHandle());
reason = this.getHandle().damageSources().playerAttack(((CraftHumanEntity) source).getHandle());
} else if (source instanceof LivingEntity) {
reason = getHandle().damageSources().mobAttack(((CraftLivingEntity) source).getHandle());
reason = this.getHandle().damageSources().mobAttack(((CraftLivingEntity) source).getHandle());
}
damage(amount, reason);
this.damage(amount, reason);
}
@Override
public void damage(double amount, org.bukkit.damage.DamageSource damageSource) {
Preconditions.checkArgument(damageSource != null, "damageSource cannot be null");
damage(amount, ((CraftDamageSource) damageSource).getHandle());
this.damage(amount, ((CraftDamageSource) damageSource).getHandle());
}
private void damage(double amount, DamageSource damageSource) {
Preconditions.checkArgument(damageSource != null, "damageSource cannot be null");
Preconditions.checkState(!getHandle().generation, "Cannot damage entity during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot damage entity during world generation");
entity.hurt(damageSource, (float) amount);
this.entity.hurt(damageSource, (float) amount);
}
@Override
public Location getEyeLocation() {
Location loc = getLocation();
loc.setY(loc.getY() + getEyeHeight());
Location loc = this.getLocation();
loc.setY(loc.getY() + this.getEyeHeight());
return loc;
}
@Override
public int getMaximumNoDamageTicks() {
return getHandle().invulnerableDuration;
return this.getHandle().invulnerableDuration;
}
@Override
public void setMaximumNoDamageTicks(int ticks) {
getHandle().invulnerableDuration = ticks;
this.getHandle().invulnerableDuration = ticks;
}
@Override
public double getLastDamage() {
return getHandle().lastHurt;
return this.getHandle().lastHurt;
}
@Override
public void setLastDamage(double damage) {
getHandle().lastHurt = (float) damage;
this.getHandle().lastHurt = (float) damage;
}
@Override
public int getNoDamageTicks() {
return getHandle().invulnerableTime;
return this.getHandle().invulnerableTime;
}
@Override
public void setNoDamageTicks(int ticks) {
getHandle().invulnerableTime = ticks;
this.getHandle().invulnerableTime = ticks;
}
@Override
public int getNoActionTicks() {
return getHandle().getNoActionTime();
return this.getHandle().getNoActionTime();
}
@Override
public void setNoActionTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0");
getHandle().setNoActionTime(ticks);
this.getHandle().setNoActionTime(ticks);
}
@Override
public EntityLiving getHandle() {
return (EntityLiving) entity;
public net.minecraft.world.entity.LivingEntity getHandle() {
return (net.minecraft.world.entity.LivingEntity) this.entity;
}
public void setHandle(final EntityLiving entity) {
public void setHandle(final net.minecraft.world.entity.LivingEntity entity) {
super.setHandle(entity);
}
@Override
public String toString() {
return "CraftLivingEntity{" + "id=" + getEntityId() + '}';
return "CraftLivingEntity{" + "id=" + this.getEntityId() + '}';
}
@Override
public Player getKiller() {
return getHandle().lastHurtByPlayer == null ? null : (Player) getHandle().lastHurtByPlayer.getBukkitEntity();
return this.getHandle().lastHurtByPlayer == null ? null : (Player) this.getHandle().lastHurtByPlayer.getBukkitEntity();
}
@Override
public boolean addPotionEffect(PotionEffect effect) {
return addPotionEffect(effect, false);
return this.addPotionEffect(effect, false);
}
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
getHandle().addEffect(new MobEffect(CraftPotionEffectType.bukkitToMinecraftHolder(effect.getType()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles()), EntityPotionEffectEvent.Cause.PLUGIN);
this.getHandle().addEffect(new MobEffectInstance(CraftPotionEffectType.bukkitToMinecraftHolder(effect.getType()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles()), EntityPotionEffectEvent.Cause.PLUGIN);
return true;
}
@@ -420,31 +408,31 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public boolean addPotionEffects(Collection<PotionEffect> effects) {
boolean success = true;
for (PotionEffect effect : effects) {
success &= addPotionEffect(effect);
success &= this.addPotionEffect(effect);
}
return success;
}
@Override
public boolean hasPotionEffect(PotionEffectType type) {
return getHandle().hasEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type));
return this.getHandle().hasEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type));
}
@Override
public PotionEffect getPotionEffect(PotionEffectType type) {
MobEffect handle = getHandle().getEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type));
MobEffectInstance handle = this.getHandle().getEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type));
return (handle == null) ? null : new PotionEffect(CraftPotionEffectType.minecraftHolderToBukkit(handle.getEffect()), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isVisible());
}
@Override
public void removePotionEffect(PotionEffectType type) {
getHandle().removeEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type), EntityPotionEffectEvent.Cause.PLUGIN);
this.getHandle().removeEffect(CraftPotionEffectType.bukkitToMinecraftHolder(type), EntityPotionEffectEvent.Cause.PLUGIN);
}
@Override
public Collection<PotionEffect> getActivePotionEffects() {
List<PotionEffect> effects = new ArrayList<PotionEffect>();
for (MobEffect handle : getHandle().activeEffects.values()) {
for (MobEffectInstance handle : this.getHandle().activeEffects.values()) {
effects.add(new PotionEffect(CraftPotionEffectType.minecraftHolderToBukkit(handle.getEffect()), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isVisible()));
}
return effects;
@@ -452,94 +440,94 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public <T extends Projectile> T launchProjectile(Class<? extends T> projectile) {
return launchProjectile(projectile, null);
return this.launchProjectile(projectile, null);
}
@Override
@SuppressWarnings("unchecked")
public <T extends Projectile> T launchProjectile(Class<? extends T> projectile, Vector velocity) {
Preconditions.checkState(!getHandle().generation, "Cannot launch projectile during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot launch projectile during world generation");
net.minecraft.world.level.World world = ((CraftWorld) getWorld()).getHandle();
net.minecraft.world.level.Level world = ((CraftWorld) this.getWorld()).getHandle();
net.minecraft.world.entity.Entity launch = null;
if (Snowball.class.isAssignableFrom(projectile)) {
launch = new EntitySnowball(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.SNOWBALL));
((EntityProjectile) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemSnowball
launch = new net.minecraft.world.entity.projectile.Snowball(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.SNOWBALL));
((ThrowableProjectile) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemSnowball
} else if (Egg.class.isAssignableFrom(projectile)) {
launch = new EntityEgg(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.EGG));
((EntityProjectile) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemEgg
launch = new ThrownEgg(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.EGG));
((ThrowableProjectile) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemEgg
} else if (EnderPearl.class.isAssignableFrom(projectile)) {
launch = new EntityEnderPearl(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.ENDER_PEARL));
((EntityProjectile) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemEnderPearl
launch = new ThrownEnderpearl(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.ENDER_PEARL));
((ThrowableProjectile) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemEnderPearl
} else if (AbstractArrow.class.isAssignableFrom(projectile)) {
if (TippedArrow.class.isAssignableFrom(projectile)) {
launch = new EntityTippedArrow(world, getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
launch = new net.minecraft.world.entity.projectile.Arrow(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
((Arrow) launch.getBukkitEntity()).setBasePotionType(PotionType.WATER);
} else if (SpectralArrow.class.isAssignableFrom(projectile)) {
launch = new EntitySpectralArrow(world, getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.SPECTRAL_ARROW), null);
launch = new net.minecraft.world.entity.projectile.SpectralArrow(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.SPECTRAL_ARROW), null);
} else if (Trident.class.isAssignableFrom(projectile)) {
launch = new EntityThrownTrident(world, getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.TRIDENT));
launch = new ThrownTrident(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.TRIDENT));
} else {
launch = new EntityTippedArrow(world, getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
launch = new net.minecraft.world.entity.projectile.Arrow(world, this.getHandle(), new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ARROW), null);
}
((EntityArrow) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 3.0F, 1.0F); // ItemBow
((net.minecraft.world.entity.projectile.AbstractArrow) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 3.0F, 1.0F); // ItemBow
} else if (ThrownPotion.class.isAssignableFrom(projectile)) {
if (LingeringPotion.class.isAssignableFrom(projectile)) {
launch = new EntityPotion(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.LINGERING_POTION));
launch = new net.minecraft.world.entity.projectile.ThrownPotion(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.LINGERING_POTION));
} else {
launch = new EntityPotion(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.SPLASH_POTION));
launch = new net.minecraft.world.entity.projectile.ThrownPotion(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.SPLASH_POTION));
}
((EntityProjectile) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), -20.0F, 0.5F, 1.0F); // ItemSplashPotion
((ThrowableProjectile) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), -20.0F, 0.5F, 1.0F); // ItemSplashPotion
} else if (ThrownExpBottle.class.isAssignableFrom(projectile)) {
launch = new EntityThrownExpBottle(world, getHandle(), new net.minecraft.world.item.ItemStack(Items.EXPERIENCE_BOTTLE));
((EntityProjectile) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), -20.0F, 0.7F, 1.0F); // ItemExpBottle
} else if (FishHook.class.isAssignableFrom(projectile) && getHandle() instanceof EntityHuman) {
launch = new EntityFishingHook((EntityHuman) getHandle(), world, 0, 0);
launch = new ThrownExperienceBottle(world, this.getHandle(), new net.minecraft.world.item.ItemStack(Items.EXPERIENCE_BOTTLE));
((ThrowableProjectile) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), -20.0F, 0.7F, 1.0F); // ItemExpBottle
} else if (FishHook.class.isAssignableFrom(projectile) && this.getHandle() instanceof net.minecraft.world.entity.player.Player) {
launch = new FishingHook((net.minecraft.world.entity.player.Player) this.getHandle(), world, 0, 0);
} else if (Fireball.class.isAssignableFrom(projectile)) {
Location location = getEyeLocation();
Location location = this.getEyeLocation();
Vector direction = location.getDirection().multiply(10);
Vec3D vec = new Vec3D(direction.getX(), direction.getY(), direction.getZ());
Vec3 vec = new Vec3(direction.getX(), direction.getY(), direction.getZ());
if (SmallFireball.class.isAssignableFrom(projectile)) {
launch = new EntitySmallFireball(world, getHandle(), vec);
launch = new net.minecraft.world.entity.projectile.SmallFireball(world, this.getHandle(), vec);
} else if (WitherSkull.class.isAssignableFrom(projectile)) {
launch = new EntityWitherSkull(world, getHandle(), vec);
launch = new net.minecraft.world.entity.projectile.WitherSkull(world, this.getHandle(), vec);
} else if (DragonFireball.class.isAssignableFrom(projectile)) {
launch = new EntityDragonFireball(world, getHandle(), vec);
launch = new net.minecraft.world.entity.projectile.DragonFireball(world, this.getHandle(), vec);
} else if (AbstractWindCharge.class.isAssignableFrom(projectile)) {
if (BreezeWindCharge.class.isAssignableFrom(projectile)) {
launch = EntityTypes.BREEZE_WIND_CHARGE.create(world, EntitySpawnReason.TRIGGERED);
launch = EntityType.BREEZE_WIND_CHARGE.create(world, EntitySpawnReason.TRIGGERED);
} else {
launch = EntityTypes.WIND_CHARGE.create(world, EntitySpawnReason.TRIGGERED);
launch = EntityType.WIND_CHARGE.create(world, EntitySpawnReason.TRIGGERED);
}
((net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge) launch).setOwner(getHandle());
((net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge) launch).shootFromRotation(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // WindChargeItem
((net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge) launch).setOwner(this.getHandle());
((net.minecraft.world.entity.projectile.windcharge.AbstractWindCharge) launch).shootFromRotation(this.getHandle(), this.getHandle().getXRot(), this.getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // WindChargeItem
} else {
launch = new EntityLargeFireball(world, getHandle(), vec, 1);
launch = new LargeFireball(world, this.getHandle(), vec, 1);
}
((EntityFireball) launch).projectileSource = this;
((AbstractHurtingProjectile) launch).projectileSource = this;
launch.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
} else if (LlamaSpit.class.isAssignableFrom(projectile)) {
Location location = getEyeLocation();
Location location = this.getEyeLocation();
Vector direction = location.getDirection();
launch = EntityTypes.LLAMA_SPIT.create(world, EntitySpawnReason.TRIGGERED);
launch = EntityType.LLAMA_SPIT.create(world, EntitySpawnReason.TRIGGERED);
((EntityLlamaSpit) launch).setOwner(getHandle());
((EntityLlamaSpit) launch).shoot(direction.getX(), direction.getY(), direction.getZ(), 1.5F, 10.0F); // EntityLlama
((net.minecraft.world.entity.projectile.LlamaSpit) launch).setOwner(this.getHandle());
((net.minecraft.world.entity.projectile.LlamaSpit) launch).shoot(direction.getX(), direction.getY(), direction.getZ(), 1.5F, 10.0F); // EntityLlama
launch.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
} else if (ShulkerBullet.class.isAssignableFrom(projectile)) {
Location location = getEyeLocation();
Location location = this.getEyeLocation();
launch = new EntityShulkerBullet(world, getHandle(), null, null);
launch = new net.minecraft.world.entity.projectile.ShulkerBullet(world, this.getHandle(), null, null);
launch.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
} else if (Firework.class.isAssignableFrom(projectile)) {
Location location = getEyeLocation();
Location location = this.getEyeLocation();
launch = new EntityFireworks(world, net.minecraft.world.item.ItemStack.EMPTY, getHandle());
launch = new FireworkRocketEntity(world, net.minecraft.world.item.ItemStack.EMPTY, this.getHandle());
launch.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
}
@@ -555,49 +543,49 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean hasLineOfSight(Entity other) {
Preconditions.checkState(!getHandle().generation, "Cannot check line of sight during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot check line of sight during world generation");
return getHandle().hasLineOfSight(((CraftEntity) other).getHandle());
return this.getHandle().hasLineOfSight(((CraftEntity) other).getHandle());
}
@Override
public boolean getRemoveWhenFarAway() {
return getHandle() instanceof EntityInsentient && !((EntityInsentient) getHandle()).isPersistenceRequired();
return this.getHandle() instanceof Mob && !((Mob) this.getHandle()).isPersistenceRequired();
}
@Override
public void setRemoveWhenFarAway(boolean remove) {
if (getHandle() instanceof EntityInsentient) {
((EntityInsentient) getHandle()).setPersistenceRequired(!remove);
if (this.getHandle() instanceof Mob) {
((Mob) this.getHandle()).setPersistenceRequired(!remove);
}
}
@Override
public EntityEquipment getEquipment() {
return equipment;
return this.equipment;
}
@Override
public void setCanPickupItems(boolean pickup) {
if (getHandle() instanceof EntityInsentient) {
((EntityInsentient) getHandle()).setCanPickUpLoot(pickup);
if (this.getHandle() instanceof Mob) {
((Mob) this.getHandle()).setCanPickUpLoot(pickup);
} else {
getHandle().bukkitPickUpLoot = pickup;
this.getHandle().bukkitPickUpLoot = pickup;
}
}
@Override
public boolean getCanPickupItems() {
if (getHandle() instanceof EntityInsentient) {
return ((EntityInsentient) getHandle()).canPickUpLoot();
if (this.getHandle() instanceof Mob) {
return ((Mob) this.getHandle()).canPickUpLoot();
} else {
return getHandle().bukkitPickUpLoot;
return this.getHandle().bukkitPickUpLoot;
}
}
@Override
public boolean teleport(Location location, PlayerTeleportEvent.TeleportCause cause) {
if (getHealth() == 0) {
if (this.getHealth() == 0) {
return false;
}
@@ -606,199 +594,199 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean isLeashed() {
if (!(getHandle() instanceof EntityInsentient)) {
if (!(this.getHandle() instanceof Mob)) {
return false;
}
return ((EntityInsentient) getHandle()).getLeashHolder() != null;
return ((Mob) this.getHandle()).getLeashHolder() != null;
}
@Override
public Entity getLeashHolder() throws IllegalStateException {
Preconditions.checkState(isLeashed(), "Entity not leashed");
return ((EntityInsentient) getHandle()).getLeashHolder().getBukkitEntity();
Preconditions.checkState(this.isLeashed(), "Entity not leashed");
return ((Mob) this.getHandle()).getLeashHolder().getBukkitEntity();
}
private boolean unleash() {
if (!isLeashed()) {
if (!this.isLeashed()) {
return false;
}
((EntityInsentient) getHandle()).removeLeash();
((Mob) this.getHandle()).removeLeash();
return true;
}
@Override
public boolean setLeashHolder(Entity holder) {
if (getHandle().generation || (getHandle() instanceof EntityWither) || !(getHandle() instanceof EntityInsentient)) {
if (this.getHandle().generation || (this.getHandle() instanceof WitherBoss) || !(this.getHandle() instanceof Mob)) {
return false;
}
if (holder == null) {
return unleash();
return this.unleash();
}
if (holder.isDead()) {
return false;
}
unleash();
((EntityInsentient) getHandle()).setLeashedTo(((CraftEntity) holder).getHandle(), true);
this.unleash();
((Mob) this.getHandle()).setLeashedTo(((CraftEntity) holder).getHandle(), true);
return true;
}
@Override
public boolean isGliding() {
return getHandle().getSharedFlag(7);
return this.getHandle().getSharedFlag(7);
}
@Override
public void setGliding(boolean gliding) {
getHandle().setSharedFlag(7, gliding);
this.getHandle().setSharedFlag(7, gliding);
}
@Override
public boolean isSwimming() {
return getHandle().isSwimming();
return this.getHandle().isSwimming();
}
@Override
public void setSwimming(boolean swimming) {
getHandle().setSwimming(swimming);
this.getHandle().setSwimming(swimming);
}
@Override
public boolean isRiptiding() {
return getHandle().isAutoSpinAttack();
return this.getHandle().isAutoSpinAttack();
}
@Override
public void setRiptiding(boolean riptiding) {
getHandle().setLivingEntityFlag(EntityLiving.LIVING_ENTITY_FLAG_SPIN_ATTACK, riptiding);
this.getHandle().setLivingEntityFlag(net.minecraft.world.entity.LivingEntity.LIVING_ENTITY_FLAG_SPIN_ATTACK, riptiding);
}
@Override
public boolean isSleeping() {
return getHandle().isSleeping();
return this.getHandle().isSleeping();
}
@Override
public boolean isClimbing() {
Preconditions.checkState(!getHandle().generation, "Cannot check if climbing during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot check if climbing during world generation");
return getHandle().onClimbable();
return this.getHandle().onClimbable();
}
@Override
public AttributeInstance getAttribute(Attribute attribute) {
return getHandle().craftAttributes.getAttribute(attribute);
return this.getHandle().craftAttributes.getAttribute(attribute);
}
@Override
public void setAI(boolean ai) {
if (this.getHandle() instanceof EntityInsentient) {
((EntityInsentient) this.getHandle()).setNoAi(!ai);
if (this.getHandle() instanceof Mob) {
((Mob) this.getHandle()).setNoAi(!ai);
}
}
@Override
public boolean hasAI() {
return (this.getHandle() instanceof EntityInsentient) ? !((EntityInsentient) this.getHandle()).isNoAi() : false;
return (this.getHandle() instanceof Mob) ? !((Mob) this.getHandle()).isNoAi() : false;
}
@Override
public void attack(Entity target) {
Preconditions.checkArgument(target != null, "target == null");
Preconditions.checkState(!getHandle().generation, "Cannot attack during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot attack during world generation");
if (getHandle() instanceof EntityHuman) {
((EntityHuman) getHandle()).attack(((CraftEntity) target).getHandle());
if (this.getHandle() instanceof net.minecraft.world.entity.player.Player) {
((net.minecraft.world.entity.player.Player) this.getHandle()).attack(((CraftEntity) target).getHandle());
} else {
getHandle().doHurtTarget((WorldServer) ((CraftEntity) target).getHandle().level(), ((CraftEntity) target).getHandle());
this.getHandle().doHurtTarget((ServerLevel) ((CraftEntity) target).getHandle().level(), ((CraftEntity) target).getHandle());
}
}
@Override
public void swingMainHand() {
Preconditions.checkState(!getHandle().generation, "Cannot swing hand during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot swing hand during world generation");
getHandle().swing(EnumHand.MAIN_HAND, true);
this.getHandle().swing(InteractionHand.MAIN_HAND, true);
}
@Override
public void swingOffHand() {
Preconditions.checkState(!getHandle().generation, "Cannot swing hand during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot swing hand during world generation");
getHandle().swing(EnumHand.OFF_HAND, true);
this.getHandle().swing(InteractionHand.OFF_HAND, true);
}
@Override
public void playHurtAnimation(float yaw) {
if (getHandle().level() instanceof WorldServer world) {
if (this.getHandle().level() instanceof ServerLevel world) {
/*
* Vanilla degrees state that 0 = left, 90 = front, 180 = right, and 270 = behind.
* This makes no sense. We'll add 90 to it so that 0 = front, clockwise from there.
*/
float actualYaw = yaw + 90;
ClientboundHurtAnimationPacket packet = new ClientboundHurtAnimationPacket(getEntityId(), actualYaw);
ClientboundHurtAnimationPacket packet = new ClientboundHurtAnimationPacket(this.getEntityId(), actualYaw);
world.getChunkSource().broadcastAndSend(getHandle(), packet);
world.getChunkSource().broadcastAndSend(this.getHandle(), packet);
}
}
@Override
public void setCollidable(boolean collidable) {
getHandle().collides = collidable;
this.getHandle().collides = collidable;
}
@Override
public boolean isCollidable() {
return getHandle().collides;
return this.getHandle().collides;
}
@Override
public Set<UUID> getCollidableExemptions() {
return getHandle().collidableExemptions;
return this.getHandle().collidableExemptions;
}
@Override
public <T> T getMemory(MemoryKey<T> memoryKey) {
return (T) getHandle().getBrain().getMemory(CraftMemoryKey.bukkitToMinecraft(memoryKey)).map(CraftMemoryMapper::fromNms).orElse(null);
return (T) this.getHandle().getBrain().getMemory(CraftMemoryKey.bukkitToMinecraft(memoryKey)).map(CraftMemoryMapper::fromNms).orElse(null);
}
@Override
public <T> void setMemory(MemoryKey<T> memoryKey, T t) {
getHandle().getBrain().setMemory(CraftMemoryKey.bukkitToMinecraft(memoryKey), CraftMemoryMapper.toNms(t));
this.getHandle().getBrain().setMemory(CraftMemoryKey.bukkitToMinecraft(memoryKey), CraftMemoryMapper.toNms(t));
}
@Override
public Sound getHurtSound() {
SoundEffect sound = getHandle().getHurtSound0(getHandle().damageSources().generic());
SoundEvent sound = this.getHandle().getHurtSound0(this.getHandle().damageSources().generic());
return (sound != null) ? CraftSound.minecraftToBukkit(sound) : null;
}
@Override
public Sound getDeathSound() {
SoundEffect sound = getHandle().getDeathSound0();
SoundEvent sound = this.getHandle().getDeathSound0();
return (sound != null) ? CraftSound.minecraftToBukkit(sound) : null;
}
@Override
public Sound getFallDamageSound(int fallHeight) {
return CraftSound.minecraftToBukkit(getHandle().getFallDamageSound0(fallHeight));
return CraftSound.minecraftToBukkit(this.getHandle().getFallDamageSound0(fallHeight));
}
@Override
public Sound getFallDamageSoundSmall() {
return CraftSound.minecraftToBukkit(getHandle().getFallSounds().small());
return CraftSound.minecraftToBukkit(this.getHandle().getFallSounds().small());
}
@Override
public Sound getFallDamageSoundBig() {
return CraftSound.minecraftToBukkit(getHandle().getFallSounds().big());
return CraftSound.minecraftToBukkit(this.getHandle().getFallSounds().big());
}
@Override
public Sound getDrinkingSound(ItemStack itemStack) {
return getEatingSound(itemStack);
return this.getEatingSound(itemStack);
}
@Override
@@ -807,13 +795,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(itemStack);
Consumable consumable = nms.get(DataComponents.CONSUMABLE);
SoundEffect soundeffect = SoundEffects.GENERIC_DRINK.value();
SoundEvent soundeffect = SoundEvents.GENERIC_DRINK.value();
if (consumable != null) {
if (getHandle() instanceof Consumable.b consumable_b) {
if (this.getHandle() instanceof Consumable.OverrideConsumeSound consumable_b) {
soundeffect = consumable_b.getConsumeSound(nms);
} else {
soundeffect = (SoundEffect) consumable.sound().value();
soundeffect = (SoundEvent) consumable.sound().value();
}
}
@@ -822,7 +810,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean canBreatheUnderwater() {
return getHandle().canBreatheUnderwater();
return this.getHandle().canBreatheUnderwater();
}
@Override
@@ -832,12 +820,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean isInvisible() {
return getHandle().isInvisible();
return this.getHandle().isInvisible();
}
@Override
public void setInvisible(boolean invisible) {
getHandle().persistentInvisibility = invisible;
getHandle().setSharedFlag(5, invisible);
this.getHandle().persistentInvisibility = invisible;
this.getHandle().setSharedFlag(5, invisible);
}
}

View File

@@ -1,7 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.animal.horse.EntityLlama;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventoryLlama;
import org.bukkit.entity.Horse;
@@ -11,43 +10,43 @@ import org.bukkit.inventory.LlamaInventory;
public class CraftLlama extends CraftChestedHorse implements Llama {
public CraftLlama(CraftServer server, EntityLlama entity) {
public CraftLlama(CraftServer server, net.minecraft.world.entity.animal.horse.Llama entity) {
super(server, entity);
}
@Override
public EntityLlama getHandle() {
return (EntityLlama) super.getHandle();
public net.minecraft.world.entity.animal.horse.Llama getHandle() {
return (net.minecraft.world.entity.animal.horse.Llama) super.getHandle();
}
@Override
public Color getColor() {
return Color.values()[getHandle().getVariant().ordinal()];
return Color.values()[this.getHandle().getVariant().ordinal()];
}
@Override
public void setColor(Color color) {
Preconditions.checkArgument(color != null, "color");
getHandle().setVariant(EntityLlama.Variant.byId(color.ordinal()));
this.getHandle().setVariant(net.minecraft.world.entity.animal.horse.Llama.Variant.byId(color.ordinal()));
}
@Override
public LlamaInventory getInventory() {
return new CraftInventoryLlama(getHandle().inventory, getHandle().getBodyArmorAccess());
return new CraftInventoryLlama(this.getHandle().inventory, this.getHandle().getBodyArmorAccess());
}
@Override
public int getStrength() {
return getHandle().getStrength();
return this.getHandle().getStrength();
}
@Override
public void setStrength(int strength) {
Preconditions.checkArgument(1 <= strength && strength <= 5, "strength must be [1,5]");
if (strength == getStrength()) return;
getHandle().setStrengthPublic(strength);
getHandle().createInventory();
if (strength == this.getStrength()) return;
this.getHandle().setStrengthPublic(strength);
this.getHandle().createInventory();
}
@Override

View File

@@ -1,19 +1,18 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.projectile.EntityLlamaSpit;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.LlamaSpit;
import org.bukkit.projectiles.ProjectileSource;
public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit {
public CraftLlamaSpit(CraftServer server, EntityLlamaSpit entity) {
public CraftLlamaSpit(CraftServer server, net.minecraft.world.entity.projectile.LlamaSpit entity) {
super(server, entity);
}
@Override
public EntityLlamaSpit getHandle() {
return (EntityLlamaSpit) super.getHandle();
public net.minecraft.world.entity.projectile.LlamaSpit getHandle() {
return (net.minecraft.world.entity.projectile.LlamaSpit) super.getHandle();
}
@Override
@@ -23,11 +22,11 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit {
@Override
public ProjectileSource getShooter() {
return (getHandle().getOwner() != null) ? (ProjectileSource) getHandle().getOwner().getBukkitEntity() : null;
return (this.getHandle().getOwner() != null) ? (ProjectileSource) this.getHandle().getOwner().getBukkitEntity() : null;
}
@Override
public void setShooter(ProjectileSource source) {
getHandle().setOwner((source != null) ? ((CraftLivingEntity) source).getHandle() : null);
this.getHandle().setOwner((source != null) ? ((CraftLivingEntity) source).getHandle() : null);
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityMagmaCube;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.MagmaCube;
public class CraftMagmaCube extends CraftSlime implements MagmaCube {
public CraftMagmaCube(CraftServer server, EntityMagmaCube entity) {
public CraftMagmaCube(CraftServer server, net.minecraft.world.entity.monster.MagmaCube entity) {
super(server, entity);
}
@Override
public EntityMagmaCube getHandle() {
return (EntityMagmaCube) entity;
public net.minecraft.world.entity.monster.MagmaCube getHandle() {
return (net.minecraft.world.entity.monster.MagmaCube) this.entity;
}
@Override

View File

@@ -1,9 +1,9 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.level.WorldServer;
import net.minecraft.world.entity.vehicle.EntityMinecartAbstract;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.vehicle.AbstractMinecart;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.IBlockData;
import net.minecraft.world.level.block.state.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
@@ -13,71 +13,71 @@ import org.bukkit.material.MaterialData;
import org.bukkit.util.Vector;
public abstract class CraftMinecart extends CraftVehicle implements Minecart {
public CraftMinecart(CraftServer server, EntityMinecartAbstract entity) {
public CraftMinecart(CraftServer server, AbstractMinecart entity) {
super(server, entity);
}
@Override
public void setDamage(double damage) {
getHandle().setDamage((float) damage);
this.getHandle().setDamage((float) damage);
}
@Override
public double getDamage() {
return getHandle().getDamage();
return this.getHandle().getDamage();
}
@Override
public double getMaxSpeed() {
return getHandle().getBehavior().getMaxSpeed((WorldServer) getHandle().level());
return this.getHandle().getBehavior().getMaxSpeed((ServerLevel) this.getHandle().level());
}
@Override
public void setMaxSpeed(double speed) {
if (speed >= 0D) {
getHandle().maxSpeed = speed;
this.getHandle().maxSpeed = speed;
}
}
@Override
public boolean isSlowWhenEmpty() {
return getHandle().slowWhenEmpty;
return this.getHandle().slowWhenEmpty;
}
@Override
public void setSlowWhenEmpty(boolean slow) {
getHandle().slowWhenEmpty = slow;
this.getHandle().slowWhenEmpty = slow;
}
@Override
public Vector getFlyingVelocityMod() {
return getHandle().getFlyingVelocityMod();
return this.getHandle().getFlyingVelocityMod();
}
@Override
public void setFlyingVelocityMod(Vector flying) {
getHandle().setFlyingVelocityMod(flying);
this.getHandle().setFlyingVelocityMod(flying);
}
@Override
public Vector getDerailedVelocityMod() {
return getHandle().getDerailedVelocityMod();
return this.getHandle().getDerailedVelocityMod();
}
@Override
public void setDerailedVelocityMod(Vector derailed) {
getHandle().setDerailedVelocityMod(derailed);
this.getHandle().setDerailedVelocityMod(derailed);
}
@Override
public EntityMinecartAbstract getHandle() {
return (EntityMinecartAbstract) entity;
public AbstractMinecart getHandle() {
return (AbstractMinecart) this.entity;
}
@Override
public void setDisplayBlock(MaterialData material) {
if (material != null) {
IBlockData block = CraftMagicNumbers.getBlock(material);
BlockState block = CraftMagicNumbers.getBlock(material);
this.getHandle().setDisplayBlockState(block);
} else {
// Set block to air (default) and set the flag to not have a display block.
@@ -89,7 +89,7 @@ public abstract class CraftMinecart extends CraftVehicle implements Minecart {
@Override
public void setDisplayBlockData(BlockData blockData) {
if (blockData != null) {
IBlockData block = ((CraftBlockData) blockData).getState();
BlockState block = ((CraftBlockData) blockData).getState();
this.getHandle().setDisplayBlockState(block);
} else {
// Set block to air (default) and set the flag to not have a display block.
@@ -100,23 +100,23 @@ public abstract class CraftMinecart extends CraftVehicle implements Minecart {
@Override
public MaterialData getDisplayBlock() {
IBlockData blockData = getHandle().getDisplayBlockState();
BlockState blockData = this.getHandle().getDisplayBlockState();
return CraftMagicNumbers.getMaterial(blockData);
}
@Override
public BlockData getDisplayBlockData() {
IBlockData blockData = getHandle().getDisplayBlockState();
BlockState blockData = this.getHandle().getDisplayBlockState();
return CraftBlockData.fromData(blockData);
}
@Override
public void setDisplayBlockOffset(int offset) {
getHandle().setDisplayOffset(offset);
this.getHandle().setDisplayOffset(offset);
}
@Override
public int getDisplayBlockOffset() {
return getHandle().getDisplayOffset();
return this.getHandle().getDisplayOffset();
}
}

View File

@@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.vehicle.EntityMinecartChest;
import net.minecraft.world.entity.vehicle.MinecartChest;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventory;
import org.bukkit.entity.minecart.StorageMinecart;
@@ -10,18 +10,18 @@ import org.bukkit.inventory.Inventory;
public class CraftMinecartChest extends CraftMinecartContainer implements StorageMinecart {
private final CraftInventory inventory;
public CraftMinecartChest(CraftServer server, EntityMinecartChest entity) {
public CraftMinecartChest(CraftServer server, MinecartChest entity) {
super(server, entity);
inventory = new CraftInventory(entity);
this.inventory = new CraftInventory(entity);
}
@Override
public Inventory getInventory() {
return inventory;
return this.inventory;
}
@Override
public String toString() {
return "CraftMinecartChest{" + "inventory=" + inventory + '}';
return "CraftMinecartChest{" + "inventory=" + this.inventory + '}';
}
}

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import java.util.Set;
import net.minecraft.world.entity.vehicle.EntityMinecartCommandBlock;
import net.minecraft.world.entity.vehicle.MinecartCommandBlock;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.craftbukkit.CraftServer;
@@ -16,29 +16,29 @@ import org.bukkit.plugin.Plugin;
public class CraftMinecartCommand extends CraftMinecart implements CommandMinecart {
private final PermissibleBase perm = new PermissibleBase(this);
public CraftMinecartCommand(CraftServer server, EntityMinecartCommandBlock entity) {
public CraftMinecartCommand(CraftServer server, MinecartCommandBlock entity) {
super(server, entity);
}
@Override
public EntityMinecartCommandBlock getHandle() {
return (EntityMinecartCommandBlock) entity;
public MinecartCommandBlock getHandle() {
return (MinecartCommandBlock) this.entity;
}
@Override
public String getCommand() {
return getHandle().getCommandBlock().getCommand();
return this.getHandle().getCommandBlock().getCommand();
}
@Override
public void setCommand(String command) {
getHandle().getCommandBlock().setCommand(command != null ? command : "");
getHandle().getEntityData().set(EntityMinecartCommandBlock.DATA_ID_COMMAND_NAME, getHandle().getCommandBlock().getCommand());
this.getHandle().getCommandBlock().setCommand(command != null ? command : "");
this.getHandle().getEntityData().set(MinecartCommandBlock.DATA_ID_COMMAND_NAME, this.getHandle().getCommandBlock().getCommand());
}
@Override
public void setName(String name) {
getHandle().getCommandBlock().setCustomName(CraftChatMessage.fromStringOrNull(name));
this.getHandle().getCommandBlock().setCustomName(CraftChatMessage.fromStringOrNull(name));
}
@Override
@@ -56,7 +56,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
@Override
public String getName() {
return CraftChatMessage.fromComponent(getHandle().getCommandBlock().getName());
return CraftChatMessage.fromComponent(this.getHandle().getCommandBlock().getName());
}
@Override
@@ -71,7 +71,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
@Override
public boolean isPermissionSet(String name) {
return perm.isPermissionSet(name);
return this.perm.isPermissionSet(name);
}
@Override
@@ -81,7 +81,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
@Override
public boolean hasPermission(String name) {
return perm.hasPermission(name);
return this.perm.hasPermission(name);
}
@Override
@@ -91,37 +91,37 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
return perm.addAttachment(plugin, name, value);
return this.perm.addAttachment(plugin, name, value);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin) {
return perm.addAttachment(plugin);
return this.perm.addAttachment(plugin);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
return perm.addAttachment(plugin, name, value, ticks);
return this.perm.addAttachment(plugin, name, value, ticks);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
return perm.addAttachment(plugin, ticks);
return this.perm.addAttachment(plugin, ticks);
}
@Override
public void removeAttachment(PermissionAttachment attachment) {
perm.removeAttachment(attachment);
this.perm.removeAttachment(attachment);
}
@Override
public void recalculatePermissions() {
perm.recalculatePermissions();
this.perm.recalculatePermissions();
}
@Override
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
return perm.getEffectivePermissions();
return this.perm.getEffectivePermissions();
}
@Override

View File

@@ -1,7 +1,7 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.vehicle.EntityMinecartAbstract;
import net.minecraft.world.entity.vehicle.EntityMinecartContainer;
import net.minecraft.world.entity.vehicle.AbstractMinecart;
import net.minecraft.world.entity.vehicle.AbstractMinecartContainer;
import org.bukkit.craftbukkit.CraftLootTable;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.loot.LootTable;
@@ -9,36 +9,36 @@ import org.bukkit.loot.Lootable;
public abstract class CraftMinecartContainer extends CraftMinecart implements Lootable {
public CraftMinecartContainer(CraftServer server, EntityMinecartAbstract entity) {
public CraftMinecartContainer(CraftServer server, AbstractMinecart entity) {
super(server, entity);
}
@Override
public EntityMinecartContainer getHandle() {
return (EntityMinecartContainer) entity;
public AbstractMinecartContainer getHandle() {
return (AbstractMinecartContainer) this.entity;
}
@Override
public void setLootTable(LootTable table) {
setLootTable(table, getSeed());
this.setLootTable(table, this.getSeed());
}
@Override
public LootTable getLootTable() {
return CraftLootTable.minecraftToBukkit(getHandle().lootTable);
return CraftLootTable.minecraftToBukkit(this.getHandle().lootTable);
}
@Override
public void setSeed(long seed) {
setLootTable(getLootTable(), seed);
this.setLootTable(this.getLootTable(), seed);
}
@Override
public long getSeed() {
return getHandle().lootTableSeed;
return this.getHandle().lootTableSeed;
}
private void setLootTable(LootTable table, long seed) {
getHandle().setLootTable(CraftLootTable.bukkitToMinecraft(table), seed);
public void setLootTable(LootTable table, long seed) {
this.getHandle().setLootTable(CraftLootTable.bukkitToMinecraft(table), seed);
}
}

View File

@@ -1,30 +1,30 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.vehicle.EntityMinecartFurnace;
import net.minecraft.world.entity.vehicle.MinecartFurnace;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.minecart.PoweredMinecart;
@SuppressWarnings("deprecation")
public class CraftMinecartFurnace extends CraftMinecart implements PoweredMinecart {
public CraftMinecartFurnace(CraftServer server, EntityMinecartFurnace entity) {
public CraftMinecartFurnace(CraftServer server, MinecartFurnace entity) {
super(server, entity);
}
@Override
public EntityMinecartFurnace getHandle() {
return (EntityMinecartFurnace) entity;
public MinecartFurnace getHandle() {
return (MinecartFurnace) this.entity;
}
@Override
public int getFuel() {
return getHandle().fuel;
return this.getHandle().fuel;
}
@Override
public void setFuel(int fuel) {
Preconditions.checkArgument(fuel >= 0, "ticks cannot be negative");
getHandle().fuel = fuel;
this.getHandle().fuel = fuel;
}
@Override

View File

@@ -1,6 +1,6 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.vehicle.EntityMinecartHopper;
import net.minecraft.world.entity.vehicle.MinecartHopper;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventory;
import org.bukkit.entity.minecart.HopperMinecart;
@@ -9,28 +9,28 @@ import org.bukkit.inventory.Inventory;
public final class CraftMinecartHopper extends CraftMinecartContainer implements HopperMinecart {
private final CraftInventory inventory;
public CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) {
public CraftMinecartHopper(CraftServer server, MinecartHopper entity) {
super(server, entity);
inventory = new CraftInventory(entity);
this.inventory = new CraftInventory(entity);
}
@Override
public String toString() {
return "CraftMinecartHopper{" + "inventory=" + inventory + '}';
return "CraftMinecartHopper{" + "inventory=" + this.inventory + '}';
}
@Override
public Inventory getInventory() {
return inventory;
return this.inventory;
}
@Override
public boolean isEnabled() {
return ((EntityMinecartHopper) getHandle()).isEnabled();
return ((MinecartHopper) this.getHandle()).isEnabled();
}
@Override
public void setEnabled(boolean enabled) {
((EntityMinecartHopper) getHandle()).setEnabled(enabled);
((MinecartHopper) this.getHandle()).setEnabled(enabled);
}
}

View File

@@ -6,9 +6,8 @@ import java.util.List;
import java.util.Optional;
import net.minecraft.util.RandomSource;
import net.minecraft.util.random.SimpleWeightedRandomList;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.vehicle.EntityMinecartMobSpawner;
import net.minecraft.world.level.MobSpawnerData;
import net.minecraft.world.entity.vehicle.MinecartSpawner;
import net.minecraft.world.level.SpawnData;
import org.bukkit.block.spawner.SpawnRule;
import org.bukkit.block.spawner.SpawnerEntry;
import org.bukkit.craftbukkit.CraftServer;
@@ -18,37 +17,37 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.minecart.SpawnerMinecart;
final class CraftMinecartMobSpawner extends CraftMinecart implements SpawnerMinecart {
CraftMinecartMobSpawner(CraftServer server, EntityMinecartMobSpawner entity) {
CraftMinecartMobSpawner(CraftServer server, MinecartSpawner entity) {
super(server, entity);
}
@Override
public EntityType getSpawnedType() {
MobSpawnerData spawnData = getHandle().getSpawner().nextSpawnData;
SpawnData spawnData = this.getHandle().getSpawner().nextSpawnData;
if (spawnData == null) {
return null;
}
Optional<EntityTypes<?>> type = EntityTypes.by(spawnData.getEntityToSpawn());
Optional<net.minecraft.world.entity.EntityType<?>> type = net.minecraft.world.entity.EntityType.by(spawnData.getEntityToSpawn());
return type.map(CraftEntityType::minecraftToBukkit).orElse(null);
}
@Override
public void setSpawnedType(EntityType entityType) {
if (entityType == null) {
getHandle().getSpawner().spawnPotentials = SimpleWeightedRandomList.empty(); // need clear the spawnPotentials to avoid nextSpawnData being replaced later
getHandle().getSpawner().nextSpawnData = new MobSpawnerData();
this.getHandle().getSpawner().spawnPotentials = SimpleWeightedRandomList.empty(); // need clear the spawnPotentials to avoid nextSpawnData being replaced later
this.getHandle().getSpawner().nextSpawnData = new SpawnData();
return;
}
Preconditions.checkArgument(entityType != EntityType.UNKNOWN, "Can't spawn EntityType %s from mob spawners!", entityType);
RandomSource rand = getHandle().level().getRandom();
getHandle().getSpawner().setEntityId(CraftEntityType.bukkitToMinecraft(entityType), getHandle().level(), rand, getHandle().blockPosition());
RandomSource rand = this.getHandle().level().getRandom();
this.getHandle().getSpawner().setEntityId(CraftEntityType.bukkitToMinecraft(entityType), this.getHandle().level(), rand, this.getHandle().blockPosition());
}
@Override
public EntitySnapshot getSpawnedEntity() {
MobSpawnerData spawnData = getHandle().getSpawner().nextSpawnData;
SpawnData spawnData = this.getHandle().getSpawner().nextSpawnData;
if (spawnData == null) {
return null;
}
@@ -58,114 +57,114 @@ final class CraftMinecartMobSpawner extends CraftMinecart implements SpawnerMine
@Override
public void setSpawnedEntity(EntitySnapshot snapshot) {
CraftCreatureSpawner.setSpawnedEntity(getHandle().getSpawner(), snapshot, null, null);
CraftCreatureSpawner.setSpawnedEntity(this.getHandle().getSpawner(), snapshot, null, null);
}
@Override
public void setSpawnedEntity(SpawnerEntry spawnerEntry) {
Preconditions.checkArgument(spawnerEntry != null, "Entry cannot be null");
CraftCreatureSpawner.setSpawnedEntity(getHandle().getSpawner(), spawnerEntry.getSnapshot(), spawnerEntry.getSpawnRule(), spawnerEntry.getEquipment());
CraftCreatureSpawner.setSpawnedEntity(this.getHandle().getSpawner(), spawnerEntry.getSnapshot(), spawnerEntry.getSpawnRule(), spawnerEntry.getEquipment());
}
@Override
public void addPotentialSpawn(EntitySnapshot snapshot, int weight, SpawnRule spawnRule) {
CraftCreatureSpawner.addPotentialSpawn(getHandle().getSpawner(), snapshot, weight, spawnRule, null);
CraftCreatureSpawner.addPotentialSpawn(this.getHandle().getSpawner(), snapshot, weight, spawnRule, null);
}
@Override
public void addPotentialSpawn(SpawnerEntry spawnerEntry) {
Preconditions.checkArgument(spawnerEntry != null, "Entry cannot be null");
CraftCreatureSpawner.addPotentialSpawn(getHandle().getSpawner(), spawnerEntry.getSnapshot(), spawnerEntry.getSpawnWeight(), spawnerEntry.getSpawnRule(), spawnerEntry.getEquipment());
CraftCreatureSpawner.addPotentialSpawn(this.getHandle().getSpawner(), spawnerEntry.getSnapshot(), spawnerEntry.getSpawnWeight(), spawnerEntry.getSpawnRule(), spawnerEntry.getEquipment());
}
@Override
public void setPotentialSpawns(Collection<SpawnerEntry> entries) {
CraftCreatureSpawner.setPotentialSpawns(getHandle().getSpawner(), entries);
CraftCreatureSpawner.setPotentialSpawns(this.getHandle().getSpawner(), entries);
}
@Override
public List<SpawnerEntry> getPotentialSpawns() {
return CraftCreatureSpawner.getPotentialSpawns(getHandle().getSpawner());
return CraftCreatureSpawner.getPotentialSpawns(this.getHandle().getSpawner());
}
@Override
public int getDelay() {
return getHandle().getSpawner().spawnDelay;
return this.getHandle().getSpawner().spawnDelay;
}
@Override
public void setDelay(int delay) {
getHandle().getSpawner().spawnDelay = delay;
this.getHandle().getSpawner().spawnDelay = delay;
}
@Override
public int getMinSpawnDelay() {
return getHandle().getSpawner().minSpawnDelay;
return this.getHandle().getSpawner().minSpawnDelay;
}
@Override
public void setMinSpawnDelay(int spawnDelay) {
Preconditions.checkArgument(spawnDelay <= getMaxSpawnDelay(), "Minimum Spawn Delay must be less than or equal to Maximum Spawn Delay");
getHandle().getSpawner().minSpawnDelay = spawnDelay;
Preconditions.checkArgument(spawnDelay <= this.getMaxSpawnDelay(), "Minimum Spawn Delay must be less than or equal to Maximum Spawn Delay");
this.getHandle().getSpawner().minSpawnDelay = spawnDelay;
}
@Override
public int getMaxSpawnDelay() {
return getHandle().getSpawner().maxSpawnDelay;
return this.getHandle().getSpawner().maxSpawnDelay;
}
@Override
public void setMaxSpawnDelay(int spawnDelay) {
Preconditions.checkArgument(spawnDelay > 0, "Maximum Spawn Delay must be greater than 0.");
Preconditions.checkArgument(spawnDelay >= getMinSpawnDelay(), "Maximum Spawn Delay must be greater than or equal to Minimum Spawn Delay");
getHandle().getSpawner().maxSpawnDelay = spawnDelay;
Preconditions.checkArgument(spawnDelay >= this.getMinSpawnDelay(), "Maximum Spawn Delay must be greater than or equal to Minimum Spawn Delay");
this.getHandle().getSpawner().maxSpawnDelay = spawnDelay;
}
@Override
public int getMaxNearbyEntities() {
return getHandle().getSpawner().maxNearbyEntities;
return this.getHandle().getSpawner().maxNearbyEntities;
}
@Override
public void setMaxNearbyEntities(int maxNearbyEntities) {
getHandle().getSpawner().maxNearbyEntities = maxNearbyEntities;
this.getHandle().getSpawner().maxNearbyEntities = maxNearbyEntities;
}
@Override
public int getSpawnCount() {
return getHandle().getSpawner().spawnCount;
return this.getHandle().getSpawner().spawnCount;
}
@Override
public void setSpawnCount(int count) {
getHandle().getSpawner().spawnCount = count;
this.getHandle().getSpawner().spawnCount = count;
}
@Override
public int getRequiredPlayerRange() {
return getHandle().getSpawner().requiredPlayerRange;
return this.getHandle().getSpawner().requiredPlayerRange;
}
@Override
public void setRequiredPlayerRange(int requiredPlayerRange) {
getHandle().getSpawner().requiredPlayerRange = requiredPlayerRange;
this.getHandle().getSpawner().requiredPlayerRange = requiredPlayerRange;
}
@Override
public int getSpawnRange() {
return getHandle().getSpawner().spawnRange;
return this.getHandle().getSpawner().spawnRange;
}
@Override
public void setSpawnRange(int spawnRange) {
getHandle().getSpawner().spawnRange = spawnRange;
this.getHandle().getSpawner().spawnRange = spawnRange;
}
@Override
public EntityMinecartMobSpawner getHandle() {
return (EntityMinecartMobSpawner) entity;
public MinecartSpawner getHandle() {
return (MinecartSpawner) this.entity;
}
@Override

View File

@@ -1,11 +1,11 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.vehicle.EntityMinecartAbstract;
import net.minecraft.world.entity.vehicle.AbstractMinecart;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.minecart.RideableMinecart;
public class CraftMinecartRideable extends CraftMinecart implements RideableMinecart {
public CraftMinecartRideable(CraftServer server, EntityMinecartAbstract entity) {
public CraftMinecartRideable(CraftServer server, AbstractMinecart entity) {
super(server, entity);
}

View File

@@ -1,80 +1,80 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.vehicle.EntityMinecartTNT;
import net.minecraft.world.entity.vehicle.MinecartTNT;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.minecart.ExplosiveMinecart;
public final class CraftMinecartTNT extends CraftMinecart implements ExplosiveMinecart {
CraftMinecartTNT(CraftServer server, EntityMinecartTNT entity) {
CraftMinecartTNT(CraftServer server, MinecartTNT entity) {
super(server, entity);
}
@Override
public float getYield() {
return getHandle().explosionPowerBase;
return this.getHandle().explosionPowerBase;
}
@Override
public boolean isIncendiary() {
return getHandle().isIncendiary;
return this.getHandle().isIncendiary;
}
@Override
public void setIsIncendiary(boolean isIncendiary) {
getHandle().isIncendiary = isIncendiary;
this.getHandle().isIncendiary = isIncendiary;
}
@Override
public void setYield(float yield) {
getHandle().explosionPowerBase = yield;
this.getHandle().explosionPowerBase = yield;
}
@Override
public float getExplosionSpeedFactor() {
return getHandle().explosionSpeedFactor;
return this.getHandle().explosionSpeedFactor;
}
@Override
public void setExplosionSpeedFactor(float factor) {
getHandle().explosionSpeedFactor = factor;
this.getHandle().explosionSpeedFactor = factor;
}
@Override
public void setFuseTicks(int ticks) {
getHandle().fuse = ticks;
this.getHandle().fuse = ticks;
}
@Override
public int getFuseTicks() {
return getHandle().getFuse();
return this.getHandle().getFuse();
}
@Override
public void ignite() {
getHandle().primeFuse();
this.getHandle().primeFuse();
}
@Override
public boolean isIgnited() {
return getHandle().isPrimed();
return this.getHandle().isPrimed();
}
@Override
public void explode() {
getHandle().explode(getHandle().getDeltaMovement().horizontalDistanceSqr());
this.getHandle().explode(this.getHandle().getDeltaMovement().horizontalDistanceSqr());
}
@Override
public void explode(double power) {
Preconditions.checkArgument(0 <= power && power <= 5, "Power must be in range [0, 5] (got %s)", power);
getHandle().explode(power);
this.getHandle().explode(power);
}
@Override
public EntityMinecartTNT getHandle() {
return (EntityMinecartTNT) super.getHandle();
public MinecartTNT getHandle() {
return (MinecartTNT) super.getHandle();
}
@Override

View File

@@ -2,8 +2,7 @@ package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import java.util.Optional;
import net.minecraft.sounds.SoundEffect;
import net.minecraft.world.entity.EntityInsentient;
import net.minecraft.sounds.SoundEvent;
import org.bukkit.Sound;
import org.bukkit.craftbukkit.CraftLootTable;
import org.bukkit.craftbukkit.CraftServer;
@@ -13,15 +12,15 @@ import org.bukkit.entity.Mob;
import org.bukkit.loot.LootTable;
public abstract class CraftMob extends CraftLivingEntity implements Mob {
public CraftMob(CraftServer server, EntityInsentient entity) {
public CraftMob(CraftServer server, net.minecraft.world.entity.Mob entity) {
super(server, entity);
}
@Override
public void setTarget(LivingEntity target) {
Preconditions.checkState(!getHandle().generation, "Cannot set target during world generation");
Preconditions.checkState(!this.getHandle().generation, "Cannot set target during world generation");
EntityInsentient entity = getHandle();
net.minecraft.world.entity.Mob entity = this.getHandle();
if (target == null) {
entity.setTarget(null, null, false);
} else if (target instanceof CraftLivingEntity) {
@@ -31,30 +30,30 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
@Override
public CraftLivingEntity getTarget() {
if (getHandle().getTarget() == null) return null;
if (this.getHandle().getTarget() == null) return null;
return (CraftLivingEntity) getHandle().getTarget().getBukkitEntity();
return (CraftLivingEntity) this.getHandle().getTarget().getBukkitEntity();
}
@Override
public void setAware(boolean aware) {
getHandle().aware = aware;
this.getHandle().aware = aware;
}
@Override
public boolean isAware() {
return getHandle().aware;
return this.getHandle().aware;
}
@Override
public Sound getAmbientSound() {
SoundEffect sound = getHandle().getAmbientSound0();
SoundEvent sound = this.getHandle().getAmbientSound0();
return (sound != null) ? CraftSound.minecraftToBukkit(sound) : null;
}
@Override
public EntityInsentient getHandle() {
return (EntityInsentient) entity;
public net.minecraft.world.entity.Mob getHandle() {
return (net.minecraft.world.entity.Mob) this.entity;
}
@Override
@@ -64,21 +63,21 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
@Override
public void setLootTable(LootTable table) {
getHandle().lootTable = Optional.ofNullable(CraftLootTable.bukkitToMinecraft(table));
this.getHandle().lootTable = Optional.ofNullable(CraftLootTable.bukkitToMinecraft(table));
}
@Override
public LootTable getLootTable() {
return CraftLootTable.minecraftToBukkit(getHandle().getLootTable().orElse(null));
return CraftLootTable.minecraftToBukkit(this.getHandle().getLootTable().orElse(null));
}
@Override
public void setSeed(long seed) {
getHandle().lootTableSeed = seed;
this.getHandle().lootTableSeed = seed;
}
@Override
public long getSeed() {
return getHandle().lootTableSeed;
return this.getHandle().lootTableSeed;
}
}

View File

@@ -1,18 +1,17 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.world.entity.monster.EntityMonster;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Monster;
public class CraftMonster extends CraftCreature implements Monster, CraftEnemy {
public CraftMonster(CraftServer server, EntityMonster entity) {
public CraftMonster(CraftServer server, net.minecraft.world.entity.monster.Monster entity) {
super(server, entity);
}
@Override
public EntityMonster getHandle() {
return (EntityMonster) entity;
public net.minecraft.world.entity.monster.Monster getHandle() {
return (net.minecraft.world.entity.monster.Monster) this.entity;
}
@Override

Some files were not shown because too many files have changed in this diff Show More