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)
}