Addition of useful InstanceWorld methods.
This commit is contained in:
parent
5bef49ba31
commit
6a4f4d18e7
@ -24,12 +24,14 @@ import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* Basic instance zone data transfer object.
|
||||
@ -109,6 +111,26 @@ public class InstanceWorld
|
||||
return _allowed.contains(player.getObjectId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Teleport player out of instance.
|
||||
* @param player player that should be moved out
|
||||
*/
|
||||
public void ejectPlayer(Player player)
|
||||
{
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
player.setInstanceId(0);
|
||||
if (_instance.getExitLoc() != null)
|
||||
{
|
||||
player.teleToLocation(_instance.getExitLoc(), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.teleToLocation(TeleportWhereType.TOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set instance world parameter.
|
||||
* @param key parameter name
|
||||
@ -332,4 +354,33 @@ public class InstanceWorld
|
||||
door.closeMe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get spawned door by template ID.
|
||||
* @param doorId template ID of door
|
||||
* @return instance of door if found, otherwise {@code null}
|
||||
*/
|
||||
public Door getDoor(int doorId)
|
||||
{
|
||||
return _instance.getDoor(doorId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send packet to each player from instance world.
|
||||
* @param packets packets to be send
|
||||
*/
|
||||
public void broadcastPacket(IClientOutgoingPacket... packets)
|
||||
{
|
||||
for (int objectId : _instance.getPlayers())
|
||||
{
|
||||
final Player player = World.getInstance().getPlayer(objectId);
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
for (IClientOutgoingPacket packet : packets)
|
||||
{
|
||||
player.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,12 +24,14 @@ import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* Basic instance zone data transfer object.
|
||||
@ -109,6 +111,26 @@ public class InstanceWorld
|
||||
return _allowed.contains(player.getObjectId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Teleport player out of instance.
|
||||
* @param player player that should be moved out
|
||||
*/
|
||||
public void ejectPlayer(Player player)
|
||||
{
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
player.setInstanceId(0);
|
||||
if (_instance.getExitLoc() != null)
|
||||
{
|
||||
player.teleToLocation(_instance.getExitLoc(), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.teleToLocation(TeleportWhereType.TOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set instance world parameter.
|
||||
* @param key parameter name
|
||||
@ -332,4 +354,33 @@ public class InstanceWorld
|
||||
door.closeMe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get spawned door by template ID.
|
||||
* @param doorId template ID of door
|
||||
* @return instance of door if found, otherwise {@code null}
|
||||
*/
|
||||
public Door getDoor(int doorId)
|
||||
{
|
||||
return _instance.getDoor(doorId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send packet to each player from instance world.
|
||||
* @param packets packets to be send
|
||||
*/
|
||||
public void broadcastPacket(IClientOutgoingPacket... packets)
|
||||
{
|
||||
for (int objectId : _instance.getPlayers())
|
||||
{
|
||||
final Player player = World.getInstance().getPlayer(objectId);
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
for (IClientOutgoingPacket packet : packets)
|
||||
{
|
||||
player.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,12 +24,14 @@ import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
|
||||
/**
|
||||
* Basic instance zone data transfer object.
|
||||
@ -109,6 +111,26 @@ public class InstanceWorld
|
||||
return _allowed.contains(player.getObjectId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Teleport player out of instance.
|
||||
* @param player player that should be moved out
|
||||
*/
|
||||
public void ejectPlayer(Player player)
|
||||
{
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
player.setInstanceId(0);
|
||||
if (_instance.getExitLoc() != null)
|
||||
{
|
||||
player.teleToLocation(_instance.getExitLoc(), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.teleToLocation(TeleportWhereType.TOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set instance world parameter.
|
||||
* @param key parameter name
|
||||
@ -332,4 +354,33 @@ public class InstanceWorld
|
||||
door.closeMe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get spawned door by template ID.
|
||||
* @param doorId template ID of door
|
||||
* @return instance of door if found, otherwise {@code null}
|
||||
*/
|
||||
public Door getDoor(int doorId)
|
||||
{
|
||||
return _instance.getDoor(doorId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send packet to each player from instance world.
|
||||
* @param packets packets to be send
|
||||
*/
|
||||
public void broadcastPacket(IClientOutgoingPacket... packets)
|
||||
{
|
||||
for (int objectId : _instance.getPlayers())
|
||||
{
|
||||
final Player player = World.getInstance().getPlayer(objectId);
|
||||
if ((player != null) && (player.getInstanceId() == _instance.getId()))
|
||||
{
|
||||
for (IClientOutgoingPacket packet : packets)
|
||||
{
|
||||
player.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user