@@ -1,8 +1,8 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import java.util.UUID;
|
||||
import net.minecraft.server.EntityHorse;
|
||||
import net.minecraft.server.EntityHorseAbstract;
|
||||
import net.minecraft.server.GenericAttributes;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventoryAbstractHorse;
|
||||
@@ -58,7 +58,7 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
|
||||
@Override
|
||||
public void setJumpStrength(double strength) {
|
||||
Validate.isTrue(strength >= 0, "Jump strength cannot be less than zero");
|
||||
getHandle().getAttributeInstance(EntityHorse.attributeJumpStrength).setValue(strength);
|
||||
getHandle().getAttributeInstance(GenericAttributes.JUMP_STRENGTH).setValue(strength);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -112,12 +112,12 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
|
||||
|
||||
@Override
|
||||
public boolean isShotFromCrossbow() {
|
||||
return getHandle().r();
|
||||
return getHandle().isShotFromCrossbow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShotFromCrossbow(boolean shotFromCrossbow) {
|
||||
getHandle().o(shotFromCrossbow);
|
||||
getHandle().setShotFromCrossbow(shotFromCrossbow);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -76,6 +76,6 @@ public class CraftEnderDragon extends CraftComplexLivingEntity implements EnderD
|
||||
|
||||
@Override
|
||||
public int getDeathAnimationTicks() {
|
||||
return getHandle().bA; // PAIL rename deathAnimationTicks
|
||||
return getHandle().deathAnimationTicks;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ import net.minecraft.server.EntityGolem;
|
||||
import net.minecraft.server.EntityGuardian;
|
||||
import net.minecraft.server.EntityGuardianElder;
|
||||
import net.minecraft.server.EntityHanging;
|
||||
import net.minecraft.server.EntityHoglin;
|
||||
import net.minecraft.server.EntityHorse;
|
||||
import net.minecraft.server.EntityHorseAbstract;
|
||||
import net.minecraft.server.EntityHorseChestedAbstract;
|
||||
@@ -92,6 +93,7 @@ import net.minecraft.server.EntityParrot;
|
||||
import net.minecraft.server.EntityPhantom;
|
||||
import net.minecraft.server.EntityPig;
|
||||
import net.minecraft.server.EntityPigZombie;
|
||||
import net.minecraft.server.EntityPiglin;
|
||||
import net.minecraft.server.EntityPillager;
|
||||
import net.minecraft.server.EntityPlayer;
|
||||
import net.minecraft.server.EntityPolarBear;
|
||||
@@ -115,6 +117,7 @@ import net.minecraft.server.EntitySnowman;
|
||||
import net.minecraft.server.EntitySpectralArrow;
|
||||
import net.minecraft.server.EntitySpider;
|
||||
import net.minecraft.server.EntitySquid;
|
||||
import net.minecraft.server.EntityStrider;
|
||||
import net.minecraft.server.EntityTNTPrimed;
|
||||
import net.minecraft.server.EntityTameableAnimal;
|
||||
import net.minecraft.server.EntityThrownExpBottle;
|
||||
@@ -132,6 +135,7 @@ import net.minecraft.server.EntityWitch;
|
||||
import net.minecraft.server.EntityWither;
|
||||
import net.minecraft.server.EntityWitherSkull;
|
||||
import net.minecraft.server.EntityWolf;
|
||||
import net.minecraft.server.EntityZoglin;
|
||||
import net.minecraft.server.EntityZombie;
|
||||
import net.minecraft.server.EntityZombieHusk;
|
||||
import net.minecraft.server.EntityZombieVillager;
|
||||
@@ -234,6 +238,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
else if (entity instanceof EntityPanda) { return new CraftPanda(server, (EntityPanda) entity); }
|
||||
else if (entity instanceof EntityFox) { return new CraftFox(server, (EntityFox) 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 { return new CraftAnimals(server, (EntityAnimal) entity); }
|
||||
}
|
||||
// Monsters
|
||||
@@ -278,6 +284,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
else { return new CraftIllager(server, (EntityIllagerAbstract) entity); }
|
||||
}
|
||||
else if (entity instanceof EntityRavager) { return new CraftRavager(server, (EntityRavager) entity); }
|
||||
else if (entity instanceof EntityPiglin) { return new CraftPiglin(server, (EntityPiglin) entity); }
|
||||
else if (entity instanceof EntityZoglin) { return new CraftZoglin(server, (EntityZoglin) entity); }
|
||||
|
||||
else { return new CraftMonster(server, (EntityMonster) entity); }
|
||||
}
|
||||
@@ -426,7 +434,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
if (entity instanceof EntityArrow) {
|
||||
return ((EntityArrow) entity).inGround;
|
||||
}
|
||||
return entity.onGround;
|
||||
return entity.isOnGround();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -468,7 +476,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
// Let the server handle cross world teleports
|
||||
if (!location.getWorld().equals(getWorld())) {
|
||||
entity.teleportTo(((CraftWorld) location.getWorld()).getHandle().getWorldProvider().getDimensionManager(), new BlockPosition(location.getX(), location.getY(), location.getZ()));
|
||||
entity.teleportTo(((CraftWorld) location.getWorld()).getHandle(), new BlockPosition(location.getX(), location.getY(), location.getZ()));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
|
||||
@Override
|
||||
public void setShooter(ProjectileSource shooter) {
|
||||
if (shooter instanceof CraftLivingEntity) {
|
||||
getHandle().shooter = ((CraftLivingEntity) shooter).getHandle();
|
||||
getHandle().setShooter(((CraftLivingEntity) shooter).getHandle());
|
||||
} else {
|
||||
getHandle().shooter = null;
|
||||
getHandle().setShooter(null);
|
||||
}
|
||||
getHandle().projectileSource = shooter;
|
||||
}
|
||||
@@ -57,13 +57,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
|
||||
@Override
|
||||
public void setDirection(Vector direction) {
|
||||
Validate.notNull(direction, "Direction can not be null");
|
||||
double x = direction.getX();
|
||||
double y = direction.getY();
|
||||
double z = direction.getZ();
|
||||
double magnitude = (double) MathHelper.sqrt(x * x + y * y + z * z);
|
||||
getHandle().dirX = x / magnitude * 0.1D;
|
||||
getHandle().dirY = y / magnitude * 0.1D;
|
||||
getHandle().dirZ = z / magnitude * 0.1D;
|
||||
getHandle().setDirection(direction.getX(), direction.getY(), direction.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Firework;
|
||||
import org.bukkit.inventory.meta.FireworkMeta;
|
||||
|
||||
public class CraftFirework extends CraftEntity implements Firework {
|
||||
public class CraftFirework extends CraftProjectile implements Firework {
|
||||
|
||||
private final Random random = new Random();
|
||||
private final CraftItemStack item;
|
||||
|
||||
@@ -2,37 +2,19 @@ package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.BlockPosition;
|
||||
import net.minecraft.server.EntityFishingHook;
|
||||
import net.minecraft.server.EntityHuman;
|
||||
import net.minecraft.server.MathHelper;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.FishHook;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
public class CraftFishHook extends AbstractProjectile implements FishHook {
|
||||
public class CraftFishHook extends CraftProjectile implements FishHook {
|
||||
private double biteChance = -1;
|
||||
|
||||
public CraftFishHook(CraftServer server, EntityFishingHook entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectileSource getShooter() {
|
||||
if (getHandle().owner != null) {
|
||||
return getHandle().owner.getBukkitEntity();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShooter(ProjectileSource shooter) {
|
||||
if (shooter instanceof CraftHumanEntity) {
|
||||
getHandle().owner = (EntityHuman) ((CraftHumanEntity) shooter).entity;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityFishingHook getHandle() {
|
||||
return (EntityFishingHook) entity;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityHoglin;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Hoglin;
|
||||
|
||||
public class CraftHoglin extends CraftAnimals implements Hoglin {
|
||||
|
||||
public CraftHoglin(CraftServer server, EntityHoglin entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityHoglin getHandle() {
|
||||
return (EntityHoglin) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftHoglin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getType() {
|
||||
return EntityType.HOGLIN;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityHorse;
|
||||
import net.minecraft.server.HorseColor;
|
||||
import net.minecraft.server.HorseStyle;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventoryHorse;
|
||||
@@ -26,24 +28,24 @@ public class CraftHorse extends CraftAbstractHorse implements Horse {
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
return Color.values()[getHandle().getVariant() & 0xFF];
|
||||
return Color.values()[getHandle().getColor().a()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColor(Color color) {
|
||||
Validate.notNull(color, "Color cannot be null");
|
||||
getHandle().setVariant(color.ordinal() & 0xFF | getStyle().ordinal() << 8);
|
||||
getHandle().setVariant(HorseColor.a(color.ordinal()), getHandle().getStyle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Style getStyle() {
|
||||
return Style.values()[getHandle().getVariant() >>> 8];
|
||||
return Style.values()[getHandle().getStyle().a()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStyle(Style style) {
|
||||
Validate.notNull(style, "Style cannot be null");
|
||||
getHandle().setVariant(getColor().ordinal() & 0xFF | style.ordinal() << 8);
|
||||
getHandle().setVariant(getHandle().getColor(), HorseStyle.a(style.ordinal()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,15 +31,12 @@ import net.minecraft.server.PacketPlayInCloseWindow;
|
||||
import net.minecraft.server.PacketPlayOutOpenWindow;
|
||||
import net.minecraft.server.TileEntity;
|
||||
import net.minecraft.server.TileEntityContainer;
|
||||
import net.minecraft.server.Vec3D;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
import org.bukkit.craftbukkit.inventory.CraftContainer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventory;
|
||||
@@ -128,36 +125,6 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
return getHandle().sleepTicks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getBedSpawnLocation() {
|
||||
World world = getServer().getWorld(getHandle().spawnWorld);
|
||||
BlockPosition bed = getHandle().getBed();
|
||||
|
||||
if (world != null && bed != null) {
|
||||
Optional<Vec3D> spawnLoc = EntityHuman.getBed(((CraftWorld) world).getHandle(), bed, getHandle().isRespawnForced());
|
||||
if (spawnLoc.isPresent()) {
|
||||
Vec3D vec = spawnLoc.get();
|
||||
return new Location(world, vec.x, vec.y, vec.z);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBedSpawnLocation(Location location) {
|
||||
setBedSpawnLocation(location, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBedSpawnLocation(Location location, boolean override) {
|
||||
if (location == null) {
|
||||
getHandle().setRespawnPosition(null, override, false);
|
||||
} else {
|
||||
getHandle().setRespawnPosition(new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ()), override, false);
|
||||
getHandle().spawnWorld = location.getWorld().getName();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sleep(Location location, boolean force) {
|
||||
Preconditions.checkArgument(location != null, "Location cannot be null");
|
||||
@@ -192,7 +159,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
public Location getBedLocation() {
|
||||
Preconditions.checkState(isSleeping(), "Not sleeping");
|
||||
|
||||
BlockPosition bed = getHandle().getBed();
|
||||
BlockPosition bed = getHandle().getBedPosition().get();
|
||||
return new Location(getWorld(), bed.getX(), bed.getY(), bed.getZ());
|
||||
}
|
||||
|
||||
@@ -492,7 +459,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
|
||||
@Override
|
||||
public float getAttackCooldown() {
|
||||
return getHandle().s(0.5f);
|
||||
return getHandle().getAttackCooldown(0.5f);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -12,7 +12,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
|
||||
|
||||
@Override
|
||||
public boolean isEffect() {
|
||||
return ((EntityLightning) super.getHandle()).isEffect;
|
||||
return getHandle().isEffect;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -428,7 +428,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
|
||||
launch = EntityTypes.LLAMA_SPIT.a(world);
|
||||
|
||||
((EntityLlamaSpit) launch).shooter = getHandle();
|
||||
((EntityLlamaSpit) launch).setShooter(getHandle());
|
||||
((EntityLlamaSpit) launch).shoot(direction.getX(), direction.getY(), direction.getZ(), 1.5F, 10.0F); // EntityLlama
|
||||
launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
|
||||
} else if (ShulkerBullet.class.isAssignableFrom(projectile)) {
|
||||
@@ -588,17 +588,17 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
public void attack(Entity target) {
|
||||
Preconditions.checkArgument(target != null, "target == null");
|
||||
|
||||
getHandle().B(((CraftEntity) target).getHandle()); // PAIL rename attack
|
||||
getHandle().attackEntity(((CraftEntity) target).getHandle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void swingMainHand() {
|
||||
getHandle().a(EnumHand.MAIN_HAND, true); // PAIL rename swingHand
|
||||
getHandle().swingHand(EnumHand.MAIN_HAND, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void swingOffHand() {
|
||||
getHandle().a(EnumHand.OFF_HAND, true); // PAIL rename swingHand
|
||||
getHandle().swingHand(EnumHand.OFF_HAND, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,11 +29,11 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit {
|
||||
|
||||
@Override
|
||||
public ProjectileSource getShooter() {
|
||||
return (getHandle().shooter != null) ? (ProjectileSource) getHandle().shooter.getBukkitEntity() : null;
|
||||
return (getHandle().getShooter() != null) ? (ProjectileSource) getHandle().getShooter().getBukkitEntity() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShooter(ProjectileSource source) {
|
||||
getHandle().shooter = (source != null) ? ((CraftLivingEntity) source).getHandle() : null;
|
||||
getHandle().setShooter((source != null) ? ((CraftLivingEntity) source).getHandle() : null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class CraftPig extends CraftAnimals implements Pig {
|
||||
|
||||
@Override
|
||||
public void setSaddle(boolean saddled) {
|
||||
getHandle().setSaddle(saddled);
|
||||
getHandle().saddleStorage.setSaddle(saddled);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,12 +13,12 @@ public class CraftPigZombie extends CraftZombie implements PigZombie {
|
||||
|
||||
@Override
|
||||
public int getAnger() {
|
||||
return getHandle().angerLevel;
|
||||
return getHandle().getAnger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnger(int level) {
|
||||
getHandle().angerLevel = level;
|
||||
getHandle().setAnger(level);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -43,7 +43,7 @@ public class CraftPigZombie extends CraftZombie implements PigZombie {
|
||||
|
||||
@Override
|
||||
public EntityType getType() {
|
||||
return EntityType.PIG_ZOMBIE;
|
||||
return EntityType.ZOMBIFIED_PIGLIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityPiglin;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Piglin;
|
||||
|
||||
public class CraftPiglin extends CraftMonster implements Piglin {
|
||||
|
||||
public CraftPiglin(CraftServer server, EntityPiglin entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityPiglin getHandle() {
|
||||
return (EntityPiglin) super.getHandle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getType() {
|
||||
return EntityType.PIGLIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftPiglin";
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.WeakHashMap;
|
||||
@@ -25,18 +26,19 @@ import java.util.logging.Logger;
|
||||
import javax.annotation.Nullable;
|
||||
import net.minecraft.server.AdvancementDataPlayer;
|
||||
import net.minecraft.server.AdvancementProgress;
|
||||
import net.minecraft.server.AttributeInstance;
|
||||
import net.minecraft.server.AttributeMapServer;
|
||||
import net.minecraft.server.AttributeMapBase;
|
||||
import net.minecraft.server.AttributeModifiable;
|
||||
import net.minecraft.server.AttributeRanged;
|
||||
import net.minecraft.server.BlockPosition;
|
||||
import net.minecraft.server.ChatComponentText;
|
||||
import net.minecraft.server.ChatMessageType;
|
||||
import net.minecraft.server.Container;
|
||||
import net.minecraft.server.Entity;
|
||||
import net.minecraft.server.EntityHuman;
|
||||
import net.minecraft.server.EntityLiving;
|
||||
import net.minecraft.server.EntityPlayer;
|
||||
import net.minecraft.server.EnumColor;
|
||||
import net.minecraft.server.EnumGamemode;
|
||||
import net.minecraft.server.GenericAttributes;
|
||||
import net.minecraft.server.IChatBaseComponent;
|
||||
import net.minecraft.server.MapIcon;
|
||||
import net.minecraft.server.MinecraftKey;
|
||||
@@ -60,6 +62,7 @@ import net.minecraft.server.PacketPlayOutWorldEvent;
|
||||
import net.minecraft.server.PacketPlayOutWorldParticles;
|
||||
import net.minecraft.server.PlayerChunkMap;
|
||||
import net.minecraft.server.PlayerConnection;
|
||||
import net.minecraft.server.SystemUtils;
|
||||
import net.minecraft.server.TileEntitySign;
|
||||
import net.minecraft.server.Vec3D;
|
||||
import net.minecraft.server.WhiteListEntry;
|
||||
@@ -80,6 +83,7 @@ import org.bukkit.Particle;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.Statistic;
|
||||
import org.bukkit.WeatherType;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.configuration.serialization.DelegateDeserialization;
|
||||
import org.bukkit.conversations.Conversation;
|
||||
@@ -189,7 +193,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (getHandle().playerConnection == null) return;
|
||||
|
||||
for (IChatBaseComponent component : CraftChatMessage.fromString(message)) {
|
||||
getHandle().playerConnection.sendPacket(new PacketPlayOutChat(component));
|
||||
getHandle().playerConnection.sendPacket(new PacketPlayOutChat(component, ChatMessageType.CHAT, SystemUtils.b));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -664,7 +668,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (fromWorld == toWorld) {
|
||||
entity.playerConnection.teleport(to);
|
||||
} else {
|
||||
server.getHandle().moveToWorld(entity, toWorld.getWorldProvider().getDimensionManager(), true, to, true);
|
||||
server.getHandle().moveToWorld(entity, toWorld, true, to, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -716,6 +720,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
return getHandle().fauxSleeping;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getBedSpawnLocation() {
|
||||
World world = getHandle().server.getWorldServer(getHandle().getSpawnDimension()).getWorld();
|
||||
BlockPosition bed = getHandle().getSpawn();
|
||||
|
||||
if (world != null && bed != null) {
|
||||
Optional<Vec3D> spawnLoc = EntityHuman.getBed(((CraftWorld) world).getHandle(), bed, getHandle().isSpawnForced(), true);
|
||||
if (spawnLoc.isPresent()) {
|
||||
Vec3D vec = spawnLoc.get();
|
||||
return new Location(world, vec.x, vec.y, vec.z);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBedSpawnLocation(Location location) {
|
||||
setBedSpawnLocation(location, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBedSpawnLocation(Location location, boolean override) {
|
||||
if (location == null) {
|
||||
getHandle().setRespawnPosition(null, null, override, false);
|
||||
} else {
|
||||
getHandle().setRespawnPosition(((CraftWorld) location.getWorld()).getHandle().getDimensionKey(), new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ()), override, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getBedLocation() {
|
||||
Preconditions.checkState(isSleeping(), "Not sleeping");
|
||||
|
||||
BlockPosition bed = getHandle().getSpawn();
|
||||
return new Location(getWorld(), bed.getX(), bed.getY(), bed.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incrementStatistic(Statistic statistic) {
|
||||
CraftStatistic.incrementStatistic(getHandle().getStatisticManager(), statistic);
|
||||
@@ -1457,8 +1498,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
public void updateScaledHealth(boolean sendHealth) {
|
||||
AttributeMapServer attributemapserver = (AttributeMapServer) getHandle().getAttributeMap();
|
||||
Collection<AttributeInstance> set = attributemapserver.c(); // PAIL: Rename
|
||||
AttributeMapBase attributemapserver = getHandle().getAttributeMap();
|
||||
Collection<AttributeModifiable> set = attributemapserver.b(); // PAIL: Rename
|
||||
|
||||
injectScaledMaxHealth(set, true);
|
||||
|
||||
@@ -1478,17 +1519,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
getHandle().playerConnection.sendPacket(new PacketPlayOutUpdateHealth(getScaledHealth(), getHandle().getFoodData().getFoodLevel(), getHandle().getFoodData().getSaturationLevel()));
|
||||
}
|
||||
|
||||
public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) {
|
||||
public void injectScaledMaxHealth(Collection<AttributeModifiable> collection, boolean force) {
|
||||
if (!scaledHealth && !force) {
|
||||
return;
|
||||
}
|
||||
for (AttributeInstance genericInstance : collection) {
|
||||
if (genericInstance.getAttribute().getName().equals("generic.maxHealth")) {
|
||||
collection.remove(genericInstance);
|
||||
for (AttributeModifiable genericInstance : collection) {
|
||||
if (genericInstance.getAttribute() == GenericAttributes.MAX_HEALTH) {
|
||||
genericInstance.setValue(scaledHealth ? healthScale : getMaxHealth());
|
||||
break;
|
||||
}
|
||||
}
|
||||
collection.add(new AttributeModifiable(getHandle().getAttributeMap(), (new AttributeRanged(null, "generic.maxHealth", scaledHealth ? healthScale : getMaxHealth(), 0.0D, Float.MAX_VALUE)).a("Max Health").a(true)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityLiving;
|
||||
import net.minecraft.server.EntityProjectile;
|
||||
import net.minecraft.server.IProjectile;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
public abstract class CraftProjectile extends AbstractProjectile implements Projectile {
|
||||
public CraftProjectile(CraftServer server, net.minecraft.server.Entity entity) {
|
||||
public CraftProjectile(CraftServer server, net.minecraft.server.IProjectile entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@@ -19,18 +19,16 @@ public abstract class CraftProjectile extends AbstractProjectile implements Proj
|
||||
@Override
|
||||
public void setShooter(ProjectileSource shooter) {
|
||||
if (shooter instanceof CraftLivingEntity) {
|
||||
getHandle().shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity;
|
||||
getHandle().shooterId = ((CraftLivingEntity) shooter).getUniqueId();
|
||||
getHandle().setShooter((EntityLiving) ((CraftLivingEntity) shooter).entity);
|
||||
} else {
|
||||
getHandle().shooter = null;
|
||||
getHandle().shooterId = null;
|
||||
getHandle().setShooter(null);
|
||||
}
|
||||
getHandle().projectileSource = shooter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityProjectile getHandle() {
|
||||
return (EntityProjectile) entity;
|
||||
public IProjectile getHandle() {
|
||||
return (IProjectile) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -41,8 +41,8 @@ public class CraftRabbit extends CraftAnimals implements Rabbit {
|
||||
if (getRabbitType() == Type.THE_KILLER_BUNNY) {
|
||||
// Reset goals and target finders.
|
||||
World world = ((CraftWorld) this.getWorld()).getHandle();
|
||||
entity.goalSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null);
|
||||
entity.targetSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null);
|
||||
entity.goalSelector = new PathfinderGoalSelector(world.getMethodProfilerSupplier());
|
||||
entity.targetSelector = new PathfinderGoalSelector(world.getMethodProfilerSupplier());
|
||||
entity.initializePathFinderGoals();
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityShulkerBullet;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.ShulkerBullet;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
@@ -20,8 +20,8 @@ public class CraftShulkerBullet extends AbstractProjectile implements ShulkerBul
|
||||
|
||||
@Override
|
||||
public void setShooter(ProjectileSource shooter) {
|
||||
if (shooter instanceof LivingEntity) {
|
||||
getHandle().setShooter(((CraftLivingEntity) shooter).getHandle());
|
||||
if (shooter instanceof Entity) {
|
||||
getHandle().setShooter(((CraftEntity) shooter).getHandle());
|
||||
} else {
|
||||
getHandle().setShooter(null);
|
||||
}
|
||||
|
||||
@@ -15,16 +15,16 @@ public class CraftSizedFireball extends CraftFireball implements SizedFireball {
|
||||
|
||||
@Override
|
||||
public ItemStack getDisplayItem() {
|
||||
if (getHandle().l().isEmpty()) { // PAIL rename getItem
|
||||
if (getHandle().getItem().isEmpty()) {
|
||||
return new ItemStack(Material.FIRE_CHARGE);
|
||||
} else {
|
||||
return CraftItemStack.asBukkitCopy(getHandle().l()); // PAIL rename getItem
|
||||
return CraftItemStack.asBukkitCopy(getHandle().getItem());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisplayItem(ItemStack item) {
|
||||
getHandle().b(CraftItemStack.asNMSCopy(item)); // PAIL rename setItem
|
||||
getHandle().setItem(CraftItemStack.asNMSCopy(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityStrider;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Strider;
|
||||
|
||||
public class CraftStrider extends CraftAnimals implements Strider {
|
||||
|
||||
public CraftStrider(CraftServer server, EntityStrider entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityStrider getHandle() {
|
||||
return (EntityStrider) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftStrider";
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getType() {
|
||||
return EntityType.STRIDER;
|
||||
}
|
||||
}
|
||||
@@ -74,7 +74,7 @@ public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creat
|
||||
|
||||
public void setSitting(boolean sitting) {
|
||||
getHandle().setSitting(sitting);
|
||||
getHandle().getGoalSit().setSitting(sitting);
|
||||
getHandle().setWillSit(sitting);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,7 +15,7 @@ public abstract class CraftThrowableProjectile extends CraftProjectile implement
|
||||
@Override
|
||||
public ItemStack getItem() {
|
||||
if (getHandle().getItem().isEmpty()) {
|
||||
return CraftItemStack.asBukkitCopy(new net.minecraft.server.ItemStack(getHandle().getDefaultItem()));
|
||||
return CraftItemStack.asBukkitCopy(new net.minecraft.server.ItemStack(getHandle().getDefaultItemPublic()));
|
||||
} else {
|
||||
return CraftItemStack.asBukkitCopy(getHandle().getItem());
|
||||
}
|
||||
|
||||
@@ -19,7 +19,11 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf {
|
||||
|
||||
@Override
|
||||
public void setAngry(boolean angry) {
|
||||
getHandle().setAngry(angry);
|
||||
if (angry) {
|
||||
getHandle().anger();
|
||||
} else {
|
||||
getHandle().pacify();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityZoglin;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Zoglin;
|
||||
|
||||
public class CraftZoglin extends CraftMonster implements Zoglin {
|
||||
|
||||
public CraftZoglin(CraftServer server, EntityZoglin entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityZoglin getHandle() {
|
||||
return (EntityZoglin) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftZoglin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getType() {
|
||||
return EntityType.ZOGLIN;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.bukkit.craftbukkit.entity.memory;
|
||||
|
||||
import java.util.UUID;
|
||||
import net.minecraft.server.BlockPosition;
|
||||
import net.minecraft.server.GlobalPos;
|
||||
import net.minecraft.server.MinecraftSerializableLong;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
@@ -15,8 +15,12 @@ public final class CraftMemoryMapper {
|
||||
public static Object fromNms(Object object) {
|
||||
if (object instanceof GlobalPos) {
|
||||
return fromNms((GlobalPos) object);
|
||||
} else if (object instanceof MinecraftSerializableLong) {
|
||||
return ((MinecraftSerializableLong) object).a();
|
||||
} else if (object instanceof Long) {
|
||||
return (Long) object;
|
||||
} else if (object instanceof UUID) {
|
||||
return (UUID) object;
|
||||
} else if (object instanceof Boolean) {
|
||||
return (Boolean) object;
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException("Do not know how to map " + object);
|
||||
@@ -28,7 +32,11 @@ public final class CraftMemoryMapper {
|
||||
} else if (object instanceof Location) {
|
||||
return toNms((Location) object);
|
||||
} else if (object instanceof Long) {
|
||||
return MinecraftSerializableLong.a((Long) object);
|
||||
return (Long) object;
|
||||
} else if (object instanceof UUID) {
|
||||
return (UUID) object;
|
||||
} else if (object instanceof Boolean) {
|
||||
return (Boolean) object;
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException("Do not know how to map " + object);
|
||||
@@ -39,6 +47,6 @@ public final class CraftMemoryMapper {
|
||||
}
|
||||
|
||||
public static GlobalPos toNms(Location location) {
|
||||
return GlobalPos.create(((CraftWorld) location.getWorld()).getHandle().getWorldProvider().getDimensionManager(), new BlockPosition(location.getX(), location.getY(), location.getZ()));
|
||||
return GlobalPos.create(((CraftWorld) location.getWorld()).getHandle().getDimensionKey(), new BlockPosition(location.getX(), location.getY(), location.getZ()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user