From 70e59effec53edbabccf3530fa8e30620a949b63 Mon Sep 17 00:00:00 2001 From: Mazo Date: Mon, 4 May 2020 04:44:50 +0100 Subject: [PATCH] Tweaks to !hack admin command to reduce the message storm it causes (#405) --- .../net/psforever/objects/zones/InterstellarCluster.scala | 6 ++++-- pslogin/src/main/scala/WorldSessionActor.scala | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/scala/net/psforever/objects/zones/InterstellarCluster.scala b/common/src/main/scala/net/psforever/objects/zones/InterstellarCluster.scala index dbb1713a..3dbe1224 100644 --- a/common/src/main/scala/net/psforever/objects/zones/InterstellarCluster.scala +++ b/common/src/main/scala/net/psforever/objects/zones/InterstellarCluster.scala @@ -2,7 +2,7 @@ package net.psforever.objects.zones import akka.actor.{Actor, Props} -import net.psforever.objects.serverobject.structures.Building +import net.psforever.objects.serverobject.structures.{Building, StructureType} import net.psforever.types.Vector3 import scala.annotation.tailrec @@ -75,7 +75,9 @@ class InterstellarCluster(zones : List[Zone]) extends Actor { } case InterstellarCluster.ZoneMapUpdate(zone_num: Int) => val zone = zones.find(x => x.Number == zone_num).get - zone.Buildings.values.foreach(b => b.Actor ! Building.SendMapUpdate(all_clients = true)) + zone.Buildings + .filter(_._2.BuildingType == StructureType.Facility) + .values.foreach(b => b.Actor ! Building.SendMapUpdate(all_clients = true)) case Zoning.InstantAction.Request(faction) => diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 680f58fc..2cfafb28 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -4663,7 +4663,6 @@ class WorldSessionActor extends Actor if(!building.Name.isEmpty && args(1).equalsIgnoreCase(building.Name)) { log.info(s"Hack Base Name : ${args(1)} to empire : ${args(2)}") building.Faction = hackFaction - building.Actor ! Building.TriggerZoneMapUpdate(continent.Number) continent.LocalEvents ! LocalServiceMessage(continent.Id, LocalAction.SetEmpire(building.GUID, hackFaction)) } }) @@ -4681,10 +4680,13 @@ class WorldSessionActor extends Actor else { continent.Buildings.foreach({ case (id, building) => - if (!building.Name.isEmpty && !bad && building.BuildingType.id != 6) { + if (!building.Name.isEmpty && !bad + && building.BuildingType != StructureType.Bridge + && building.BuildingType != StructureType.Bunker + && building.BuildingType != StructureType.WarpGate + ) { log.info(s"Hack Bases to empire : ${args(1)}") building.Faction = hackFaction - building.Actor ! Building.TriggerZoneMapUpdate(continent.Number) continent.LocalEvents ! LocalServiceMessage(continent.Id, LocalAction.SetEmpire(building.GUID, hackFaction)) } })