Update to Minecraft 1.17

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2021-06-11 15:00:00 +10:00
parent 75faba7fde
commit b3a8254758
619 changed files with 10708 additions and 8451 deletions

View File

@@ -99,6 +99,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
@Override
public AbstractHorseInventory getInventory() {
return new CraftInventoryAbstractHorse(getHandle().inventoryChest);
return new CraftInventoryAbstractHorse(getHandle().inventory);
}
}

View File

@@ -24,12 +24,12 @@ public class CraftAnimals extends CraftAgeable implements Animals {
@Override
public UUID getBreedCause() {
return getHandle().breedCause;
return getHandle().loveCause;
}
@Override
public void setBreedCause(UUID uuid) {
getHandle().breedCause = uuid;
getHandle().loveCause = uuid;
}
@Override
@@ -45,6 +45,6 @@ public class CraftAnimals extends CraftAgeable implements Animals {
@Override
public int getLoveModeTicks() {
return getHandle().loveTicks;
return getHandle().inLove;
}
}

View File

@@ -156,7 +156,7 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
public void setGravity(boolean gravity) {
super.setGravity(gravity);
// Armor stands are special
getHandle().noclip = !gravity;
getHandle().noPhysics = !gravity;
}
@Override

View File

@@ -26,7 +26,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
@Override
public int getKnockbackStrength() {
return getHandle().knockbackStrength;
return getHandle().knockback;
}
@Override
@@ -94,13 +94,13 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
@Override
public PickupStatus getPickupStatus() {
return PickupStatus.values()[getHandle().fromPlayer.ordinal()];
return PickupStatus.values()[getHandle().pickup.ordinal()];
}
@Override
public void setPickupStatus(PickupStatus status) {
Preconditions.checkNotNull(status, "status");
getHandle().fromPlayer = EntityArrow.PickupStatus.a(status.ordinal());
getHandle().pickup = EntityArrow.PickupStatus.a(status.ordinal());
}
@Override
@@ -108,7 +108,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
super.setTicksLived(value);
// Second field for EntityArrow
getHandle().despawnCounter = value;
getHandle().life = value;
}
@Override

View File

@@ -0,0 +1,50 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Axolotl;
import org.bukkit.entity.EntityType;
public class CraftAxolotl extends CraftAnimals implements Axolotl {
public CraftAxolotl(CraftServer server, net.minecraft.world.entity.animal.axolotl.Axolotl entity) {
super(server, entity);
}
@Override
public net.minecraft.world.entity.animal.axolotl.Axolotl getHandle() {
return (net.minecraft.world.entity.animal.axolotl.Axolotl) super.getHandle();
}
@Override
public EntityType getType() {
return EntityType.AXOLOTL;
}
@Override
public String toString() {
return "CraftAxolotl";
}
@Override
public boolean isPlayingDead() {
return getHandle().isPlayingDead();
}
@Override
public void setPlayingDead(boolean playingDead) {
getHandle().setPlayingDead(playingDead);
}
@Override
public Variant getVariant() {
return Variant.values()[getHandle().getVariant().ordinal()];
}
@Override
public void setVariant(Variant variant) {
Preconditions.checkArgument(variant != null, "variant");
getHandle().setVariant(net.minecraft.world.entity.animal.axolotl.Axolotl.Variant.BY_ID[variant.ordinal()]);
}
}

View File

@@ -85,7 +85,7 @@ public class CraftBee extends CraftAnimals implements Bee {
@Override
public int getCannotEnterHiveTicks() {
return getHandle().cannotEnterHiveTicks;
return getHandle().stayOutOfHiveCountdown;
}
@Override

View File

@@ -15,7 +15,7 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart {
@Override
public ComplexLivingEntity getParent() {
return (ComplexLivingEntity) ((EntityEnderDragon) getHandle().owner).getBukkitEntity();
return (ComplexLivingEntity) ((EntityEnderDragon) getHandle().parentMob).getBukkitEntity();
}
@Override

View File

@@ -44,12 +44,12 @@ public class CraftCreeper extends CraftMonster implements Creeper {
public void setMaxFuseTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks < 0");
getHandle().maxFuseTicks = ticks;
getHandle().maxSwell = ticks;
}
@Override
public int getMaxFuseTicks() {
return getHandle().maxFuseTicks;
return getHandle().maxSwell;
}
@Override
@@ -57,12 +57,12 @@ public class CraftCreeper extends CraftMonster implements Creeper {
Preconditions.checkArgument(ticks >= 0, "ticks < 0");
Preconditions.checkArgument(ticks <= getMaxFuseTicks(), "ticks > maxFuseTicks");
getHandle().fuseTicks = ticks;
getHandle().swell = ticks;
}
@Override
public int getFuseTicks() {
return getHandle().fuseTicks;
return getHandle().swell;
}
@Override

View File

@@ -25,7 +25,7 @@ public class CraftEnderDragon extends CraftComplexLivingEntity implements EnderD
public Set<ComplexEntityPart> getParts() {
Builder<ComplexEntityPart> builder = ImmutableSet.builder();
for (EntityComplexPart part : getHandle().children) {
for (EntityComplexPart part : getHandle().subEntities) {
builder.add((ComplexEntityPart) part.getBukkitEntity());
}
@@ -49,7 +49,7 @@ public class CraftEnderDragon extends CraftComplexLivingEntity implements EnderD
@Override
public Phase getPhase() {
return Phase.values()[getHandle().getDataWatcher().get(EntityEnderDragon.PHASE)];
return Phase.values()[getHandle().getDataWatcher().get(EntityEnderDragon.DATA_PHASE)];
}
@Override
@@ -77,6 +77,6 @@ public class CraftEnderDragon extends CraftComplexLivingEntity implements EnderD
@Override
public int getDeathAnimationTicks() {
return getHandle().deathAnimationTicks;
return getHandle().dragonDeathTime;
}
}

View File

@@ -33,7 +33,7 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal {
@Override
public Location getTargetLocation() {
return new Location(getWorld(), getHandle().targetX, getHandle().targetY, getHandle().targetZ, getHandle().yaw, getHandle().pitch);
return new Location(getWorld(), getHandle().tx, getHandle().ty, getHandle().tz, getHandle().getYRot(), getHandle().getXRot());
}
@Override
@@ -44,17 +44,17 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal {
@Override
public boolean getDropItem() {
return getHandle().shouldDropItem;
return getHandle().surviveAfterDeath;
}
@Override
public void setDropItem(boolean shouldDropItem) {
getHandle().shouldDropItem = shouldDropItem;
getHandle().surviveAfterDeath = shouldDropItem;
}
@Override
public ItemStack getItem() {
return CraftItemStack.asBukkitCopy(getHandle().getItem());
return CraftItemStack.asBukkitCopy(getHandle().getSuppliedItem());
}
@Override
@@ -64,11 +64,11 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal {
@Override
public int getDespawnTimer() {
return getHandle().despawnTimer;
return getHandle().life;
}
@Override
public void setDespawnTimer(int time) {
getHandle().despawnTimer = time;
getHandle().life = time;
}
}

View File

@@ -28,11 +28,11 @@ public class CraftEndermite extends CraftMonster implements Endermite {
@Override
public boolean isPlayerSpawned() {
return getHandle().isPlayerSpawned();
return false;
}
@Override
public void setPlayerSpawned(boolean playerSpawned) {
getHandle().setPlayerSpawned(playerSpawned);
// Nop
}
}

View File

@@ -20,6 +20,8 @@ import net.minecraft.world.entity.EntityFlying;
import net.minecraft.world.entity.EntityLightning;
import net.minecraft.world.entity.EntityLiving;
import net.minecraft.world.entity.EntityTameableAnimal;
import net.minecraft.world.entity.GlowSquid;
import net.minecraft.world.entity.Marker;
import net.minecraft.world.entity.ambient.EntityAmbient;
import net.minecraft.world.entity.ambient.EntityBat;
import net.minecraft.world.entity.animal.EntityAnimal;
@@ -49,6 +51,8 @@ import net.minecraft.world.entity.animal.EntityTropicalFish;
import net.minecraft.world.entity.animal.EntityTurtle;
import net.minecraft.world.entity.animal.EntityWaterAnimal;
import net.minecraft.world.entity.animal.EntityWolf;
import net.minecraft.world.entity.animal.axolotl.Axolotl;
import net.minecraft.world.entity.animal.goat.Goat;
import net.minecraft.world.entity.animal.horse.EntityHorse;
import net.minecraft.world.entity.animal.horse.EntityHorseAbstract;
import net.minecraft.world.entity.animal.horse.EntityHorseChestedAbstract;
@@ -67,6 +71,7 @@ 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.decoration.GlowItemFrame;
import net.minecraft.world.entity.item.EntityFallingBlock;
import net.minecraft.world.entity.item.EntityItem;
import net.minecraft.world.entity.item.EntityTNTPrimed;
@@ -198,7 +203,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
// Water Animals
else if (entity instanceof EntityWaterAnimal) {
if (entity instanceof EntitySquid) { return new CraftSquid(server, (EntitySquid) entity); }
if (entity instanceof EntitySquid) {
if (entity instanceof GlowSquid) { return new CraftGlowSquid(server, (GlowSquid) entity); }
else { return new CraftSquid(server, (EntitySquid) entity); }
}
else if (entity instanceof EntityFish) {
if (entity instanceof EntityCod) { return new CraftCod(server, (EntityCod) entity); }
else if (entity instanceof EntityPufferFish) { return new CraftPufferFish(server, (EntityPufferFish) entity); }
@@ -243,6 +251,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
else if (entity instanceof EntityBee) { return new CraftBee(server, (EntityBee) entity); }
else if (entity instanceof EntityHoglin) { return new CraftHoglin(server, (EntityHoglin) entity); }
else if (entity instanceof EntityStrider) { return new CraftStrider(server, (EntityStrider) entity); }
else if (entity instanceof Axolotl) { return new CraftAxolotl(server, (Axolotl) entity); }
else if (entity instanceof Goat) { return new CraftGoat(server, (Goat) entity); }
else { return new CraftAnimals(server, (EntityAnimal) entity); }
}
// Monsters
@@ -332,7 +342,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
else if (entity instanceof EntityComplexPart) {
EntityComplexPart part = (EntityComplexPart) entity;
if (part.owner instanceof EntityEnderDragon) { return new CraftEnderDragonPart(server, (EntityComplexPart) entity); }
if (part.parentMob instanceof EntityEnderDragon) { return new CraftEnderDragonPart(server, (EntityComplexPart) entity); }
else { return new CraftComplexPart(server, (EntityComplexPart) entity); }
}
else if (entity instanceof EntityExperienceOrb) { return new CraftExperienceOrb(server, (EntityExperienceOrb) entity); }
@@ -373,7 +383,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
else if (entity instanceof EntityMinecartCommandBlock) { return new CraftMinecartCommand(server, (EntityMinecartCommandBlock) entity); }
} else if (entity instanceof EntityHanging) {
if (entity instanceof EntityPainting) { return new CraftPainting(server, (EntityPainting) entity); }
else if (entity instanceof EntityItemFrame) { return new CraftItemFrame(server, (EntityItemFrame) entity); }
else if (entity instanceof EntityItemFrame) {
if (entity instanceof GlowItemFrame) { return new CraftGlowItemFrame(server, (GlowItemFrame) entity); }
else { return new CraftItemFrame(server, (EntityItemFrame) entity); }
}
else if (entity instanceof EntityLeash) { return new CraftLeash(server, (EntityLeash) entity); }
else { return new CraftHanging(server, (EntityHanging) entity); }
}
@@ -383,6 +396,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
else if (entity instanceof EntityAreaEffectCloud) { return new CraftAreaEffectCloud(server, (EntityAreaEffectCloud) entity); }
else if (entity instanceof EntityEvokerFangs) { return new CraftEvokerFangs(server, (EntityEvokerFangs) entity); }
else if (entity instanceof EntityLlamaSpit) { return new CraftLlamaSpit(server, (EntityLlamaSpit) entity); }
else if (entity instanceof Marker) { return new CraftMarker(server, (Marker) entity); }
// CHECKSTYLE:ON
throw new AssertionError("Unknown entity " + (entity == null ? null : entity.getClass()));
@@ -390,7 +404,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public Location getLocation() {
return new Location(getWorld(), entity.locX(), entity.locY(), entity.locZ(), entity.getBukkitYaw(), entity.pitch);
return new Location(getWorld(), entity.locX(), entity.locY(), entity.locZ(), entity.getBukkitYaw(), entity.getXRot());
}
@Override
@@ -401,7 +415,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
loc.setY(entity.locY());
loc.setZ(entity.locZ());
loc.setYaw(entity.getBukkitYaw());
loc.setPitch(entity.pitch);
loc.setPitch(entity.getXRot());
}
return loc;
@@ -417,7 +431,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(velocity != null, "velocity");
velocity.checkFinite();
entity.setMot(CraftVector.toNMS(velocity));
entity.velocityChanged = true;
entity.hurtMarked = true;
}
@Override
@@ -451,7 +465,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public World getWorld() {
return entity.world.getWorld();
return entity.level.getWorld();
}
@Override
@@ -462,10 +476,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
yaw = Location.normalizeYaw(yaw);
pitch = Location.normalizePitch(pitch);
entity.yaw = yaw;
entity.pitch = pitch;
entity.lastYaw = yaw;
entity.lastPitch = pitch;
entity.setYRot(yaw);
entity.setXRot(pitch);
entity.yRotO = yaw;
entity.xRotO = pitch;
entity.setHeadRotation(yaw);
}
@@ -479,7 +493,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(location != null, "location");
location.checkFinite();
if (entity.isVehicle() || entity.dead) {
if (entity.isVehicle() || entity.isRemoved()) {
return false;
}
@@ -512,7 +526,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public List<org.bukkit.entity.Entity> getNearbyEntities(double x, double y, double z) {
List<Entity> notchEntityList = entity.world.getEntities(entity, entity.getBoundingBox().grow(x, y, z), null);
List<Entity> notchEntityList = entity.level.getEntities(entity, entity.getBoundingBox().grow(x, y, z), null);
List<org.bukkit.entity.Entity> bukkitEntityList = new java.util.ArrayList<org.bukkit.entity.Entity>(notchEntityList.size());
for (Entity e : notchEntityList) {
@@ -528,7 +542,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public int getFireTicks() {
return entity.fireTicks;
return entity.remainingFireTicks;
}
@Override
@@ -538,7 +552,39 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public void setFireTicks(int ticks) {
entity.fireTicks = ticks;
entity.remainingFireTicks = ticks;
}
@Override
public void setVisualFire(boolean fire) {
getHandle().hasVisualFire = fire;
}
@Override
public boolean isVisualFire() {
return getHandle().hasVisualFire;
}
@Override
public int getFreezeTicks() {
return getHandle().getTicksFrozen();
}
@Override
public int getMaxFreezeTicks() {
return getHandle().getTicksRequiredToFreeze();
}
@Override
public void setFreezeTicks(int ticks) {
Preconditions.checkArgument(0 <= ticks && ticks <= getMaxFreezeTicks(), "Ticks cannot be less than 0 or greater than getMaxFreezeTicks");
getHandle().setTicksFrozen(ticks);
}
@Override
public boolean isFrozen() {
return getHandle().isFullyFrozen();
}
@Override
@@ -662,7 +708,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public int getTicksLived() {
return getHandle().ticksLived;
return getHandle().tickCount;
}
@Override
@@ -670,7 +716,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
if (value <= 0) {
throw new IllegalArgumentException("Age must be at least 1 tick");
}
getHandle().ticksLived = value;
getHandle().tickCount = value;
}
public Entity getHandle() {
@@ -682,7 +728,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Preconditions.checkArgument(type != null, "type");
if (type.getApplicable().isInstance(this)) {
this.getHandle().world.broadcastEntityEffect(getHandle(), type.getData());
this.getHandle().level.broadcastEntityEffect(getHandle(), type.getData());
}
}
@@ -881,16 +927,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public void setGlowing(boolean flag) {
getHandle().glowing = flag;
Entity e = getHandle();
if (e.getFlag(6) != flag) {
e.setFlag(6, flag);
}
getHandle().setGlowingTag(true);
}
@Override
public boolean isGlowing() {
return getHandle().glowing;
return getHandle().isCurrentlyGlowing();
}
@Override

View File

@@ -64,6 +64,6 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
super.setTicksLived(value);
// Second field for EntityFallingBlock
getHandle().ticksLived = value;
getHandle().time = value;
}
}

View File

@@ -50,7 +50,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
@Override
public Vector getDirection() {
return new Vector(getHandle().dirX, getHandle().dirY, getHandle().dirZ);
return new Vector(getHandle().xPower, getHandle().yPower, getHandle().zPower);
}
@Override

View File

@@ -19,11 +19,11 @@ public class CraftFirework extends CraftProjectile implements Firework {
public CraftFirework(CraftServer server, EntityFireworks entity) {
super(server, entity);
ItemStack item = getHandle().getDataWatcher().get(EntityFireworks.FIREWORK_ITEM);
ItemStack item = getHandle().getDataWatcher().get(EntityFireworks.DATA_ID_FIREWORKS_ITEM);
if (item.isEmpty()) {
item = new ItemStack(Items.FIREWORK_ROCKET);
getHandle().getDataWatcher().set(EntityFireworks.FIREWORK_ITEM, item);
getHandle().getDataWatcher().set(EntityFireworks.DATA_ID_FIREWORKS_ITEM, item);
}
this.item = CraftItemStack.asCraftMirror(item);
@@ -59,14 +59,14 @@ public class CraftFirework extends CraftProjectile implements Firework {
item.setItemMeta(meta);
// Copied from EntityFireworks constructor, update firework lifetime/power
getHandle().expectedLifespan = 10 * (1 + meta.getPower()) + random.nextInt(6) + random.nextInt(7);
getHandle().lifetime = 10 * (1 + meta.getPower()) + random.nextInt(6) + random.nextInt(7);
getHandle().getDataWatcher().markDirty(EntityFireworks.FIREWORK_ITEM);
getHandle().getDataWatcher().markDirty(EntityFireworks.DATA_ID_FIREWORKS_ITEM);
}
@Override
public void detonate() {
getHandle().expectedLifespan = 0;
getHandle().lifetime = 0;
}
@Override
@@ -76,6 +76,6 @@ public class CraftFirework extends CraftProjectile implements Firework {
@Override
public void setShotAtAngle(boolean shotAtAngle) {
getHandle().getDataWatcher().set(EntityFireworks.SHOT_AT_ANGLE, shotAtAngle);
getHandle().getDataWatcher().set(EntityFireworks.DATA_SHOT_AT_ANGLE, shotAtAngle);
}
}

View File

@@ -71,7 +71,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
EntityFishingHook hook = getHandle();
if (this.biteChance == -1) {
if (hook.world.isRainingAt(new BlockPosition(MathHelper.floor(hook.locX()), MathHelper.floor(hook.locY()) + 1, MathHelper.floor(hook.locZ())))) {
if (hook.level.isRainingAt(new BlockPosition(MathHelper.floor(hook.locX()), MathHelper.floor(hook.locY()) + 1, MathHelper.floor(hook.locZ())))) {
return 1 / 300.0;
}
return 1 / 500.0;
@@ -92,7 +92,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public Entity getHookedEntity() {
net.minecraft.world.entity.Entity hooked = getHandle().hooked;
net.minecraft.world.entity.Entity hooked = getHandle().hookedIn;
return (hooked != null) ? hooked.getBukkitEntity() : null;
}
@@ -100,23 +100,23 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
public void setHookedEntity(Entity entity) {
EntityFishingHook hook = getHandle();
hook.hooked = (entity != null) ? ((CraftEntity) entity).getHandle() : null;
hook.getDataWatcher().set(EntityFishingHook.HOOKED_ENTITY, hook.hooked != null ? hook.hooked.getId() + 1 : 0);
hook.hookedIn = (entity != null) ? ((CraftEntity) entity).getHandle() : null;
hook.getDataWatcher().set(EntityFishingHook.DATA_HOOKED_ENTITY, hook.hookedIn != null ? hook.hookedIn.getId() + 1 : 0);
}
@Override
public boolean pullHookedEntity() {
EntityFishingHook hook = getHandle();
if (hook.hooked == null) {
if (hook.hookedIn == null) {
return false;
}
hook.reel();
hook.reel(hook.hookedIn);
return true;
}
@Override
public HookState getState() {
return HookState.values()[getHandle().hookState.ordinal()];
return HookState.values()[getHandle().currentState.ordinal()];
}
}

View File

@@ -70,7 +70,7 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public AnimalTamer getFirstTrustedPlayer() {
UUID uuid = getHandle().getDataWatcher().get(EntityFox.FIRST_TRUSTED_PLAYER).orElse(null);
UUID uuid = getHandle().getDataWatcher().get(EntityFox.DATA_TRUSTED_ID_0).orElse(null);
if (uuid == null) {
return null;
}
@@ -85,16 +85,16 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public void setFirstTrustedPlayer(AnimalTamer player) {
if (player == null && getHandle().getDataWatcher().get(EntityFox.SECOND_TRUSTED_PLAYER).isPresent()) {
if (player == null && getHandle().getDataWatcher().get(EntityFox.DATA_TRUSTED_ID_1).isPresent()) {
throw new IllegalStateException("Must remove second trusted player first");
}
getHandle().getDataWatcher().set(EntityFox.FIRST_TRUSTED_PLAYER, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
getHandle().getDataWatcher().set(EntityFox.DATA_TRUSTED_ID_0, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
}
@Override
public AnimalTamer getSecondTrustedPlayer() {
UUID uuid = getHandle().getDataWatcher().get(EntityFox.SECOND_TRUSTED_PLAYER).orElse(null);
UUID uuid = getHandle().getDataWatcher().get(EntityFox.DATA_TRUSTED_ID_1).orElse(null);
if (uuid == null) {
return null;
}
@@ -109,10 +109,10 @@ public class CraftFox extends CraftAnimals implements Fox {
@Override
public void setSecondTrustedPlayer(AnimalTamer player) {
if (player != null && !getHandle().getDataWatcher().get(EntityFox.FIRST_TRUSTED_PLAYER).isPresent()) {
if (player != null && !getHandle().getDataWatcher().get(EntityFox.DATA_TRUSTED_ID_0).isPresent()) {
throw new IllegalStateException("Must add first trusted player first");
}
getHandle().getDataWatcher().set(EntityFox.SECOND_TRUSTED_PLAYER, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
getHandle().getDataWatcher().set(EntityFox.DATA_TRUSTED_ID_1, player == null ? Optional.empty() : Optional.of(player.getUniqueId()));
}
}

View File

@@ -0,0 +1,27 @@
package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.GlowItemFrame;
public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame {
public CraftGlowItemFrame(CraftServer server, net.minecraft.world.entity.decoration.GlowItemFrame entity) {
super(server, entity);
}
@Override
public net.minecraft.world.entity.decoration.GlowItemFrame getHandle() {
return (net.minecraft.world.entity.decoration.GlowItemFrame) super.getHandle();
}
@Override
public EntityType getType() {
return EntityType.GLOW_ITEM_FRAME;
}
@Override
public String toString() {
return "CraftGlowItemFrame";
}
}

View File

@@ -0,0 +1,39 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.GlowSquid;
public class CraftGlowSquid extends CraftSquid implements GlowSquid {
public CraftGlowSquid(CraftServer server, net.minecraft.world.entity.GlowSquid entity) {
super(server, entity);
}
@Override
public net.minecraft.world.entity.GlowSquid getHandle() {
return (net.minecraft.world.entity.GlowSquid) super.getHandle();
}
@Override
public EntityType getType() {
return EntityType.GLOW_SQUID;
}
@Override
public String toString() {
return "CraftGlowSquid";
}
@Override
public int getDarkTicksRemaining() {
return getHandle().getDarkTicksRemaining();
}
@Override
public void setDarkTicksRemaining(int darkTicksRemaining) {
Preconditions.checkArgument(darkTicksRemaining >= 0, "darkTicksRemaining must be >= 0");
getHandle().setDarkTicksRemaining(darkTicksRemaining);
}
}

View File

@@ -0,0 +1,37 @@
package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Goat;
public class CraftGoat extends CraftAnimals implements Goat {
public CraftGoat(CraftServer server, net.minecraft.world.entity.animal.goat.Goat entity) {
super(server, entity);
}
@Override
public net.minecraft.world.entity.animal.goat.Goat getHandle() {
return (net.minecraft.world.entity.animal.goat.Goat) super.getHandle();
}
@Override
public EntityType getType() {
return EntityType.GOAT;
}
@Override
public String toString() {
return "CraftGoat";
}
@Override
public boolean isScreaming() {
return getHandle().isScreamingGoat();
}
@Override
public void setScreaming(boolean screaming) {
getHandle().setScreamingGoat(screaming);
}
}

View File

@@ -81,12 +81,12 @@ public class CraftHanging extends CraftEntity implements Hanging {
}
WorldServer world = ((CraftWorld) getWorld()).getHandle();
PlayerChunkMap.EntityTracker entityTracker = world.getChunkProvider().playerChunkMap.trackedEntities.get(getEntityId());
PlayerChunkMap.EntityTracker entityTracker = world.getChunkProvider().chunkMap.entityMap.get(getEntityId());
if (entityTracker == null) {
return;
}
entityTracker.broadcast(getHandle().P());
entityTracker.broadcast(getHandle().getPacket());
}
}

View File

@@ -35,16 +35,16 @@ public class CraftHoglin extends CraftAnimals implements Hoglin {
@Override
public int getConversionTime() {
Preconditions.checkState(isConverting(), "Entity not converting");
return getHandle().conversionTicks;
return getHandle().timeInOverworld;
}
@Override
public void setConversionTime(int time) {
if (time < 0) {
getHandle().conversionTicks = -1;
getHandle().timeInOverworld = -1;
getHandle().setImmuneToZombification(false);
} else {
getHandle().conversionTicks = time;
getHandle().timeInOverworld = time;
}
}

View File

@@ -63,7 +63,7 @@ public class CraftHorse extends CraftAbstractHorse implements Horse {
@Override
public HorseInventory getInventory() {
return new CraftInventoryHorse(getHandle().inventoryChest);
return new CraftInventoryHorse(getHandle().inventory);
}
@Override

View File

@@ -73,7 +73,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
public CraftHumanEntity(final CraftServer server, final EntityHuman entity) {
super(server, entity);
mode = server.getDefaultGameMode();
this.inventory = new CraftInventoryPlayer(entity.inventory);
this.inventory = new CraftInventoryPlayer(entity.getInventory());
enderChest = new CraftInventory(entity.getEnderChest());
}
@@ -109,21 +109,21 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public ItemStack getItemOnCursor() {
return CraftItemStack.asCraftMirror(getHandle().inventory.getCarried());
return CraftItemStack.asCraftMirror(getHandle().inventoryMenu.getCarried());
}
@Override
public void setItemOnCursor(ItemStack item) {
net.minecraft.world.item.ItemStack stack = CraftItemStack.asNMSCopy(item);
getHandle().inventory.setCarried(stack);
getHandle().inventoryMenu.setCarried(stack);
if (this instanceof CraftPlayer) {
((EntityPlayer) getHandle()).broadcastCarriedItem(); // Send set slot for cursor
getHandle().inventoryMenu.broadcastCarriedItem(); // Send set slot for cursor
}
}
@Override
public int getSleepTicks() {
return getHandle().sleepTicks;
return getHandle().sleepCounter;
}
@Override
@@ -133,7 +133,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(location.getWorld().equals(getWorld()), "Cannot sleep across worlds");
BlockPosition blockposition = new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ());
IBlockData iblockdata = getHandle().world.getType(blockposition);
IBlockData iblockdata = getHandle().level.getType(blockposition);
if (!(iblockdata.getBlock() instanceof BlockBed)) {
return false;
}
@@ -144,7 +144,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// From BlockBed
iblockdata = (IBlockData) iblockdata.set(BlockBed.OCCUPIED, true);
getHandle().world.setTypeAndData(blockposition, iblockdata, 4);
getHandle().level.setTypeAndData(blockposition, iblockdata, 4);
return true;
}
@@ -256,7 +256,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
public void setHandle(final EntityHuman entity) {
super.setHandle(entity);
this.inventory = new CraftInventoryPlayer(entity.inventory);
this.inventory = new CraftInventoryPlayer(entity.getInventory());
}
@Override
@@ -266,14 +266,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public InventoryView getOpenInventory() {
return getHandle().activeContainer.getBukkitView();
return getHandle().containerMenu.getBukkitView();
}
@Override
public InventoryView openInventory(Inventory inventory) {
if (!(getHandle() instanceof EntityPlayer)) return null;
EntityPlayer player = (EntityPlayer) getHandle();
Container formerContainer = getHandle().activeContainer;
Container formerContainer = getHandle().containerMenu;
ITileInventory iinventory = null;
if (inventory instanceof CraftInventoryDoubleChest) {
@@ -291,7 +291,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (iinventory instanceof TileEntity) {
TileEntity te = (TileEntity) iinventory;
if (!te.hasWorld()) {
te.setLocation(getHandle().world, getHandle().getChunkCoordinates());
te.setWorld(getHandle().level);
}
}
}
@@ -303,26 +303,26 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
openCustomInventory(inventory, player, container);
}
if (getHandle().activeContainer == formerContainer) {
if (getHandle().containerMenu == formerContainer) {
return null;
}
getHandle().activeContainer.checkReachable = false;
return getHandle().activeContainer.getBukkitView();
getHandle().containerMenu.checkReachable = false;
return getHandle().containerMenu.getBukkitView();
}
private void openCustomInventory(Inventory inventory, EntityPlayer player, Containers<?> windowType) {
if (player.playerConnection == null) return;
private static void openCustomInventory(Inventory inventory, EntityPlayer player, Containers<?> windowType) {
if (player.connection == null) return;
Preconditions.checkArgument(windowType != null, "Unknown windowType");
Container container = new CraftContainer(inventory, this.getHandle(), player.nextContainerCounter());
Container container = new CraftContainer(inventory, player, player.nextContainerCounter());
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) return;
String title = container.getBukkitView().getTitle();
player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, windowType, CraftChatMessage.fromString(title)[0]));
getHandle().activeContainer = container;
getHandle().activeContainer.addSlotListener(player);
player.connection.sendPacket(new PacketPlayOutOpenWindow(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
@Override
@@ -336,11 +336,11 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return null;
}
}
getHandle().openContainer(((BlockWorkbench) Blocks.CRAFTING_TABLE).getInventory(null, getHandle().world, new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ())));
getHandle().openContainer(((BlockWorkbench) Blocks.CRAFTING_TABLE).getInventory(null, getHandle().level, new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ())));
if (force) {
getHandle().activeContainer.checkReachable = false;
getHandle().containerMenu.checkReachable = false;
}
return getHandle().activeContainer.getBukkitView();
return getHandle().containerMenu.getBukkitView();
}
@Override
@@ -357,21 +357,21 @@ 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 = new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ());
getHandle().openContainer(((BlockEnchantmentTable) Blocks.ENCHANTING_TABLE).getInventory(null, getHandle().world, pos));
getHandle().openContainer(((BlockEnchantmentTable) Blocks.ENCHANTING_TABLE).getInventory(null, getHandle().level, pos));
if (force) {
getHandle().activeContainer.checkReachable = false;
getHandle().containerMenu.checkReachable = false;
}
return getHandle().activeContainer.getBukkitView();
return getHandle().containerMenu.getBukkitView();
}
@Override
public void openInventory(InventoryView inventory) {
if (!(getHandle() instanceof EntityPlayer)) return; // TODO: NPC support?
if (((EntityPlayer) getHandle()).playerConnection == null) return;
if (getHandle().activeContainer != getHandle().defaultContainer) {
if (((EntityPlayer) getHandle()).connection == null) return;
if (getHandle().containerMenu != getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
((EntityPlayer) getHandle()).playerConnection.a(new PacketPlayInCloseWindow(getHandle().activeContainer.windowId));
((EntityPlayer) getHandle()).connection.a(new PacketPlayInCloseWindow(getHandle().containerMenu.containerId));
}
EntityPlayer player = (EntityPlayer) getHandle();
Container container;
@@ -390,9 +390,9 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Now open the window
Containers<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
String title = inventory.getTitle();
player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(container.windowId, windowType, CraftChatMessage.fromString(title)[0]));
player.activeContainer = container;
player.activeContainer.addSlotListener(player);
player.connection.sendPacket(new PacketPlayOutOpenWindow(container.containerId, windowType, CraftChatMessage.fromString(title)[0]));
player.containerMenu = container;
player.initMenu(container);
}
@Override
@@ -432,7 +432,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
mcMerchant.setTradingPlayer(this.getHandle());
mcMerchant.openTrade(this.getHandle(), name, level);
return this.getHandle().activeContainer.getBukkitView();
return this.getHandle().containerMenu.getBukkitView();
}
@Override
@@ -477,7 +477,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
Preconditions.checkArgument(material != null, "material");
ItemCooldown.Info cooldown = getHandle().getCooldownTracker().cooldowns.get(CraftMagicNumbers.getItem(material));
return (cooldown == null) ? 0 : Math.max(0, cooldown.endTick - getHandle().getCooldownTracker().currentTick);
return (cooldown == null) ? 0 : Math.max(0, cooldown.endTime - getHandle().getCooldownTracker().tickCount);
}
@Override
@@ -520,7 +520,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private Collection<IRecipe<?>> bukkitKeysToMinecraftRecipes(Collection<NamespacedKey> recipeKeys) {
Collection<IRecipe<?>> recipes = new ArrayList<>();
CraftingManager manager = getHandle().world.getMinecraftServer().getCraftingManager();
CraftingManager manager = getHandle().level.getMinecraftServer().getCraftingManager();
for (NamespacedKey recipeKey : recipeKeys) {
Optional<? extends IRecipe<?>> recipe = manager.getRecipe(CraftNamespacedKey.toMinecraft(recipeKey));
@@ -537,7 +537,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityLeft() {
if (!getHandle().getShoulderEntityLeft().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.a(getHandle().getShoulderEntityLeft(), getHandle().world);
Optional<Entity> shoulder = EntityTypes.a(getHandle().getShoulderEntityLeft(), getHandle().level);
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}
@@ -556,7 +556,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public org.bukkit.entity.Entity getShoulderEntityRight() {
if (!getHandle().getShoulderEntityRight().isEmpty()) {
Optional<Entity> shoulder = EntityTypes.a(getHandle().getShoulderEntityRight(), getHandle().world);
Optional<Entity> shoulder = EntityTypes.a(getHandle().getShoulderEntityRight(), getHandle().level);
return (!shoulder.isPresent()) ? null : shoulder.get().getBukkitEntity();
}

View File

@@ -42,12 +42,12 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
super.update();
// mark dirty, so that the client gets updated with item and rotation
for (DataWatcher.Item<?> dataItem : getHandle().getDataWatcher().c()) {
for (DataWatcher.Item<?> dataItem : getHandle().getDataWatcher().getAll()) {
getHandle().getDataWatcher().markDirty(dataItem.a());
}
// update redstone
getHandle().getWorld().updateAdjacentComparators(getHandle().blockPosition, Blocks.AIR);
getHandle().getWorld().updateAdjacentComparators(getHandle().pos, Blocks.AIR);
}
@Override
@@ -67,13 +67,13 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
@Override
public float getItemDropChance() {
return getHandle().itemDropChance;
return getHandle().dropChance;
}
@Override
public void setItemDropChance(float chance) {
Preconditions.checkArgument(0.0 <= chance && chance <= 1.0, "Chance outside range [0, 1]");
getHandle().itemDropChance = chance;
getHandle().dropChance = chance;
}
@Override

View File

@@ -13,7 +13,7 @@ public class CraftLargeFireball extends CraftSizedFireball implements LargeFireb
@Override
public void setYield(float yield) {
super.setYield(yield);
getHandle().yield = (int) yield;
getHandle().explosionPower = (int) yield;
}
@Override

View File

@@ -12,7 +12,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
@Override
public boolean isEffect() {
return getHandle().isEffect;
return getHandle().visualOnly;
}
@Override

View File

@@ -248,12 +248,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public int getArrowCooldown() {
return getHandle().arrowCooldown;
return getHandle().removeArrowTime;
}
@Override
public void setArrowCooldown(int ticks) {
getHandle().arrowCooldown = ticks;
getHandle().removeArrowTime = ticks;
}
@Override
@@ -264,7 +264,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public void setArrowsInBody(int count) {
Preconditions.checkArgument(count >= 0, "New arrow amount must be >= 0");
getHandle().getDataWatcher().set(EntityLiving.ARROWS_IN_BODY, count);
getHandle().getDataWatcher().set(EntityLiving.DATA_ARROW_COUNT_ID, count);
}
@Override
@@ -294,32 +294,32 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public int getMaximumNoDamageTicks() {
return getHandle().maxNoDamageTicks;
return getHandle().invulnerableDuration;
}
@Override
public void setMaximumNoDamageTicks(int ticks) {
getHandle().maxNoDamageTicks = ticks;
getHandle().invulnerableDuration = ticks;
}
@Override
public double getLastDamage() {
return getHandle().lastDamage;
return getHandle().lastHurt;
}
@Override
public void setLastDamage(double damage) {
getHandle().lastDamage = (float) damage;
getHandle().lastHurt = (float) damage;
}
@Override
public int getNoDamageTicks() {
return getHandle().noDamageTicks;
return getHandle().invulnerableTime;
}
@Override
public void setNoDamageTicks(int ticks) {
getHandle().noDamageTicks = ticks;
getHandle().invulnerableTime = ticks;
}
@Override
@@ -338,7 +338,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public Player getKiller() {
return getHandle().killer == null ? null : (Player) getHandle().killer.getBukkitEntity();
return getHandle().lastHurtByPlayer == null ? null : (Player) getHandle().lastHurtByPlayer.getBukkitEntity();
}
@Override
@@ -380,7 +380,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public Collection<PotionEffect> getActivePotionEffects() {
List<PotionEffect> effects = new ArrayList<PotionEffect>();
for (MobEffect handle : getHandle().effects.values()) {
for (MobEffect handle : getHandle().activeEffects.values()) {
effects.add(new PotionEffect(PotionEffectType.getById(MobEffectList.getId(handle.getMobEffect())), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isShowParticles()));
}
return effects;
@@ -399,13 +399,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
if (Snowball.class.isAssignableFrom(projectile)) {
launch = new EntitySnowball(world, getHandle());
((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, 0.0F, 1.5F, 1.0F); // ItemSnowball
((EntityProjectile) launch).a(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemSnowball
} else if (Egg.class.isAssignableFrom(projectile)) {
launch = new EntityEgg(world, getHandle());
((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, 0.0F, 1.5F, 1.0F); // ItemEgg
((EntityProjectile) launch).a(getHandle(), getHandle().getXRot(), getHandle().getYRot(), 0.0F, 1.5F, 1.0F); // ItemEgg
} else if (EnderPearl.class.isAssignableFrom(projectile)) {
launch = new EntityEnderPearl(world, getHandle());
((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, 0.0F, 1.5F, 1.0F); // ItemEnderPearl
((EntityProjectile) launch).a(getHandle(), getHandle().getXRot(), 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());
@@ -417,7 +417,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
} else {
launch = new EntityTippedArrow(world, getHandle());
}
((EntityArrow) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, 0.0F, 3.0F, 1.0F); // ItemBow
((EntityArrow) launch).a(getHandle(), getHandle().getXRot(), 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());
@@ -426,10 +426,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
launch = new EntityPotion(world, getHandle());
((EntityPotion) launch).setItem(CraftItemStack.asNMSCopy(new ItemStack(org.bukkit.Material.SPLASH_POTION, 1)));
}
((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, -20.0F, 0.5F, 1.0F); // ItemSplashPotion
((EntityProjectile) launch).a(getHandle(), getHandle().getXRot(), getHandle().getYRot(), -20.0F, 0.5F, 1.0F); // ItemSplashPotion
} else if (ThrownExpBottle.class.isAssignableFrom(projectile)) {
launch = new EntityThrownExpBottle(world, getHandle());
((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, -20.0F, 0.7F, 1.0F); // ItemExpBottle
((EntityProjectile) launch).a(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);
} else if (Fireball.class.isAssignableFrom(projectile)) {
@@ -443,7 +443,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
} else if (DragonFireball.class.isAssignableFrom(projectile)) {
launch = new EntityDragonFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
} else {
launch = new EntityLargeFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
launch = new EntityLargeFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ(), 1);
}
((EntityFireball) launch).projectileSource = this;
@@ -465,7 +465,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
} else if (Firework.class.isAssignableFrom(projectile)) {
Location location = getEyeLocation();
launch = new EntityFireworks(world, net.minecraft.world.item.ItemStack.b, getHandle());
launch = new EntityFireworks(world, net.minecraft.world.item.ItemStack.EMPTY, getHandle());
launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
}
@@ -491,13 +491,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean getRemoveWhenFarAway() {
return getHandle() instanceof EntityInsentient && !((EntityInsentient) getHandle()).persistent;
return getHandle() instanceof EntityInsentient && !((EntityInsentient) getHandle()).persistenceRequired;
}
@Override
public void setRemoveWhenFarAway(boolean remove) {
if (getHandle() instanceof EntityInsentient) {
((EntityInsentient) getHandle()).persistent = !remove;
((EntityInsentient) getHandle()).persistenceRequired = !remove;
}
}
@@ -508,12 +508,20 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public void setCanPickupItems(boolean pickup) {
getHandle().canPickUpLoot = pickup;
if (getHandle() instanceof EntityInsentient) {
((EntityInsentient) getHandle()).setCanPickupLoot(pickup);
} else {
getHandle().bukkitPickUpLoot = pickup;
}
}
@Override
public boolean getCanPickupItems() {
return getHandle().canPickUpLoot;
if (getHandle() instanceof EntityInsentient) {
return ((EntityInsentient) getHandle()).canPickupLoot();
} else {
return getHandle().bukkitPickUpLoot;
}
}
@Override
@@ -669,7 +677,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return EntityCategory.ARTHROPOD;
} else if (type == EnumMonsterType.ILLAGER) {
return EntityCategory.ILLAGER;
} else if (type == EnumMonsterType.WATER_MOB) {
} else if (type == EnumMonsterType.WATER) {
return EntityCategory.WATER;
}

View File

@@ -35,7 +35,7 @@ public class CraftLlama extends CraftChestedHorse implements Llama {
@Override
public LlamaInventory getInventory() {
return new CraftInventoryLlama(getHandle().inventoryChest);
return new CraftInventoryLlama(getHandle().inventory);
}
@Override

View File

@@ -0,0 +1,27 @@
package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Marker;
public class CraftMarker extends CraftEntity implements Marker {
public CraftMarker(CraftServer server, net.minecraft.world.entity.Marker entity) {
super(server, entity);
}
@Override
public net.minecraft.world.entity.Marker getHandle() {
return (net.minecraft.world.entity.Marker) super.getHandle();
}
@Override
public EntityType getType() {
return EntityType.MARKER;
}
@Override
public String toString() {
return "CraftMarker";
}
}

View File

@@ -34,7 +34,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca
@Override
public void setCommand(String command) {
getHandle().getCommandBlock().setCommand(command != null ? command : "");
getHandle().getDataWatcher().set(EntityMinecartCommandBlock.COMMAND, getHandle().getCommandBlock().getCommand());
getHandle().getDataWatcher().set(EntityMinecartCommandBlock.DATA_ID_COMMAND_NAME, getHandle().getCommandBlock().getCommand());
}
@Override

View File

@@ -53,16 +53,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
@Override
public void setLootTable(LootTable table) {
getHandle().lootTableKey = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey());
getHandle().lootTable = (table == null) ? null : CraftNamespacedKey.toMinecraft(table.getKey());
}
@Override
public LootTable getLootTable() {
if (getHandle().lootTableKey == null) {
getHandle().lootTableKey = getHandle().getLootTable();
if (getHandle().lootTable == null) {
getHandle().lootTable = getHandle().getDefaultLootTable();
}
NamespacedKey key = CraftNamespacedKey.fromMinecraft(getHandle().lootTableKey);
NamespacedKey key = CraftNamespacedKey.fromMinecraft(getHandle().lootTable);
return Bukkit.getLootTable(key);
}

View File

@@ -17,7 +17,7 @@ public class CraftPainting extends CraftHanging implements Painting {
@Override
public Art getArt() {
Paintings art = getHandle().art;
Paintings art = getHandle().motive;
return CraftArt.NotchToBukkit(art);
}
@@ -29,12 +29,12 @@ public class CraftPainting extends CraftHanging implements Painting {
@Override
public boolean setArt(Art art, boolean force) {
EntityPainting painting = this.getHandle();
Paintings oldArt = painting.art;
painting.art = CraftArt.BukkitToNotch(art);
Paintings oldArt = painting.motive;
painting.motive = CraftArt.BukkitToNotch(art);
painting.setDirection(painting.getDirection());
if (!force && !painting.survives()) {
// Revert painting since it doesn't fit
painting.art = oldArt;
painting.motive = oldArt;
painting.setDirection(painting.getDirection());
return false;
}

View File

@@ -20,36 +20,36 @@ public class CraftPig extends CraftAnimals implements Pig {
@Override
public void setSaddle(boolean saddled) {
getHandle().saddleStorage.setSaddle(saddled);
getHandle().steering.setSaddle(saddled);
}
@Override
public int getBoostTicks() {
return getHandle().saddleStorage.boosting ? getHandle().saddleStorage.boostTicks : 0;
return getHandle().steering.boosting ? getHandle().steering.boostTimeTotal : 0;
}
@Override
public void setBoostTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0");
getHandle().saddleStorage.setBoostTicks(ticks);
getHandle().steering.setBoostTicks(ticks);
}
@Override
public int getCurrentBoostTicks() {
return getHandle().saddleStorage.boosting ? getHandle().saddleStorage.currentBoostTicks : 0;
return getHandle().steering.boosting ? getHandle().steering.boostTime : 0;
}
@Override
public void setCurrentBoostTicks(int ticks) {
if (!getHandle().saddleStorage.boosting) {
if (!getHandle().steering.boosting) {
return;
}
int max = getHandle().saddleStorage.boostTicks;
int max = getHandle().steering.boostTimeTotal;
Preconditions.checkArgument(ticks >= 0 && ticks <= max, "boost ticks must not exceed 0 or %d (inclusive)", max);
this.getHandle().saddleStorage.currentBoostTicks = ticks;
this.getHandle().steering.boostTime = ticks;
}
@Override

View File

@@ -74,7 +74,7 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin {
@Override
public Inventory getInventory() {
return new CraftInventory(getHandle().bu);
return new CraftInventory(getHandle().inventory);
}
@Override

View File

@@ -24,16 +24,16 @@ public class CraftPiglinAbstract extends CraftMonster implements PiglinAbstract
@Override
public int getConversionTime() {
Preconditions.checkState(isConverting(), "Entity not converting");
return getHandle().conversionTicks;
return getHandle().timeInOverworld;
}
@Override
public void setConversionTime(int time) {
if (time < 0) {
getHandle().conversionTicks = -1;
getHandle().timeInOverworld = -1;
getHandle().setImmuneToZombification(false);
} else {
getHandle().conversionTicks = time;
getHandle().timeInOverworld = time;
}
}

View File

@@ -32,6 +32,10 @@ import net.minecraft.network.PacketDataSerializer;
import net.minecraft.network.chat.ChatComponentText;
import net.minecraft.network.chat.ChatMessageType;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket;
import net.minecraft.network.protocol.game.ClientboundSetSubtitleTextPacket;
import net.minecraft.network.protocol.game.ClientboundSetTitleTextPacket;
import net.minecraft.network.protocol.game.ClientboundSetTitlesAnimationPacket;
import net.minecraft.network.protocol.game.PacketPlayOutBlockBreakAnimation;
import net.minecraft.network.protocol.game.PacketPlayOutBlockChange;
import net.minecraft.network.protocol.game.PacketPlayOutChat;
@@ -44,7 +48,6 @@ import net.minecraft.network.protocol.game.PacketPlayOutPlayerInfo;
import net.minecraft.network.protocol.game.PacketPlayOutPlayerListHeaderFooter;
import net.minecraft.network.protocol.game.PacketPlayOutSpawnPosition;
import net.minecraft.network.protocol.game.PacketPlayOutStopSound;
import net.minecraft.network.protocol.game.PacketPlayOutTitle;
import net.minecraft.network.protocol.game.PacketPlayOutUpdateAttributes;
import net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth;
import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent;
@@ -65,8 +68,10 @@ import net.minecraft.world.entity.player.EntityHuman;
import net.minecraft.world.inventory.Container;
import net.minecraft.world.item.EnumColor;
import net.minecraft.world.level.EnumGamemode;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.entity.TileEntitySign;
import net.minecraft.world.level.saveddata.maps.MapIcon;
import net.minecraft.world.level.saveddata.maps.WorldMap;
import net.minecraft.world.phys.Vec3D;
import org.apache.commons.lang.NotImplementedException;
import org.apache.commons.lang.Validate;
@@ -171,9 +176,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public InetSocketAddress getAddress() {
if (getHandle().playerConnection == null) return null;
if (getHandle().connection == null) return null;
SocketAddress addr = getHandle().playerConnection.networkManager.getSocketAddress();
SocketAddress addr = getHandle().connection.connection.getSocketAddress();
if (addr instanceof InetSocketAddress) {
return (InetSocketAddress) addr;
} else {
@@ -192,19 +197,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendRawMessage(String message) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
for (IChatBaseComponent component : CraftChatMessage.fromString(message)) {
getHandle().playerConnection.sendPacket(new PacketPlayOutChat(component, ChatMessageType.SYSTEM, SystemUtils.b));
getHandle().connection.sendPacket(new PacketPlayOutChat(component, ChatMessageType.SYSTEM, SystemUtils.NIL_UUID));
}
}
@Override
public void sendRawMessage(UUID sender, String message) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
for (IChatBaseComponent component : CraftChatMessage.fromString(message)) {
getHandle().playerConnection.sendPacket(new PacketPlayOutChat(component, ChatMessageType.CHAT, (sender == null) ? SystemUtils.b : sender));
getHandle().connection.sendPacket(new PacketPlayOutChat(component, ChatMessageType.CHAT, (sender == null) ? SystemUtils.NIL_UUID : sender));
}
}
@@ -259,7 +264,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
getHandle().listName = name.equals(getName()) ? null : CraftChatMessage.fromStringOrNull(name);
for (EntityPlayer player : (List<EntityPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.UPDATE_DISPLAY_NAME, getHandle()));
player.connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.UPDATE_DISPLAY_NAME, getHandle()));
}
}
}
@@ -297,12 +302,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
private void updatePlayerListHeaderFooter() {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
packet.header = (this.playerListHeader == null) ? new ChatComponentText("") : this.playerListHeader;
packet.footer = (this.playerListFooter == null) ? new ChatComponentText("") : this.playerListFooter;
getHandle().playerConnection.sendPacket(packet);
PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter((this.playerListHeader == null) ? new ChatComponentText("") : this.playerListHeader, (this.playerListFooter == null) ? new ChatComponentText("") : this.playerListFooter);
getHandle().connection.sendPacket(packet);
}
@Override
@@ -327,17 +330,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void kickPlayer(String message) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
getHandle().playerConnection.disconnect(message == null ? "" : message);
getHandle().connection.disconnect(message == null ? "" : message);
}
@Override
public void setCompassTarget(Location loc) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
// Do not directly assign here, from the packethandler we'll assign it.
getHandle().playerConnection.sendPacket(new PacketPlayOutSpawnPosition(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), loc.getYaw()));
getHandle().connection.sendPacket(new PacketPlayOutSpawnPosition(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), loc.getYaw()));
}
@Override
@@ -347,9 +350,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void chat(String msg) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
getHandle().playerConnection.chat(msg, false);
getHandle().connection.chat(msg, false);
}
@Override
@@ -359,7 +362,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void playNote(Location loc, byte instrument, byte note) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
String instrumentName = null;
switch (instrument) {
@@ -396,12 +399,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
float f = (float) Math.pow(2.0D, (note - 12.0D) / 12.0D);
getHandle().playerConnection.sendPacket(new PacketPlayOutNamedSoundEffect(CraftSound.getSoundEffect("block.note_block." + instrumentName), net.minecraft.sounds.SoundCategory.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f));
getHandle().connection.sendPacket(new PacketPlayOutNamedSoundEffect(CraftSound.getSoundEffect("block.note_block." + instrumentName), net.minecraft.sounds.SoundCategory.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f));
}
@Override
public void playNote(Location loc, Instrument instrument, Note note) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
String instrumentName = null;
switch (instrument.ordinal()) {
@@ -458,7 +461,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
break;
}
float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
getHandle().playerConnection.sendPacket(new PacketPlayOutNamedSoundEffect(CraftSound.getSoundEffect("block.note_block." + instrumentName), net.minecraft.sounds.SoundCategory.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f));
getHandle().connection.sendPacket(new PacketPlayOutNamedSoundEffect(CraftSound.getSoundEffect("block.note_block." + instrumentName), net.minecraft.sounds.SoundCategory.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f));
}
@Override
@@ -473,18 +476,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void playSound(Location loc, Sound sound, org.bukkit.SoundCategory category, float volume, float pitch) {
if (loc == null || sound == null || category == null || getHandle().playerConnection == null) return;
if (loc == null || sound == null || category == null || getHandle().connection == null) return;
PacketPlayOutNamedSoundEffect packet = new PacketPlayOutNamedSoundEffect(CraftSound.getSoundEffect(sound), net.minecraft.sounds.SoundCategory.valueOf(category.name()), loc.getX(), loc.getY(), loc.getZ(), volume, pitch);
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
public void playSound(Location loc, String sound, org.bukkit.SoundCategory category, float volume, float pitch) {
if (loc == null || sound == null || category == null || getHandle().playerConnection == null) return;
if (loc == null || sound == null || category == null || getHandle().connection == null) return;
PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), net.minecraft.sounds.SoundCategory.valueOf(category.name()), new Vec3D(loc.getX(), loc.getY(), loc.getZ()), volume, pitch);
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
@@ -504,18 +507,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void stopSound(String sound, org.bukkit.SoundCategory category) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
getHandle().playerConnection.sendPacket(new PacketPlayOutStopSound(new MinecraftKey(sound), category == null ? net.minecraft.sounds.SoundCategory.MASTER : net.minecraft.sounds.SoundCategory.valueOf(category.name())));
getHandle().connection.sendPacket(new PacketPlayOutStopSound(new MinecraftKey(sound), category == null ? net.minecraft.sounds.SoundCategory.MASTER : net.minecraft.sounds.SoundCategory.valueOf(category.name())));
}
@Override
public void playEffect(Location loc, Effect effect, int data) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
int packetData = effect.getId();
PacketPlayOutWorldEvent packet = new PacketPlayOutWorldEvent(packetData, new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), data, false);
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
@@ -532,18 +535,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendBlockChange(Location loc, Material material, byte data) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
PacketPlayOutBlockChange packet = new PacketPlayOutBlockChange(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), CraftMagicNumbers.getBlock(material, data));
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
public void sendBlockChange(Location loc, BlockData block) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
PacketPlayOutBlockChange packet = new PacketPlayOutBlockChange(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), ((CraftBlockData) block).getState());
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
@@ -551,11 +554,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Preconditions.checkArgument(loc != null, "loc must not be null");
Preconditions.checkArgument(progress >= 0.0 && progress <= 1.0, "progress must be between 0.0 and 1.0 (inclusive)");
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
int stage = (int) (9 * progress); // There are 0 - 9 damage states
PacketPlayOutBlockBreakAnimation packet = new PacketPlayOutBlockBreakAnimation(getHandle().getId(), new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), stage);
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Override
@@ -565,7 +568,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendSignChange(Location loc, String[] lines, DyeColor dyeColor) {
if (getHandle().playerConnection == null) {
if (getHandle().connection == null) {
return;
}
@@ -580,17 +583,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
IChatBaseComponent[] components = CraftSign.sanitizeLines(lines);
TileEntitySign sign = new TileEntitySign();
sign.setPosition(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
TileEntitySign sign = new TileEntitySign(new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), Blocks.OAK_SIGN.getBlockData());
sign.setColor(EnumColor.fromColorIndex(dyeColor.getWoolData()));
System.arraycopy(components, 0, sign.lines, 0, sign.lines.length);
for (int i = 0; i < components.length; i++) {
sign.a(i, components[i]);
}
getHandle().playerConnection.sendPacket(sign.getUpdatePacket());
getHandle().connection.sendPacket(sign.getUpdatePacket());
}
@Override
public boolean sendChunkChange(Location loc, int sx, int sy, int sz, byte[] data) {
if (getHandle().playerConnection == null) return false;
if (getHandle().connection == null) return false;
/*
int x = loc.getBlockX();
@@ -624,7 +628,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendMap(MapView map) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
RenderData data = ((CraftMapView) map).render(this);
Collection<MapIcon> icons = new ArrayList<MapIcon>();
@@ -634,8 +638,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
PacketPlayOutMap packet = new PacketPlayOutMap(map.getId(), map.getScale().getValue(), true, map.isLocked(), icons, data.buffer, 0, 0, 128, 128);
getHandle().playerConnection.sendPacket(packet);
PacketPlayOutMap packet = new PacketPlayOutMap(map.getId(), map.getScale().getValue(), map.isLocked(), icons, new WorldMap.b(0, 0, 128, 128, data.buffer));
getHandle().connection.sendPacket(packet);
}
@Override
@@ -651,11 +655,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
EntityPlayer entity = getHandle();
if (getHealth() == 0 || entity.dead) {
if (getHealth() == 0 || entity.isRemoved()) {
return false;
}
if (entity.playerConnection == null) {
if (entity.connection == null) {
return false;
}
@@ -693,13 +697,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
WorldServer toWorld = ((CraftWorld) to.getWorld()).getHandle();
// Close any foreign inventory
if (getHandle().activeContainer != getHandle().defaultContainer) {
if (getHandle().containerMenu != getHandle().inventoryMenu) {
getHandle().closeInventory();
}
// Check if the fromWorld and toWorld are the same.
if (fromWorld == toWorld) {
entity.playerConnection.teleport(to);
entity.connection.teleport(to);
} else {
server.getHandle().moveToWorld(entity, toWorld, true, to, true);
}
@@ -728,18 +732,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void loadData() {
server.getHandle().playerFileData.load(getHandle());
server.getHandle().playerIo.load(getHandle());
}
@Override
public void saveData() {
server.getHandle().playerFileData.save(getHandle());
server.getHandle().playerIo.save(getHandle());
}
@Deprecated
@Override
public void updateInventory() {
getHandle().updateInventory(getHandle().activeContainer);
getHandle().containerMenu.updateInventory();
}
@Override
@@ -799,7 +803,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public Set<NamespacedKey> getDiscoveredRecipes() {
ImmutableSet.Builder<NamespacedKey> bukkitRecipeKeys = ImmutableSet.builder();
getHandle().getRecipeBook().recipes.forEach(key -> bukkitRecipeKeys.add(CraftNamespacedKey.fromMinecraft(key)));
getHandle().getRecipeBook().known.forEach(key -> bukkitRecipeKeys.add(CraftNamespacedKey.fromMinecraft(key)));
return bukkitRecipeKeys.build();
}
@@ -955,7 +959,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setGameMode(GameMode mode) {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
if (mode == null) {
throw new IllegalArgumentException("Mode cannot be null");
@@ -966,7 +970,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public GameMode getGameMode() {
return GameMode.getByValue(getHandle().playerInteractManager.getGameMode().getId());
return GameMode.getByValue(getHandle().gameMode.getGameMode().getId());
}
@Override
@@ -981,37 +985,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public float getExp() {
return getHandle().exp;
return getHandle().experienceProgress;
}
@Override
public void setExp(float exp) {
Preconditions.checkArgument(exp >= 0.0 && exp <= 1.0, "Experience progress must be between 0.0 and 1.0 (%s)", exp);
getHandle().exp = exp;
getHandle().experienceProgress = exp;
getHandle().lastSentExp = -1;
}
@Override
public int getLevel() {
return getHandle().expLevel;
return getHandle().experienceLevel;
}
@Override
public void setLevel(int level) {
Preconditions.checkArgument(level >= 0, "Experience level must not be negative (%s)", level);
getHandle().expLevel = level;
getHandle().experienceLevel = level;
getHandle().lastSentExp = -1;
}
@Override
public int getTotalExperience() {
return getHandle().expTotal;
return getHandle().totalExperience;
}
@Override
public void setTotalExperience(int exp) {
Preconditions.checkArgument(exp >= 0, "Total experience points must not be negative (%s)", exp);
getHandle().expTotal = exp;
getHandle().totalExperience = exp;
}
@Override
@@ -1024,12 +1028,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Preconditions.checkArgument(progress >= 0.0 && progress <= 1.0, "Experience progress must be between 0.0 and 1.0 (%s)", progress);
Preconditions.checkArgument(level >= 0, "Experience level must not be negative (%s)", level);
if (getHandle().playerConnection == null) {
if (getHandle().connection == null) {
return;
}
PacketPlayOutExperience packet = new PacketPlayOutExperience(progress, getTotalExperience(), level);
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
@Nullable
@@ -1053,7 +1057,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void hidePlayer0(@Nullable Plugin plugin, Player player) {
Validate.notNull(player, "hidden player cannot be null");
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
if (equals(player)) return;
Set<WeakReference<Plugin>> hidingPlugins = hiddenPlayers.get(player.getUniqueId());
@@ -1068,16 +1072,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
hiddenPlayers.put(player.getUniqueId(), hidingPlugins);
// Remove this player from the hidden player's EntityTrackerEntry
PlayerChunkMap tracker = ((WorldServer) entity.world).getChunkProvider().playerChunkMap;
PlayerChunkMap tracker = ((WorldServer) entity.level).getChunkProvider().chunkMap;
EntityPlayer other = ((CraftPlayer) player).getHandle();
PlayerChunkMap.EntityTracker entry = tracker.trackedEntities.get(other.getId());
PlayerChunkMap.EntityTracker entry = tracker.entityMap.get(other.getId());
if (entry != null) {
entry.clear(getHandle());
}
// Remove the hidden player from this player user list, if they're on it
if (other.sentListPacket) {
getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, other));
getHandle().connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, other));
}
}
@@ -1097,7 +1101,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void showPlayer0(@Nullable Plugin plugin, Player player) {
Validate.notNull(player, "shown player cannot be null");
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
if (equals(player)) return;
Set<WeakReference<Plugin>> hidingPlugins = hiddenPlayers.get(player.getUniqueId());
@@ -1110,13 +1114,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
hiddenPlayers.remove(player.getUniqueId());
PlayerChunkMap tracker = ((WorldServer) entity.world).getChunkProvider().playerChunkMap;
PlayerChunkMap tracker = ((WorldServer) entity.level).getChunkProvider().chunkMap;
EntityPlayer other = ((CraftPlayer) player).getHandle();
getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, other));
getHandle().connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, other));
PlayerChunkMap.EntityTracker entry = tracker.trackedEntities.get(other.getId());
if (entry != null && !entry.trackedPlayers.contains(getHandle())) {
PlayerChunkMap.EntityTracker entry = tracker.entityMap.get(other.getId());
if (entry != null && !entry.seenBy.contains(getHandle())) {
entry.updatePlayer(getHandle());
}
}
@@ -1251,12 +1255,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendPluginMessage(Plugin source, String channel, byte[] message) {
StandardMessenger.validatePluginMessage(server.getMessenger(), source, channel, message);
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
if (channels.contains(channel)) {
channel = StandardMessenger.validateAndCorrectChannel(channel);
PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload(new MinecraftKey(channel), new PacketDataSerializer(Unpooled.wrappedBuffer(message)));
getHandle().playerConnection.sendPacket(packet);
getHandle().connection.sendPacket(packet);
}
}
@@ -1269,7 +1273,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setResourcePack(String url) {
Validate.notNull(url, "Resource pack URL cannot be null");
getHandle().setResourcePack(url, "null");
getHandle().setResourcePack(url, "null", false, null);
}
@Override
@@ -1278,7 +1282,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Validate.notNull(hash, "Resource pack hash cannot be null");
Validate.isTrue(hash.length == 20, "Resource pack hash should be 20 bytes long but was " + hash.length);
getHandle().setResourcePack(url, BaseEncoding.base16().lowerCase().encode(hash));
getHandle().setResourcePack(url, BaseEncoding.base16().lowerCase().encode(hash), false, null);
}
public void addChannel(String channel) {
@@ -1302,7 +1306,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendSupportedChannels() {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
Set<String> listening = server.getMessenger().getIncomingChannels();
if (!listening.isEmpty()) {
@@ -1317,7 +1321,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
getHandle().playerConnection.sendPacket(new PacketPlayOutCustomPayload(new MinecraftKey("register"), new PacketDataSerializer(Unpooled.wrappedBuffer(stream.toByteArray()))));
getHandle().connection.sendPacket(new PacketPlayOutCustomPayload(new MinecraftKey("register"), new PacketDataSerializer(Unpooled.wrappedBuffer(stream.toByteArray()))));
}
}
@@ -1348,11 +1352,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean setWindowProperty(Property prop, int value) {
Container container = getHandle().activeContainer;
Container container = getHandle().containerMenu;
if (container.getBukkitView().getType() != prop.getType()) {
return false;
}
getHandle().setContainerData(container, prop.getId(), value);
container.setContainerData(prop.getId(), value);
return true;
}
@@ -1363,7 +1367,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean isFlying() {
return getHandle().abilities.isFlying;
return getHandle().getAbilities().flying;
}
@Override
@@ -1372,45 +1376,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new IllegalArgumentException("Cannot make player fly if getAllowFlight() is false");
}
getHandle().abilities.isFlying = value;
getHandle().getAbilities().flying = value;
getHandle().updateAbilities();
}
@Override
public boolean getAllowFlight() {
return getHandle().abilities.canFly;
return getHandle().getAbilities().mayfly;
}
@Override
public void setAllowFlight(boolean value) {
if (isFlying() && !value) {
getHandle().abilities.isFlying = false;
getHandle().getAbilities().flying = false;
}
getHandle().abilities.canFly = value;
getHandle().getAbilities().mayfly = value;
getHandle().updateAbilities();
}
@Override
public int getNoDamageTicks() {
if (getHandle().invulnerableTicks > 0) {
return Math.max(getHandle().invulnerableTicks, getHandle().noDamageTicks);
if (getHandle().spawnInvulnerableTime > 0) {
return Math.max(getHandle().spawnInvulnerableTime, getHandle().invulnerableTime);
} else {
return getHandle().noDamageTicks;
return getHandle().invulnerableTime;
}
}
@Override
public void setNoDamageTicks(int ticks) {
super.setNoDamageTicks(ticks);
getHandle().invulnerableTicks = ticks; // SPIGOT-5921: Update both for players, like the getter above
getHandle().spawnInvulnerableTime = ticks; // SPIGOT-5921: Update both for players, like the getter above
}
@Override
public void setFlySpeed(float value) {
validateSpeed(value);
EntityPlayer player = getHandle();
player.abilities.flySpeed = value / 2f;
player.getAbilities().flyingSpeed = value / 2f;
player.updateAbilities();
}
@@ -1419,19 +1423,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setWalkSpeed(float value) {
validateSpeed(value);
EntityPlayer player = getHandle();
player.abilities.walkSpeed = value / 2f;
player.getAbilities().walkingSpeed = value / 2f;
player.updateAbilities();
getHandle().getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(player.abilities.walkSpeed); // SPIGOT-5833: combination of the two in 1.16+
getHandle().getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(player.getAbilities().walkingSpeed); // SPIGOT-5833: combination of the two in 1.16+
}
@Override
public float getFlySpeed() {
return (float) getHandle().abilities.flySpeed * 2f;
return (float) getHandle().getAbilities().flyingSpeed * 2f;
}
@Override
public float getWalkSpeed() {
return getHandle().abilities.walkSpeed * 2f;
return getHandle().getAbilities().walkingSpeed * 2f;
}
private void validateSpeed(float value) {
@@ -1467,7 +1471,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setScoreboard(Scoreboard scoreboard) {
Validate.notNull(scoreboard, "Scoreboard cannot be null");
PlayerConnection playerConnection = getHandle().playerConnection;
PlayerConnection playerConnection = getHandle().connection;
if (playerConnection == null) {
throw new IllegalStateException("Cannot set scoreboard yet");
}
@@ -1527,19 +1531,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
injectScaledMaxHealth(set, true);
// SPIGOT-3813: Attributes before health
if (getHandle().playerConnection != null) {
getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateAttributes(getHandle().getId(), set));
if (getHandle().connection != null) {
getHandle().connection.sendPacket(new PacketPlayOutUpdateAttributes(getHandle().getId(), set));
if (sendHealth) {
sendHealthUpdate();
}
}
getHandle().getDataWatcher().set(EntityLiving.HEALTH, (float) getScaledHealth());
getHandle().getDataWatcher().set(EntityLiving.DATA_HEALTH_ID, (float) getScaledHealth());
getHandle().maxHealthCache = getMaxHealth();
}
public void sendHealthUpdate() {
getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateHealth(getScaledHealth(), getHandle().getFoodData().getFoodLevel(), getHandle().getFoodData().getSaturationLevel()));
getHandle().connection.sendPacket(new PacketPlayOutUpdateHealth(getScaledHealth(), getHandle().getFoodData().getFoodLevel(), getHandle().getFoodData().getSaturationLevel()));
}
public void injectScaledMaxHealth(Collection<AttributeModifiable> collection, boolean force) {
@@ -1576,24 +1580,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void sendTitle(String title, String subtitle, int fadeIn, int stay, int fadeOut) {
PacketPlayOutTitle times = new PacketPlayOutTitle(fadeIn, stay, fadeOut);
getHandle().playerConnection.sendPacket(times);
ClientboundSetTitlesAnimationPacket times = new ClientboundSetTitlesAnimationPacket(fadeIn, stay, fadeOut);
getHandle().connection.sendPacket(times);
if (title != null) {
PacketPlayOutTitle packetTitle = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, CraftChatMessage.fromStringOrNull(title));
getHandle().playerConnection.sendPacket(packetTitle);
ClientboundSetTitleTextPacket packetTitle = new ClientboundSetTitleTextPacket(CraftChatMessage.fromStringOrNull(title));
getHandle().connection.sendPacket(packetTitle);
}
if (subtitle != null) {
PacketPlayOutTitle packetSubtitle = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, CraftChatMessage.fromStringOrNull(subtitle));
getHandle().playerConnection.sendPacket(packetSubtitle);
ClientboundSetSubtitleTextPacket packetSubtitle = new ClientboundSetSubtitleTextPacket(CraftChatMessage.fromStringOrNull(subtitle));
getHandle().connection.sendPacket(packetSubtitle);
}
}
@Override
public void resetTitle() {
PacketPlayOutTitle packetReset = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.RESET, null);
getHandle().playerConnection.sendPacket(packetReset);
ClientboundClearTitlesPacket packetReset = new ClientboundClearTitlesPacket(true);
getHandle().connection.sendPacket(packetReset);
}
@Override
@@ -1657,7 +1661,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
}
PacketPlayOutWorldParticles packetplayoutworldparticles = new PacketPlayOutWorldParticles(CraftParticle.toNMS(particle, data), true, (float) x, (float) y, (float) z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count);
getHandle().playerConnection.sendPacket(packetplayoutworldparticles);
getHandle().connection.sendPacket(packetplayoutworldparticles);
}
@@ -1679,7 +1683,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public int getPing() {
return getHandle().ping;
return getHandle().latency;
}
@Override
@@ -1689,7 +1693,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void updateCommands() {
if (getHandle().playerConnection == null) return;
if (getHandle().connection == null) return;
getHandle().server.getCommandDispatcher().a(getHandle());
}

View File

@@ -26,7 +26,7 @@ public abstract class CraftRaider extends CraftMonster implements Raider {
@Override
public Block getPatrolTarget() {
return getHandle().getPatrolTarget() == null ? null : CraftBlock.at(getHandle().world, getHandle().getPatrolTarget());
return getHandle().getPatrolTarget() == null ? null : CraftBlock.at(getHandle().level, getHandle().getPatrolTarget());
}
@Override

View File

@@ -32,34 +32,34 @@ public class CraftShulker extends CraftGolem implements Shulker {
@Override
public DyeColor getColor() {
return DyeColor.getByWoolData(getHandle().getDataWatcher().get(EntityShulker.COLOR));
return DyeColor.getByWoolData(getHandle().getDataWatcher().get(EntityShulker.DATA_COLOR_ID));
}
@Override
public void setColor(DyeColor color) {
getHandle().getDataWatcher().set(EntityShulker.COLOR, (color == null) ? 16 : color.getWoolData());
getHandle().getDataWatcher().set(EntityShulker.DATA_COLOR_ID, (color == null) ? 16 : color.getWoolData());
}
@Override
public float getPeek() {
return (float) getHandle().eN() / 100; // PAIL rename getPeek
return (float) getHandle().getPeek() / 100;
}
@Override
public void setPeek(float value) {
Preconditions.checkArgument(value >= 0 && value <= 1, "value needs to be in between or equal to 0 and 1");
getHandle().a((int) (value * 100)); // PAIL rename setPeek
getHandle().setPeek((int) (value * 100));
}
@Override
public BlockFace getAttachedFace() {
return CraftBlock.notchToBlockFace(getHandle().eL()); // PAIL rename getAttachedFace
return CraftBlock.notchToBlockFace(getHandle().getAttachFace());
}
@Override
public void setAttachedFace(BlockFace face) {
Preconditions.checkNotNull(face, "face cannot be null");
Preconditions.checkArgument(face.isCartesian(), "%s is not a valid block face to attach a shulker to, a cartesian block face is expected", face);
getHandle().getDataWatcher().set(EntityShulker.b, CraftBlock.blockFaceToNotch(face));
getHandle().setAttachFace(CraftBlock.blockFaceToNotch(face));
}
}

View File

@@ -30,36 +30,36 @@ public class CraftStrider extends CraftAnimals implements Strider {
@Override
public void setSaddle(boolean saddled) {
getHandle().saddleStorage.setSaddle(saddled);
getHandle().steering.setSaddle(saddled);
}
@Override
public int getBoostTicks() {
return getHandle().saddleStorage.boosting ? getHandle().saddleStorage.boostTicks : 0;
return getHandle().steering.boosting ? getHandle().steering.boostTimeTotal : 0;
}
@Override
public void setBoostTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0");
getHandle().saddleStorage.setBoostTicks(ticks);
getHandle().steering.setBoostTicks(ticks);
}
@Override
public int getCurrentBoostTicks() {
return getHandle().saddleStorage.boosting ? getHandle().saddleStorage.currentBoostTicks : 0;
return getHandle().steering.boosting ? getHandle().steering.boostTime : 0;
}
@Override
public void setCurrentBoostTicks(int ticks) {
if (!getHandle().saddleStorage.boosting) {
if (!getHandle().steering.boosting) {
return;
}
int max = getHandle().saddleStorage.boostTicks;
int max = getHandle().steering.boostTimeTotal;
Preconditions.checkArgument(ticks >= 0 && ticks <= max, "boost ticks must not exceed 0 or %d (inclusive)", max);
this.getHandle().saddleStorage.currentBoostTicks = ticks;
this.getHandle().steering.boostTime = ticks;
}
@Override

View File

@@ -69,9 +69,9 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed {
@Override
public void setSource(Entity source) {
if (source instanceof LivingEntity) {
getHandle().source = ((CraftLivingEntity) source).getHandle();
getHandle().owner = ((CraftLivingEntity) source).getHandle();
} else {
getHandle().source = null;
getHandle().owner = null;
}
}
}

View File

@@ -20,12 +20,12 @@ public class CraftTrident extends CraftArrow implements Trident {
@Override
public ItemStack getItem() {
return CraftItemStack.asBukkitCopy(getHandle().trident);
return CraftItemStack.asBukkitCopy(getHandle().tridentItem);
}
@Override
public void setItem(ItemStack itemStack) {
getHandle().trident = CraftItemStack.asNMSCopy(itemStack);
getHandle().tridentItem = CraftItemStack.asNMSCopy(itemStack);
}
@Override

View File

@@ -91,7 +91,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
Preconditions.checkArgument(location.getWorld().equals(getWorld()), "Cannot sleep across worlds");
BlockPosition position = new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ());
IBlockData iblockdata = getHandle().world.getType(position);
IBlockData iblockdata = getHandle().level.getType(position);
if (!(iblockdata.getBlock() instanceof BlockBed)) {
return false;
}

View File

@@ -68,17 +68,17 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
public int getConversionTime() {
Preconditions.checkState(isConverting(), "Entity not converting");
return getHandle().conversionTime;
return getHandle().villagerConversionTime;
}
@Override
public void setConversionTime(int time) {
if (time < 0) {
getHandle().conversionTime = -1;
getHandle().getDataWatcher().set(EntityZombieVillager.CONVERTING, false);
getHandle().persistent = false; // CraftBukkit - SPIGOT-4684 update persistence
getHandle().conversionPlayer = null;
getHandle().removeEffect(MobEffects.INCREASE_DAMAGE, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION);
getHandle().villagerConversionTime = -1;
getHandle().getDataWatcher().set(EntityZombieVillager.DATA_CONVERTING_ID, false);
getHandle().persistenceRequired = false; // CraftBukkit - SPIGOT-4684 update persistence
getHandle().conversionStarter = null;
getHandle().removeEffect(MobEffects.DAMAGE_BOOST, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION);
} else {
getHandle().startConversion((UUID) null, time);
}
@@ -86,12 +86,12 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
@Override
public OfflinePlayer getConversionPlayer() {
return (getHandle().conversionPlayer == null) ? null : Bukkit.getOfflinePlayer(getHandle().conversionPlayer);
return (getHandle().conversionStarter == null) ? null : Bukkit.getOfflinePlayer(getHandle().conversionStarter);
}
@Override
public void setConversionPlayer(OfflinePlayer conversionPlayer) {
if (!this.isConverting()) return;
getHandle().conversionPlayer = (conversionPlayer == null) ? null : conversionPlayer.getUniqueId();
getHandle().conversionStarter = (conversionPlayer == null) ? null : conversionPlayer.getUniqueId();
}
}

View File

@@ -14,8 +14,8 @@ public class CraftWither extends CraftMonster implements Wither {
public CraftWither(CraftServer server, EntityWither entity) {
super(server, entity);
if (entity.bossBattle != null) {
this.bossBar = new CraftBossBar(entity.bossBattle);
if (entity.bossEvent != null) {
this.bossBar = new CraftBossBar(entity.bossEvent);
}
}

View File

@@ -68,14 +68,14 @@ public class CraftZombie extends CraftMonster implements Zombie {
public int getConversionTime() {
Preconditions.checkState(isConverting(), "Entity not converting");
return getHandle().drownedConversionTime;
return getHandle().conversionTime;
}
@Override
public void setConversionTime(int time) {
if (time < 0) {
getHandle().drownedConversionTime = -1;
getHandle().getDataWatcher().set(EntityZombie.DROWN_CONVERTING, false);
getHandle().conversionTime = -1;
getHandle().getDataWatcher().set(EntityZombie.DATA_DROWNED_CONVERSION_ID, false);
} else {
getHandle().startDrownedConversion(time);
}

View File

@@ -21,6 +21,8 @@ public final class CraftMemoryMapper {
return (UUID) object;
} else if (object instanceof Boolean) {
return (Boolean) object;
} else if (object instanceof Integer) {
return (Integer) object;
}
throw new UnsupportedOperationException("Do not know how to map " + object);
@@ -37,6 +39,8 @@ public final class CraftMemoryMapper {
return (UUID) object;
} else if (object instanceof Boolean) {
return (Boolean) object;
} else if (object instanceof Integer) {
return (Integer) object;
}
throw new UnsupportedOperationException("Do not know how to map " + object);