From ddeb0b1f481f3a03b2951a03e60506926e5d0820 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 26 Jan 2022 06:20:51 +0000 Subject: [PATCH] Fixed Scroll of Escape clan related NPE. Thanks to Strelook66 and ver. --- .../network/clientpackets/UseItem.java | 82 +++++++++---------- .../network/clientpackets/UseItem.java | 82 +++++++++---------- 2 files changed, 82 insertions(+), 82 deletions(-) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java index 55f4ed272f..4d88dbf6c4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java @@ -137,9 +137,9 @@ public class UseItem implements IClientIncomingPacket player.cancelActiveTrade(); } + // No unequipping wear-items. if (item.isWear()) { - // No unequipping wear-items return; } @@ -163,93 +163,93 @@ public class UseItem implements IClientIncomingPacket return; } - // Items that cannot be used + // Items that cannot be used. if (itemId == 57) { return; } - if ((itemId == 5858) && (ClanHallTable.getInstance().getClanHallByOwner(player.getClan()) == null)) - { - player.sendMessage("Blessed Scroll of Escape: Clan Hall cannot be used due to unsuitable terms."); - return; - } - else if ((itemId == 5859) && (CastleManager.getInstance().getCastleByOwner(player.getClan()) == null)) - { - player.sendMessage("Blessed Scroll of Escape: Castle cannot be used due to unsuitable terms."); - return; - } - + // You cannot do anything else while fishing. if (player.isFishing() && ((itemId < 6535) || (itemId > 6540))) { - // You cannot do anything else while fishing player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_FISHING_3)); return; } if ((player.getPkKills() > 0) && ((itemId >= 7816) && (itemId <= 7831))) { - // Retail messages... same L2OFF - player.sendMessage("You do not meet the required condition to equip that item."); - player.sendMessage("You are unable to equip this item when your PK count is greater than or equal to one."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_EQUIP_THIS_ITEM_WHEN_YOUR_PK_COUNT_IS_GREATER_THAN_OR_EQUAL_TO_ONE)); return; } - final Clan cl = player.getClan(); - // A shield that can only be used by the members of a clan that owns a castle. - if (((cl == null) || (cl.getCastleId() == 0)) && (itemId == 7015) && Config.CASTLE_SHIELD && !player.isGM()) + // Scroll of resurrection like L2OFF if you are casting you can't use them. + if (((itemId == 737) || (itemId == 3936) || (itemId == 3959) || (itemId == 6387)) && player.isCastingNow()) { - player.sendMessage("You can't equip that."); + return; + } + + final Clan clan = player.getClan(); + if ((itemId == 5858) && ((clan == null) || (ClanHallTable.getInstance().getClanHallByOwner(clan) == null))) + { + player.sendPacket(new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(5858)); + return; + } + + if ((itemId == 5859) && ((clan == null) || (CastleManager.getInstance().getCastleByOwner(clan) == null))) + { + player.sendPacket(new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(5859)); + return; + } + + // A shield that can only be used by the members of a clan that owns a castle. + if (((clan == null) || (clan.getCastleId() == 0)) && (itemId == 7015) && Config.CASTLE_SHIELD && !player.isGM()) + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // A shield that can only be used by the members of a clan that owns a clan hall. - if (((cl == null) || (cl.getHideoutId() == 0)) && (itemId == 6902) && Config.CLANHALL_SHIELD && !player.isGM()) + if (((clan == null) || (clan.getHideoutId() == 0)) && (itemId == 6902) && Config.CLANHALL_SHIELD && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // Apella armor used by clan members may be worn by a Baron or a higher level Aristocrat. - if ((itemId >= 7860) && (itemId <= 7879) && Config.APELLA_ARMORS && ((cl == null) || (player.getPledgeClass() < 5)) && !player.isGM()) + if ((itemId >= 7860) && (itemId <= 7879) && Config.APELLA_ARMORS && ((clan == null) || (player.getPledgeClass() < 5)) && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - // Clan Oath armor used by all clan members - if ((itemId >= 7850) && (itemId <= 7859) && Config.OATH_ARMORS && (cl == null) && !player.isGM()) + // Clan Oath armor used by all clan members. + if ((itemId >= 7850) && (itemId <= 7859) && Config.OATH_ARMORS && (clan == null) && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - // The Lord's Crown used by castle lords only - if ((itemId == CrownTable.CROWN_OF_THE_LORD) && Config.CASTLE_CROWN && ((cl == null) || (cl.getCastleId() == 0) || !player.isClanLeader()) && !player.isGM()) - { - player.sendMessage("You can't equip that."); - return; - } - - // Scroll of resurrection like L2OFF if you are casting you can't use them - if (((itemId == 737) || (itemId == 3936) || (itemId == 3959) || (itemId == 6387)) && player.isCastingNow()) + // The Lord's Crown used by castle lords only. + if ((itemId == CrownTable.CROWN_OF_THE_LORD) && Config.CASTLE_CROWN && ((clan == null) || (clan.getCastleId() == 0) || !player.isClanLeader()) && !player.isGM()) { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // Castle circlets used by the members of a clan that owns a castle, academy members are excluded. if (Config.CASTLE_CIRCLETS && (((itemId >= 6834) && (itemId <= 6840)) || (itemId == 8182) || (itemId == 8183))) { - if (cl == null) + if (clan == null) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - final int circletId = CastleManager.getInstance().getCircletByCastleId(cl.getCastleId()); + final int circletId = CastleManager.getInstance().getCircletByCastleId(clan.getCastleId()); if ((player.getPledgeType() == -1) || (circletId != itemId)) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java index 1b864bd881..0eff58d1b1 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java @@ -138,9 +138,9 @@ public class UseItem implements IClientIncomingPacket player.cancelActiveTrade(); } + // No unequipping wear-items. if (item.isWear()) { - // No unequipping wear-items return; } @@ -164,93 +164,93 @@ public class UseItem implements IClientIncomingPacket return; } - // Items that cannot be used + // Items that cannot be used. if (itemId == 57) { return; } - if ((itemId == 5858) && (ClanHallTable.getInstance().getClanHallByOwner(player.getClan()) == null)) - { - player.sendMessage("Blessed Scroll of Escape: Clan Hall cannot be used due to unsuitable terms."); - return; - } - else if ((itemId == 5859) && (CastleManager.getInstance().getCastleByOwner(player.getClan()) == null)) - { - player.sendMessage("Blessed Scroll of Escape: Castle cannot be used due to unsuitable terms."); - return; - } - + // You cannot do anything else while fishing. if (player.isFishing() && ((itemId < 6535) || (itemId > 6540))) { - // You cannot do anything else while fishing player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_FISHING_3)); return; } if ((player.getPkKills() > 0) && ((itemId >= 7816) && (itemId <= 7831))) { - // Retail messages... same L2OFF - player.sendMessage("You do not meet the required condition to equip that item."); - player.sendMessage("You are unable to equip this item when your PK count is greater than or equal to one."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_EQUIP_THIS_ITEM_WHEN_YOUR_PK_COUNT_IS_GREATER_THAN_OR_EQUAL_TO_ONE)); return; } - final Clan cl = player.getClan(); - // A shield that can only be used by the members of a clan that owns a castle. - if (((cl == null) || (cl.getCastleId() == 0)) && (itemId == 7015) && Config.CASTLE_SHIELD && !player.isGM()) + // Scroll of resurrection like L2OFF if you are casting you can't use them. + if (((itemId == 737) || (itemId == 3936) || (itemId == 3959) || (itemId == 6387)) && player.isCastingNow()) { - player.sendMessage("You can't equip that."); + return; + } + + final Clan clan = player.getClan(); + if ((itemId == 5858) && ((clan == null) || (ClanHallTable.getInstance().getClanHallByOwner(clan) == null))) + { + player.sendPacket(new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(5858)); + return; + } + + if ((itemId == 5859) && ((clan == null) || (CastleManager.getInstance().getCastleByOwner(clan) == null))) + { + player.sendPacket(new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(5859)); + return; + } + + // A shield that can only be used by the members of a clan that owns a castle. + if (((clan == null) || (clan.getCastleId() == 0)) && (itemId == 7015) && Config.CASTLE_SHIELD && !player.isGM()) + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // A shield that can only be used by the members of a clan that owns a clan hall. - if (((cl == null) || (cl.getHideoutId() == 0)) && (itemId == 6902) && Config.CLANHALL_SHIELD && !player.isGM()) + if (((clan == null) || (clan.getHideoutId() == 0)) && (itemId == 6902) && Config.CLANHALL_SHIELD && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // Apella armor used by clan members may be worn by a Baron or a higher level Aristocrat. - if ((itemId >= 7860) && (itemId <= 7879) && Config.APELLA_ARMORS && ((cl == null) || (player.getPledgeClass() < 5)) && !player.isGM()) + if ((itemId >= 7860) && (itemId <= 7879) && Config.APELLA_ARMORS && ((clan == null) || (player.getPledgeClass() < 5)) && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - // Clan Oath armor used by all clan members - if ((itemId >= 7850) && (itemId <= 7859) && Config.OATH_ARMORS && (cl == null) && !player.isGM()) + // Clan Oath armor used by all clan members. + if ((itemId >= 7850) && (itemId <= 7859) && Config.OATH_ARMORS && (clan == null) && !player.isGM()) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - // The Lord's Crown used by castle lords only - if ((itemId == CrownTable.CROWN_OF_THE_LORD) && Config.CASTLE_CROWN && ((cl == null) || (cl.getCastleId() == 0) || !player.isClanLeader()) && !player.isGM()) - { - player.sendMessage("You can't equip that."); - return; - } - - // Scroll of resurrection like L2OFF if you are casting you can't use them - if (((itemId == 737) || (itemId == 3936) || (itemId == 3959) || (itemId == 6387)) && player.isCastingNow()) + // The Lord's Crown used by castle lords only. + if ((itemId == CrownTable.CROWN_OF_THE_LORD) && Config.CASTLE_CROWN && ((clan == null) || (clan.getCastleId() == 0) || !player.isClanLeader()) && !player.isGM()) { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } // Castle circlets used by the members of a clan that owns a castle, academy members are excluded. if (Config.CASTLE_CIRCLETS && (((itemId >= 6834) && (itemId <= 6840)) || (itemId == 8182) || (itemId == 8183))) { - if (cl == null) + if (clan == null) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } - final int circletId = CastleManager.getInstance().getCircletByCastleId(cl.getCastleId()); + final int circletId = CastleManager.getInstance().getCircletByCastleId(clan.getCastleId()); if ((player.getPledgeType() == -1) || (circletId != itemId)) { - player.sendMessage("You can't equip that."); + player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM)); return; } }