Reduced revenant spawn burst size to stop them getting stuck

Fixed unit test NPE
New admin command clearrevs to clear revenants
This commit is contained in:
Ceikry
2022-06-18 16:22:25 +00:00
committed by Ryan
parent b2ad6d9712
commit f503d710ab
2 changed files with 8 additions and 2 deletions
@@ -19,9 +19,11 @@ import rs09.game.system.SystemLogger
import rs09.game.system.command.Privilege import rs09.game.system.command.Privilege
import rs09.game.world.GameWorld import rs09.game.world.GameWorld
import rs09.game.world.repository.Repository import rs09.game.world.repository.Repository
import java.lang.Integer.min
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.collections.HashMap import kotlin.collections.HashMap
import kotlin.math.max
class RevenantController : TickListener, Commands { class RevenantController : TickListener, Commands {
@@ -70,7 +72,7 @@ class RevenantController : TickListener, Commands {
} }
private fun spawnMissingRevenants() { 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 if (amountToSpawn <= 0) return
@@ -102,6 +104,10 @@ class RevenantController : TickListener, Commands {
SystemLogger.logInfo("Total of ${trackedRevenants.size} revenants spawned.") 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. //The current task for any given revenant - execute is called every tick.
@@ -146,7 +146,7 @@ class GrandExchangeOffer() {
visualize(player) visualize(player)
stmt.close() stmt.close()
val username = if (getAttribute(player!!, "ge-exclude", false)) "?????" val username = if (getAttribute(player ?: return@run, "ge-exclude", false)) "?????"
else player?.username ?: "?????" else player?.username ?: "?????"
Discord.postNewOffer(sell, itemID, offeredValue, amount, username) Discord.postNewOffer(sell, itemID, offeredValue, amount, username)