L2JMobius

Master Class Ch. 3 set hero geting error ~~

dregspan · 3 · 149

Offline dregspan

  • Heir
  • **
    • Posts: 39
  • I like LineageII
Hello everyone ~~
I want to report a problem ~ When I set up my hero account character
The simulator will report an error ~ The error message is as follows :

*************************************************************************************************************

05 01, 2024 7:32:22 org.l2jmobius.gameserver.model.events.EventDispatcher notifyToListeners
Warning : EventDispatcher: Exception during notification of event: OnPlayerTakeHero listener: ConsumerEventListener
java.lang.NullPointerException: Cannot invoke "org.l2jmobius.gameserver.model.clan.Clan.hasMastery(int)" because the return value of "org.l2jmobius.gameserver.model.actor.Player.getClan()" is null
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.checkClan(OlympiadHeroDailyMissionHandler.java:112)
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.onPlayerTakeHero(OlympiadHeroDailyMissionHandler.java:89)
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.lambda$init$0(OlympiadHeroDailyMissionHandler.java:55)
   at org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener.executeEvent(ConsumerEventListener.java:44)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyToListeners(EventDispatcher.java:289)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEventImpl(EventDispatcher.java:268)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEvent(EventDispatcher.java:123)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEvent(EventDispatcher.java:87)
   at org.l2jmobius.gameserver.model.olympiad.Hero.claimHero(Hero.java:976)
   at ai.others.MonumentOfHeroes.MonumentOfHeroes.onAdvEvent(MonumentOfHeroes.java:264)
   at org.l2jmobius.gameserver.model.quest.Quest.notifyEvent(Quest.java:568)
   at org.l2jmobius.gameserver.model.actor.Player.processQuestEvent(Player.java:1612)
   at handlers.bypasshandlers.QuestLink.useBypass(QuestLink.java:73)
   at org.l2jmobius.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:286)
   at org.l2jmobius.gameserver.network.clientpackets.ClientPacket.run(ClientPacket.java:53)
   at org.l2jmobius.commons.threads.RunnableWrapper.run(RunnableWrapper.java:35)
   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
   at java.base/java.lang.Thread.run(Thread.java:1583)

*************************************************************************************************************
05 01, 2024 7:32:22 org.l2jmobius.gameserver.model.events.EventDispatcher notifyToListeners
Warning : EventDispatcher: Exception during notification of event: OnPlayerTakeHero listener: ConsumerEventListener
java.lang.NullPointerException: Cannot invoke "org.l2jmobius.gameserver.model.clan.Clan.hasMastery(int)" because the return value of "org.l2jmobius.gameserver.model.actor.Player.getClan()" is null
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.checkClan(OlympiadHeroDailyMissionHandler.java:112)
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.onPlayerTakeHero(OlympiadHeroDailyMissionHandler.java:89)
   at handlers.dailymissionhandlers.OlympiadHeroDailyMissionHandler.lambda$init$0(OlympiadHeroDailyMissionHandler.java:55)
   at org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener.executeEvent(ConsumerEventListener.java:44)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyToListeners(EventDispatcher.java:289)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEventImpl(EventDispatcher.java:268)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEvent(EventDispatcher.java:123)
   at org.l2jmobius.gameserver.model.events.EventDispatcher.notifyEvent(EventDispatcher.java:87)
   at org.l2jmobius.gameserver.model.olympiad.Hero.claimHero(Hero.java:976)
   at ai.others.MonumentOfHeroes.MonumentOfHeroes.onAdvEvent(MonumentOfHeroes.java:264)
   at org.l2jmobius.gameserver.model.quest.Quest.notifyEvent(Quest.java:568)
   at org.l2jmobius.gameserver.model.actor.Player.processQuestEvent(Player.java:1612)
   at handlers.bypasshandlers.QuestLink.useBypass(QuestLink.java:73)
   at org.l2jmobius.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:286)
   at org.l2jmobius.gameserver.network.clientpackets.ClientPacket.run(ClientPacket.java:53)
   at org.l2jmobius.commons.threads.RunnableWrapper.run(RunnableWrapper.java:35)
   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
   at java.base/java.lang.Thread.run(Thread.java:1583)
*************************************************************************************************************
Please help ~ Thank you ~  :D


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16236
Try this.
Code: [Select]
Index: dist/game/data/scripts/handlers/dailymissionhandlers/OlympiadHeroDailyMissionHandler.java
===================================================================
--- dist/game/data/scripts/handlers/dailymissionhandlers/OlympiadHeroDailyMissionHandler.java (revision 13781)
+++ dist/game/data/scripts/handlers/dailymissionhandlers/OlympiadHeroDailyMissionHandler.java (working copy)
@@ -21,6 +21,7 @@
 import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
 import org.l2jmobius.gameserver.model.DailyMissionPlayerEntry;
 import org.l2jmobius.gameserver.model.actor.Player;
+import org.l2jmobius.gameserver.model.clan.Clan;
 import org.l2jmobius.gameserver.model.events.Containers;
 import org.l2jmobius.gameserver.model.events.EventType;
 import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerTakeHero;
@@ -109,8 +110,14 @@
  return false;
  }
 
- final int clanMastery = player.getClan().hasMastery(14) ? 14 : player.getClan().hasMastery(15) ? 15 : player.getClan().hasMastery(16) ? 16 : 0;
- return ((player.getClan().getLevel() >= _minClanLevel) && (clanMastery >= _minClanMasteryLevel));
+ final Clan clan = player.getClan();
+ if (clan == null)
+ {
+ return false;
+ }
+
+ final int clanMastery = clan.hasMastery(14) ? 14 : clan.hasMastery(15) ? 15 : clan.hasMastery(16) ? 16 : 0;
+ return ((clan.getLevel() >= _minClanLevel) && (clanMastery >= _minClanMasteryLevel));
  }
 
  private boolean checkRequiredMission(Player player)