L2JMobius

High Five Found null parameter for SystemMessageId

kinghanker · 5 · 2081

Offline kinghanker

  • Knight
  • ***
    • Posts: 64
This is the second message I get with null value. The first one I'll leave my solution here in case you're interested. This one from print I didn't find a value to add so I changed the message



first message: PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW
EnterWorld.java
Code: [Select]
--- a/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java
+++ b/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java
@@ -251,12 +251,11 @@ public class EnterWorld implements IClientIncomingPacket
  notifySponsorOrApprentice(player);
 
  final AuctionableHall clanHall = ClanHallTable.getInstance().getClanHallByOwner(clan);
- if (clanHall != null)
+ if ((clanHall != null) && !clanHall.getPaid() && (clan.getWarehouse().getAdena() < clanHall.getLease()))
  {
- if (!clanHall.getPaid())
- {
- player.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
- }
+ SystemMessage sm = new SystemMessage(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
+ sm.addInt(clanHall.getLease());
+ player.sendPacket(sm);
  }
 
  for (Siege siege : SiegeManager.getInstance().getSieges())


Second message:

Code: [Select]
--- a/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
+++ b/dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
@@ -121,7 +121,7 @@ public class MercTicket implements IItemHandler
 
  MercTicketManager.getInstance().addTicket(item.getId(), player);
  player.destroyItem("Consume", item.getObjectId(), 1, null, false); // Remove item from char's inventory
- player.sendPacket(SystemMessageId.PLACE_S1_IN_THE_CURRENT_LOCATION_AND_DIRECTION_DO_YOU_WISH_TO_CONTINUE);
+ player.sendPacket(SystemMessageId.PLACE_CURRENT_LOCATION_DIRECTION);
  return true;
  }
 }

--- a/java/org/l2jmobius/gameserver/network/SystemMessageId.java
+++ b/java/org/l2jmobius/gameserver/network/SystemMessageId.java
@@ -1997,7 +1997,7 @@ public class SystemMessageId
  public static SystemMessageId YOU_MAY_NOT_SUMMON_FROM_YOUR_CURRENT_LOCATION;
 
  @ClientString(id = 651, message = "Place $s1 in the current location and direction. Do you wish to continue?")
- public static SystemMessageId PLACE_S1_IN_THE_CURRENT_LOCATION_AND_DIRECTION_DO_YOU_WISH_TO_CONTINUE;
+ public static SystemMessageId PLACE_CURRENT_LOCATION_DIRECTION;
 
  @ClientString(id = 652, message = "The target of the summoned monster is wrong.")
  public static SystemMessageId THE_TARGET_OF_THE_SUMMONED_MONSTER_IS_WRONG;


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16052
I have recently seen the clanhall message as well.
Better add an empty string just to skip the warning.
Adding the required lease makes no sense.
Code: [Select]
final SystemMessage sm = new SystemMessage(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
sm.addString("");
player.sendPacket(sm);


Offline kinghanker

  • Knight
  • ***
    • Posts: 64
I added location just to complement the message.
Unfortunately the second message had to be changed.


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16052
Second message could be...
Code: [Select]
Index: dist/game/data/scripts/handlers/itemhandlers/MercTicket.java
===================================================================
--- dist/game/data/scripts/handlers/itemhandlers/MercTicket.java (revision 10070)
+++ dist/game/data/scripts/handlers/itemhandlers/MercTicket.java (working copy)
@@ -25,6 +25,7 @@
 import org.l2jmobius.gameserver.model.sevensigns.SevenSigns;
 import org.l2jmobius.gameserver.model.siege.Castle;
 import org.l2jmobius.gameserver.network.SystemMessageId;
+import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
 
 public class MercTicket implements IItemHandler
 {
@@ -121,7 +122,9 @@
 
  MercTicketManager.getInstance().addTicket(item.getId(), player);
  player.destroyItem("Consume", item.getObjectId(), 1, null, false); // Remove item from char's inventory
- player.sendPacket(SystemMessageId.PLACE_S1_IN_THE_CURRENT_LOCATION_AND_DIRECTION_DO_YOU_WISH_TO_CONTINUE);
+ final SystemMessage sm = new SystemMessage(SystemMessageId.PLACE_S1_IN_THE_CURRENT_LOCATION_AND_DIRECTION_DO_YOU_WISH_TO_CONTINUE);
+ sm.addItemName(item.getId());
+ player.sendPacket(sm);
  return true;
  }
 }