Advertisement
xeRicker

Untitled

Jul 11th, 2024
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.90 KB | None | 0 0
  1. /*
  2. * Decompiled with CFR 0.152.
  3. *
  4. * Could not load the following classes:
  5. * com.mojang.authlib.GameProfile
  6. * com.mojang.authlib.properties.Property
  7. * net.citizensnpcs.api.CitizensAPI
  8. * net.minecraft.server.v1_8_R3.EntityHuman
  9. * net.minecraft.server.v1_8_R3.EntityPlayer
  10. * net.minecraft.server.v1_8_R3.Packet
  11. * net.minecraft.server.v1_8_R3.PacketPlayInClientCommand
  12. * net.minecraft.server.v1_8_R3.PacketPlayInClientCommand$EnumClientCommand
  13. * net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy
  14. * net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn
  15. * net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo
  16. * net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo$EnumPlayerInfoAction
  17. * org.bukkit.Bukkit
  18. * org.bukkit.Location
  19. * org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer
  20. * org.bukkit.entity.Entity
  21. * org.bukkit.entity.Player
  22. * org.bukkit.plugin.Plugin
  23. * org.bukkit.scheduler.BukkitRunnable
  24. * skinsrestorer.bukkit.SkinsRestorer
  25. */
  26. package cn.howecraft.megawalls.util;
  27.  
  28. import cn.howecraft.megawalls.MegaWalls;
  29. import cn.howecraft.megawalls.game.GamePlayer;
  30. import net.citizensnpcs.api.CitizensAPI;
  31. import net.luckperms.api.LuckPermsProvider;
  32. import net.minecraft.server.v1_8_R3.*;
  33. import org.bukkit.Bukkit;
  34. import org.bukkit.ChatColor;
  35. import org.bukkit.Location;
  36. import org.bukkit.Material;
  37. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  38. import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
  39. import org.bukkit.craftbukkit.v1_8_R3.scoreboard.CraftScoreboard;
  40. import org.bukkit.entity.Damageable;
  41. import org.bukkit.entity.Entity;
  42. import org.bukkit.entity.LivingEntity;
  43. import org.bukkit.entity.Player;
  44. import org.bukkit.inventory.ItemStack;
  45.  
  46. import java.util.ArrayList;
  47. import java.util.List;
  48. import java.util.Objects;
  49.  
  50. public class PlayerUtils {
  51.  
  52. public static void respawn(final Player player) {
  53. Bukkit.getScheduler().runTaskLater(MegaWalls.getInstance(), new Runnable() {
  54.  
  55. @Override
  56. public void run() {
  57. PacketPlayInClientCommand packet = new PacketPlayInClientCommand(PacketPlayInClientCommand.EnumClientCommand.PERFORM_RESPAWN);
  58. ((CraftPlayer) player).getHandle().playerConnection.a(packet);
  59. }
  60. }, 1L);
  61. }
  62.  
  63.  
  64. public static void skinChange(final CraftPlayer cp, final String value, final String signature) {
  65. // SkinsRestorer.getInstance().getFactory().applySkin(cp, new Property("textures", value, signature));
  66. // final double health = cp.getHealth();
  67. // (new BukkitRunnable() {
  68. // public void run() {
  69. // GameProfile profile = cp.getProfile();
  70. // profile.getProperties().put("textures", new Property("textures", value, signature));
  71. // Collection<Property> prop = profile.getProperties().get("textures");
  72. // cp.getProfile().getProperties().putAll("textures", prop);
  73. // PacketPlayOutEntityDestroy pds = new PacketPlayOutEntityDestroy(cp.getEntityId());
  74. // PlayerUtils.sendPacket(pds);
  75. // PacketPlayOutPlayerInfo tab = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[]{cp.getHandle()});
  76. // PlayerUtils.sendPacket(tab);
  77. // cp.setHealth(0.0D);
  78. // }
  79. // }).runTaskLater(MegaWalls.getInstance(), 1L);
  80. // (new BukkitRunnable() {
  81. // public void run() {
  82. // cp.spigot().respawn();
  83. // cp.setHealth(health);
  84. // cp.teleport(MegaWalls.getInstance().getGame().getLobbyLocation());
  85. // PacketPlayOutPlayerInfo tabadd = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{cp.getHandle()});
  86. // PlayerUtils.sendPacket(tabadd);
  87. // PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
  88. // Iterator<? extends Player> var3 = Bukkit.getOnlinePlayers().iterator();
  89. //
  90. // Player p;
  91. // while (var3.hasNext()) {
  92. // p = var3.next();
  93. // if (!p.getName().equals(cp.getName())) {
  94. // ((CraftPlayer) p).getHandle().playerConnection.sendPacket(spawn);
  95. // }
  96. // }
  97. //
  98. // var3 = Bukkit.getOnlinePlayers().iterator();
  99. //
  100. // while (var3.hasNext()) {
  101. // p = var3.next();
  102. // p.hidePlayer(cp);
  103. // p.showPlayer(cp);
  104. // }
  105. //
  106. // }
  107. // }).runTaskLater(MegaWalls.getInstance(), 20L);
  108. }
  109.  
  110. private static void sendPacket(Packet<?> packet) {
  111. for (Player pls : Bukkit.getOnlinePlayers()) {
  112. ((CraftPlayer) pls).getHandle().playerConnection.sendPacket(packet);
  113. }
  114.  
  115. }
  116.  
  117. public static void realDamage(final Entity p, final Player damager, double damage) {
  118. GamePlayer player = GamePlayer.get(damager.getPlayer().getUniqueId());
  119. GamePlayer player1 = GamePlayer.get(p.getUniqueId());
  120. final double hp = ((Damageable) p).getHealth();
  121. final double ahp = ((CraftPlayer) p).getHandle().getAbsorptionHearts();
  122. assert player != null;
  123. player.addDamage((int) damage);
  124. assert player1 != null;
  125. player1.addDef((int) damage);
  126. if (p.isDead()) return;
  127. double lol = hp + ahp - damage;
  128. if (lol <= 0) {
  129. ((CraftPlayer) p).setNoDamageTicks(0);
  130. ((LivingEntity) p).damage(100, damager);
  131. ((CraftPlayer) p).getHandle().setAbsorptionHearts(0);
  132. } else {
  133. if (ahp >= damage) {
  134. ((LivingEntity) p).damage(0);
  135. ((CraftPlayer) p).getHandle().setAbsorptionHearts((float) (ahp - damage));
  136. } else {
  137. double real1 = damage - ahp;
  138. ((LivingEntity) p).damage(0);
  139. ((LivingEntity) p).setHealth(hp - real1);
  140. ((CraftPlayer) p).getHandle().setAbsorptionHearts(0);
  141. }
  142. }
  143. }
  144.  
  145.  
  146. public static List<Player> getNearbyPlayers(Entity entity, double radius) {
  147. GamePlayer gamePlayer = GamePlayer.get(entity.getUniqueId());
  148. ArrayList<Player> players = new ArrayList<>();
  149. for (Entity e : entity.getNearbyEntities(radius, radius, radius)) {
  150. if (CitizensAPI.getNPCRegistry().isNPC(e) || !(e instanceof Player)) continue;
  151. players.add((Player) e);
  152. }
  153. return players;
  154. }
  155.  
  156. public static List<Player> getNearbyPlayers(Location location, double radius) {
  157. ArrayList<Player> players = new ArrayList<>();
  158. for (Entity e : location.getWorld().getNearbyEntities(location, radius, radius, radius)) {
  159. if (CitizensAPI.getNPCRegistry().isNPC(e) || !(e instanceof Player) || !(e.getLocation().distance(location) <= radius))
  160. continue;
  161. players.add((Player) e);
  162. }
  163. return players;
  164. }
  165.  
  166. public static List<Player> getNearbyPlayersH(Location location, double radius, int heal) {
  167. ArrayList<Player> players = new ArrayList<>();
  168. for (Entity e : location.getWorld().getNearbyEntities(location, radius, radius, radius)) {
  169. if (CitizensAPI.getNPCRegistry().isNPC(e) || !(e instanceof Player) || !(e.getLocation().distance(location) <= radius) || ((Player) e).getHealth() > heal)
  170. continue;
  171. players.add((Player) e);
  172. }
  173. return players;
  174. }
  175.  
  176. public static void heal(Player player, double heal) {
  177. player.setHealth(Math.min(player.getHealth() + heal, player.getMaxHealth()));
  178. }
  179.  
  180. public static void food(Player player, int level) {
  181. player.setFoodLevel(Math.min(player.getFoodLevel() + level, 20));
  182. }
  183.  
  184. public static void removeNameTag(Player player) {
  185. //隐藏玩家头顶tag
  186. ScoreboardTeam steam = new ScoreboardTeam(((CraftScoreboard) Bukkit.getScoreboardManager().getMainScoreboard()).getHandle(), player.getName());
  187. steam.setNameTagVisibility(ScoreboardTeamBase.EnumNameTagVisibility.NEVER);
  188. }
  189.  
  190. public static void showNameTag(Player player) {
  191. //恢复玩家头顶tag
  192. ScoreboardTeam steam = new ScoreboardTeam(((CraftScoreboard) Bukkit.getScoreboardManager().getMainScoreboard()).getHandle(), player.getName());
  193. steam.setNameTagVisibility(ScoreboardTeamBase.EnumNameTagVisibility.ALWAYS);
  194. }
  195.  
  196.  
  197. public static void hideArmor(Player victim, Player receiver) {
  198. if (victim.equals(receiver)) return;
  199. PacketPlayOutEntityEquipment hand = new PacketPlayOutEntityEquipment(victim.getEntityId(), 0, CraftItemStack.asNMSCopy(new ItemStack(Material.AIR)));
  200. PacketPlayOutEntityEquipment helmet = new PacketPlayOutEntityEquipment(victim.getEntityId(), 1, CraftItemStack.asNMSCopy(new ItemStack(Material.AIR)));
  201. PacketPlayOutEntityEquipment chest = new PacketPlayOutEntityEquipment(victim.getEntityId(), 2, CraftItemStack.asNMSCopy(new ItemStack(Material.AIR)));
  202. PacketPlayOutEntityEquipment pants = new PacketPlayOutEntityEquipment(victim.getEntityId(), 3, CraftItemStack.asNMSCopy(new ItemStack(Material.AIR)));
  203. PacketPlayOutEntityEquipment boots = new PacketPlayOutEntityEquipment(victim.getEntityId(), 4, CraftItemStack.asNMSCopy(new ItemStack(Material.AIR)));
  204. PlayerConnection boundTo = ((CraftPlayer) receiver).getHandle().playerConnection;
  205. boundTo.sendPacket(hand);
  206. boundTo.sendPacket(helmet);
  207. boundTo.sendPacket(chest);
  208. boundTo.sendPacket(pants);
  209. boundTo.sendPacket(boots);
  210. }
  211.  
  212.  
  213. public static void showArmor(Player victim, Player receiver) {
  214. if (victim.equals(receiver)) return;
  215. EntityPlayer entityPlayer = ((CraftPlayer) victim).getHandle();
  216. PacketPlayOutEntityEquipment helmet = new PacketPlayOutEntityEquipment(entityPlayer.getId(), 4, entityPlayer.inventory.getArmorContents()[3]);
  217. PacketPlayOutEntityEquipment chest = new PacketPlayOutEntityEquipment(entityPlayer.getId(), 3, entityPlayer.inventory.getArmorContents()[2]);
  218. PacketPlayOutEntityEquipment pants = new PacketPlayOutEntityEquipment(entityPlayer.getId(), 2, entityPlayer.inventory.getArmorContents()[1]);
  219. PacketPlayOutEntityEquipment boots = new PacketPlayOutEntityEquipment(entityPlayer.getId(), 1, entityPlayer.inventory.getArmorContents()[0]);
  220. PacketPlayOutEntityEquipment hand = new PacketPlayOutEntityEquipment(entityPlayer.getId(), 0, entityPlayer.inventory.getItemInHand());
  221. EntityPlayer boundTo = ((CraftPlayer) receiver).getHandle();
  222. boundTo.playerConnection.sendPacket(helmet);
  223. boundTo.playerConnection.sendPacket(chest);
  224. boundTo.playerConnection.sendPacket(pants);
  225. boundTo.playerConnection.sendPacket(boots);
  226. boundTo.playerConnection.sendPacket(hand);
  227. }
  228.  
  229. public static String getPrefix(Player p) {
  230. String prefix = Objects.requireNonNull(LuckPermsProvider.get().getUserManager().getUser(p.getUniqueId())).getCachedData().getMetaData().getPrefix();
  231. return prefix == null ? "" : ChatColor.translateAlternateColorCodes('&', prefix);
  232. }
  233.  
  234. public static void refresh(Player player) {
  235. PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
  236. connection.sendPacket(new PacketPlayOutPlayerInfo(
  237. PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER,
  238. ((CraftPlayer) player).getHandle()));
  239. connection.sendPacket(new PacketPlayOutPlayerInfo(
  240. PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER,
  241. ((CraftPlayer) player).getHandle()));
  242. for (Player p : Bukkit.getOnlinePlayers()) {
  243. player.hidePlayer(p);
  244. player.showPlayer(p);
  245. }
  246.  
  247. }
  248. }
  249.  
  250.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement