Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. package de.leterr.antihack.utils;
  2.  
  3. import java.util.List;
  4. import java.util.UUID;
  5.  
  6. import net.minecraft.server.v1_8_R3.BlockPosition;
  7. import net.minecraft.server.v1_8_R3.DataWatcher;
  8. import net.minecraft.server.v1_8_R3.ItemStack;
  9. import net.minecraft.server.v1_8_R3.MathHelper;
  10. import net.minecraft.server.v1_8_R3.PacketPlayOutAnimation;
  11. import net.minecraft.server.v1_8_R3.PacketPlayOutBed;
  12. import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutEntityLook;
  13. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
  14. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityEquipment;
  15. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityHeadRotation;
  16. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityStatus;
  17. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
  18. import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
  19. import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
  20. import net.minecraft.server.v1_8_R3.WorldSettings.EnumGamemode;
  21.  
  22. import org.bukkit.Bukkit;
  23. import org.bukkit.Location;
  24. import org.bukkit.Material;
  25. import org.bukkit.craftbukkit.v1_8_R3.util.CraftChatMessage;
  26. import org.bukkit.entity.Player;
  27.  
  28. import com.mojang.authlib.GameProfile;
  29. import com.mojang.authlib.properties.Property;
  30.  
  31. public class FakePlayer extends Reflections {
  32.  
  33. private int entityID;
  34. private Location location;
  35. private GameProfile gameprofile;
  36.  
  37. public FakePlayer(String name, Location location) {
  38. entityID = (int) Math.ceil(Math.random() * 1000) + 2000;
  39. gameprofile = new GameProfile(UUID.randomUUID(), name);
  40. changeSkin();
  41. this.location = location.clone();
  42. }
  43.  
  44. public void changeSkin() {
  45. String value = "eyJ0aW1lc3RhbXAiOjE0NDI4MzY1MTU1NzksInByb2ZpbGVJZCI6IjkwZWQ3YWY0NmU4YzRkNTQ4MjRkZTc0YzI1MTljNjU1IiwicHJvZmlsZU5hbWUiOiJDb25DcmFmdGVyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xMWNlZDMzMjNmYjczMmFjMTc3MTc5Yjg5NWQ5YzJmNjFjNzczZWYxNTVlYmQ1Y2M4YzM5NTZiZjlhMDlkMTIifX19";
  46. String signature = "tFGNBQNpxNGvD27SN7fqh3LqNinjJJFidcdF8LTRHOdoMNXcE5ezN172BnDlRsExspE9X4z7FPglqh/b9jrLFDfQrdqX3dGm1cKjYbvOXL9BO2WIOEJLTDCgUQJC4/n/3PZHEG2mVADc4v125MFYMfjzkznkA6zbs7w6z8f7pny9eCWNXPOQklstcdc1h/LvflnR+E4TUuxCf0jVsdT5AZsUYIsJa6fvr0+vItUXUdQ3pps0zthObPEnBdLYMtNY3G6ZLGVKcSGa/KRK2D/k69fmu/uTKbjAWtniFB/sdO0VNhLuvyr/PcZVXB78l1SfBR88ZMiW6XSaVqNnSP+MEfRkxgkJWUG+aiRRLE8G5083EQ8vhIle5GxzK68ZR48IrEX/JwFjALslCLXAGR05KrtuTD3xyq2Nut12GCaooBEhb46sipWLq4AXI9IpJORLOW8+GvY+FcDwMqXYN94juDQtbJGCQo8PX670YjbmVx7+IeFjLJJTZotemXu1wiQmDmtAAmug4U5jgMYIJryXMitD7r5pEop/cw42JbCO2u0b5NB7sI/mr4OhBKEesyC5usiARzuk6e/4aJUvwQ9nsiXfeYxZz8L/mh6e8YPJMyhVkFtblbt/4jPe0bs3xSUXO9XrDyhy9INC0jlLT22QjNzrDkD8aiGAopVvfnTTAug=";
  47. gameprofile.getProperties().put("textures", new Property("textures", value, signature));
  48. }
  49.  
  50. public void animation(int animation) {
  51. PacketPlayOutAnimation packet = new PacketPlayOutAnimation();
  52. setValue(packet, "a", entityID);
  53. setValue(packet, "b", (byte) animation);
  54. sendPacket(packet);
  55. }
  56.  
  57. public void status(int status) {
  58. PacketPlayOutEntityStatus packet = new PacketPlayOutEntityStatus();
  59. setValue(packet, "a", entityID);
  60. setValue(packet, "b", (byte) status);
  61. sendPacket(packet);
  62. }
  63.  
  64. public void equip(int slot, ItemStack itemstack) {
  65. PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment();
  66. setValue(packet, "a", entityID);
  67. setValue(packet, "b", slot);
  68. setValue(packet, "c", itemstack);
  69. sendPacket(packet);
  70. }
  71.  
  72. @SuppressWarnings("deprecation")
  73. public void sleep(boolean state) {
  74. if (state) {
  75. Location bedLocation = new Location(location.getWorld(), 1, 1, 1);
  76. PacketPlayOutBed packet = new PacketPlayOutBed();
  77. setValue(packet, "a", entityID);
  78. setValue(packet, "b", new BlockPosition(bedLocation.getX(), bedLocation.getY(), bedLocation.getZ()));
  79.  
  80. for (Player pl : Bukkit.getOnlinePlayers()) {
  81. pl.sendBlockChange(bedLocation, Material.BED_BLOCK, (byte) 0);
  82. }
  83.  
  84. sendPacket(packet);
  85. teleport(location.clone().add(0, 0.3, 0));
  86. } else {
  87. animation(2);
  88. teleport(location.clone().subtract(0, 0.3, 0));
  89. }
  90. }
  91.  
  92. public void spawn(Player player) {
  93. PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
  94.  
  95. setValue(packet, "a", entityID);
  96. setValue(packet, "b", gameprofile.getId());
  97. setValue(packet, "c", getFixLocation(location.getX()));
  98. setValue(packet, "d", getFixLocation(location.getY()));
  99. setValue(packet, "e", getFixLocation(location.getZ()));
  100. setValue(packet, "f", getFixRotation(location.getYaw()));
  101. setValue(packet, "g", getFixRotation(location.getPitch()));
  102. setValue(packet, "h", 0);
  103. DataWatcher w = new DataWatcher(null);
  104. w.a(6, (float) 20);
  105. w.a(10, (byte) 127);
  106. setValue(packet, "i", w);
  107. addToTablist();
  108. sendPacket(packet, player);
  109. headRotation(location.getYaw(), location.getPitch());
  110. }
  111.  
  112. public void teleport(Location location) {
  113. PacketPlayOutEntityTeleport packet = new PacketPlayOutEntityTeleport();
  114. setValue(packet, "a", entityID);
  115. setValue(packet, "b", getFixLocation(location.getX()));
  116. setValue(packet, "c", getFixLocation(location.getY()));
  117. setValue(packet, "d", getFixLocation(location.getZ()));
  118. setValue(packet, "e", getFixRotation(location.getYaw()));
  119. setValue(packet, "f", getFixRotation(location.getPitch()));
  120.  
  121. sendPacket(packet);
  122. headRotation(location.getYaw(), location.getPitch());
  123. this.location = location.clone();
  124. }
  125.  
  126. public void headRotation(float yaw, float pitch) {
  127. PacketPlayOutEntityLook packet = new PacketPlayOutEntityLook(entityID, getFixRotation(yaw),
  128. getFixRotation(pitch), true);
  129. PacketPlayOutEntityHeadRotation packetHead = new PacketPlayOutEntityHeadRotation();
  130. setValue(packetHead, "a", entityID);
  131. setValue(packetHead, "b", getFixRotation(yaw));
  132.  
  133. sendPacket(packet);
  134. sendPacket(packetHead);
  135. }
  136.  
  137. public void destroy() {
  138. PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(new int[] { entityID });
  139. rmvFromTablist();
  140. sendPacket(packet);
  141. }
  142.  
  143. public void addToTablist() {
  144. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
  145. PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameprofile, 1, EnumGamemode.NOT_SET,
  146. CraftChatMessage.fromString(gameprofile.getName())[0]);
  147. @SuppressWarnings("unchecked")
  148. List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(
  149. packet, "b");
  150. players.add(data);
  151.  
  152. setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
  153. setValue(packet, "b", players);
  154.  
  155. sendPacket(packet);
  156. }
  157.  
  158. public void rmvFromTablist() {
  159. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
  160. PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameprofile, 1, EnumGamemode.NOT_SET,
  161. CraftChatMessage.fromString(gameprofile.getName())[0]);
  162. @SuppressWarnings("unchecked")
  163. List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(
  164. packet, "b");
  165. players.add(data);
  166.  
  167. setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER);
  168. setValue(packet, "b", players);
  169.  
  170. sendPacket(packet);
  171. }
  172.  
  173. public int getFixLocation(double pos) {
  174. return (int) MathHelper.floor(pos * 32.0D);
  175. }
  176.  
  177. public int getEntityID() {
  178. return entityID;
  179. }
  180.  
  181. public byte getFixRotation(float yawpitch) {
  182. return (byte) ((int) (yawpitch * 256.0F / 360.0F));
  183. }
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement