Fixed probable random player NPE in solo instances.

This commit is contained in:
MobiusDevelopment
2022-08-22 22:18:07 +00:00
parent 7765b83c16
commit 573f765b23
15 changed files with 72 additions and 57 deletions

View File

@@ -354,7 +354,8 @@ public class BaylorWarzone extends AbstractInstance
{
giveItems(member, BENUSTAS_REWARD_BOX);
}
final Player randomPlayer = world.getFirstPlayer().getParty().getRandomPlayer();
final Party party = world.getFirstPlayer().getParty();
final Player randomPlayer = party != null ? party.getRandomPlayer() : null;
if ((randomPlayer != null) && (getRandom(100) < 80) && (world.getPlayersCount() == world.getParameters().getInt("INITIAL_PARTY_MEMBERS", 0)))
{
giveItems(randomPlayer, BENUSTAS_SHINING_REWARD_BOX);

View File

@@ -337,7 +337,8 @@ public class AshenShadowRevolutionaries extends AbstractInstance
{
giveItems(member, BENUSTAS_REWARD_BOX);
}
final Player randomPlayer = world.getFirstPlayer().getParty().getRandomPlayer();
final Party party = world.getFirstPlayer().getParty();
final Player randomPlayer = party != null ? party.getRandomPlayer() : null;
if ((randomPlayer != null) && (getRandom(100) < 80) && (world.getPlayersCount() == world.getParameters().getInt("INITIAL_PARTY_MEMBERS", 0)))
{
giveItems(randomPlayer, BENUSTAS_SHINING_REWARD_BOX);

View File

@@ -154,26 +154,27 @@ public class NightmareKamaloka extends AbstractInstance
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance))
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
final int nextDoorId = BOSS_MAP.getOrDefault(npc.getId(), -1);
if (nextDoorId == -1)
{
for (Player member : instance.getPlayers())
for (Player member : world.getPlayers())
{
giveItems(member, BENUSTAS_REWARD_BOX);
}
final Player randomPlayer = instance.getFirstPlayer().getParty().getRandomPlayer();
if ((randomPlayer != null) && (getRandom(100) < 80) && (instance.getPlayersCount() == instance.getParameters().getInt("INITIAL_PARTY_MEMBERS", 0)))
final Party party = world.getFirstPlayer().getParty();
final Player randomPlayer = party != null ? party.getRandomPlayer() : null;
if ((randomPlayer != null) && (getRandom(100) < 80) && (world.getPlayersCount() == world.getParameters().getInt("INITIAL_PARTY_MEMBERS", 0)))
{
giveItems(randomPlayer, BENUSTAS_SHINING_REWARD_BOX);
}
instance.finishInstance();
world.finishInstance();
}
else
{
instance.openCloseDoor(nextDoorId, true);
world.openCloseDoor(nextDoorId, true);
}
}
return super.onKill(npc, killer, isSummon);