diff --git a/sources/src/main/java/io/akarin/server/mixin/optimization/PandaRedstoneWire.java b/sources/src/main/java/io/akarin/server/mixin/optimization/PandaRedstoneWire.java index e2358a51e..f2c6373fc 100644 --- a/sources/src/main/java/io/akarin/server/mixin/optimization/PandaRedstoneWire.java +++ b/sources/src/main/java/io/akarin/server/mixin/optimization/PandaRedstoneWire.java @@ -413,7 +413,7 @@ public abstract class PandaRedstoneWire extends Block { */ private void addAllSurroundingBlocks(BlockPosition pos, Set set) { for (BaseBlockPosition vect : surroundingBlocksOffset) { - set.add(pos.add(vect)); + set.add(pos.a(vect)); // PAIL: add } } @@ -446,7 +446,7 @@ public abstract class PandaRedstoneWire extends Block { public void onPlace(World world, BlockPosition pos, IBlockData state) { this.updateSurroundingRedstone(world, pos); for (BaseBlockPosition vec : surroundingBlocksOffset) { - world.applyPhysics(pos.add(vec), this, false); + world.applyPhysics(pos.a(vec), this, false); // PAIL: add } } @@ -463,7 +463,7 @@ public abstract class PandaRedstoneWire extends Block { super.remove(world, pos, state); this.updateSurroundingRedstone(world, pos); for (BaseBlockPosition vec : surroundingBlocksOffset) { - world.applyPhysics(pos.add(vec), this, false); + world.applyPhysics(pos.a(vec), this, false); // PAIL: add } } diff --git a/sources/src/main/java/net/minecraft/server/BlockPosition.java b/sources/src/main/java/net/minecraft/server/BlockPosition.java deleted file mode 100644 index 67c5c3133..000000000 --- a/sources/src/main/java/net/minecraft/server/BlockPosition.java +++ /dev/null @@ -1,471 +0,0 @@ -package net.minecraft.server; - -import com.google.common.collect.AbstractIterator; -import com.google.common.collect.Lists; -import java.util.Iterator; -import java.util.List; -import javax.annotation.concurrent.Immutable; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * Akarin Changes Note
- *
- * 1) Add OBFHELPER
- * @author cakoyo - */ -@Immutable -public class BlockPosition extends BaseBlockPosition { - - private static final Logger b = LogManager.getLogger(); - public static final BlockPosition ZERO = new BlockPosition(0, 0, 0); - private static final int c = 1 + MathHelper.e(MathHelper.c(30000000)); - private static final int d = BlockPosition.c; - private static final int f = 64 - BlockPosition.c - BlockPosition.d; - private static final int g = 0 + BlockPosition.d; - private static final int h = BlockPosition.g + BlockPosition.f; - private static final long i = (1L << BlockPosition.c) - 1L; - private static final long j = (1L << BlockPosition.f) - 1L; - private static final long k = (1L << BlockPosition.d) - 1L; - - public BlockPosition(int i, int j, int k) { - super(i, j, k); - } - - public BlockPosition(double d0, double d1, double d2) { - super(d0, d1, d2); - } - - public BlockPosition(Entity entity) { - this(entity.locX, entity.locY, entity.locZ); - } - - public BlockPosition(Vec3D vec3d) { - this(vec3d.x, vec3d.y, vec3d.z); - } - - public BlockPosition(BaseBlockPosition baseblockposition) { - this(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); - } - - public BlockPosition add(double x, double y, double z) { return this.a(x, y, z); } // Paper - OBFHELPER - public BlockPosition a(double d0, double d1, double d2) { - return d0 == 0.0D && d1 == 0.0D && d2 == 0.0D ? this : new BlockPosition(this.getX() + d0, this.getY() + d1, this.getZ() + d2); - } - - public BlockPosition a(int i, int j, int k) { - return i == 0 && j == 0 && k == 0 ? this : new BlockPosition(this.getX() + i, this.getY() + j, this.getZ() + k); - } - - public BlockPosition add(BaseBlockPosition baseblockposition) { return this.a(baseblockposition); } // Akarin - OBFHELPER - public BlockPosition a(BaseBlockPosition baseblockposition) { - return this.a(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); - } - - public BlockPosition b(BaseBlockPosition baseblockposition) { - return this.a(-baseblockposition.getX(), -baseblockposition.getY(), -baseblockposition.getZ()); - } - - public BlockPosition up() { - return this.up(1); - } - - public BlockPosition up(int i) { - return this.shift(EnumDirection.UP, i); - } - - public BlockPosition down() { - return this.down(1); - } - - public BlockPosition down(int i) { - return this.shift(EnumDirection.DOWN, i); - } - - public BlockPosition north() { - return this.north(1); - } - - public BlockPosition north(int i) { - return this.shift(EnumDirection.NORTH, i); - } - - public BlockPosition south() { - return this.south(1); - } - - public BlockPosition south(int i) { - return this.shift(EnumDirection.SOUTH, i); - } - - public BlockPosition west() { - return this.west(1); - } - - public BlockPosition west(int i) { - return this.shift(EnumDirection.WEST, i); - } - - public BlockPosition east() { - return this.east(1); - } - - public BlockPosition east(int i) { - return this.shift(EnumDirection.EAST, i); - } - - public BlockPosition shift(EnumDirection enumdirection) { - return this.shift(enumdirection, 1); - } - - public BlockPosition shift(EnumDirection enumdirection, int i) { - return i == 0 ? this : new BlockPosition(this.getX() + enumdirection.getAdjacentX() * i, this.getY() + enumdirection.getAdjacentY() * i, this.getZ() + enumdirection.getAdjacentZ() * i); - } - - public BlockPosition a(EnumBlockRotation enumblockrotation) { - switch (enumblockrotation) { - case NONE: - default: - return this; - - case CLOCKWISE_90: - return new BlockPosition(-this.getZ(), this.getY(), this.getX()); - - case CLOCKWISE_180: - return new BlockPosition(-this.getX(), this.getY(), -this.getZ()); - - case COUNTERCLOCKWISE_90: - return new BlockPosition(this.getZ(), this.getY(), -this.getX()); - } - } - - public BlockPosition c(BaseBlockPosition baseblockposition) { - return new BlockPosition(this.getY() * baseblockposition.getZ() - this.getZ() * baseblockposition.getY(), this.getZ() * baseblockposition.getX() - this.getX() * baseblockposition.getZ(), this.getX() * baseblockposition.getY() - this.getY() * baseblockposition.getX()); - } - - public long asLong() { - return (this.getX() & BlockPosition.i) << BlockPosition.h | (this.getY() & BlockPosition.j) << BlockPosition.g | (this.getZ() & BlockPosition.k) << 0; - } - - public static BlockPosition fromLong(long i) { - int j = (int) (i << 64 - BlockPosition.h - BlockPosition.c >> 64 - BlockPosition.c); - int k = (int) (i << 64 - BlockPosition.g - BlockPosition.f >> 64 - BlockPosition.f); - int l = (int) (i << 64 - BlockPosition.d >> 64 - BlockPosition.d); - - return new BlockPosition(j, k, l); - } - - public static Iterable a(BlockPosition blockposition, BlockPosition blockposition1) { - return a(Math.min(blockposition.getX(), blockposition1.getX()), Math.min(blockposition.getY(), blockposition1.getY()), Math.min(blockposition.getZ(), blockposition1.getZ()), Math.max(blockposition.getX(), blockposition1.getX()), Math.max(blockposition.getY(), blockposition1.getY()), Math.max(blockposition.getZ(), blockposition1.getZ())); - } - - public static Iterable a(final int i, final int j, final int k, final int l, final int i1, final int j1) { - return new Iterable() { - @Override - public Iterator iterator() { - return new AbstractIterator() { - private boolean b = true; - private int c; - private int d; - private int e; - - protected BlockPosition a() { - if (this.b) { - this.b = false; - this.c = i; - this.d = j; - this.e = k; - return new BlockPosition(i, j, k); - } else if (this.c == l && this.d == i1 && this.e == j1) { - return (BlockPosition) this.endOfData(); - } else { - if (this.c < l) { - ++this.c; - } else if (this.d < i1) { - this.c = i; - ++this.d; - } else if (this.e < j1) { - this.c = i; - this.d = j; - ++this.e; - } - - return new BlockPosition(this.c, this.d, this.e); - } - } - - @Override - protected Object computeNext() { - return this.a(); - } - }; - } - }; - } - - public BlockPosition h() { - return this; - } - - public static Iterable b(BlockPosition blockposition, BlockPosition blockposition1) { - return b(Math.min(blockposition.getX(), blockposition1.getX()), Math.min(blockposition.getY(), blockposition1.getY()), Math.min(blockposition.getZ(), blockposition1.getZ()), Math.max(blockposition.getX(), blockposition1.getX()), Math.max(blockposition.getY(), blockposition1.getY()), Math.max(blockposition.getZ(), blockposition1.getZ())); - } - - public static Iterable b(final int i, final int j, final int k, final int l, final int i1, final int j1) { - return new Iterable() { - @Override - public Iterator iterator() { - return new AbstractIterator() { - private BlockPosition.MutableBlockPosition b; - - protected BlockPosition.MutableBlockPosition a() { - if (this.b == null) { - this.b = new BlockPosition.MutableBlockPosition(i, j, k); - return this.b; - // Paper start - b, c, d, refer to x, y, z, and as such, a, b, c of BaseBlockPosition - } else if (((BaseBlockPosition)this.b).a == l && ((BaseBlockPosition)this.b).b == i1 && ((BaseBlockPosition)this.b).c == j1) { - return (BlockPosition.MutableBlockPosition) this.endOfData(); - } else { - if (((BaseBlockPosition) this.b).a < l) { - ++((BaseBlockPosition) this.b).a; - } else if (((BaseBlockPosition) this.b).b < i1) { - ((BaseBlockPosition) this.b).a = i; - ++((BaseBlockPosition) this.b).b; - } else if (((BaseBlockPosition) this.b).c < j1) { - ((BaseBlockPosition) this.b).a = i; - ((BaseBlockPosition) this.b).b = j; - ++((BaseBlockPosition) this.b).c; - } - // Paper end - - return this.b; - } - } - - @Override - protected Object computeNext() { - return this.a(); - } - }; - } - }; - } - - @Override - public BaseBlockPosition d(BaseBlockPosition baseblockposition) { - return this.c(baseblockposition); - } - - public static final class PooledBlockPosition extends BlockPosition.MutableBlockPosition { - - private boolean f; - private static final List g = Lists.newArrayList(); - - private PooledBlockPosition(int i, int j, int k) { - super(i, j, k); - } - - public static BlockPosition.PooledBlockPosition aquire() { return s(); } // Paper - OBFHELPER - public static BlockPosition.PooledBlockPosition s() { - return e(0, 0, 0); - } - - public static BlockPosition.PooledBlockPosition d(double d0, double d1, double d2) { - return e(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2)); - } - - public static BlockPosition.PooledBlockPosition e(int i, int j, int k) { - List list = BlockPosition.PooledBlockPosition.g; - - synchronized (BlockPosition.PooledBlockPosition.g) { - if (!BlockPosition.PooledBlockPosition.g.isEmpty()) { - BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.g.remove(BlockPosition.PooledBlockPosition.g.size() - 1); - - if (blockposition_pooledblockposition != null && blockposition_pooledblockposition.f) { - blockposition_pooledblockposition.f = false; - blockposition_pooledblockposition.f(i, j, k); - return blockposition_pooledblockposition; - } - } - } - - return new BlockPosition.PooledBlockPosition(i, j, k); - } - - public void free() { t(); } // Paper - OBFHELPER - public void t() { - List list = BlockPosition.PooledBlockPosition.g; - - synchronized (BlockPosition.PooledBlockPosition.g) { - if (BlockPosition.PooledBlockPosition.g.size() < 100) { - BlockPosition.PooledBlockPosition.g.add(this); - } - - this.f = true; - } - } - - public BlockPosition.PooledBlockPosition f(int i, int j, int k) { - if (this.f) { - BlockPosition.b.error("PooledMutableBlockPosition modified after it was released.", new Throwable()); - this.f = false; - } - - return (BlockPosition.PooledBlockPosition) super.c(i, j, k); - } - - public BlockPosition.PooledBlockPosition e(double d0, double d1, double d2) { - return (BlockPosition.PooledBlockPosition) super.c(d0, d1, d2); - } - - public BlockPosition.PooledBlockPosition j(BaseBlockPosition baseblockposition) { - return (BlockPosition.PooledBlockPosition) super.g(baseblockposition); - } - - public BlockPosition.PooledBlockPosition d(EnumDirection enumdirection) { - return (BlockPosition.PooledBlockPosition) super.c(enumdirection); - } - - public BlockPosition.PooledBlockPosition d(EnumDirection enumdirection, int i) { - return (BlockPosition.PooledBlockPosition) super.c(enumdirection, i); - } - - @Override - public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection, int i) { - return this.d(enumdirection, i); - } - - @Override - public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection) { - return this.d(enumdirection); - } - - @Override - public BlockPosition.MutableBlockPosition g(BaseBlockPosition baseblockposition) { - return this.j(baseblockposition); - } - - @Override - public BlockPosition.MutableBlockPosition c(double d0, double d1, double d2) { - return this.e(d0, d1, d2); - } - - @Override - public BlockPosition.MutableBlockPosition c(int i, int j, int k) { - return this.f(i, j, k); - } - } - - public static class MutableBlockPosition extends BlockPosition { - - // Paper start - Remove variables - /* - protected int b; - protected int c; - protected int d; - // Paper start - @Override - public boolean isValidLocation() { - return b >= -30000000 && d >= -30000000 && b < 30000000 && d < 30000000 && c >= 0 && c < 256; - } - @Override - public boolean isInvalidYLocation() { - return c < 0 || c >= 256; - } - */ - // Paper end - - public MutableBlockPosition() { - this(0, 0, 0); - } - - public MutableBlockPosition(BlockPosition blockposition) { - this(blockposition.getX(), blockposition.getY(), blockposition.getZ()); - } - - public MutableBlockPosition(int i, int j, int k) { - super(0, 0, 0); - // Paper start - Modify base position variables - ((BaseBlockPosition) this).a = i; - ((BaseBlockPosition) this).b = j; - ((BaseBlockPosition) this).c = k; - // Paper end - } - - @Override - public BlockPosition a(double d0, double d1, double d2) { - return super.a(d0, d1, d2).h(); - } - - @Override - public BlockPosition a(int i, int j, int k) { - return super.a(i, j, k).h(); - } - - @Override - public BlockPosition shift(EnumDirection enumdirection, int i) { - return super.shift(enumdirection, i).h(); - } - - @Override - public BlockPosition a(EnumBlockRotation enumblockrotation) { - return super.a(enumblockrotation).h(); - } - - // Paper start - Use superclass methods - /* - public int getX() { - return this.b; - } - - public int getY() { - return this.c; - } - - public int getZ() { - return this.d; - } - */ - // Paper end - - public void setValues(int x, int y, int z) { c(x, y, z); } // Paper - OBFHELPER - public BlockPosition.MutableBlockPosition c(int i, int j, int k) { - // Paper start - Modify base position variables - ((BaseBlockPosition) this).a = i; - ((BaseBlockPosition) this).b = j; - ((BaseBlockPosition) this).c = k; - // Paper end - return this; - } - - public BlockPosition.MutableBlockPosition c(double d0, double d1, double d2) { - return this.c(MathHelper.floor(d0), MathHelper.floor(d1), MathHelper.floor(d2)); - } - - public BlockPosition.MutableBlockPosition g(BaseBlockPosition baseblockposition) { - return this.c(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); - } - - public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection) { - return this.c(enumdirection, 1); - } - - public BlockPosition.MutableBlockPosition c(EnumDirection enumdirection, int i) { - return this.c(this.getX() + enumdirection.getAdjacentX() * i, this.getY() + enumdirection.getAdjacentY() * i, this.getZ() + enumdirection.getAdjacentZ() * i); // Paper - USE THE BLEEPING GETTERS - } - - public void p(int i) { - ((BaseBlockPosition) this).b = i; // Paper - Modify base variable - } - - @Override - public BlockPosition h() { - return new BlockPosition(this); - } - - @Override - public BaseBlockPosition d(BaseBlockPosition baseblockposition) { - return super.c(baseblockposition); - } - } -} diff --git a/sources/src/main/java/net/minecraft/server/Chunk.java b/sources/src/main/java/net/minecraft/server/Chunk.java index fb27e633f..616957287 100644 --- a/sources/src/main/java/net/minecraft/server/Chunk.java +++ b/sources/src/main/java/net/minecraft/server/Chunk.java @@ -5,6 +5,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.Maps; import com.google.common.collect.Queues; import java.util.Arrays; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -33,7 +34,7 @@ public class Chunk { private final byte[] g; private final int[] h; private final boolean[] i; - private boolean j; + private boolean j; public boolean isLoaded() { return j; } // Paper - OBFHELPER public final World world; public final int[] heightMap; public Long scheduledForUnload; // Paper - delay chunk unloads @@ -42,7 +43,36 @@ public class Chunk { private boolean m; public final Map tileEntities; public final List[] entitySlices; // Spigot - final PaperLightingQueue.LightingQueue lightingQueue = new PaperLightingQueue.LightingQueue(this); // Paper + // Paper start + public final co.aikar.util.Counter entityCounts = new co.aikar.util.Counter<>(); + public final co.aikar.util.Counter tileEntityCounts = new co.aikar.util.Counter<>(); + private class TileEntityHashMap extends java.util.HashMap { + @Override + public TileEntity put(BlockPosition key, TileEntity value) { + TileEntity replaced = super.put(key, value); + if (replaced != null) { + replaced.setCurrentChunk(null); + tileEntityCounts.decrement(replaced.tileEntityKeyString); + } + if (value != null) { + value.setCurrentChunk(Chunk.this); + tileEntityCounts.increment(value.tileEntityKeyString); + } + return replaced; + } + + @Override + public TileEntity remove(Object key) { + TileEntity removed = super.remove(key); + if (removed != null) { + removed.setCurrentChunk(null); + tileEntityCounts.decrement(removed.tileEntityKeyString); + } + return removed; + } + } + final PaperLightingQueue.LightingQueue lightingQueue = new PaperLightingQueue.LightingQueue(this); + // Paper end private volatile boolean done; // Akarin - volatile private volatile boolean lit; // Akarin - volatile private volatile boolean r; private boolean isTicked() { return r; }; // Paper - OBFHELPER // Akarin - volatile @@ -97,10 +127,10 @@ public class Chunk { this.g = new byte[256]; this.h = new int[256]; this.i = new boolean[256]; - this.tileEntities = Maps.newHashMap(); + this.tileEntities = new TileEntityHashMap(); // Paper this.x = 4096; this.y = Queues.newConcurrentLinkedQueue(); - this.entitySlices = (new List[16]); // Spigot + this.entitySlices = (List[]) (new List[16]); // Spigot this.world = world; this.locX = i; this.locZ = j; @@ -466,7 +496,6 @@ public class Chunk { return CrashReportSystemDetails.a(i, j, k); } - @Override public Object call() throws Exception { return this.a(); } @@ -675,9 +704,14 @@ public class Chunk { this.entityCount.adjustOrPutValue( creatureType.a(), 1, 1 ); } } + // Paper start + entity.setCurrentChunk(this); + entityCounts.increment(entity.entityKeyString); + // Paper end // Spigot end } + public void removeEntity(Entity entity) { b(entity); } // Paper - OBFHELPER public void b(Entity entity) { this.a(entity, entity.ac); } @@ -714,6 +748,10 @@ public class Chunk { this.entityCount.adjustValue( creatureType.a(), -1 ); } } + // Paper start + entity.setCurrentChunk(null); + entityCounts.decrement(entity.entityKeyString); + // Paper end // Spigot end } @@ -742,7 +780,7 @@ public class Chunk { tileentity = world.capturedTileEntities.get(blockposition); } if (tileentity == null) { - tileentity = this.tileEntities.get(blockposition); + tileentity = (TileEntity) this.tileEntities.get(blockposition); } // CraftBukkit end @@ -774,7 +812,7 @@ public class Chunk { tileentity.setPosition(blockposition); if (this.getBlockData(blockposition).getBlock() instanceof ITileEntity) { if (this.tileEntities.containsKey(blockposition)) { - this.tileEntities.get(blockposition).z(); + ((TileEntity) this.tileEntities.get(blockposition)).z(); } tileentity.A(); @@ -796,6 +834,7 @@ public class Chunk { if (this.world.paperConfig.removeCorruptTEs) { this.removeTileEntity(tileentity.getPosition()); + this.markDirty(); org.bukkit.Bukkit.getLogger().info("Removing corrupt tile entity"); } // Paper end @@ -806,7 +845,7 @@ public class Chunk { public void removeTileEntity(BlockPosition blockposition) { this.d(blockposition); } // Paper - OBFHELPER public void d(BlockPosition blockposition) { if (this.j) { - TileEntity tileentity = this.tileEntities.remove(blockposition); + TileEntity tileentity = (TileEntity) this.tileEntities.remove(blockposition); if (tileentity != null) { tileentity.z(); @@ -824,7 +863,7 @@ public class Chunk { for (int j = 0; j < i; ++j) { List entityslice = aentityslice[j]; // Spigot - this.world.a(entityslice); + this.world.a((Collection) entityslice); } } @@ -838,11 +877,11 @@ public class Chunk { // Spigot Start if ( tileentity instanceof IInventory ) { - for ( org.bukkit.entity.HumanEntity h : Lists.newArrayList(( (IInventory) tileentity ).getViewers() ) ) + for ( org.bukkit.entity.HumanEntity h : Lists.newArrayList((List) ( (IInventory) tileentity ).getViewers() ) ) { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { - ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory(); + ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper } } } @@ -863,11 +902,11 @@ public class Chunk { // Spigot Start if ( entity instanceof IInventory ) { - for ( org.bukkit.entity.HumanEntity h : Lists.newArrayList( ( (IInventory) entity ).getViewers() ) ) + for ( org.bukkit.entity.HumanEntity h : Lists.newArrayList( (List) ( (IInventory) entity ).getViewers() ) ) { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { - ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory(); + ( (org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper } } } @@ -982,7 +1021,7 @@ public class Chunk { } public Random a(long i) { - return new Random(this.world.getSeed() + this.locX * this.locX * 4987142 + this.locX * 5947611 + this.locZ * this.locZ * 4392871L + this.locZ * 389711 ^ i); + return new Random(this.world.getSeed() + (long) (this.locX * this.locX * 4987142) + (long) (this.locX * 5947611) + (long) (this.locZ * this.locZ) * 4392871L + (long) (this.locZ * 389711) ^ i); } public boolean isEmpty() { @@ -1062,7 +1101,7 @@ public class Chunk { random.setSeed(world.getSeed()); long xRand = random.nextLong() / 2L * 2L + 1L; long zRand = random.nextLong() / 2L * 2L + 1L; - random.setSeed(locX * xRand + locZ * zRand ^ world.getSeed()); + random.setSeed((long) locX * xRand + (long) locZ * zRand ^ world.getSeed()); org.bukkit.World world = this.world.getWorld(); if (world != null) { @@ -1123,7 +1162,7 @@ public class Chunk { } while (!this.y.isEmpty()) { - BlockPosition blockposition = this.y.poll(); + BlockPosition blockposition = (BlockPosition) this.y.poll(); if (this.a(blockposition, Chunk.EnumTileEntityState.CHECK) == null && this.getBlockData(blockposition).getBlock().isTileEntity()) { TileEntity tileentity = this.g(blockposition); @@ -1341,7 +1380,7 @@ public class Chunk { for (l = k + 16 - 1; l > this.world.getSeaLevel() || l > 0 && !flag1; --l) { blockposition_mutableblockposition.c(blockposition_mutableblockposition.getX(), l, blockposition_mutableblockposition.getZ()); - int i1 = this.b(blockposition_mutableblockposition); + int i1 = this.b((BlockPosition) blockposition_mutableblockposition); if (i1 == 255 && blockposition_mutableblockposition.getY() < this.world.getSeaLevel()) { flag1 = true; diff --git a/sources/src/main/java/net/minecraft/server/EntityPlayer.java b/sources/src/main/java/net/minecraft/server/EntityPlayer.java index f450043ba..59be76501 100644 --- a/sources/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/sources/src/main/java/net/minecraft/server/EntityPlayer.java @@ -129,7 +129,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (worldserver.worldProvider.m() && worldserver.getWorldData().getGameType() != EnumGamemode.ADVENTURE) { int i = Math.max(0, minecraftserver.a(worldserver)); - int j = MathHelper.floor(worldserver.getWorldBorder().b(blockposition.getX(), blockposition.getZ())); + int j = MathHelper.floor(worldserver.getWorldBorder().b((double) blockposition.getX(), (double) blockposition.getZ())); if (j < i) { i = j; @@ -146,7 +146,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit end - @Override public void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); if (this.locY > 300) this.locY = 257; // Paper - bring down to a saner Y level if out of world @@ -174,7 +173,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public static void a(DataConverterManager dataconvertermanager) { dataconvertermanager.a(DataConverterTypes.PLAYER, new DataInspector() { - @Override public NBTTagCompound a(DataConverter dataconverter, NBTTagCompound nbttagcompound, int i) { if (nbttagcompound.hasKeyOfType("RootVehicle", 10)) { NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("RootVehicle"); @@ -189,7 +187,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { }); } - @Override public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); nbttagcompound.setInt("playerGameType", this.playerInteractManager.getGameMode().getId()); @@ -221,7 +218,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit start - World fallback code, either respawn location or global spawn - @Override public void spawnIn(World world) { super.spawnIn(world); if (world == null) { @@ -246,13 +242,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit end - @Override public void levelDown(int i) { super.levelDown(i); this.lastSentExp = -1; } - @Override public void enchantDone(ItemStack itemstack, int i) { super.enchantDone(itemstack, i); this.lastSentExp = -1; @@ -262,29 +256,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.activeContainer.addSlotListener(this); } - @Override public void enterCombat() { super.enterCombat(); this.playerConnection.sendPacket(new PacketPlayOutCombatEvent(this.getCombatTracker(), PacketPlayOutCombatEvent.EnumCombatEventType.ENTER_COMBAT)); } - @Override public void exitCombat() { super.exitCombat(); this.playerConnection.sendPacket(new PacketPlayOutCombatEvent(this.getCombatTracker(), PacketPlayOutCombatEvent.EnumCombatEventType.END_COMBAT)); } - @Override protected void a(IBlockData iblockdata) { CriterionTriggers.d.a(this, iblockdata); } - @Override protected ItemCooldown l() { return new ItemCooldownPlayer(this); } - @Override public void B_() { // CraftBukkit start if (this.joining) { @@ -304,7 +293,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // Paper end if (!this.world.isClientSide && !this.activeContainer.canUse(this)) { - this.closeInventory(); + this.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper this.activeContainer = this.defaultContainer; } @@ -359,7 +348,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { ItemStack itemstack = this.inventory.getItem(i); if (!itemstack.isEmpty() && itemstack.getItem().f()) { - Packet packet = ((ItemWorldMapBase) itemstack.getItem()).a(itemstack, this.world, this); + Packet packet = ((ItemWorldMapBase) itemstack.getItem()).a(itemstack, this.world, (EntityHuman) this); if (packet != null) { this.playerConnection.sendPacket(packet); @@ -425,7 +414,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } if (this.oldLevel != this.expLevel) { - CraftEventFactory.callPlayerLevelChangeEvent(this.world.getServer().getPlayer(this), this.oldLevel, this.expLevel); + CraftEventFactory.callPlayerLevelChangeEvent(this.world.getServer().getPlayer((EntityPlayer) this), this.oldLevel, this.expLevel); this.oldLevel = this.expLevel; } // CraftBukkit end @@ -450,7 +439,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void die(DamageSource damagesource) { boolean flag = this.world.getGameRules().getBoolean("showDeathMessages"); @@ -483,9 +471,9 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (scoreboardteambase != null && scoreboardteambase.getDeathMessageVisibility() != ScoreboardTeamBase.EnumNameTagVisibility.ALWAYS) { if (scoreboardteambase.getDeathMessageVisibility() == ScoreboardTeamBase.EnumNameTagVisibility.HIDE_FOR_OTHER_TEAMS) { - this.server.getPlayerList().a(this, chatmessage); + this.server.getPlayerList().a((EntityHuman) this, chatmessage); } else if (scoreboardteambase.getDeathMessageVisibility() == ScoreboardTeamBase.EnumNameTagVisibility.HIDE_FOR_OWN_TEAM) { - this.server.getPlayerList().b(this, chatmessage); + this.server.getPlayerList().b((EntityHuman) this, chatmessage); } } else { this.server.getPlayerList().sendMessage(chatmessage); @@ -501,7 +489,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.inventory.clear(); } - this.closeInventory(); + this.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DEATH); // Paper this.setSpectatorTarget(this); // Remove spectated target // CraftBukkit end @@ -518,7 +506,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { EntityLiving entityliving = this.ci(); if (entityliving != null) { - EntityTypes.MonsterEggInfo entitytypes_monsteregginfo = EntityTypes.eggInfo.get(EntityTypes.a(entityliving)); + EntityTypes.MonsterEggInfo entitytypes_monsteregginfo = (EntityTypes.MonsterEggInfo) EntityTypes.eggInfo.get(EntityTypes.a((Entity) entityliving)); if (entitytypes_monsteregginfo != null) { this.b(entitytypes_monsteregginfo.killedByEntityStatistic); @@ -534,7 +522,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.getCombatTracker().g(); } - @Override public void a(Entity entity, int i, DamageSource damagesource) { if (entity != this) { super.a(entity, i, damagesource); @@ -603,7 +590,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return Lists.newArrayList(); } - @Override public boolean damageEntity(DamageSource damagesource, float f) { if (this.isInvulnerable(damagesource)) { return false; @@ -634,7 +620,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public boolean a(EntityHuman entityhuman) { return !this.canPvP() ? false : super.a(entityhuman); } @@ -644,7 +629,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return this.world.pvpMode; } - @Override @Nullable public Entity b(int i) { if (this.isSleeping()) return this; // CraftBukkit - SPIGOT-3154 @@ -683,7 +667,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public boolean a(EntityPlayer entityplayer) { return entityplayer.isSpectator() ? this.getSpecatorTarget() == this : (this.isSpectator() ? false : super.a(entityplayer)); } @@ -699,13 +682,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void receive(Entity entity, int i) { super.receive(entity, i); this.activeContainer.b(); } - @Override public EntityHuman.EnumBedResult a(BlockPosition blockposition) { EntityHuman.EnumBedResult entityhuman_enumbedresult = super.a(blockposition); @@ -713,7 +694,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.b(StatisticList.ab); PacketPlayOutBed packetplayoutbed = new PacketPlayOutBed(this, blockposition); - this.x().getTracker().a(this, packetplayoutbed); + this.x().getTracker().a((Entity) this, (Packet) packetplayoutbed); this.playerConnection.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); this.playerConnection.sendPacket(packetplayoutbed); CriterionTriggers.p.a(this); @@ -722,7 +703,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return entityhuman_enumbedresult; } - @Override public void a(boolean flag, boolean flag1, boolean flag2) { if (!this.sleeping) return; // CraftBukkit - Can't leave bed if not in one! if (this.isSleeping()) { @@ -736,7 +716,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public boolean a(Entity entity, boolean flag) { Entity entity1 = this.bJ(); @@ -753,7 +732,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public void stopRiding() { Entity entity = this.bJ(); @@ -773,15 +751,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public boolean isInvulnerable(DamageSource damagesource) { return super.isInvulnerable(damagesource) || this.L(); } - @Override protected void a(double d0, boolean flag, IBlockData iblockdata, BlockPosition blockposition) {} - @Override protected void b(BlockPosition blockposition) { if (!this.isSpectator()) { super.b(blockposition); @@ -810,9 +785,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { super.a(d0, flag, iblockdata, blockposition); } - @Override public void openSign(TileEntitySign tileentitysign) { - tileentitysign.a(this); + tileentitysign.a((EntityHuman) this); this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } @@ -821,7 +795,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return containerCounter; // CraftBukkit } - @Override public void openTileEntity(ITileEntityContainer itileentitycontainer) { // CraftBukkit start - Inventory open hook if (false && itileentitycontainer instanceof ILootable && ((ILootable) itileentitycontainer).b() != null && this.isSpectator()) { @@ -841,7 +814,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public void openContainer(IInventory iinventory) { // CraftBukkit start - Inventory open hook // Copied from below @@ -871,7 +843,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.a((new ChatMessage("container.spectatorCantOpen", new Object[0])).setChatModifier((new ChatModifier()).setColor(EnumChatFormat.RED)), true); } else { if (this.activeContainer != this.defaultContainer) { - this.closeInventory(); + this.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper } if (iinventory instanceof ITileInventory) { @@ -901,7 +873,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public void openTrade(IMerchant imerchant) { // CraftBukkit start - Inventory open hook Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerMerchant(this.inventory, imerchant, this.world)); @@ -929,7 +900,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void openHorseInventory(EntityHorseAbstract entityhorseabstract, IInventory iinventory) { // CraftBukkit start - Inventory open hook Container container = CraftEventFactory.callInventoryOpenEvent(this, new ContainerHorse(this.inventory, iinventory, entityhorseabstract, this)); @@ -939,7 +909,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit end if (this.activeContainer != this.defaultContainer) { - this.closeInventory(); + this.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper } this.nextContainerCounter(); @@ -949,26 +919,23 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.activeContainer.addSlotListener(this); } - @Override public void a(ItemStack itemstack, EnumHand enumhand) { Item item = itemstack.getItem(); if (item == Items.WRITTEN_BOOK) { PacketDataSerializer packetdataserializer = new PacketDataSerializer(Unpooled.buffer()); - packetdataserializer.a(enumhand); + packetdataserializer.a((Enum) enumhand); this.playerConnection.sendPacket(new PacketPlayOutCustomPayload("MC|BOpen", packetdataserializer)); } } - @Override public void a(TileEntityCommand tileentitycommand) { tileentitycommand.c(true); this.a((TileEntity) tileentitycommand); } - @Override public void a(Container container, int i, ItemStack itemstack) { if (!(container.getSlot(i) instanceof SlotResult)) { if (container == this.defaultContainer) { @@ -985,7 +952,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.a(container, container.a()); } - @Override public void a(Container container, NonNullList nonnulllist) { this.playerConnection.sendPacket(new PacketPlayOutWindowItems(container.windowId, nonnulllist)); this.playerConnection.sendPacket(new PacketPlayOutSetSlot(-1, -1, this.inventory.getCarried())); @@ -996,12 +962,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { // CraftBukkit end } - @Override public void setContainerData(Container container, int i, int j) { this.playerConnection.sendPacket(new PacketPlayOutWindowData(container.windowId, i, j)); } - @Override public void setContainerData(Container container, IInventory iinventory) { for (int i = 0; i < iinventory.h(); ++i) { this.playerConnection.sendPacket(new PacketPlayOutWindowData(container.windowId, i, iinventory.getProperty(i))); @@ -1009,9 +973,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void closeInventory() { - CraftEventFactory.handleInventoryCloseEvent(this); // CraftBukkit + // Paper start + closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNKNOWN); + } + public void closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + CraftEventFactory.handleInventoryCloseEvent(this, reason); // CraftBukkit + // Paper end this.playerConnection.sendPacket(new PacketPlayOutCloseWindow(this.activeContainer.windowId)); this.r(); } @@ -1023,7 +991,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } public void r() { - this.activeContainer.b(this); + this.activeContainer.b((EntityHuman) this); this.activeContainer = this.defaultContainer; } @@ -1043,7 +1011,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void a(Statistic statistic, int i) { if (statistic != null) { this.bZ.b(this, statistic, i); @@ -1058,7 +1025,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public void a(Statistic statistic) { if (statistic != null) { this.bZ.setStatistic(this, statistic, 0); @@ -1073,12 +1039,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } } - @Override public void a(List list) { this.cr.a(list, this); } - @Override public void a(MinecraftKey[] aminecraftkey) { ArrayList arraylist = Lists.newArrayList(); MinecraftKey[] aminecraftkey1 = aminecraftkey; @@ -1099,7 +1063,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.a((List) arraylist); // CraftBukkit - decompile error } - @Override public void b(List list) { this.cr.b(list, this); } @@ -1130,12 +1093,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit end - @Override public void a(IChatBaseComponent ichatbasecomponent, boolean flag) { this.playerConnection.sendPacket(new PacketPlayOutChat(ichatbasecomponent, flag ? ChatMessageType.GAME_INFO : ChatMessageType.CHAT)); } - @Override protected void v() { if (!this.activeItem.isEmpty() && this.isHandRaised()) { this.playerConnection.sendPacket(new PacketPlayOutEntityStatus(this, (byte) 9)); @@ -1182,7 +1143,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.setShoulderEntityRight(entityplayer.getShoulderEntityRight()); } - @Override protected void a(MobEffect mobeffect) { super.a(mobeffect); this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect)); @@ -1194,14 +1154,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting { CriterionTriggers.z.a(this); } - @Override protected void a(MobEffect mobeffect, boolean flag) { super.a(mobeffect, flag); this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect)); CriterionTriggers.z.a(this); } - @Override protected void b(MobEffect mobeffect) { super.b(mobeffect); this.playerConnection.sendPacket(new PacketPlayOutRemoveEntityEffect(this.getId(), mobeffect.getMobEffect())); @@ -1212,22 +1170,18 @@ public class EntityPlayer extends EntityHuman implements ICrafting { CriterionTriggers.z.a(this); } - @Override public void enderTeleportTo(double d0, double d1, double d2) { this.playerConnection.a(d0, d1, d2, this.yaw, this.pitch); } - @Override public void a(Entity entity) { this.x().getTracker().sendPacketToEntity(this, new PacketPlayOutAnimation(entity, 4)); } - @Override public void b(Entity entity) { this.x().getTracker().sendPacketToEntity(this, new PacketPlayOutAnimation(entity, 5)); } - @Override public void updateAbilities() { if (this.playerConnection != null) { this.playerConnection.sendPacket(new PacketPlayOutAbilities(this.abilities)); @@ -1239,7 +1193,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return (WorldServer) this.world; } - @Override public void a(EnumGamemode enumgamemode) { // CraftBukkit start if (enumgamemode == this.playerInteractManager.getGameMode()) { @@ -1254,7 +1207,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { // CraftBukkit end this.playerInteractManager.setGameMode(enumgamemode); - this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(3, enumgamemode.getId())); + this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(3, (float) enumgamemode.getId())); if (enumgamemode == EnumGamemode.SPECTATOR) { this.releaseShoulderEntities(); this.stopRiding(); @@ -1266,22 +1219,18 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.cE(); } - @Override public boolean isSpectator() { return this.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR; } - @Override public boolean z() { return this.playerInteractManager.getGameMode() == EnumGamemode.CREATIVE; } - @Override public void sendMessage(IChatBaseComponent ichatbasecomponent) { this.playerConnection.sendPacket(new PacketPlayOutChat(ichatbasecomponent)); } - @Override public boolean a(int i, String s) { /* CraftBukkit start if ("seed".equals(s) && !this.server.aa()) { @@ -1354,7 +1303,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.playerConnection.sendPacket(new PacketPlayOutResourcePackSend(s, s1)); } - @Override public BlockPosition getChunkCoordinates() { return new BlockPosition(this.locX, this.locY + 0.5D, this.locZ); } @@ -1384,7 +1332,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.removeQueue.remove(Integer.valueOf(entity.getId())); } - @Override protected void G() { if (this.isSpectator()) { this.bY(); @@ -1397,13 +1344,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } public Entity getSpecatorTarget() { - return this.co == null ? this : this.co; + return (Entity) (this.co == null ? this : this.co); } public void setSpectatorTarget(Entity entity) { Entity entity1 = this.getSpecatorTarget(); - this.co = entity == null ? this : entity; + this.co = (Entity) (entity == null ? this : entity); if (entity1 != this.co) { this.playerConnection.sendPacket(new PacketPlayOutCamera(this.co)); this.playerConnection.a(this.co.locX, this.co.locY, this.co.locZ, this.yaw, this.pitch, TeleportCause.SPECTATE); // CraftBukkit @@ -1411,7 +1358,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override protected void I() { if (this.portalCooldown > 0 && !this.worldChangeInvuln) { --this.portalCooldown; @@ -1419,7 +1365,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } - @Override public void attack(Entity entity) { if (this.playerInteractManager.getGameMode() == EnumGamemode.SPECTATOR) { this.setSpectatorTarget(entity); @@ -1438,7 +1383,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return listName; // CraftBukkit } - @Override public void a(EnumHand enumhand) { super.a(enumhand); this.ds(); diff --git a/sources/src/main/java/net/minecraft/server/PlayerConnection.java b/sources/src/main/java/net/minecraft/server/PlayerConnection.java index c75ba3ca7..2d1d3d290 100644 --- a/sources/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/sources/src/main/java/net/minecraft/server/PlayerConnection.java @@ -146,7 +146,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { private final static HashSet invalidItems = new HashSet(java.util.Arrays.asList(8, 9, 10, 11, 26, 34, 36, 43, 51, 55, 59, 62, 63, 64, 68, 71, 74, 75, 83, 90, 92, 93, 94, 104, 105, 115, 117, 118, 119, 125, 127, 132, 140, 141, 142, 144)); // TODO: Check after every update. // CraftBukkit end - @Override public void e() { this.syncPosition(); this.player.playerTick(); @@ -189,7 +188,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } this.minecraftServer.methodProfiler.a("keepAlive"); - /* // Akarin start + /* // Akarin // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings // This should effectively place the keepalive handling back to "as it was" before 1.12.2 long currentTime = this.getCurrentMillis(); @@ -209,7 +208,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } // Paper end - */ // Akarin end + */ // Akarin this.minecraftServer.methodProfiler.b(); // CraftBukkit start @@ -225,7 +224,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { --this.j; } - if (this.player.J() > 0L && this.minecraftServer.getIdleTimeout() > 0 && MinecraftServer.aw() - this.player.J() > this.minecraftServer.getIdleTimeout() * 1000 * 60) { + if (this.player.J() > 0L && this.minecraftServer.getIdleTimeout() > 0 && MinecraftServer.aw() - this.player.J() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) { this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854 this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0])); } @@ -275,7 +274,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { final ChatComponentText chatcomponenttext = new ChatComponentText(s); this.networkManager.sendPacket(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener() { - @Override public void operationComplete(Future future) throws Exception { // CraftBukkit - decompile error PlayerConnection.this.networkManager.close(chatcomponenttext); } @@ -284,14 +282,12 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.networkManager.stopReading(); // CraftBukkit - Don't wait this.minecraftServer.postToMainThread(new Runnable() { - @Override public void run() { PlayerConnection.this.networkManager.handleDisconnection(); } }); } - @Override public void a(PacketPlayInSteerVehicle packetplayinsteervehicle) { PlayerConnectionUtils.ensureMainThread(packetplayinsteervehicle, this, this.player.x()); this.player.a(packetplayinsteervehicle.a(), packetplayinsteervehicle.b(), packetplayinsteervehicle.c(), packetplayinsteervehicle.d()); @@ -305,7 +301,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { return !Doubles.isFinite(packetplayinvehiclemove.getX()) || !Doubles.isFinite(packetplayinvehiclemove.getY()) || !Doubles.isFinite(packetplayinvehiclemove.getZ()) || !Floats.isFinite(packetplayinvehiclemove.getPitch()) || !Floats.isFinite(packetplayinvehiclemove.getYaw()); } - @Override public void a(PacketPlayInVehicleMove packetplayinvehiclemove) { PlayerConnectionUtils.ensureMainThread(packetplayinvehiclemove, this, this.player.x()); if (b(packetplayinvehiclemove)) { @@ -355,7 +350,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } speed *= 2f; // TODO: Get the speed of the vehicle instead of the player - if (d10 - d9 > Math.max(100.0D, Math.pow(org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * i * speed, 2)) && (!this.minecraftServer.R() || !this.minecraftServer.Q().equals(entity.getName()))) { // Spigot + if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && (!this.minecraftServer.R() || !this.minecraftServer.Q().equals(entity.getName()))) { // Spigot // CraftBukkit end PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", entity.getName(), this.player.getName(), Double.valueOf(d6), Double.valueOf(d7), Double.valueOf(d8)); this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity)); @@ -473,7 +468,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } - @Override public void a(PacketPlayInTeleportAccept packetplayinteleportaccept) { PlayerConnectionUtils.ensureMainThread(packetplayinteleportaccept, this, this.player.x()); if (packetplayinteleportaccept.a() == this.teleportAwait && this.teleportPos != null) { // CraftBukkit @@ -490,7 +484,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInRecipeDisplayed packetplayinrecipedisplayed) { PlayerConnectionUtils.ensureMainThread(packetplayinrecipedisplayed, this, this.player.x()); if (packetplayinrecipedisplayed.a() == PacketPlayInRecipeDisplayed.Status.SHOWN) { @@ -502,7 +495,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInAdvancements packetplayinadvancements) { PlayerConnectionUtils.ensureMainThread(packetplayinadvancements, this, this.player.x()); if (packetplayinadvancements.b() == PacketPlayInAdvancements.Status.OPENED_TAB) { @@ -516,7 +508,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInFlying packetplayinflying) { PlayerConnectionUtils.ensureMainThread(packetplayinflying, this, this.player.x()); if (b(packetplayinflying)) { @@ -598,7 +589,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (!this.player.L() && (!this.player.x().getGameRules().getBoolean("disableElytraMovementCheck") || !this.player.cP())) { float f2 = this.player.cP() ? 300.0F : 100.0F; - if (d11 - d10 > Math.max(f2, Math.pow(org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * i * speed, 2)) && (!this.minecraftServer.R() || !this.minecraftServer.Q().equals(this.player.getName()))) { // Spigot + if (d11 - d10 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && (!this.minecraftServer.R() || !this.minecraftServer.Q().equals(this.player.getName()))) { // Spigot // CraftBukkit end PlayerConnection.LOGGER.warn("{} moved too quickly! {},{},{}", this.player.getName(), Double.valueOf(d7), Double.valueOf(d8), Double.valueOf(d9)); this.a(this.player.locX, this.player.locY, this.player.locZ, this.player.yaw, this.player.pitch); @@ -855,7 +846,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.player.playerConnection.sendPacket(new PacketPlayOutPosition(d0, d1, d2, f, f1, set, this.teleportAwait)); } - @Override public void a(PacketPlayInBlockDig packetplayinblockdig) { PlayerConnectionUtils.ensureMainThread(packetplayinblockdig, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -918,9 +908,9 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { case START_DESTROY_BLOCK: case ABORT_DESTROY_BLOCK: case STOP_DESTROY_BLOCK: - double d0 = this.player.locX - (blockposition.getX() + 0.5D); - double d1 = this.player.locY - (blockposition.getY() + 0.5D) + 1.5D; - double d2 = this.player.locZ - (blockposition.getZ() + 0.5D); + double d0 = this.player.locX - ((double) blockposition.getX() + 0.5D); + double d1 = this.player.locY - ((double) blockposition.getY() + 0.5D) + 1.5D; + double d2 = this.player.locZ - ((double) blockposition.getZ() + 0.5D); double d3 = d0 * d0 + d1 * d1 + d2 * d2; if (d3 > 36.0D) { @@ -984,7 +974,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } // Spigot end - @Override public void a(PacketPlayInUseItem packetplayinuseitem) { PlayerConnectionUtils.ensureMainThread(packetplayinuseitem, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -1001,7 +990,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { chatmessage.getChatModifier().setColor(EnumChatFormat.RED); this.player.playerConnection.sendPacket(new PacketPlayOutChat(chatmessage, ChatMessageType.GAME_INFO)); - } else if (this.teleportPos == null && this.player.d(blockposition.getX() + 0.5D, blockposition.getY() + 0.5D, blockposition.getZ() + 0.5D) < 64.0D && !this.minecraftServer.a(worldserver, blockposition, this.player) && worldserver.getWorldBorder().a(blockposition)) { + } else if (this.teleportPos == null && this.player.d((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && !this.minecraftServer.a(worldserver, blockposition, this.player) && worldserver.getWorldBorder().a(blockposition)) { // CraftBukkit start - Check if we can actually do something over this large a distance Location eyeLoc = this.getPlayer().getEyeLocation(); double reachDistance = NumberConversions.square(eyeLoc.getX() - blockposition.getX()) + NumberConversions.square(eyeLoc.getY() - blockposition.getY()) + NumberConversions.square(eyeLoc.getZ() - blockposition.getZ()); @@ -1016,7 +1005,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(worldserver, blockposition.shift(enumdirection))); } - @Override public void a(PacketPlayInBlockPlace packetplayinblockplace) { PlayerConnectionUtils.ensureMainThread(packetplayinblockplace, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -1032,7 +1020,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { float f1 = this.player.pitch; float f2 = this.player.yaw; double d0 = this.player.locX; - double d1 = this.player.locY + this.player.getHeadHeight(); + double d1 = this.player.locY + (double) this.player.getHeadHeight(); double d2 = this.player.locZ; Vec3D vec3d = new Vec3D(d0, d1, d2); @@ -1043,7 +1031,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { float f7 = f4 * f5; float f8 = f3 * f5; double d3 = player.playerInteractManager.getGameMode()== EnumGamemode.CREATIVE ? 5.0D : 4.5D; - Vec3D vec3d1 = vec3d.add(f7 * d3, f6 * d3, f8 * d3); + Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); MovingObjectPosition movingobjectposition = this.player.world.rayTrace(vec3d, vec3d1, false); boolean cancelled; @@ -1069,7 +1057,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } - @Override public void a(PacketPlayInSpectate packetplayinspectate) { PlayerConnectionUtils.ensureMainThread(packetplayinspectate, this, this.player.x()); if (this.player.isSpectator()) { @@ -1127,7 +1114,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } // CraftBukkit start - @Override public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) { PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.x()); // Paper start @@ -1139,7 +1125,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } // CraftBukkit end - @Override public void a(PacketPlayInBoatMove packetplayinboatmove) { PlayerConnectionUtils.ensureMainThread(packetplayinboatmove, this, this.player.x()); Entity entity = this.player.bJ(); @@ -1150,7 +1135,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(IChatBaseComponent ichatbasecomponent) { // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { @@ -1216,7 +1200,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { return packet.getClass().getCanonicalName(); } - @Override public Object call() throws Exception { return this.a(); } @@ -1225,7 +1208,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } - @Override public void a(PacketPlayInHeldItemSlot packetplayinhelditemslot) { PlayerConnectionUtils.ensureMainThread(packetplayinhelditemslot, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -1246,7 +1228,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } - @Override public void a(PacketPlayInChat packetplayinchat) { // CraftBukkit start - async chat // SPIGOT-3638 @@ -1387,6 +1368,8 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // Paper Start if (!org.spigotmc.AsyncCatcher.shuttingDown && !Akari.isPrimaryThread()) { // Akarin final String fCommandLine = s; + Akari.callbackQueue.add(() -> chat(fCommandLine, false)); // Akarin + /* // Akarin MinecraftServer.LOGGER.log(org.apache.logging.log4j.Level.ERROR, "Command Dispatched Async: " + fCommandLine); MinecraftServer.LOGGER.log(org.apache.logging.log4j.Level.ERROR, "Please notify author of plugin causing this execution to fix this bug! see: http://bit.ly/1oSiM6C", new Throwable()); Waitable wait = new Waitable() { @@ -1405,6 +1388,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } catch (Exception e) { throw new RuntimeException("Exception processing chat command", e.getCause()); } + */ // Akarin } // Paper End this.handleCommand(s); @@ -1513,7 +1497,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // CraftBukkit end } - @Override public void a(PacketPlayInArmAnimation packetplayinarmanimation) { PlayerConnectionUtils.ensureMainThread(packetplayinarmanimation, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -1522,7 +1505,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { float f1 = this.player.pitch; float f2 = this.player.yaw; double d0 = this.player.locX; - double d1 = this.player.locY + this.player.getHeadHeight(); + double d1 = this.player.locY + (double) this.player.getHeadHeight(); double d2 = this.player.locZ; Vec3D vec3d = new Vec3D(d0, d1, d2); @@ -1533,7 +1516,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { float f7 = f4 * f5; float f8 = f3 * f5; double d3 = player.playerInteractManager.getGameMode()== EnumGamemode.CREATIVE ? 5.0D : 4.5D; - Vec3D vec3d1 = vec3d.add(f7 * d3, f6 * d3, f8 * d3); + Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); MovingObjectPosition movingobjectposition = this.player.world.rayTrace(vec3d, vec3d1, false); if (movingobjectposition == null || movingobjectposition.type != MovingObjectPosition.EnumMovingObjectType.BLOCK) { @@ -1549,7 +1532,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.player.a(packetplayinarmanimation.a()); } - @Override public void a(PacketPlayInEntityAction packetplayinentityaction) { PlayerConnectionUtils.ensureMainThread(packetplayinentityaction, this, this.player.x()); // CraftBukkit start @@ -1651,12 +1633,11 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInUseEntity packetplayinuseentity) { PlayerConnectionUtils.ensureMainThread(packetplayinuseentity, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension); - Entity entity = packetplayinuseentity.a(worldserver); + Entity entity = packetplayinuseentity.a((World) worldserver); // Spigot Start if ( entity == player && !player.isSpectator() ) { @@ -1686,10 +1667,10 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { Item origItem = this.player.inventory.getItemInHand() == null ? null : this.player.inventory.getItemInHand().getItem(); PlayerInteractEntityEvent event; if (packetplayinuseentity.a() == PacketPlayInUseEntity.EnumEntityUseAction.INTERACT) { - event = new PlayerInteractEntityEvent(this.getPlayer(), entity.getBukkitEntity(), (packetplayinuseentity.b() == EnumHand.OFF_HAND) ? EquipmentSlot.OFF_HAND : EquipmentSlot.HAND); + event = new PlayerInteractEntityEvent((Player) this.getPlayer(), entity.getBukkitEntity(), (packetplayinuseentity.b() == EnumHand.OFF_HAND) ? EquipmentSlot.OFF_HAND : EquipmentSlot.HAND); } else { Vec3D target = packetplayinuseentity.c(); - event = new PlayerInteractAtEntityEvent(this.getPlayer(), entity.getBukkitEntity(), new org.bukkit.util.Vector(target.x, target.y, target.z), (packetplayinuseentity.b() == EnumHand.OFF_HAND) ? EquipmentSlot.OFF_HAND : EquipmentSlot.HAND); + event = new PlayerInteractAtEntityEvent((Player) this.getPlayer(), entity.getBukkitEntity(), new org.bukkit.util.Vector(target.x, target.y, target.z), (packetplayinuseentity.b() == EnumHand.OFF_HAND) ? EquipmentSlot.OFF_HAND : EquipmentSlot.HAND); } this.server.getPluginManager().callEvent(event); @@ -1755,7 +1736,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInClientCommand packetplayinclientcommand) { PlayerConnectionUtils.ensureMainThread(packetplayinclientcommand, this, this.player.x()); this.player.resetIdleTimer(); @@ -1787,17 +1767,15 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInCloseWindow packetplayinclosewindow) { PlayerConnectionUtils.ensureMainThread(packetplayinclosewindow, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit - CraftEventFactory.handleInventoryCloseEvent(this.player); // CraftBukkit + CraftEventFactory.handleInventoryCloseEvent(this.player, org.bukkit.event.inventory.InventoryCloseEvent.Reason.PLAYER); // CraftBukkit // Paper this.player.r(); } - @Override public void a(PacketPlayInWindowClick packetplayinwindowclick) { PlayerConnectionUtils.ensureMainThread(packetplayinwindowclick, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -1808,7 +1786,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { NonNullList nonnulllist = NonNullList.a(); for (int i = 0; i < this.player.activeContainer.slots.size(); ++i) { - nonnulllist.add(this.player.activeContainer.slots.get(i).getItem()); + nonnulllist.add(((Slot) this.player.activeContainer.slots.get(i)).getItem()); } this.player.a(this.player.activeContainer, nonnulllist); @@ -2094,7 +2072,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { NonNullList nonnulllist1 = NonNullList.a(); for (int j = 0; j < this.player.activeContainer.slots.size(); ++j) { - ItemStack itemstack1 = this.player.activeContainer.slots.get(j).getItem(); + ItemStack itemstack1 = ((Slot) this.player.activeContainer.slots.get(j)).getItem(); ItemStack itemstack2 = itemstack1.isEmpty() ? ItemStack.a : itemstack1; nonnulllist1.add(itemstack2); @@ -2107,7 +2085,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInAutoRecipe packetplayinautorecipe) { PlayerConnectionUtils.ensureMainThread(packetplayinautorecipe, this, this.player.x()); this.player.resetIdleTimer(); @@ -2116,7 +2093,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } - @Override public void a(PacketPlayInEnchantItem packetplayinenchantitem) { PlayerConnectionUtils.ensureMainThread(packetplayinenchantitem, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -2128,7 +2104,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInSetCreativeSlot packetplayinsetcreativeslot) { PlayerConnectionUtils.ensureMainThread(packetplayinsetcreativeslot, this, this.player.x()); if (this.player.playerInteractManager.isCreative()) { @@ -2148,7 +2123,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { nbttagcompound1.remove("x"); nbttagcompound1.remove("y"); nbttagcompound1.remove("z"); - itemstack.a("BlockEntityTag", nbttagcompound1); + itemstack.a("BlockEntityTag", (NBTBase) nbttagcompound1); } } } @@ -2214,11 +2189,10 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInTransaction packetplayintransaction) { PlayerConnectionUtils.ensureMainThread(packetplayintransaction, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit - Short oshort = this.k.get(this.player.activeContainer.windowId); + Short oshort = (Short) this.k.get(this.player.activeContainer.windowId); if (oshort != null && packetplayintransaction.b() == oshort.shortValue() && this.player.activeContainer.windowId == packetplayintransaction.a() && !this.player.activeContainer.c(this.player) && !this.player.isSpectator()) { this.player.activeContainer.a(this.player, true); @@ -2226,7 +2200,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInUpdateSign packetplayinupdatesign) { PlayerConnectionUtils.ensureMainThread(packetplayinupdatesign, this, this.player.x()); if (this.player.isFrozen()) return; // CraftBukkit @@ -2262,7 +2235,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { for (int i = 0; i < astring.length; ++i) { lines[i] = SharedConstants.a(astring[i]); //Paper - Replaced with anvil color stripping method to stop exploits that allow colored signs to be created. } - SignChangeEvent event = new SignChangeEvent(player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines); + SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines); this.server.getPluginManager().callEvent(event); if (!event.isCancelled()) { @@ -2277,7 +2250,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } - @Override public void a(PacketPlayInKeepAlive packetplayinkeepalive) { //PlayerConnectionUtils.ensureMainThread(packetplayinkeepalive, this, this.player.x()); // CraftBukkit // Paper - This shouldn't be on the main thread if (this.g && packetplayinkeepalive.a() == this.h) { @@ -2302,7 +2274,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { return System.nanoTime() / 1000000L; } - @Override public void a(PacketPlayInAbilities packetplayinabilities) { PlayerConnectionUtils.ensureMainThread(packetplayinabilities, this, this.player.x()); // CraftBukkit start @@ -2319,7 +2290,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } // Paper start - async tab completion - @Override public void a(PacketPlayInTabComplete packet) { // CraftBukkit start if (chatSpamField.addAndGet(this, 10) > 500 && !this.minecraftServer.getPlayerList().isOp(this.player.getProfile())) { @@ -2366,13 +2336,11 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // Paper end } - @Override public void a(PacketPlayInSettings packetplayinsettings) { PlayerConnectionUtils.ensureMainThread(packetplayinsettings, this, this.player.x()); this.player.a(packetplayinsettings); } - @Override public void a(PacketPlayInCustomPayload packetplayincustompayload) { PlayerConnectionUtils.ensureMainThread(packetplayincustompayload, this, this.player.x()); String s = packetplayincustompayload.a(); @@ -2407,7 +2375,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (itemstack.getItem() == Items.WRITABLE_BOOK && itemstack.getItem() == itemstack1.getItem()) { itemstack1 = new ItemStack(Items.WRITABLE_BOOK); // CraftBukkit - itemstack1.a("pages", itemstack.getTag().getList("pages", 8)); + itemstack1.a("pages", (NBTBase) itemstack.getTag().getList("pages", 8)); CraftEventFactory.handleEditBookEvent(player, itemstack1); // CraftBukkit } } catch (Exception exception) { @@ -2444,19 +2412,19 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (itemstack.getItem() == Items.WRITABLE_BOOK && itemstack1.getItem() == Items.WRITABLE_BOOK) { ItemStack itemstack2 = new ItemStack(Items.WRITTEN_BOOK); - itemstack2.a("author", (new NBTTagString(this.player.getName()))); - itemstack2.a("title", (new NBTTagString(itemstack.getTag().getString("title")))); + itemstack2.a("author", (NBTBase) (new NBTTagString(this.player.getName()))); + itemstack2.a("title", (NBTBase) (new NBTTagString(itemstack.getTag().getString("title")))); NBTTagList nbttaglist = itemstack.getTag().getList("pages", 8); for (int i = 0; i < nbttaglist.size(); ++i) { s1 = nbttaglist.getString(i); ChatComponentText chatcomponenttext = new ChatComponentText(s1); - s1 = IChatBaseComponent.ChatSerializer.a(chatcomponenttext); + s1 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext); nbttaglist.a(i, new NBTTagString(s1)); } - itemstack2.a("pages", nbttaglist); + itemstack2.a("pages", (NBTBase) nbttaglist); CraftEventFactory.handleEditBookEvent(player, itemstack2); // CraftBukkit } } catch (Exception exception1) { @@ -2554,7 +2522,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { boolean flag3 = packetdataserializer.readBoolean(); if (commandblocklistenerabstract1 != null) { - EnumDirection enumdirection = this.player.world.getType(blockposition).get(BlockCommand.a); + EnumDirection enumdirection = (EnumDirection) this.player.world.getType(blockposition).get(BlockCommand.a); IBlockData iblockdata; switch (tileentitycommand_type) { @@ -2674,23 +2642,23 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (b1 == 2) { if (tileentitystructure.q()) { - this.player.a((new ChatMessage("structure_block.save_success", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.save_success", new Object[] { s7})), false); } else { - this.player.a((new ChatMessage("structure_block.save_failure", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.save_failure", new Object[] { s7})), false); } } else if (b1 == 3) { if (!tileentitystructure.E()) { - this.player.a((new ChatMessage("structure_block.load_not_found", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.load_not_found", new Object[] { s7})), false); } else if (tileentitystructure.r()) { - this.player.a((new ChatMessage("structure_block.load_success", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.load_success", new Object[] { s7})), false); } else { - this.player.a((new ChatMessage("structure_block.load_prepare", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.load_prepare", new Object[] { s7})), false); } } else if (b1 == 4) { if (tileentitystructure.p()) { - this.player.a((new ChatMessage("structure_block.size_success", new Object[] { s7})), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.size_success", new Object[] { s7})), false); } else { - this.player.a((new ChatMessage("structure_block.size_failure", new Object[0])), false); + this.player.a((IChatBaseComponent) (new ChatMessage("structure_block.size_failure", new Object[0])), false); } } diff --git a/sources/src/main/java/net/minecraft/server/PlayerList.java b/sources/src/main/java/net/minecraft/server/PlayerList.java index 73296db89..ce4b58d43 100644 --- a/sources/src/main/java/net/minecraft/server/PlayerList.java +++ b/sources/src/main/java/net/minecraft/server/PlayerList.java @@ -439,7 +439,7 @@ public abstract class PlayerList { entityplayer.b(StatisticList.f); // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it - org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer); + org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer, org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), LocaleI18n.a(AkarinGlobalConfig.messagePlayerQuit, entityplayer.getName())); // Akarin - use I18n to replace name cserver.getPluginManager().callEvent(playerQuitEvent); diff --git a/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index c93ca6c70..d3938754a 100644 --- a/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -646,7 +646,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (getHandle().activeContainer != getHandle().defaultContainer) { - getHandle().closeInventory(); + getHandle().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.TELEPORT); // Paper } // Check if the fromWorld and toWorld are the same. diff --git a/work/Paper b/work/Paper index e1319a0de..8f4c8d86b 160000 --- a/work/Paper +++ b/work/Paper @@ -1 +1 @@ -Subproject commit e1319a0de861edde7eb4adb901b248a9101236af +Subproject commit 8f4c8d86bf51cd7f812727d618ab96139fad88e4