Proper solution for class change unequip issue.

This commit is contained in:
MobiusDevelopment
2021-08-23 21:12:01 +00:00
parent bda02389c6
commit 8975ca9f7e
171 changed files with 536 additions and 261 deletions
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2462,6 +2462,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -886,6 +886,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -916,6 +921,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -952,7 +962,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2207,7 +2216,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2231,6 +2241,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2468,6 +2468,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -892,6 +892,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -922,6 +927,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -958,7 +968,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2213,7 +2222,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2237,6 +2247,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2470,6 +2470,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -892,6 +892,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -922,6 +927,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -958,7 +968,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2213,7 +2222,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2237,6 +2247,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -243,7 +243,6 @@ public class Q10874_AgainstTheNewEnemy extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2478,6 +2478,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -892,6 +892,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -922,6 +927,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -958,7 +968,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2213,7 +2222,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2237,6 +2247,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -219,7 +219,6 @@ public class Q10560_WayOfWanderingKnight extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -243,7 +243,6 @@ public class Q10874_AgainstTheNewEnemy extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2474,6 +2474,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -906,6 +906,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -936,6 +941,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -966,6 +976,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -1001,7 +1016,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2286,7 +2300,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2310,6 +2325,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -219,7 +219,6 @@ public class Q10560_WayOfWanderingKnight extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -243,7 +243,6 @@ public class Q10874_AgainstTheNewEnemy extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2474,6 +2474,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -929,6 +929,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -959,6 +964,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -989,6 +999,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -1017,6 +1032,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1069,7 +1089,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2473,7 +2492,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2486,13 +2506,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2504,6 +2517,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -219,7 +219,6 @@ public class Q10560_WayOfWanderingKnight extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -243,7 +243,6 @@ public class Q10874_AgainstTheNewEnemy extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2474,6 +2474,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -929,6 +929,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -959,6 +964,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -989,6 +999,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -1017,6 +1032,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1069,7 +1089,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2473,7 +2492,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2486,13 +2506,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2504,6 +2517,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -197,7 +197,6 @@ public class Q10514_NewPathToGlory extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -243,7 +243,6 @@ public class Q10874_AgainstTheNewEnemy extends Quest
} }
} }
return htmltext; return htmltext;
} }
@Override @Override
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -45,7 +45,6 @@ public class SymbolSealData implements IXmlReader
public void load() public void load()
{ {
parseDatapackFile("data/SymbolSealData.xml"); parseDatapackFile("data/SymbolSealData.xml");
} }
@Override @Override
@@ -365,7 +365,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2408,6 +2408,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -923,6 +923,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -953,6 +958,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -983,6 +993,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -1011,6 +1026,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1063,7 +1083,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2458,7 +2477,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2471,13 +2491,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2489,6 +2502,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -45,7 +45,6 @@ public class SymbolSealData implements IXmlReader
public void load() public void load()
{ {
parseDatapackFile("data/SymbolSealData.xml"); parseDatapackFile("data/SymbolSealData.xml");
} }
@Override @Override
@@ -369,7 +369,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2439,6 +2439,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -905,6 +905,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -935,6 +940,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -965,6 +975,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -993,6 +1008,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1045,7 +1065,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2440,7 +2459,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2453,13 +2473,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2471,6 +2484,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -45,7 +45,6 @@ public class SymbolSealData implements IXmlReader
public void load() public void load()
{ {
parseDatapackFile("data/SymbolSealData.xml"); parseDatapackFile("data/SymbolSealData.xml");
} }
@Override @Override
@@ -369,7 +369,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2456,6 +2456,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -905,6 +905,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -935,6 +940,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -965,6 +975,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -993,6 +1008,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1045,7 +1065,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2440,7 +2459,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2453,13 +2473,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2471,6 +2484,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -158,7 +158,6 @@ public class CreatureAI extends AbstractAI
// Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast) // Stop the actor auto-attack client side by sending Server->Client packet AutoAttackStop (broadcast)
clientStopAutoAttack(); clientStopAutoAttack();
} }
/** /**
@@ -45,7 +45,6 @@ public class SymbolSealData implements IXmlReader
public void load() public void load()
{ {
parseDatapackFile("data/SymbolSealData.xml"); parseDatapackFile("data/SymbolSealData.xml");
} }
@Override @Override
@@ -369,7 +369,6 @@ public class InstanceManager implements IXmlReader
// Save template // Save template
_instanceTemplates.put(id, template); _instanceTemplates.put(id, template);
} }
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -2456,6 +2456,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* @return the Experience of the PlayerInstance. * @return the Experience of the PlayerInstance.
*/ */
@@ -85,7 +85,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setReputation(_reputation); _player.setReputation(_reputation);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -905,6 +905,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -935,6 +940,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_BROOCH) if (item.getItem().getBodyPart() == Item.SLOT_BROOCH)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1); inventory.unEquipItemInSlot(PAPERDOLL_BROOCH_JEWEL1);
@@ -965,6 +975,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_L_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1); inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
@@ -993,6 +1008,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK) if (item.getItem().getBodyPart() == Item.SLOT_ARTIFACT_BOOK)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1); inventory.unEquipItemInSlot(PAPERDOLL_ARTIFACT1);
@@ -1045,7 +1065,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -2440,7 +2459,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2453,13 +2473,6 @@ public abstract class Inventory extends ItemContainer
} }
slot = item.getLocationSlot(); slot = item.getLocationSlot();
// Do not unequip bracelets, talismans or artifacts.
if ((slot >= PAPERDOLL_LBRACELET) && (slot <= PAPERDOLL_ARTIFACT21))
{
continue;
}
for (PaperdollListener listener : _paperdollListeners) for (PaperdollListener listener : _paperdollListeners)
{ {
if (listener == null) if (listener == null)
@@ -2471,6 +2484,7 @@ public abstract class Inventory extends ItemContainer
listener.notifyEquiped(slot, item, this); listener.notifyEquiped(slot, item, this);
} }
} }
if (getOwner().isPlayer()) if (getOwner().isPlayer())
{ {
getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer())); getOwner().sendPacket(new ExUserInfoEquipSlot(getOwner().getActingPlayer()));
@@ -305,7 +305,6 @@ public class LongTimeEvent extends Quest
} }
} }
}.load(); }.load();
} }
protected class ScheduleStart implements Runnable protected class ScheduleStart implements Runnable
@@ -52,6 +52,5 @@ public class SnoopQuit implements IClientIncomingPacket
target.removeSnooper(player); target.removeSnooper(player);
player.removeSnooped(target); player.removeSnooped(target);
} }
} }
@@ -1580,15 +1580,13 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
ItemInstance item;
int slot; int slot;
for (ItemInstance element : _paperdoll) for (ItemInstance item : _paperdoll)
{ {
item = element;
if (item == null) if (item == null)
{ {
continue; continue;
@@ -107,7 +107,6 @@ public class DynamicZone extends ZoneType
} }
} }
_owner.stopSkillEffects(_skill.getId()); _owner.stopSkillEffects(_skill.getId());
} }
@Override @Override
@@ -43,7 +43,6 @@ public class RequestSendFriendMsg implements IClientIncomingPacket
_message = packet.readS(); _message = packet.readS();
_reciever = packet.readS(); _reciever = packet.readS();
return true; return true;
} }
@Override @Override
@@ -1599,15 +1599,13 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
ItemInstance item;
int slot; int slot;
for (ItemInstance element : _paperdoll) for (ItemInstance item : _paperdoll)
{ {
item = element;
if (item == null) if (item == null)
{ {
continue; continue;
@@ -107,7 +107,6 @@ public class DynamicZone extends ZoneType
} }
} }
_owner.stopSkillEffects(_skill.getId()); _owner.stopSkillEffects(_skill.getId());
} }
@Override @Override
@@ -43,7 +43,6 @@ public class RequestSendFriendMsg implements IClientIncomingPacket
_message = packet.readS(); _message = packet.readS();
_reciever = packet.readS(); _reciever = packet.readS();
return true; return true;
} }
@Override @Override
@@ -2444,6 +2444,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* Used for AltGameSkillLearn to set a custom skill learning class Id. * Used for AltGameSkillLearn to set a custom skill learning class Id.
*/ */
@@ -78,7 +78,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setKarma(_karma); _player.setKarma(_karma);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)
@@ -711,6 +711,11 @@ public abstract class Inventory extends ItemContainer
@Override @Override
public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory) public void notifyUnequiped(int slot, ItemInstance item, Inventory inventory)
{ {
if (item.getActingPlayer().isChangingClass())
{
return;
}
if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET) if (item.getItem().getBodyPart() == Item.SLOT_R_BRACELET)
{ {
inventory.unEquipItemInSlot(PAPERDOLL_DECO1); inventory.unEquipItemInSlot(PAPERDOLL_DECO1);
@@ -746,7 +751,6 @@ public abstract class Inventory extends ItemContainer
// common // common
addPaperdollListener(StatsListener.getInstance()); addPaperdollListener(StatsListener.getInstance());
} }
protected abstract ItemLocation getEquipLocation(); protected abstract ItemLocation getEquipLocation();
@@ -1862,7 +1866,8 @@ public abstract class Inventory extends ItemContainer
} }
/** /**
* Re-notify to paperdoll listeners every equipped item * Re-notify to paperdoll listeners every equipped item.<br>
* Only used by player ClassId set methods.
*/ */
public void reloadEquippedItems() public void reloadEquippedItems()
{ {
@@ -2355,6 +2355,11 @@ public class PlayerInstance extends Playable
} }
} }
public boolean isChangingClass()
{
return _subclassLock;
}
/** /**
* Used for AltGameSkillLearn to set a custom skill learning class Id. * Used for AltGameSkillLearn to set a custom skill learning class Id.
*/ */
@@ -78,7 +78,6 @@ public class PlayerEventHolder
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setKarma(_karma); _player.setKarma(_karma);
} }
public void setSitForced(boolean sitForced) public void setSitForced(boolean sitForced)

Some files were not shown because too many files have changed in this diff Show More