From 389aba27e30c6d74ab09c6ef477201c4b443da64 Mon Sep 17 00:00:00 2001
From: Zoey76 <zoey_76@msn.com>
Date: Sun, 5 Apr 2015 17:50:33 -0300
Subject: [PATCH] Fixing NPE at Cavern of the Pirate Captain instance

As pointed out by @St3eT, instance is not created at this point.

Reported by: pampol, epu
---
 .../dist/game/data/scripts/instances/AbstractInstance.java | 7 ++++++-
 .../CavernOfThePirateCaptain/CavernOfThePirateCaptain.java | 4 ++--
 .../game/data/scripts/instances/Kamaloka/Kamaloka.java     | 4 ++--
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/L2J_DataPack/dist/game/data/scripts/instances/AbstractInstance.java b/L2J_DataPack/dist/game/data/scripts/instances/AbstractInstance.java
index 75e9510242..0ecf86050a 100644
--- a/L2J_DataPack/dist/game/data/scripts/instances/AbstractInstance.java
+++ b/L2J_DataPack/dist/game/data/scripts/instances/AbstractInstance.java
@@ -74,7 +74,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
 			return;
 		}
 		
-		if (checkConditions(player))
+		if (checkConditions(player, templateId))
 		{
 			instance.setInstanceId(InstanceManager.getInstance().createDynamicInstance(template));
 			instance.setTemplateId(templateId);
@@ -190,6 +190,11 @@ public abstract class AbstractInstance extends AbstractNpcAI
 	
 	protected abstract void onEnterInstance(L2PcInstance player, InstanceWorld world, boolean firstEntrance);
 	
+	protected boolean checkConditions(L2PcInstance player, int templateId)
+	{
+		return checkConditions(player);
+	}
+	
 	protected boolean checkConditions(L2PcInstance player)
 	{
 		return true;
diff --git a/L2J_DataPack/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java b/L2J_DataPack/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java
index f77fdfc190..a994f580f4 100644
--- a/L2J_DataPack/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java
+++ b/L2J_DataPack/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java
@@ -204,7 +204,7 @@ public final class CavernOfThePirateCaptain extends AbstractInstance
 	}
 	
 	@Override
-	protected boolean checkConditions(L2PcInstance player)
+	protected boolean checkConditions(L2PcInstance player, int templateId)
 	{
 		if (player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS))
 		{
@@ -217,7 +217,7 @@ public final class CavernOfThePirateCaptain extends AbstractInstance
 			return false;
 		}
 		
-		final boolean is83 = InstanceManager.getInstance().getPlayerWorld(player).getTemplateId() == TEMPLATE_ID_83 ? true : false;
+		final boolean is83 = templateId == TEMPLATE_ID_83;
 		final L2Party party = player.getParty();
 		final boolean isInCC = party.isInCommandChannel();
 		final List<L2PcInstance> members = (isInCC) ? party.getCommandChannel().getMembers() : party.getMembers();
diff --git a/L2J_DataPack/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java b/L2J_DataPack/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java
index 1762d454e0..72cc8f684f 100644
--- a/L2J_DataPack/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java
+++ b/L2J_DataPack/dist/game/data/scripts/instances/Kamaloka/Kamaloka.java
@@ -1227,7 +1227,7 @@ public final class Kamaloka extends AbstractInstance
 	 * @param index (0-18) index of the kamaloka in arrays
 	 * @return true if party allowed to enter
 	 */
-	private static final boolean checkConditions(L2PcInstance player, int index)
+	private static final boolean checkPartyConditions(L2PcInstance player, int index)
 	{
 		final L2Party party = player.getParty();
 		// player must be in party
@@ -1370,7 +1370,7 @@ public final class Kamaloka extends AbstractInstance
 			return;
 		}
 		// Creating new kamaloka instance
-		if (!checkConditions(player, index))
+		if (!checkPartyConditions(player, index))
 		{
 			return;
 		}
-- 
GitLab