|
| 1 | +package su.nightexpress.quantumrpg.nms.packets.versions; |
| 2 | + |
| 3 | +import org.jetbrains.annotations.NotNull; |
| 4 | +import su.nightexpress.quantumrpg.QuantumRPG; |
| 5 | + |
| 6 | +public class V1_13_R2 extends UniversalPacketHandler { |
| 7 | + |
| 8 | + public V1_13_R2(@NotNull QuantumRPG plugin) { |
| 9 | + super(plugin); |
| 10 | + } |
| 11 | + |
| 12 | +// @Override |
| 13 | +// public void managePlayerPacket(@NotNull EnginePlayerPacketEvent e) { |
| 14 | +// Object packet = e.getPacket(); |
| 15 | +// |
| 16 | +// if (EngineCfg.PACKETS_REDUCE_COMBAT_PARTICLES && packet instanceof PacketPlayOutWorldParticles) { |
| 17 | +// this.manageDamageParticle(e, packet); |
| 18 | +// } |
| 19 | +// |
| 20 | +// if (EngineCfg.PACKETS_MOD_GLOW_COLOR && packet instanceof PacketPlayOutSpawnEntity) { |
| 21 | +// this.manageCustomGlow(e, packet); |
| 22 | +// Object oId = Reflex.getFieldValue(packet, "b"); // Entity UUID |
| 23 | +// if (oId == null) return; |
| 24 | +// |
| 25 | +// // Do a tick delay to let entity be spawned in the world before we can get it by UUID |
| 26 | +// plugin.getServer().getScheduler().runTask(plugin, () -> { |
| 27 | +// UUID id = (UUID) oId; |
| 28 | +// |
| 29 | +// // Get entity and check if it's a dropped item |
| 30 | +// Entity entity = plugin.getServer().getEntity(id); |
| 31 | +// if (!(entity instanceof org.bukkit.entity.Item)) return; |
| 32 | +// |
| 33 | +// // Check if Glow setting is applicable to this item stack. |
| 34 | +// org.bukkit.entity.Item item = (org.bukkit.entity.Item) entity; |
| 35 | +// ItemHintsManager hintManager = plugin.getModuleCache().getItemHintsManager(); |
| 36 | +// if (hintManager == null || !hintManager.isGlow(item)) return; |
| 37 | +// |
| 38 | +// // Get list of fake team entities to add our item into it |
| 39 | +// PacketPlayOutScoreboardTeam pTeam = new PacketPlayOutScoreboardTeam(); |
| 40 | +// Object oEntities = Reflex.getFieldValue(pTeam, "h"); // List of team entities |
| 41 | +// if (oEntities == null) return; |
| 42 | +// Collection<String> entities = (Collection<String>) oEntities; |
| 43 | +// entities.add(id.toString()); |
| 44 | +// |
| 45 | +// // Set item custom hint via HintManager before apply glowing |
| 46 | +// //hintManager.setItemHint(item, 0); |
| 47 | +// |
| 48 | +// // Get glowing color depends on hint color. |
| 49 | +// ChatColor cc = ChatColor.WHITE; |
| 50 | +// String name = ItemUT.getItemName(item.getItemStack()); |
| 51 | +// if (name.length() > 2) { |
| 52 | +// String ss = String.valueOf(cc.getChar()); |
| 53 | +// if (name.startsWith(String.valueOf(ChatColor.COLOR_CHAR))) { |
| 54 | +// ss = name.substring(1, 2); |
| 55 | +// } |
| 56 | +// ChatColor c2 = ChatColor.getByChar(ss); |
| 57 | +// if (c2 != null && c2.isColor()) cc = c2; |
| 58 | +// } |
| 59 | +// EnumChatFormat ec = EnumChatFormat.valueOf(cc.name()); |
| 60 | +// |
| 61 | +// Player p = e.getReciever(); |
| 62 | +// |
| 63 | +// // Check if team for this color is already created |
| 64 | +// // Also Check team per player in case of logout |
| 65 | +// boolean newTeam = true; |
| 66 | +// Set<ChatColor> hash = PacketManager.COLOR_CACHE.get(p); |
| 67 | +// if (hash != null) { |
| 68 | +// if (hash.contains(cc)) { |
| 69 | +// newTeam = false; |
| 70 | +// } |
| 71 | +// } else { |
| 72 | +// hash = new HashSet<>(); |
| 73 | +// } |
| 74 | +// hash.add(cc); |
| 75 | +// PacketManager.COLOR_CACHE.put(p, hash); |
| 76 | +// |
| 77 | +// // Set team name for each color |
| 78 | +// String teamId = "GLOW_" + ec.name(); |
| 79 | +// if (teamId.length() > 16) teamId = teamId.substring(0, 16); |
| 80 | +// |
| 81 | +// // Set team fields |
| 82 | +// Reflex.setFieldValue(pTeam, "i", newTeam ? 0 : 3); // 0 = new team, 3 = add entity, 4 = remove entity |
| 83 | +// Reflex.setFieldValue(pTeam, "a", teamId); // Internal team name |
| 84 | +// |
| 85 | +// if (newTeam) { |
| 86 | +// Reflex.setFieldValue(pTeam, "g", ec); // Team color |
| 87 | +// Reflex.setFieldValue(pTeam, "b", new ChatComponentText(teamId)); // Team display name |
| 88 | +// Reflex.setFieldValue(pTeam, "c", new ChatComponentText("")); // Team prefix |
| 89 | +// } |
| 90 | +// |
| 91 | +// // Send packet to a player |
| 92 | +// plugin.getPacketManager().sendPacket(e.getReciever(), pTeam); |
| 93 | +// // Activate colored glowing |
| 94 | +// entity.setGlowing(true); |
| 95 | +// }); |
| 96 | +// |
| 97 | + |
| 98 | +// return; |
| 99 | +// } |
| 100 | + |
| 101 | +// if (packet instanceof PacketPlayOutUpdateAttributes) { |
| 102 | +// this.manageEquipmentChanges(e, packet); |
| 103 | +// PacketPlayOutUpdateAttributes equip = (PacketPlayOutUpdateAttributes) packet; |
| 104 | +// |
| 105 | +// Integer entityId = (Integer) Reflex.getFieldValue(equip, "a"); |
| 106 | +// if (entityId == null) return; |
| 107 | +// |
| 108 | +// CraftServer server = (CraftServer) Bukkit.getServer(); |
| 109 | +// net.minecraft.server.v1_14_R1.Entity nmsEntity = null; |
| 110 | +// for (WorldServer worldServer : server.getServer().getWorlds()) { |
| 111 | +// nmsEntity = worldServer.getEntity(entityId.intValue()); |
| 112 | +// if (nmsEntity != null) { |
| 113 | +// break; |
| 114 | +// } |
| 115 | +// } |
| 116 | +// |
| 117 | +// if (nmsEntity == null) return; |
| 118 | +// |
| 119 | +// Entity bukkitEntity = plugin.getServer().getEntity(nmsEntity.getUniqueID()); |
| 120 | +// if (!(bukkitEntity instanceof LivingEntity)) return; |
| 121 | +// if (EntityManager.isPacketDuplicatorFixed(bukkitEntity)) return; |
| 122 | +// |
| 123 | +// plugin.getServer().getScheduler().runTask(plugin, () -> { |
| 124 | +// EntityEquipmentChangeEvent event = new EntityEquipmentChangeEvent((LivingEntity) bukkitEntity); |
| 125 | +// plugin.getServer().getPluginManager().callEvent(event); |
| 126 | +// }); |
| 127 | +// } |
| 128 | +// } |
| 129 | +// |
| 130 | +// @Override |
| 131 | +// public void manageServerPacket(@NotNull EngineServerPacketEvent e) { |
| 132 | +// |
| 133 | +// } |
| 134 | +} |
0 commit comments