diff --git a/Server/src/main/content/global/skill/slayer/SlayerManager.kt b/Server/src/main/content/global/skill/slayer/SlayerManager.kt index 51c523592..eb1225dfb 100644 --- a/Server/src/main/content/global/skill/slayer/SlayerManager.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerManager.kt @@ -170,6 +170,13 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer, flags.setTask(task!!) } + var activeTask: Tasks? = null + get() { + if (hasTask()) + return flags.getTask() + return null + } + var master: Master? get() = flags.getMaster() set(master) { @@ -238,4 +245,4 @@ class SlayerManager(val player: Player? = null) : LoginListener, PersistPlayer, return getAttribute(player, "slayer-manager", SlayerManager()) } } -} \ No newline at end of file +} diff --git a/Server/src/main/core/api/ContentAPI.kt b/Server/src/main/core/api/ContentAPI.kt index 06cecae20..7b40daee6 100644 --- a/Server/src/main/core/api/ContentAPI.kt +++ b/Server/src/main/core/api/ContentAPI.kt @@ -1747,7 +1747,7 @@ fun getPathableRandomLocalCoordinate(target: Entity, radius: Int, center: Locati * @return the slayer task. */ fun getSlayerTask(player: Player): Tasks? { - return SlayerManager.getInstance(player).task + return SlayerManager.getInstance(player).activeTask } /** @@ -1805,7 +1805,7 @@ fun getSlayerMasterLocation(player: Player): String { */ fun getSlayerTip(player: Player): Array { return if (hasSlayerTask(player)) { - SlayerManager.getInstance(player).task?.tip!! + getSlayerTask(player)?.tip!! } else { arrayOf("You need something new to hunt.") } diff --git a/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt index 608d07b88..ac41cfc61 100644 --- a/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt @@ -143,7 +143,7 @@ open class MeleeSwingHandler val amuletName = (if(entity is Player) getItemFromEquipment(entity, EquipmentSlot.AMULET)?.name ?: "null" else "null").toLowerCase() val victimName = entity.properties.combatPulse.getVictim()?.name ?: "none" - if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) + if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) effectiveAttackLevel *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer Helm/ Black Mask/ Slayer cape else if (entity is Player //Salve amulet @@ -176,7 +176,7 @@ open class MeleeSwingHandler cumulativeStr *= getSetMultiplier(entity, Skills.STRENGTH) - if(entity is Player && SlayerManager.getInstance(entity).task?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) + if(entity is Player && getSlayerTask(entity)?.ids?.contains((entity.properties.combatPulse?.getVictim()?.id ?: 0)) == true) cumulativeStr *= SlayerEquipmentFlags.getDamAccBonus(entity) //Slayer helm/black mask/skillcape /*val hit = (16 + cumulativeStr + bonus / 8 + cumulativeStr * bonus * 0.016865) * modifier diff --git a/Server/src/main/core/net/packet/QCRepository.kt b/Server/src/main/core/net/packet/QCRepository.kt index 42238e15d..ac9a25ccb 100644 --- a/Server/src/main/core/net/packet/QCRepository.kt +++ b/Server/src/main/core/net/packet/QCRepository.kt @@ -1,6 +1,7 @@ package core.net.packet import content.global.skill.slayer.SlayerManager +import core.api.* import core.cache.Cache import core.cache.def.impl.DataMap import core.cache.def.impl.ItemDefinition @@ -89,7 +90,7 @@ object QCRepository { //My current slayer assignment is else if(qcString.contains("My current Slayer assignment is")){ val amount = SlayerManager.getInstance(player!!).amount - val taskName = NPCDefinition.forId(SlayerManager.getInstance(player!!).task?.ids?.get(0) ?: 0).name.toLowerCase() + val taskName = getSlayerTask(player)?.name?.toLowerCase() ?: "None" if(amount ?: 0 > 0){ qcString = qcString.replace("complete", "$amount $taskName") } @@ -317,4 +318,4 @@ object QCRepository { private fun getQCString(index: Int): String{ return ByteBufferUtils.getString(ByteBuffer.wrap(quickChatIndex.getFileData(1, index))) } -} \ No newline at end of file +}