Fixed freight withdraw issues.

This commit is contained in:
MobiusDev
2018-08-29 18:21:28 +00:00
parent 9d805745b5
commit 3ed319e431
22 changed files with 57 additions and 28 deletions
@@ -3817,7 +3817,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3855,7 +3855,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -11013,7 +11013,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -3823,7 +3823,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3861,7 +3861,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -11020,7 +11020,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -3825,7 +3825,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3863,7 +3863,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -11030,7 +11030,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -3816,7 +3816,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3854,7 +3854,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -11014,7 +11014,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -56,10 +56,6 @@ public class BypassHandler implements IHandler<IBypassHandler, String>
{ {
command = command.substring(0, command.indexOf(" ")); command = command.substring(0, command.indexOf(" "));
} }
else if (command.contains("_"))
{
command = command.substring(0, command.indexOf("_"));
}
return _datatable.get(command.toLowerCase()); return _datatable.get(command.toLowerCase());
} }
@@ -20,6 +20,7 @@ import java.util.logging.Level;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -195,6 +196,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd"> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd">
<npc id="32478" level="70" type="L2Merchant" name="Dimensional Merchant" title="Energy of Life"> <npc id="32478" level="70" type="L2Warehouse" name="Dimensional Merchant" title="Energy of Life">
<race>HUMAN</race> <race>HUMAN</race>
<sex>FEMALE</sex> <sex>FEMALE</sex>
<stats str="40" int="21" dex="30" wit="20" con="43" men="10"> <stats str="40" int="21" dex="30" wit="20" con="43" men="10">
@@ -3793,7 +3793,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3831,7 +3831,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -10954,7 +10954,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd"> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd">
<npc id="32478" level="70" type="L2Merchant" name="Dimensional Merchant" title="Energy of Life"> <npc id="32478" level="70" type="L2Warehouse" name="Dimensional Merchant" title="Energy of Life">
<race>HUMAN</race> <race>HUMAN</race>
<sex>FEMALE</sex> <sex>FEMALE</sex>
<stats str="40" int="21" dex="30" wit="20" con="43" men="10"> <stats str="40" int="21" dex="30" wit="20" con="43" men="10">
@@ -3793,7 +3793,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3831,7 +3831,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -10954,7 +10954,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd"> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/npcs.xsd">
<npc id="32478" level="70" type="L2Merchant" name="Dimensional Merchant" title="Energy of Life"> <npc id="32478" level="70" type="L2Warehouse" name="Dimensional Merchant" title="Energy of Life">
<race>HUMAN</race> <race>HUMAN</race>
<sex>FEMALE</sex> <sex>FEMALE</sex>
<stats str="40" int="21" dex="30" wit="20" con="43" men="10"> <stats str="40" int="21" dex="30" wit="20" con="43" men="10">
@@ -3793,7 +3793,7 @@ public final class L2PcInstance extends L2Playable
public L2ItemInstance checkItemManipulation(int objectId, long count, String action) public L2ItemInstance checkItemManipulation(int objectId, long count, String action)
{ {
// TODO: if we remove objects that are not visisble from the L2World, we'll have to remove this check // TODO: if we remove objects that are not visible from the L2World, we'll have to remove this check
if (L2World.getInstance().findObject(objectId) == null) if (L2World.getInstance().findObject(objectId) == null)
{ {
LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World"); LOGGER.finest(getObjectId() + ": player tried to " + action + " item not available in L2World");
@@ -3831,7 +3831,7 @@ public final class L2PcInstance extends L2Playable
return null; return null;
} }
// We cannot put a Weapon with Augmention in WH while casting (Possible Exploit) // We cannot put a Weapon with Augmentation in WH while casting (Possible Exploit)
if (item.isAugmented() && isCastingNow()) if (item.isAugmented() && isCastingNow())
{ {
return null; return null;
@@ -10956,7 +10956,6 @@ public final class L2PcInstance extends L2Playable
{ {
clanMember.setPlayerInstance(null); clanMember.setPlayerInstance(null);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.commons.network.PacketReader; import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder; import com.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -191,6 +192,10 @@ public class RequestPackageSend implements IClientIncomingPacket
playerIU.addRemovedItem(oldItem); playerIU.addRemovedItem(oldItem);
} }
} }
// Remove item objects from the world.
L2World.getInstance().removeObject(oldItem);
L2World.getInstance().removeObject(newItem);
} }
warehouse.deleteMe(); warehouse.deleteMe();