Addition of useful InstanceWorld methods.
This commit is contained in:
@@ -24,12 +24,14 @@ import java.util.Set;
|
|||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.l2jmobius.commons.util.CommonUtil;
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic instance zone data transfer object.
|
* Basic instance zone data transfer object.
|
||||||
@@ -109,6 +111,26 @@ public class InstanceWorld
|
|||||||
return _allowed.contains(player.getObjectId());
|
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.
|
* Set instance world parameter.
|
||||||
* @param key parameter name
|
* @param key parameter name
|
||||||
@@ -332,4 +354,33 @@ public class InstanceWorld
|
|||||||
door.closeMe();
|
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 java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.l2jmobius.commons.util.CommonUtil;
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic instance zone data transfer object.
|
* Basic instance zone data transfer object.
|
||||||
@@ -109,6 +111,26 @@ public class InstanceWorld
|
|||||||
return _allowed.contains(player.getObjectId());
|
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.
|
* Set instance world parameter.
|
||||||
* @param key parameter name
|
* @param key parameter name
|
||||||
@@ -332,4 +354,33 @@ public class InstanceWorld
|
|||||||
door.closeMe();
|
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 java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.l2jmobius.commons.util.CommonUtil;
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import org.l2jmobius.gameserver.enums.TeleportWhereType;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.World;
|
import org.l2jmobius.gameserver.model.World;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
import org.l2jmobius.gameserver.model.actor.instance.Door;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic instance zone data transfer object.
|
* Basic instance zone data transfer object.
|
||||||
@@ -109,6 +111,26 @@ public class InstanceWorld
|
|||||||
return _allowed.contains(player.getObjectId());
|
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.
|
* Set instance world parameter.
|
||||||
* @param key parameter name
|
* @param key parameter name
|
||||||
@@ -332,4 +354,33 @@ public class InstanceWorld
|
|||||||
door.closeMe();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user