diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java index 7b1b49599..d84fc14b8 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java @@ -51,6 +51,11 @@ public class UtilPlayer return true; } + public static boolean is1_9(Player player) + { + return ((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion() > 47; + } + private static class Vector3D { diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java index 346537a68..bd372e28b 100644 --- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java +++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java @@ -1,5 +1,7 @@ package mineplex.core.common.util; +import java.util.UUID; + import mineplex.core.common.DummyEntity; import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.Entity; @@ -97,6 +99,7 @@ public class UtilTextTop mobPacket.i = (short) 0; //X velocity mobPacket.j = (short) 0; //Y velocity mobPacket.k = (short) 0; //Z velocity + mobPacket.uuid = UUID.randomUUID(); //Health double health = healthPercent * 199.9 + 0.1; @@ -125,6 +128,7 @@ public class UtilTextTop mobPacket.i = (short) 0; //X velocity mobPacket.j = (short) 0; //Y velocity mobPacket.k = (short) 0; //Z velocity + mobPacket.uuid = UUID.randomUUID(); //Health double health = healthPercent * 299.9 + 0.1; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java b/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java index 36e3fbec6..325dfd765 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java @@ -29,6 +29,7 @@ import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.EnumEntityUseAction; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_8_R3.PacketPlayOutNewAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; @@ -407,6 +408,7 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler, NCPHook spawnPacket.i = (byte) ((int) (0 * 256.0F / 360.0F)); spawnPacket.j = (byte) ((int) (0 * 256.0F / 360.0F)); spawnPacket.k = (byte) ((int) (0 * 256.0F / 360.0F)); + spawnPacket.uuid = UUID.randomUUID(); double var2 = 3.9D; double var4 = 0; @@ -451,12 +453,24 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler, NCPHook UtilPlayer.sendPacket(owner, spawnPacket); - PacketPlayOutAttachEntity vehiclePacket = new PacketPlayOutAttachEntity(); - vehiclePacket.a = 0; - vehiclePacket.b = spawnPacket.a; - vehiclePacket.c = entityId; + if (UtilPlayer.is1_9(owner)) + { + PacketPlayOutNewAttachEntity vehiclePacket = new PacketPlayOutNewAttachEntity(entityId, new int[] + { + spawnPacket.a + }); - UtilPlayer.sendPacket(owner, vehiclePacket); + UtilPlayer.sendPacket(owner, vehiclePacket); + } + else + { + PacketPlayOutAttachEntity vehiclePacket = new PacketPlayOutAttachEntity(); + vehiclePacket.a = 0; + vehiclePacket.b = spawnPacket.a; + vehiclePacket.c = entityId; + + UtilPlayer.sendPacket(owner, vehiclePacket); + } } else { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseArmorStand.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseArmorStand.java index 988071d34..520ef6ff2 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseArmorStand.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseArmorStand.java @@ -58,6 +58,7 @@ public class DisguiseArmorStand extends DisguiseInsentient packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); + packet.uuid = Entity.getUniqueID(); double var2 = 3.9D; double var4 = 0; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseBlock.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseBlock.java index 9e90deaf4..f0406a88e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseBlock.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseBlock.java @@ -9,26 +9,26 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity; public class DisguiseBlock extends DisguiseBase { private static Random _random = new Random(); - + private int _blockId; private int _blockData; - + public DisguiseBlock(org.bukkit.entity.Entity entity, int blockId, int blockData) { super(entity); - + _blockId = blockId; _blockData = blockData; } - + public int GetBlockId() { return _blockId; } - + public byte GetBlockData() { - return (byte)_blockData; + return (byte) _blockData; } @Override @@ -43,38 +43,45 @@ public class DisguiseBlock extends DisguiseBase packet.i = MathHelper.d(Entity.yaw * 256.0F / 360.0F); packet.j = 70; packet.k = _blockId | _blockData << 12; + packet.uuid = Entity.getUniqueID(); double d1 = Entity.motX; double d2 = Entity.motY; double d3 = Entity.motZ; double d4 = 3.9D; - - if (d1 < -d4) d1 = -d4; - if (d2 < -d4) d2 = -d4; - if (d3 < -d4) d3 = -d4; - if (d1 > d4) d1 = d4; - if (d2 > d4) d2 = d4; - if (d3 > d4) d3 = d4; - - packet.e = ((int)(d1 * 8000.0D)); - packet.f = ((int)(d2 * 8000.0D)); - packet.g = ((int)(d3 * 8000.0D)); + + if (d1 < -d4) + d1 = -d4; + if (d2 < -d4) + d2 = -d4; + if (d3 < -d4) + d3 = -d4; + if (d1 > d4) + d1 = d4; + if (d2 > d4) + d2 = d4; + if (d3 > d4) + d3 = d4; + + packet.e = ((int) (d1 * 8000.0D)); + packet.f = ((int) (d2 * 8000.0D)); + packet.g = ((int) (d3 * 8000.0D)); return packet; } - protected String getHurtSound() - { - return "damage.hit"; - } - - protected float getVolume() - { - return 1.0F; - } + protected String getHurtSound() + { + return "damage.hit"; + } - protected float getPitch() - { - return (_random.nextFloat() - _random.nextFloat()) * 0.2F + 1.0F; - } + protected float getVolume() + { + return 1.0F; + } + + protected float getPitch() + { + return (_random.nextFloat() - _random.nextFloat()) * 0.2F + 1.0F; + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseCreature.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseCreature.java index 93a693ec0..a1db97615 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseCreature.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseCreature.java @@ -33,6 +33,7 @@ public abstract class DisguiseCreature extends DisguiseInsentient packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); + packet.uuid = Entity.getUniqueID(); double var2 = 3.9D; double var4 = 0; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseMagmaCube.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseMagmaCube.java index 89fe12ab3..3bbd587b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseMagmaCube.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseMagmaCube.java @@ -35,6 +35,7 @@ public class DisguiseMagmaCube extends DisguiseInsentient packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); + packet.uuid = Entity.getUniqueID(); double var2 = 3.9D; double var4 = 0; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseRabbit.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseRabbit.java index 1d86e30dd..426949661 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseRabbit.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseRabbit.java @@ -29,6 +29,7 @@ public class DisguiseRabbit extends DisguiseAnimal packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); + packet.uuid = Entity.getUniqueID(); double var2 = 3.9D; double var4 = 0; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseSlime.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseSlime.java index d2acaa6de..67e7547b0 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseSlime.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/disguises/DisguiseSlime.java @@ -35,6 +35,7 @@ public class DisguiseSlime extends DisguiseInsentient packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); + packet.uuid = Entity.getUniqueID(); double var2 = 3.9D; double var4 = 0; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java b/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java index 898dd477f..2ed12bb28 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/hologram/Hologram.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.UUID; import java.util.Map.Entry; import org.bukkit.Location; @@ -284,6 +285,7 @@ public class Hologram packet.d = (int) ((getLocation().getY() + (_hideBoundingBox ? 0 : -2.1) + ((double) textRow * 0.285)) * 32); packet.e = (int) (getLocation().getZ() * 32); packet.l = watcher; + packet.uuid = UUID.randomUUID(); // Setup datawatcher for armor stand watcher.a(0, (byte) 32, EntityArmorStand.META_ENTITYDATA, (byte) 0); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/SleighHorse.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/SleighHorse.java index 9338dfa00..1e525dd70 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/SleighHorse.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/christmas/SleighHorse.java @@ -1,6 +1,7 @@ package nautilus.game.arcade.game.games.christmas; import java.util.HashSet; +import java.util.UUID; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilPlayer; @@ -162,6 +163,8 @@ public class SleighHorse packet.d = (int) (loc.getY() * 32); packet.e = (int) (loc.getZ() * 32) + this._previousDir[(i * 2) + 1]; packet.f = ((byte) (int) (loc.getYaw() * 256.0F / 360.0F)); + packet.uuid = UUID.randomUUID(); + // Setup datawatcher for armor stand DataWatcher watcher = new DataWatcher(null); watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java index e4652e638..d90c0b625 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java @@ -259,7 +259,7 @@ public class HideSeek extends TeamGame .sendPacket( player, blockForm - .getBlockPackets()); + .getBlockPackets(UtilPlayer.is1_9(player))); } }); break; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/forms/BlockForm.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/forms/BlockForm.java index 49b9a8d37..99b52c0ab 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/forms/BlockForm.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/forms/BlockForm.java @@ -1,5 +1,7 @@ package nautilus.game.arcade.game.games.hideseek.forms; +import java.util.UUID; + import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.MapUtil; @@ -20,6 +22,7 @@ import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.EntityTrackerEntry; import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; +import net.minecraft.server.v1_8_R3.PacketPlayOutNewAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport; @@ -69,23 +72,23 @@ public class BlockForm extends Form } @Override - public void Apply() - { - // Remove Old - if (Player.getPassenger() != null) - { - Player.getPassenger().remove(); - Player.eject(); - } + public void Apply() + { + // Remove Old + if (Player.getPassenger() != null) + { + Player.getPassenger().remove(); + Player.eject(); + } - EntityPlayer player = ((CraftPlayer) Player).getHandle(); - player.getDataWatcher().watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32); + EntityPlayer player = ((CraftPlayer) Player).getHandle(); + player.getDataWatcher().watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32); - // Player > Chicken - DisguiseChicken disguise = new DisguiseChicken(Player); - disguise.setBaby(); - - disguise.setInvisible(true); + // Player > Chicken + DisguiseChicken disguise = new DisguiseChicken(Player); + disguise.setBaby(); + + disguise.setInvisible(true); disguise.setSoundDisguise(new DisguiseCat(Player)); Host.Manager.GetDisguise().disguise(disguise); @@ -106,62 +109,91 @@ public class BlockForm extends Form watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32); watcher.a(1, 0, Entity.META_AIR, 0); packet1.l = watcher; + packet1.uuid = UUID.randomUUID(); packets[0] = packet1; - PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); + if (UtilPlayer.is1_9(Player)) + { + packets[2] = new PacketPlayOutNewAttachEntity(_selfEntityId1, new int[] + { + _selfEntityId2 + }); - packet3.b = _selfEntityId2; - packet3.c = _selfEntityId1; - packets[2] = packet3; + } + else + { + PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); - PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(player, - 70, _mat.getId()); + packet3.b = _selfEntityId2; + packet3.c = _selfEntityId1; + + packets[2] = packet3; + } + + PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(player, 70, _mat.getId()); packet2.a = _selfEntityId2; + packet2.uuid = UUID.randomUUID(); packets[1] = packet2; UtilPlayer.sendPacket(Player, packets); // Inform String blockName = F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)); - if (!blockName.contains("Block")) - UtilPlayer.message( - Player, - F.main("Game", - C.cWhite + "You are now a " - + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false) + " Block") + "!")); - else - UtilPlayer.message( - Player, - F.main("Game", C.cWhite + "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)) - + "!")); + if (!blockName.contains("Block")) + UtilPlayer.message( + Player, + F.main("Game", + C.cWhite + "You are now a " + + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false) + " Block") + "!")); + else + UtilPlayer.message( + Player, + F.main("Game", C.cWhite + "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)) + + "!")); - // Give Item - Player.getInventory().setItem(8, new ItemStack(Host.GetItemEquivilent(_mat))); - UtilInv.Update(Player); + // Give Item + Player.getInventory().setItem(8, new ItemStack(Host.GetItemEquivilent(_mat))); + UtilInv.Update(Player); - // Sound - Player.playSound(Player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f); - } - - public Packet[] getBlockPackets() - { - PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) Player).getHandle(), - 70, _mat.getId()); - packet2.a = _blockId; - - PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); - - packet3.b = _blockId; - packet3.c = Player.getEntityId(); - - return new Packet[] {packet2, packet3}; + // Sound + Player.playSound(Player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f); } - + + public Packet[] getBlockPackets(boolean is19) + { + Packet[] packets = new Packet[2]; + + PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) Player).getHandle(), 70, _mat.getId()); + packet2.a = _blockId; + packet2.uuid = UUID.randomUUID(); + + packets[0] = packet2; + + if (is19) + { + packets[2] = new PacketPlayOutNewAttachEntity(_blockId, new int[] + { + Player.getEntityId() + }); + + } + else + { + PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); + + packet3.b = _blockId; + packet3.c = Player.getEntityId(); + packets[1] = packet3; + } + + return packets; + } + public int getBlockId() { return _blockId; } - + @Override public void Remove() { @@ -170,12 +202,13 @@ public class BlockForm extends Form Host.Manager.GetDisguise().undisguise(Player); UtilPlayer.sendPacket(Player, new PacketPlayOutEntityDestroy(new int[] - { - _selfEntityId1, _selfEntityId2, _blockId - })); + { + _selfEntityId1, + _selfEntityId2, + _blockId + })); - ((CraftEntity) Player).getHandle().getDataWatcher() - .watch(0, (byte) 0, Entity.META_ENTITYDATA, (byte) 0); + ((CraftEntity) Player).getHandle().getDataWatcher().watch(0, (byte) 0, Entity.META_ENTITYDATA, (byte) 0); } public void SolidifyUpdate() @@ -200,8 +233,7 @@ public class BlockForm extends Form if (Host.GetKit(Player) instanceof KitHiderQuick) hideBoost = 0.1; - Player.setExp((float) Math.min(0.999f, Player.getExp() - + hideBoost)); + Player.setExp((float) Math.min(0.999f, Player.getExp() + hideBoost)); // Set Block if (Player.getExp() >= 0.999f) @@ -209,25 +241,20 @@ public class BlockForm extends Form Block block = Player.getLocation().getBlock(); // Not Able - if (block.getType() != Material.AIR - || !UtilBlock.solid(block - .getRelative(BlockFace.DOWN))) + if (block.getType() != Material.AIR || !UtilBlock.solid(block.getRelative(BlockFace.DOWN))) { - UtilPlayer.message(Player, F.main("Game", - "You cannot become a Solid Block here.")); + UtilPlayer.message(Player, F.main("Game", "You cannot become a Solid Block here.")); Player.setExp(0f); return; } - Bukkit.getPluginManager().callEvent( - new HideSeek.PlayerSolidifyEvent(Player)); + Bukkit.getPluginManager().callEvent(new HideSeek.PlayerSolidifyEvent(Player)); // Set Block _block = block; // Effect - Player.playEffect(Player.getLocation(), Effect.STEP_SOUND, - _mat); + Player.playEffect(Player.getLocation(), Effect.STEP_SOUND, _mat); // block.getWorld().playEffect(block.getLocation(), // Effect.STEP_SOUND, _mat); @@ -239,19 +266,16 @@ public class BlockForm extends Form // Player, Player, 60000, false, false); // Sound - Player.playSound(Player.getLocation(), Sound.NOTE_PLING, - 1f, 2f); + Player.playSound(Player.getLocation(), Sound.NOTE_PLING, 1f, 2f); // Teleport falling block to the position. - Vector blockLoc = _block.getLocation() - .add(0.5, -.21875, 0.5).toVector(); + Vector blockLoc = _block.getLocation().add(0.5, -.21875, 0.5).toVector(); _sawDiff.add(blockLoc.clone().subtract(_lastSaw)); Packet packet = this.getPacket(_sawDiff, blockLoc); - _lastSaw = Player.getLocation().toVector() - .subtract(new Vector(0, 0.15625, 0)); + _lastSaw = Player.getLocation().toVector().subtract(new Vector(0, 0.15625, 0)); _sawDiff = _lastSaw.clone().subtract(blockLoc); if (packet != null) @@ -261,17 +285,15 @@ public class BlockForm extends Form _sawDiff = new Vector(); } - ((CraftPlayer) Player).getHandle().playerConnection - .sendPacket(packet); + ((CraftPlayer) Player).getHandle().playerConnection.sendPacket(packet); } for (Player player : UtilServer.getPlayers()) { - UtilPlayer.sendPacket(player, - new PacketPlayOutEntityDestroy(new int[] - { - getBlockId() - })); + UtilPlayer.sendPacket(player, new PacketPlayOutEntityDestroy(new int[] + { + getBlockId() + })); } } } @@ -299,16 +321,14 @@ public class BlockForm extends Form MapUtil.QuickChangeBlockAt(_block.getLocation(), 0, (byte) 0); _block = null; - EntityTrackerEntry tracker = (EntityTrackerEntry) ((WorldServer) ((CraftEntity) Player) - .getHandle().world).tracker.trackedEntities.get(Player - .getEntityId()); + EntityTrackerEntry tracker = (EntityTrackerEntry) ((WorldServer) ((CraftEntity) Player).getHandle().world).tracker.trackedEntities + .get(Player.getEntityId()); if (tracker != null) { for (EntityPlayer entity : tracker.trackedPlayers) { - UtilPlayer.sendPacket(entity.getBukkitEntity(), - getBlockPackets()); + UtilPlayer.sendPacket(entity.getBukkitEntity(), getBlockPackets(UtilPlayer.is1_9(entity.getBukkitEntity()))); } } } @@ -349,13 +369,10 @@ public class BlockForm extends Form if (_lastSaw != null) { - this._sawDiff.add(Player.getLocation() - .subtract(0, 0.15625, 0).toVector() - .subtract(_lastSaw)); + this._sawDiff.add(Player.getLocation().subtract(0, 0.15625, 0).toVector().subtract(_lastSaw)); } - _lastSaw = Player.getLocation().subtract(0, 0.15625, 0) - .toVector(); + _lastSaw = Player.getLocation().subtract(0, 0.15625, 0).toVector(); Packet packet = this.getPacket(_sawDiff, _lastSaw); @@ -364,8 +381,7 @@ public class BlockForm extends Form if (packet instanceof PacketPlayOutRelEntityMove) { PacketPlayOutRelEntityMove relPacket = (PacketPlayOutRelEntityMove) packet; - _sawDiff.subtract(new Vector(relPacket.b / 32D, - relPacket.c / 32D, relPacket.d / 32D)); + _sawDiff.subtract(new Vector(relPacket.b / 32D, relPacket.c / 32D, relPacket.d / 32D)); } else { @@ -385,8 +401,7 @@ public class BlockForm extends Form if (x != 0 || y != 0 || z != 0) { - if (x >= -128 && x <= 127 && y >= -128 && y <= 127 && z >= -128 - && z <= 127) + if (x >= -128 && x <= 127 && y >= -128 && y <= 127 && z >= -128 && z <= 127) { PacketPlayOutRelEntityMove relMove = new PacketPlayOutRelEntityMove(); relMove.a = this._selfEntityId1; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/Wall.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/Wall.java index 15692c9f6..43e47126e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/Wall.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/holeinwall/Wall.java @@ -17,6 +17,7 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_8_R3.PacketPlayOutNewAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; @@ -180,6 +181,7 @@ public class Wall watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32); watcher.a(1, 0, Entity.META_AIR, 0); packet1.l = watcher; + packet1.uuid = UUID.randomUUID(); PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) player).getHandle(), 70, Material.STAINED_GLASS.getId() | ids.data << 16); @@ -187,11 +189,26 @@ public class Wall packet2.b = (int) Math.floor(entry.getKey().getX() * 32); packet2.c = (int) Math.floor(entry.getKey().getY() * 32); packet2.d = (int) Math.floor(entry.getKey().getZ() * 32); + packet2.uuid = UUID.randomUUID(); - PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); + Packet packet3; - packet3.b = ids.block; - packet3.c = ids.chicken; + if (UtilPlayer.is1_9(player)) + { + packet3 = new PacketPlayOutNewAttachEntity( ids.chicken, new int[] + { + ids.block + }); + } + else + { + PacketPlayOutAttachEntity packet = new PacketPlayOutAttachEntity(); + + packet.b = ids.block; + packet.c = ids.chicken; + + packet3 = packet; + } packets[i++] = packet1; packets[i++] = packet2; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellRumble.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellRumble.java index 59d85e116..936af0589 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellRumble.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/wizards/spells/SpellRumble.java @@ -1,6 +1,7 @@ package nautilus.game.arcade.game.games.wizards.spells; import java.util.ArrayList; +import java.util.UUID; import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilMath; @@ -325,6 +326,7 @@ public class SpellRumble extends Spell implements SpellClickBlock, SpellClick fallingSpawn.i = 70; fallingSpawn.k = block.getTypeId() | block.getData() << 16; fallingSpawn.f = 10000; + fallingSpawn.uuid = UUID.randomUUID(); final Collection players = Bukkit.getOnlinePlayers();