From 24e82859cabcc03c62b301c329b76b622919eac2 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 28 May 2021 23:48:11 +0000 Subject: [PATCH] Unsummon previous existing pet, return null if template does not exist. --- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 5 +++-- .../gameserver/model/actor/instance/PetInstance.java | 5 +++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- .../gameserver/model/actor/instance/PetInstance.java | 6 ++++-- 23 files changed, 90 insertions(+), 46 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 49771fd4f3..0fb19f99f2 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 8e125f6b64..9f5a7045e3 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -180,9 +180,10 @@ public class PetInstance extends Summon */ public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } final PetInstance pet = restore(control, template, owner); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 91cc2d6e88..a0c435ce7f 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -181,9 +181,10 @@ public class PetInstance extends Summon */ public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } final PetInstance pet = restore(control, template, owner); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 8d02cb7b0b..d739640f96 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -231,10 +231,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 8d02cb7b0b..d739640f96 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -231,10 +231,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 7451db5310..08aa711359 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -217,10 +217,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index dd61bf5aa5..6fbd08c1ca 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -216,10 +216,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetData data = PetDataTable.getInstance().getPetData(template.getId()); final PetInstance pet = restore(control, template, owner); // add the pet instance to world diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index 66843eb18b..8a74c01006 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -327,10 +327,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetInstance pet = restore(control, template, owner); // add the pet instance to world if (pet != null) diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java index f6fd2d5f7f..c009dfc3a0 100644 --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PetInstance.java @@ -327,10 +327,12 @@ public class PetInstance extends Summon public static synchronized PetInstance spawnPet(NpcTemplate template, PlayerInstance owner, ItemInstance control) { - if (World.getInstance().getPet(owner.getObjectId()) != null) + final PetInstance existingPet = World.getInstance().getPet(owner.getObjectId()); + if (existingPet != null) // owner has a pet listed in world { - return null; // owner has a pet listed in world + existingPet.unSummon(owner); } + final PetInstance pet = restore(control, template, owner); // add the pet instance to world if (pet != null)