aggro fixes

This commit is contained in:
Player Name 2026-07-22 13:27:43 +02:00
parent c6fd45eb62
commit f797ea1b37
3 changed files with 17 additions and 12 deletions

View file

@ -385,14 +385,14 @@ class DevelopmentCommandSet : CommandSet(Privilege.ADMIN) {
sendMessage(player, "${player.location.chunk.players.size} players and ${player.location.chunk.npcs.size} npcs on this chunk.")
sendMessage(player, "Entities on this tile:")
for (p in RegionManager.getLocalPlayers(player.location, 0)) {
sendMessage(p, " player ${player.username}")
sendMessage(player, " player ${player.username}")
}
for (npc in RegionManager.getLocalNPCs(player.location, 0)) {
sendMessage(player, " npc ${npc.name}")
}
sendMessage(player, "Entities within render distance:")
for (p in RegionManager.getLocalPlayers(player.location)) {
sendMessage(p, " player ${player.username} at ${player.location}")
sendMessage(player, " player ${player.username} at ${player.location}")
}
for (npc in RegionManager.getLocalNPCs(player.location)) {
sendMessage(player, " npc ${npc.name} at ${npc.location}}")

View file

@ -250,7 +250,6 @@ public class RegionChunk {
public void addPlayer(Player player) {
players.add(player);
Region region = getCurrentBase().getRegion();
region.getTolerances().put(player.getName(), System.currentTimeMillis());
region.flagActive();
}
@ -284,7 +283,6 @@ public class RegionChunk {
public void removePlayer(Player player) {
players.remove(player);
Region region = getCurrentBase().getRegion();
region.getTolerances().remove(player.getName());
region.checkInactive();
}

View file

@ -382,12 +382,21 @@ object RegionManager {
if (src?.chunk != dst.chunk) {
when (entity) {
is Player -> {
if (src != null) {
src.chunk.removePlayer(entity)
src.region.decrementViewAmount()
val player = entity.asPlayer()
val sameRegion = src?.region == dst.region
if (src != null && sameRegion) {
src.chunk.removePlayer(player)
dst.chunk.addPlayer(player)
} else {
if (src != null) {
src.chunk.removePlayer(player)
src.region.tolerances.remove(player.name)
src.region.decrementViewAmount()
}
dst.chunk.addPlayer(entity)
dst.region.tolerances[entity.asPlayer().name] = System.currentTimeMillis()
dst.region.incrementViewAmount()
}
dst.chunk.addPlayer(entity)
dst.region.incrementViewAmount()
}
is NPC -> {
if (src != null) {
@ -395,9 +404,7 @@ object RegionManager {
}
dst.chunk.add(entity)
}
else -> {
throw (IllegalStateException("Tried to move an Entity that was neither Player nor NPC"))
}
else -> throw IllegalStateException("Tried to move an Entity that was neither Player nor NPC")
}
}
entity.zoneMonitor.updateLocation(entity.walkingQueue.footPrint)