Fixed NPE on Minigame AI.

This commit is contained in:
MobiusDev
2018-03-12 00:40:59 +00:00
parent bc62652722
commit cd78e6901f

View File

@@ -157,7 +157,7 @@ public final class Minigame extends AbstractNpcAI
room.burnThemAll(); room.burnThemAll();
startQuestTimer("off", 2000, npc, null); startQuestTimer("off", 2000, npc, null);
final ConsumerEventListener listener = new ConsumerEventListener(room.getParticipant(), EventType.ON_CREATURE_SKILL_USE, (OnCreatureSkillUse listenerEvent) -> onSkillUse(listenerEvent), room); final ConsumerEventListener listener = new ConsumerEventListener(room.getParticipant(), EventType.ON_CREATURE_SKILL_USE, (OnCreatureSkillUse listenerEvent) -> onSkillUse(listenerEvent), room);
room.getParticipant().addListener(listener); room.setListener(listener);
room.setCurrentPot(0); room.setCurrentPot(0);
} }
break; break;
@@ -183,11 +183,7 @@ public final class Minigame extends AbstractNpcAI
cancelQuestTimer("expire", npc, null); cancelQuestTimer("expire", npc, null);
cancelQuestTimer("hurry_up", npc, null); cancelQuestTimer("hurry_up", npc, null);
cancelQuestTimer("hurry_up2", npc, null); cancelQuestTimer("hurry_up2", npc, null);
room.getManager().setTarget(null); room.clean();
room.setParticipant(null);
room.setStarted(false);
room.setAttemptNumber(1);
room.setCurrentPot(0);
break; break;
} }
case "afterthat": case "afterthat":
@@ -385,6 +381,7 @@ public final class Minigame extends AbstractNpcAI
private int _attemptNumber; private int _attemptNumber;
private int _currentPot; private int _currentPot;
private final int _order[]; private final int _order[];
private ConsumerEventListener _listener;
public MinigameRoom(L2Npc[] burners, L2Npc manager) public MinigameRoom(L2Npc[] burners, L2Npc manager)
{ {
@@ -524,6 +521,34 @@ public final class Minigame extends AbstractNpcAI
{ {
return _order; return _order;
} }
/**
* Set a listener for player inside room
* @param listener
*/
public void setListener(ConsumerEventListener listener)
{
_listener = listener;
_participant.addListener(listener);
}
/**
* Clean the room values
*/
public void clean()
{
if (_listener != null)
{
_participant.removeListener(_listener);
_listener = null;
}
getManager().setTarget(null);
setParticipant(null);
setStarted(false);
setAttemptNumber(1);
setCurrentPot(0);
}
} }
public static void main(String[] args) public static void main(String[] args)