From a26c8865865db6904b376d5211e62ca589c5445d Mon Sep 17 00:00:00 2001 From: Ceikry Date: Tue, 5 Sep 2023 13:59:54 +0000 Subject: [PATCH] Fixed summoning bug where pets could get stuck until relog --- .../content/global/skill/summoning/SummoningTabListener.kt | 5 +++++ .../content/global/skill/summoning/familiar/Familiar.java | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt b/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt index 4321eac7b..8d338a864 100644 --- a/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt +++ b/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt @@ -1,5 +1,6 @@ import content.global.skill.summoning.familiar.BurdenBeast import content.global.skill.summoning.familiar.FamiliarSpecial +import core.api.sendMessage import core.game.interaction.InterfaceListener class SummoningTabListener : InterfaceListener { @@ -15,6 +16,10 @@ class SummoningTabListener : InterfaceListener { } 67 -> { if (player.getFamiliarManager().hasFamiliar()) { + if (player.familiarManager.familiar.isInvisible || !player.familiarManager.familiar.location.withinDistance(player.location)) { + sendMessage(player, "Your familiar is too far away!") + return@on true + } if (!player.getFamiliarManager().getFamiliar().isBurdenBeast()) { player.getPacketDispatch().sendMessage("Your familiar is not a beast of burden.") return@on true diff --git a/Server/src/main/content/global/skill/summoning/familiar/Familiar.java b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java index 3166b4be6..b74f15e6b 100644 --- a/Server/src/main/content/global/skill/summoning/familiar/Familiar.java +++ b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java @@ -561,7 +561,8 @@ public abstract class Familiar extends NPC implements Plugin { //spamTimer = 50; return false; } - setInvisible(getZoneMonitor().isRestricted(ZoneRestriction.FOLLOWERS) && !owner.getLocks().isLocked("enable_summoning")); + setInvisible(owner.getZoneMonitor().isRestricted(ZoneRestriction.FOLLOWERS) && !owner.getLocks().isLocked("enable_summoning")); + if (isInvisible()) return true; getProperties().setTeleportLocation(destination); if (!(this instanceof Pet)) { if(firstCall) {