объявить для своего инстанса наследный класс от Reflection и делать в нем что хочется - там есть методы onPlayerEnter и onPlayerExit, вызывающиеся при входе и выходе игрока в инстанс.
пример инстанса, имеющего свой особый класс - в нем при входе игроку показывают сценку на дивжке игры
package instances;
import l2p.gameserver.enums.Scene;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.entity.Reflection;
/**
* @author Gaikotsu
*/
public class AdventOfDelusion extends Reflection
{
@Override
public void onPlayerEnter(Player player)
{
super.onPlayerEnter(player);
player.showScene(Scene.BLOODVEIN_OPENING);
}
}
ну и естественно создавать и входить в инстанс с этим самым наследным классом, а не с базовым Reflection, т.е. так к примеру
ReflectionUtils.simpleEnterInstancedZone(player, new AdventOfDelusion(), izId);
ну а для того, чтобы сразу же при выходе из инстанса убрать игрока из списка посетивших его - надо его удалить из списка _visitors в этом самом методе onPlayerExit
_visitors.remove(player.getObjectId());