From d5c9889b68d0125710b0fec7acf41199c8d5c309 Mon Sep 17 00:00:00 2001
From: Rumen Nikiforov <unafraid89@gmail.com>
Date: Tue, 11 Sep 2012 01:37:08 +0000
Subject: [PATCH] BETA: Fixing little NPE since [9154] seems like we missed to
 set summoner in some places. 	* Reported by: valdaron

---
 .../game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java   | 5 +++--
 .../data/scripts/handlers/itemhandlers/ChristmasTree.java    | 4 +++-
 .../game/data/scripts/handlers/itemhandlers/SummonItems.java | 1 +
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java
index ddbecd6ea9..d899446cd3 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java
@@ -79,13 +79,14 @@ public class ChristmasTree extends AbstractNpcAI
 			{
 				L2Skill skill = _holder.getSkill();
 				
-				final L2PcInstance player = _npc.getSummoner().getActingPlayer();
-				if (player == null)
+				if (_npc.getSummoner() == null || !_npc.getSummoner().isPlayer())
 				{
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 1000);
 					return;
 				}
 				
+				final L2PcInstance player = _npc.getSummoner().getActingPlayer();
+				
 				if (!player.isInParty())
 				{
 					if (player.isInsideRadius(_npc, skill.getSkillRadius(), true, true))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ChristmasTree.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ChristmasTree.java
index a7e51dfd56..87be8d9ac2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ChristmasTree.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ChristmasTree.java
@@ -18,6 +18,7 @@ import com.l2jserver.gameserver.datatables.NpcTable;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
@@ -62,7 +63,8 @@ public class ChristmasTree implements IItemHandler
 			spawn.setLocy(target.getY());
 			spawn.setLocz(target.getZ());
 			spawn.setInstanceId(activeChar.getInstanceId());
-			spawn.spawnOne(false);
+			L2Npc npc = spawn.spawnOne(false);
+			npc.setSummoner(activeChar);
 			
 			activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false);
 			
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SummonItems.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SummonItems.java
index 50bb715c5c..9aa08875ff 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SummonItems.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SummonItems.java
@@ -122,6 +122,7 @@ public class SummonItems implements IItemHandler
 						spawn.setInstanceId(activeChar.getInstanceId());
 						spawn.stopRespawn();
 						final L2Npc npc = spawn.spawnOne(true);
+						npc.setSummoner(activeChar);
 						npc.setTitle(activeChar.getName());
 						npc.setIsRunning(false); // broadcast info
 						if (sitem.getDespawnDelay() > 0)
-- 
GitLab