From f503d710abd52268bb3544fb0c0755a8b493c1f0 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 18 Jun 2022 16:22:25 +0000 Subject: [PATCH] Reduced revenant spawn burst size to stop them getting stuck Fixed unit test NPE New admin command clearrevs to clear revenants --- .../game/content/zone/wilderness/RevenantController.kt | 8 +++++++- Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt b/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt index 6cedad385..b6dfc93ef 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt +++ b/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt @@ -19,9 +19,11 @@ import rs09.game.system.SystemLogger import rs09.game.system.command.Privilege import rs09.game.world.GameWorld import rs09.game.world.repository.Repository +import java.lang.Integer.min import java.util.* import kotlin.collections.ArrayList import kotlin.collections.HashMap +import kotlin.math.max class RevenantController : TickListener, Commands { @@ -70,7 +72,7 @@ class RevenantController : TickListener, Commands { } private fun spawnMissingRevenants() { - val amountToSpawn = expectedRevAmount - trackedRevenants.size + val amountToSpawn = min(5, expectedRevAmount - trackedRevenants.size) //only spawn 5 at a time if (amountToSpawn <= 0) return @@ -102,6 +104,10 @@ class RevenantController : TickListener, Commands { SystemLogger.logInfo("Total of ${trackedRevenants.size} revenants spawned.") } + + define("clearrevs", Privilege.ADMIN) {_, _ -> + for (rev in trackedRevenants.toTypedArray()) rev.clear() + } } //The current task for any given revenant - execute is called every tick. diff --git a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt b/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt index 8f04a171d..63906c5ca 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt +++ b/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt @@ -146,7 +146,7 @@ class GrandExchangeOffer() { visualize(player) stmt.close() - val username = if (getAttribute(player!!, "ge-exclude", false)) "?????" + val username = if (getAttribute(player ?: return@run, "ge-exclude", false)) "?????" else player?.username ?: "?????" Discord.postNewOffer(sell, itemID, offeredValue, amount, username)