Remap CraftBukkit to Mojang+Yarn Mappings
By: Initial Source <noreply+automated@papermc.io>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -10,7 +10,7 @@ public class CraftBlockAttachedEntity extends CraftEntity {
|
||||
|
||||
@Override
|
||||
public BlockAttachedEntity getHandle() {
|
||||
return (BlockAttachedEntity) entity;
|
||||
return (BlockAttachedEntity) this.entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() + "}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() + '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() + "}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 + '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user