Disarm should re-equip item after effect ends.
Contributed by Sahar.
This commit is contained in:
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,11 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.conditions.Condition;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -28,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(Condition attachCond, Condition applyCond, StatSet set, StatSet params)
|
||||
{
|
||||
super(attachCond, applyCond, set, params);
|
||||
@@ -48,6 +57,53 @@ public class Disarm extends AbstractEffect
|
||||
@Override
|
||||
public void onStart(BuffInfo info)
|
||||
{
|
||||
info.getEffected().getActingPlayer().disarmWeapons();
|
||||
final PlayerInstance player = info.getEffected().getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendPacket(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(BuffInfo info)
|
||||
{
|
||||
final PlayerInstance player = info.getEffected().getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(player.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendPacket(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,11 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.conditions.Condition;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -28,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(Condition attachCond, Condition applyCond, StatSet set, StatSet params)
|
||||
{
|
||||
super(attachCond, applyCond, set, params);
|
||||
@@ -48,6 +57,53 @@ public class Disarm extends AbstractEffect
|
||||
@Override
|
||||
public void onStart(BuffInfo info)
|
||||
{
|
||||
info.getEffected().getActingPlayer().disarmWeapons();
|
||||
final PlayerInstance player = info.getEffected().getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendPacket(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(BuffInfo info)
|
||||
{
|
||||
final PlayerInstance player = info.getEffected().getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(player.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendPacket(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
@@ -16,13 +16,18 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectFlag;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
|
||||
/**
|
||||
* Disarm effect implementation.
|
||||
@@ -30,6 +35,8 @@ import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
*/
|
||||
public class Disarm extends AbstractEffect
|
||||
{
|
||||
private static final Map<Integer, Integer> _disarmedPlayers = new ConcurrentHashMap<>();
|
||||
|
||||
public Disarm(StatSet params)
|
||||
{
|
||||
}
|
||||
@@ -47,12 +54,55 @@ public class Disarm extends AbstractEffect
|
||||
}
|
||||
|
||||
@Override
|
||||
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
public void onStart(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
player.disarmWeapons();
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance itemToDisarm = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
|
||||
if (itemToDisarm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final long slot = player.getInventory().getSlotFromItem(itemToDisarm);
|
||||
player.getInventory().unEquipItemInBodySlot(slot);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(itemToDisarm);
|
||||
player.sendInventoryUpdate(iu);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
_disarmedPlayers.put(player.getObjectId(), itemToDisarm.getObjectId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(Creature effector, Creature effected, Skill skill)
|
||||
{
|
||||
final PlayerInstance player = effected.getActingPlayer();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Integer itemObjectId = _disarmedPlayers.remove(effected.getObjectId());
|
||||
if (itemObjectId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemInstance item = player.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
player.getInventory().equipItem(item);
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(item);
|
||||
player.sendInventoryUpdate(iu);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user