OmEga31
Ньюби
- Баллы
- 1
- Имя в Minecraft
- Chebyrek
Код:
public Map<ArrayList<UUID>, EntityArmorStand> hiddenmap = new HashMap<ArrayList<UUID>, EntityArmorStand>();
public void hide(Player player, Player hideFrom) {
if (player == hideFrom)
return;
// Add Players to the List
ArrayList<UUID> list = new ArrayList<UUID>();
list.add(player.getUniqueId());
list.add(hideFrom.getUniqueId());
if (hiddenmap.containsKey(list)) {
return;
}
// spawning the Armorstand & setting it up
Location pos = player.getLocation();
EntityArmorStand stand = new EntityArmorStand(((CraftWorld) pos.getWorld()).getHandle(), pos.getX(), pos.getY(),pos.getZ());
stand.setInvisible(true);
stand.setInvulnerable(true);
stand.setMarker(true);
stand.setCustomNameVisible(false);
CraftPlayer p = (CraftPlayer) player;
p.getHandle().passengers.add(stand);
// Packet packing
PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving(stand);
// "Registering" the Stand and the Players
hiddenmap.put(list, stand);
// Packet sending
CraftPlayer ply = (CraftPlayer) hideFrom;
ply.getHandle().playerConnection.sendPacket(packet);
}
public void unhide(Player player, Player hiddenFrom) {
if (player == hiddenFrom)
return;
ArrayList<UUID> list = new ArrayList<UUID>();
list.add(player.getUniqueId());
list.add(hiddenFrom.getUniqueId());
if (!(hiddenmap.containsKey(list))) {
return;
}
EntityArmorStand stand = hiddenmap.get(list);
PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(stand.getId());
CraftPlayer ply = (CraftPlayer) hiddenFrom;
ply.getHandle().playerConnection.sendPacket(packet);
hiddenmap.remove(list);
}
Последнее редактирование: