Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

[INFO] Zone Example Class

Iniciado por Swarlog, Ago 04, 2022, 01:22 AM

Tema anterior - Siguiente tema

Swarlog

public class ZoneExample extends AbstractNpcAI
{
   // Clan Id -> Player Id -> Player
   private final Map<Integer, Map<Integer, L2PcInstance>> _players = new ConcurrentHashMap<>();
     
   private ZoneExample()
   {
      super(ZoneExample.class.getSimpleName(), "custom");
   }
       
   @RegisterEvent(EventType.ON_CREATURE_ZONE_ENTER)
   @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
   private void onCreatureZoneEnter(OnCreatureZoneEnter event)
   {
      final L2PcInstance player = event.getCreature().getActingPlayer();
      if ((player != null) && (player.getClanId() > 0) && (event.getZone() instanceof L2ArenaZone))
      {
         _players.computeIfAbsent(player.getClanId(), key -> new ConcurrentHashMap<>()).put(player.getObjectId(), player);
      }
   }
   
   @RegisterEvent(EventType.ON_CREATURE_ZONE_EXIT)
   @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
   private void onCreatureZoneExit(OnCreatureZoneExit event)
   {
      final L2PcInstance player = event.getCreature().getActingPlayer();
      if ((player != null) && (player.getClanId() > 0) && (event.getZone() instanceof L2ArenaZone))
      {
         final Map<Integer, L2PcInstance> players = _players.get(player.getClanId());
         if (players != null)
         {
            players.remove(player.getObjectId());
            if (players.isEmpty())
            {
               _players.remove(player.getClanId());
            }
         }
      }
   }
   
   public static void main(String[] args)
   {
      new ZoneExample();
   }
}


if (map.contains(player.getClan().getName())
{
     List<L2PcInstance> playersOfClan = map.get(player.getClan().getName());
     playersOfClan.add(player);
}
else
{
     List<L2PcInstance> playersOfClan = new ArrayList<>();
     playersOfClan.add(player);
     map.put(player.getClan().getName(), playersOfClan)
}