Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. public void spawnCorpse(Player player, int currentEntId) {
  2.  
  3. PacketPlayOutNamedEntitySpawn npc = new PacketPlayOutNamedEntitySpawn(
  4. ((CraftPlayer) player).getHandle());
  5. PacketPlayOutBed sleep = new PacketPlayOutBed();
  6. PacketPlayOutEntityEquipment helmet = new PacketPlayOutEntityEquipment(
  7. this.currentEntId, 1, CraftItemStack.asNMSCopy(player
  8. .getInventory().getHelmet()));
  9. PacketPlayOutEntityEquipment chestplate = new PacketPlayOutEntityEquipment(
  10. this.currentEntId, 2, CraftItemStack.asNMSCopy(player
  11. .getInventory().getChestplate()));
  12. PacketPlayOutEntityEquipment leggings = new PacketPlayOutEntityEquipment(
  13. this.currentEntId, 3, CraftItemStack.asNMSCopy(player
  14. .getInventory().getLeggings()));
  15. PacketPlayOutEntityEquipment boots = new PacketPlayOutEntityEquipment(
  16. this.currentEntId, 4, CraftItemStack.asNMSCopy(player
  17. .getInventory().getBoots()));
  18. PacketPlayOutRelEntityMove move = new PacketPlayOutRelEntityMove(
  19. this.currentEntId, (byte) 0, (byte) ((player.getLocation()
  20. .getY() - 1.7 - player.getLocation().getY()) * 32),
  21. (byte) 0, false);
  22. try {
  23. Field npca = npc.getClass().getDeclaredField("a");
  24. npca.setAccessible(true);
  25. npca.setInt(npc, this.currentEntId);
  26. npca.setAccessible(!npca.isAccessible());
  27. Field npch = npc.getClass().getDeclaredField("h");
  28. npch.setAccessible(true);
  29. npch.setInt(npc, Item.getId(Item.getItemOf(Blocks.RED_FLOWER)));
  30. npch.setAccessible(!npch.isAccessible());
  31. Field npcd = npc.getClass().getDeclaredField("d");
  32. npcd.setAccessible(true);
  33. npcd.setInt(npc, MathHelper.floor((player.getLocation().getY() + 2) * 32));
  34. npcd.setAccessible(!npcd.isAccessible());
  35. Field sleepa = sleep.getClass().getDeclaredField("a");
  36. sleepa.setAccessible(true);
  37. sleepa.setInt(sleep, this.currentEntId);
  38. sleepa.setAccessible(!sleepa.isAccessible());
  39. Field sleepb = sleep.getClass().getDeclaredField("b");
  40. sleepb.setAccessible(true);
  41. sleepb.setInt(sleep, (int) player.getLocation().getX());
  42. sleepb.setAccessible(!npca.isAccessible());
  43. Field sleepc = sleep.getClass().getDeclaredField("c");
  44. sleepc.setAccessible(true);
  45. sleepc.setInt(sleep, (int) player.getLocation().getY());
  46. sleepc.setAccessible(!sleepc.isAccessible());
  47. Field sleepd = sleep.getClass().getDeclaredField("d");
  48. sleepd.setAccessible(true);
  49. sleepd.setInt(sleep, (int) player.getLocation().getZ());
  50. sleepd.setAccessible(!sleepd.isAccessible());
  51. Field npcf = npc.getClass().getDeclaredField("f");
  52. npcf.setAccessible(true);
  53. npcf.setByte(npc, (byte) (145 * 256.0F / 360.0F));
  54. npcf.setAccessible(!npcf.isAccessible());
  55. Field npcg = npc.getClass().getDeclaredField("g");
  56. npcg.setAccessible(true);
  57. npcg.setByte(npc, (byte) 0);
  58. npcg.setAccessible(!npcg.isAccessible());
  59. } catch (Exception x) {
  60. x.printStackTrace();
  61. }
  62. for (Player p : player.getWorld().getPlayers()) {
  63. if (p != player) {
  64. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(npc);
  65. ((CraftPlayer) p).getHandle().playerConnection
  66. .sendPacket(helmet);
  67. ((CraftPlayer) p).getHandle().playerConnection
  68. .sendPacket(chestplate);
  69. ((CraftPlayer) p).getHandle().playerConnection
  70. .sendPacket(leggings);
  71. ((CraftPlayer) p).getHandle().playerConnection
  72. .sendPacket(boots);
  73. ((CraftPlayer) p).getHandle().playerConnection
  74. .sendPacket(sleep);
  75. ((CraftPlayer) p).getHandle().playerConnection.sendPacket(move);
  76. }
  77. }
  78. this.currentEntId++;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement