From 39d68b537defec1b875968ad0a6b3817cd53d6ea Mon Sep 17 00:00:00 2001 From: "Jason_DiDonato@yahoo.com" Date: Sun, 21 Mar 2021 08:09:41 -0400 Subject: [PATCH] adjusted logback.xml to facilitate two populated logs for different purposes; brief pass over all instance of log calls --- config/logback.xml | 71 +++- .../psforever/filters/LoggerPrefixFilter.java | 35 ++ .../net/psforever/actors/net/LoginActor.scala | 11 +- .../psforever/actors/net/SocketActor.scala | 2 +- .../actors/session/AvatarActor.scala | 16 +- .../psforever/actors/session/ChatActor.scala | 10 +- .../actors/session/SessionActor.scala | 354 ++++++++---------- .../net/psforever/login/TcpListener.scala | 2 +- .../net/psforever/objects/Deployables.scala | 2 - .../net/psforever/objects/Vehicles.scala | 2 +- .../objects/avatar/PlayerControl.scala | 10 +- .../objects/guid/actor/NumberPoolActor.scala | 2 +- .../guid/actor/UniqueNumberSystem.scala | 2 +- .../hackable/GenericHackables.scala | 2 +- .../serverobject/locks/IFFLockControl.scala | 2 +- .../terminals/CaptureTerminals.scala | 57 +++ .../objects/vehicles/CargoBehavior.scala | 2 - .../account/AccountIntermediaryService.scala | 10 +- .../account/AccountPersistenceService.scala | 2 +- .../services/avatar/AvatarService.scala | 3 - .../psforever/services/chat/ChatService.scala | 2 +- .../services/galaxy/GalaxyService.scala | 22 +- .../services/local/LocalService.scala | 23 +- .../local/support/DeployableRemover.scala | 2 +- .../local/support/HackClearActor.scala | 4 +- .../services/teamwork/SquadService.scala | 13 +- .../services/vehicle/VehicleService.scala | 14 +- .../vehicle/support/TurretUpgrader.scala | 4 +- 28 files changed, 365 insertions(+), 316 deletions(-) create mode 100644 server/src/main/java/net/psforever/filters/LoggerPrefixFilter.java create mode 100644 src/main/scala/net/psforever/objects/serverobject/terminals/CaptureTerminals.scala diff --git a/config/logback.xml b/config/logback.xml index 298713183..6b4d74112 100644 --- a/config/logback.xml +++ b/config/logback.xml @@ -10,24 +10,77 @@ - - logs/pslogin-debug_${bySecond}.log + + logs/psforever-general_${bySecond}.log + + logs/psforever-general_%d{yyyy-MM-dd}.gz + 40 + 10GB + %date{ISO8601} %5level "%X" %logger{35} - %msg%n + + + com.github.jasync.sql.db.postgresql.codec + + + + io.sentry.connection + + + + DamageResolution + - DEBUG + INFO - - logs/pslogin-trace_${bySecond}.log + + logs/psforever-debug_${bySecond}.log + + logs/psforever-debug_%d{yyyy-MM-dd}.gz + 40 + 10GB + %date{ISO8601} [%thread] %5level "%X" %logger{35} - %msg%n - - OFF - + + + com.github.jasync.sql.db.postgresql.encoders + + + + com.github.jasync.sql.db.postgresql.codec + + + + io.getquill.context.jasync + + + DEBUG + ACCEPT + DENY + + + TRACE + ACCEPT + DENY @@ -39,7 +92,7 @@ - + diff --git a/server/src/main/java/net/psforever/filters/LoggerPrefixFilter.java b/server/src/main/java/net/psforever/filters/LoggerPrefixFilter.java new file mode 100644 index 000000000..efc217966 --- /dev/null +++ b/server/src/main/java/net/psforever/filters/LoggerPrefixFilter.java @@ -0,0 +1,35 @@ +// Copyright (c) 2021 PSForever +package net.psforever.filters; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; + +/** + * Disrupts a variety of logging messages that originate from specific loggers. + * A comparison of the prefix text of the logger handling the event is performed, + * with a positive match denying that event being appended. + * The full prefix must be provided, as the is occasionally appear in an abbreviated form. + */ +public class LoggerPrefixFilter extends Filter { + private String prefix; + + @Override + public FilterReply decide(ILoggingEvent event) { + if (isStarted() && event.getLoggerName().startsWith(prefix)) { + return FilterReply.DENY; + } else { + return FilterReply.NEUTRAL; + } + } + + public void setPrefix(String name) { + this.prefix = name; + } + + public void start() { + if (this.prefix != null) { + super.start(); + } + } +} diff --git a/src/main/scala/net/psforever/actors/net/LoginActor.scala b/src/main/scala/net/psforever/actors/net/LoginActor.scala index 6632b3f9d..271525f9b 100644 --- a/src/main/scala/net/psforever/actors/net/LoginActor.scala +++ b/src/main/scala/net/psforever/actors/net/LoginActor.scala @@ -100,10 +100,9 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne val clientVersion = s"Client Version: $majorVersion.$minorVersion.$revision, $buildDate" if (token.isDefined) - log.info(s"New login UN:$username Token:${token.get}. $clientVersion") + log.trace(s"New login UN:$username Token:${token.get}. $clientVersion") else { -// log.info(s"New login UN:$username PW:$password. $clientVersion") - log.info(s"New login UN:$username. $clientVersion") + log.trace(s"New login UN:$username. $clientVersion") } accountLogin(username, password.get) @@ -115,7 +114,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne middlewareActor ! MiddlewareActor.Close() case _ => - log.debug(s"Unhandled GamePacket $pkt") + log.warn(s"Unhandled GamePacket $pkt") } def accountLogin(username: String, password: String): Unit = { @@ -212,7 +211,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne } def loginFailureResponse(username: String, newToken: String) = { - log.info("DB problem") + log.warn("DB problem") middlewareActor ! MiddlewareActor.Send( LoginRespMessage( newToken, @@ -227,7 +226,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne } def loginAccountFailureResponse(username: String, newToken: String) = { - log.info(s"Account $username inactive") + log.warn(s"Account $username inactive") middlewareActor ! MiddlewareActor.Send( LoginRespMessage( newToken, diff --git a/src/main/scala/net/psforever/actors/net/SocketActor.scala b/src/main/scala/net/psforever/actors/net/SocketActor.scala index 65155e3a3..06ccf77dd 100644 --- a/src/main/scala/net/psforever/actors/net/SocketActor.scala +++ b/src/main/scala/net/psforever/actors/net/SocketActor.scala @@ -82,7 +82,7 @@ object SocketActor { socketActor ! toSocket(message) } } else { - log.info("Network simulator dropped packet") + log.trace("Network simulator dropped packet") } } diff --git a/src/main/scala/net/psforever/actors/session/AvatarActor.scala b/src/main/scala/net/psforever/actors/session/AvatarActor.scala index 8143bfc04..d72fae5d5 100644 --- a/src/main/scala/net/psforever/actors/session/AvatarActor.scala +++ b/src/main/scala/net/psforever/actors/session/AvatarActor.scala @@ -485,14 +485,20 @@ class AvatarActor( ItemTransactionResultMessage(terminalGuid, TransactionType.Learn, success = false) ) } else { - - val deps = Certification.values.filter(_.requires.contains(certification)).toSet - val remove = deps ++ Certification.values.filter(_.replaces.intersect(deps).nonEmpty).toSet + certification + var requiredByCert: Set[Certification] = Set(certification) + var removeThese: Set[Certification] = Set(certification) + val allCerts: Set[Certification] = Certification.values.toSet + do { + removeThese = allCerts.filter { testingCert => + testingCert.requires.intersect(removeThese).nonEmpty + } + requiredByCert = requiredByCert ++ removeThese + } while(removeThese.nonEmpty) Future .sequence( avatar.certifications - .intersect(remove) + .intersect(requiredByCert) .map(cert => { ctx .run( @@ -511,7 +517,7 @@ class AvatarActor( ItemTransactionResultMessage(terminalGuid, TransactionType.Sell, success = false) ) case Success(certs) => - context.self ! ReplaceAvatar(avatar.copy(certifications = avatar.certifications.diff(remove))) + context.self ! ReplaceAvatar(avatar.copy(certifications = avatar.certifications.diff(certs))) certs.foreach { cert => sessionActor ! SessionActor.SendResponse( PlanetsideAttributeMessage(session.get.player.GUID, 25, cert.value) diff --git a/src/main/scala/net/psforever/actors/session/ChatActor.scala b/src/main/scala/net/psforever/actors/session/ChatActor.scala index b57771264..010213a97 100644 --- a/src/main/scala/net/psforever/actors/session/ChatActor.scala +++ b/src/main/scala/net/psforever/actors/session/ChatActor.scala @@ -121,8 +121,6 @@ class ChatActor( Behaviors.same case Message(message) => - log.info("Chat: " + message) - val gmCommandAllowed = session.account.gm || Config.app.development.unprivilegedGmCommands.contains(message.messageType) @@ -916,7 +914,7 @@ class ChatActor( } case _ => - log.info(s"unhandled chat message $message") + log.warn(s"Unhandled chat message $message") } Behaviors.same @@ -945,7 +943,7 @@ class ChatActor( val args = message.contents.split(" ") val (name, time) = (args.lift(0), args.lift(1)) match { case (Some(name), _) if name != session.player.Name => - log.error("received silence message for other player") + log.error("Received silence message for other player") (None, None) case (Some(name), None) => (Some(name), Some(5)) case (Some(name), Some(time)) if time.toIntOption.isDefined => (Some(name), Some(time.toInt)) @@ -976,11 +974,11 @@ class ChatActor( } case (name, time) => - log.error(s"bad silence args $name $time") + log.warn(s"Bad silence args $name $time") } case _ => - log.error(s"unexpected messageType $message") + log.warn(s"Unexpected messageType $message") } Behaviors.same diff --git a/src/main/scala/net/psforever/actors/session/SessionActor.scala b/src/main/scala/net/psforever/actors/session/SessionActor.scala index b5898ba8d..ffaea4579 100644 --- a/src/main/scala/net/psforever/actors/session/SessionActor.scala +++ b/src/main/scala/net/psforever/actors/session/SessionActor.scala @@ -6,7 +6,6 @@ import akka.actor.typed.scaladsl.adapter._ import akka.actor.{Actor, ActorRef, Cancellable, MDCContextAware} import akka.pattern.ask import akka.util.Timeout - import net.psforever.actors.net.MiddlewareActor import net.psforever.services.ServiceManager.Lookup import net.psforever.objects.locker.LockerContainer @@ -371,19 +370,14 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con def receive: Receive = { case LookupResult("accountIntermediary", endpoint) => accountIntermediary = endpoint - log.info("ID: " + session.id + " Got account intermediary service " + endpoint) case LookupResult("accountPersistence", endpoint) => accountPersistence = endpoint - log.info("ID: " + session.id + " Got account persistence service " + endpoint) case LookupResult("galaxy", endpoint) => galaxyService = endpoint - log.info("ID: " + session.id + " Got galaxy service " + endpoint) case LookupResult("squad", endpoint) => squadService = endpoint - log.info("ID: " + session.id + " Got squad service " + endpoint) case LookupResult("propertyOverrideManager", endpoint) => propertyOverrideManager = endpoint - log.info("ID: " + session.id + " Got propertyOverrideManager service " + endpoint) case ICS.InterstellarClusterServiceKey.Listing(listings) => cluster = listings.head @@ -479,7 +473,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con zoningChatMessageType = ChatMessageType.CMT_QUIT zoningStatus = Zoning.Status.Request beginZoningCountdown(() => { - log.info("Good-bye") + log.info(s"Good-bye, ${player.Name}") ImmediateDisconnect() }) @@ -914,18 +908,18 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case Deployment.CanDeploy(obj, state) => if (state == DriveState.Deploying) { - log.info(s"DeployRequest: $obj transitioning to deploy state") + log.trace(s"DeployRequest: $obj transitioning to deploy state") } else if (state == DriveState.Deployed) { - log.info(s"DeployRequest: $obj has been Deployed") + log.trace(s"DeployRequest: $obj has been Deployed") } else { CanNotChangeDeployment(obj, state, "incorrect deploy state") } case Deployment.CanUndeploy(obj, state) => if (state == DriveState.Undeploying) { - log.info(s"DeployRequest: $obj transitioning to undeploy state") + log.trace(s"DeployRequest: $obj transitioning to undeploy state") } else if (state == DriveState.Mobile) { - log.info(s"DeployRequest: $obj is Mobile") + log.trace(s"DeployRequest: $obj is Mobile") } else { CanNotChangeDeployment(obj, state, "incorrect undeploy state") } @@ -938,7 +932,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case Zone.Population.PlayerHasLeft(zone, None) => - log.info(s"${avatar.name} does not have a body on ${zone.id}") + log.trace(s"${avatar.name} does not have a body on ${zone.id}") case Zone.Population.PlayerHasLeft(zone, Some(tplayer)) => if (tplayer.isAlive) { @@ -1099,7 +1093,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con RemoverActor.AddTask(obj, continent, Some(0 seconds)) ) } else { - log.info(s"FinalizeDeployable: setup for telepad #${guid.guid} in zone ${continent.id}") + log.debug(s"FinalizeDeployable: setup for telepad #${guid.guid} in zone ${continent.id}") obj.Router = routerGUID //necessary; forwards link to the router DeployableBuildActivity(obj) RemoveOldEquipmentFromInventory(player)(tool) @@ -1200,7 +1194,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case Zone.Nowhere => RequestSanctuaryZoneSpawn(player, currentZone = 0) case zone => - log.info(s"Zone ${zone.id} will now load") + log.info(s"Zone ${zone.id} will now load for ${player.Name}") loadConfZone = true val oldZone = continent session = session.copy(zone = zone) @@ -1224,7 +1218,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case ICS.ZoneResponse(zone) => - log.info(s"Zone ${zone.get.id} will now load") + log.info(s"Zone ${zone.get.id} will now load for ${player.Name}") loadConfZone = true val oldZone = session.zone session = session.copy(zone = zone.get) @@ -1391,11 +1385,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con log.warn(s"Vital target ${target.Definition.Name} damage resolution not supported using this method") case ResponseToSelf(pkt) => - //log.info(s"Received a direct message: $pkt") sendResponse(pkt) case ReceiveAccountData(account) => - log.info(s"ReceiveAccountData ${account}") + log.trace(s"ReceiveAccountData $account") session = session.copy(account = account) avatarActor ! AvatarActor.SetAccount(account) @@ -1523,10 +1516,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con _: Int, _: Option[Equipment] ) => - log.info(s"$msg") + log.trace(s"$msg") case msg @ Containable.CanNotPutItemInSlot(_: PlanetSideServerObject with Container, _: Equipment, _: Int) => - log.info(s"$msg") + log.trace(s"$msg") case default => log.warn(s"Invalid packet class received: $default from ${sender()}") @@ -2279,8 +2272,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case LocalResponse.SendHackMessageHackCleared(target_guid, unk1, unk2) => log.trace(s"Clearing hack for ${target_guid}") - // Reset hack state for all players - sendResponse(HackMessage(0, target_guid, guid, 0, unk1, HackState.HackCleared, unk2)) case LocalResponse.HackObject(target_guid, unk1, unk2) => HackObject(target_guid, unk1, unk2) @@ -2394,7 +2385,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case Mountable.CanMount(obj: Vehicle, seat_number, _) => CancelZoningProcessWithDescriptiveReason("cancel_mount") val obj_guid: PlanetSideGUID = obj.GUID - log.info(s"MountVehicleMsg: ${player.Name}_guid mounts $obj_guid @ $seat_number") + log.info(s"MountVehicleMsg: ${player.Name} mounts ${obj.Definition.Name} in seat $seat_number") CancelAllProximityUnits() sendResponse(PlanetsideAttributeMessage(obj_guid, 0, obj.Health)) sendResponse(PlanetsideAttributeMessage(obj_guid, 68, obj.Shields)) //shield health @@ -3019,7 +3010,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * @param tplayer the target player */ def HandleSetCurrentAvatar(tplayer: Player): Unit = { - log.info(s"HandleSetCurrentAvatar - ${tplayer.Name}") + log.trace(s"HandleSetCurrentAvatar - ${tplayer.Name}") session = session.copy(player = tplayer) val guid = tplayer.GUID UpdateDeployableUIElements(Deployables.InitializeDeployableUIElements(avatar)) @@ -3273,7 +3264,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con accountIntermediary ! RetrieveAccountData(token) case msg @ MountVehicleCargoMsg(player_guid, cargo_guid, carrier_guid, unk4) => - log.info(msg.toString) + log.trace(msg.toString) (continent.GUID(cargo_guid), continent.GUID(carrier_guid)) match { case (Some(cargo: Vehicle), Some(carrier: Vehicle)) => carrier.CargoHolds.find({ case (_, hold) => !hold.isOccupied }) match { @@ -3292,7 +3283,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ DismountVehicleCargoMsg(player_guid, cargo_guid, bailed, requestedByPassenger, kicked) => - log.info(msg.toString) + log.trace(msg.toString) //when kicked by carrier driver, player_guid will be PlanetSideGUID(0) //when exiting of the cargo vehicle driver's own accord, player_guid will be the cargo vehicle driver continent.GUID(cargo_guid) match { @@ -3320,7 +3311,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con keepAliveFunc() case msg @ BeginZoningMessage() => - log.info("Reticulating splines ...") + log.trace("Reticulating splines ...") zoneLoaded = None val continentId = continent.id val faction = player.Faction @@ -3347,7 +3338,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con foundDeployables.foreach(obj => { if (avatar.deployables.Add(obj)) { obj.Owner = guid - log.info(s"Found a ${obj.Definition.Name} of ours while loading the zone") } }) //render deployable objects @@ -3440,7 +3430,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con }) //load active players in zone (excepting players who are seated or players who are us) val live = continent.LivePlayers - log.info(s"loading players $live") live .filterNot(tplayer => { tplayer.GUID == player.GUID || tplayer.VehicleSeated.nonEmpty @@ -3699,7 +3688,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk5, unk6 ) => - //log.info(s"$msg") persist() turnCounterFunc(avatar_guid) val isMoving = WorldEntity.isMoving(vel) @@ -3782,7 +3770,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con player.zoneInteraction() case msg @ ChildObjectStateMessage(object_guid, pitch, yaw) => - //log.info(s"$msg") //the majority of the following check retrieves information to determine if we are in control of the child FindContainedWeapon match { case (Some(o), Some(tool)) => @@ -3832,7 +3819,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con is_decelerating, is_cloaked ) => - //log.info(s"$msg") GetVehicleAndSeat() match { case (Some(obj), Some(0)) => //we're driving the vehicle @@ -3899,7 +3885,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con //log.info(s"VehicleSubState: $vehicle_guid, ${player.Name}_guid, $vehicle_pos, $vehicle_ang, $vel, $unk1, $unk2") case msg @ ProjectileStateMessage(projectile_guid, shot_pos, shot_vel, shot_orient, seq, end, target_guid) => - //log.trace(s"ProjectileState: $msg") val index = projectile_guid.guid - Projectile.baseUID projectiles(index) match { case Some(projectile) if projectile.HasGUID => @@ -3927,13 +3912,13 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ ReleaseAvatarRequestMessage() => - log.info(s"ReleaseAvatarRequest: ${player.GUID} on ${continent.id} has released") + log.info(s"ReleaseAvatarRequest: ${player.Name} on ${continent.id} has released") reviveTimer.cancel() GoToDeploymentMap() HandleReleaseAvatar(player, continent) case msg @ SpawnRequestMessage(u1, spawnGroup, u3, u4, zoneNumber) => - log.info(s"SpawnRequestMessage: $msg") + log.info(s"SpawnRequestMessage: ${player.Name} on ${continent.id} wants to respawn in $zoneNumber") if (deadState != DeadState.RespawnTime) { deadState = DeadState.RespawnTime cluster ! ICS.GetNearbySpawnPoint( @@ -3958,27 +3943,25 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con chatActor ! ChatActor.Message(msg) case msg @ VoiceHostRequest(unk, PlanetSideGUID(player_guid), data) => - log.info("Player " + player_guid + " requested in-game voice chat.") + log.trace("Player " + player_guid + " requested in-game voice chat.") sendResponse(VoiceHostKill()) case msg @ VoiceHostInfo(player_guid, data) => sendResponse(VoiceHostKill()) case msg @ ChangeAmmoMessage(item_guid, unk1) => - log.info("ChangeAmmo: " + msg) FindContainedEquipment match { case (Some(_), Some(obj: ConstructionItem)) => PerformConstructionItemAmmoChange(obj, obj.AmmoTypeIndex) case (Some(obj), Some(tool: Tool)) => PerformToolAmmoChange(tool, obj) case (_, Some(obj)) => - log.error(s"ChangeAmmo: the object ${obj.Definition.Name} is not a valid type") + log.error(s"ChangeAmmo: the ${obj.Definition.Name} in ${player.Name}'s hands does not contain ammunition") case (_, None) => log.error(s"ChangeAmmo: can not find $item_guid") } case msg @ ChangeFireModeMessage(item_guid, fire_mode) => - log.info("ChangeFireMode: " + msg) FindEquipment match { case Some(obj: PlanetSideGameObject with FireModeSwitch[_]) => val originalModeIndex = obj.FireModeIndex @@ -3994,7 +3977,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con obj.FireModeIndex = originalModeIndex sendResponse(ChangeFireModeMessage(tool_guid, originalModeIndex)) //reinforcement } else { - log.info(s"ChangeFireMode: changing $tool_guid to fire mode $modeIndex") + log.info(s"ChangeFireMode: ${player.Name} is changing his ${obj.Definition.Name} to fire mode $modeIndex") sendResponse(ChangeFireModeMessage(tool_guid, modeIndex)) continent.AvatarEvents ! AvatarServiceMessage( continent.id, @@ -4008,7 +3991,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ ChangeFireStateMessage_Start(item_guid) => - log.trace("ChangeFireState_Start: " + msg) if (shooting.isEmpty) { FindEquipment match { case Some(tool: Tool) => @@ -4036,7 +4018,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } } else { log.warn( - s"ChangeFireState_Start: ${tool.Definition.Name} magazine is empty before trying to shoot bullet" + s"ChangeFireState_Start: ${player.Name}'s ${tool.Definition.Name} magazine was empty before trying to shoot!" ) EmptyMagazine(item_guid, tool) } @@ -4054,7 +4036,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ ChangeFireStateMessage_Stop(item_guid) => - log.trace("ChangeFireState_Stop: " + msg) prefire = None shootingStop = System.currentTimeMillis() val weapon: Option[Equipment] = if (shooting.contains(item_guid)) { @@ -4122,11 +4103,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con progressBarValue = None case msg @ EmoteMsg(avatar_guid, emote) => - log.info("Emote: " + msg) sendResponse(EmoteMsg(avatar_guid, emote)) case msg @ DropItemMessage(item_guid) => - log.info(s"DropItem: $msg") ValidObject(item_guid) match { case Some(anItem: Equipment) => player.FreeHand.Equipment match { @@ -4151,7 +4130,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ PickupItemMessage(item_guid, player_guid, unk1, unk2) => - log.info(s"PickupItem: $msg") ValidObject(item_guid) match { case Some(item: Equipment) => player.Fit(item) match { @@ -4163,13 +4141,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case _ => log.warn( - s"PickupItem: ${player.Name} requested an item that doesn't exist in this zone; assume client-side garbage data" + s"PickupItem: ${player.Name} requested an item that doesn't seem to exist" ) sendResponse(ObjectDeleteMessage(item_guid, 0)) } case msg @ ReloadMessage(item_guid, ammo_clip, unk1) => - log.info("Reload: " + msg) FindContainedWeapon match { case (Some(obj), Some(tool: Tool)) => val currentMagazine: Int = tool.Magazine @@ -4203,7 +4180,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con modifyFunc(box, reloadValue - tailReloadValue) reloadValue }) + currentMagazine - log.info(s"ReloadMessage: success, $tool <- $actualReloadValue ${tool.AmmoType}") + log.info(s"ReloadMessage: ${player.Name} successfully reloaded $actualReloadValue ${tool.AmmoType} into $tool") tool.Magazine = actualReloadValue sendResponse(ReloadMessage(item_guid, actualReloadValue, unk1)) continent.AvatarEvents ! AvatarServiceMessage( @@ -4212,7 +4189,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) } } else { - log.warn(s"ReloadMessage: item $item_guid can not reload (full=$magazineSize, want=$reloadValue)") + log.warn(s"ReloadMessage: the $tool in ${player.Name}'s hand can not reload (full=$magazineSize, want=$reloadValue)") } case (_, Some(_)) => log.error(s"ReloadMessage: the object that was found for $item_guid was not a Tool") @@ -4221,11 +4198,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ ObjectHeldMessage(avatar_guid, held_holsters, unk1) => - log.debug(s"ObjectHeld: $msg") val before = player.DrawnSlot if (before != held_holsters) { if (player.ExoSuit == ExoSuitType.MAX && held_holsters != 0) { - log.info(s"ObjectHeld: ${player.Name} is denied changing hands to $held_holsters as a MAX") + log.warn(s"ObjectHeld: ${player.Name} is denied changing hands to $held_holsters as a MAX") player.DrawnSlot = 0 sendResponse(ObjectHeldMessage(avatar_guid, 0, true)) } else if ((player.DrawnSlot = held_holsters) != before) { @@ -4233,12 +4209,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con player.Continent, AvatarAction.ObjectHeld(player.GUID, player.LastDrawnSlot) ) - // Ignore non-equipment holsters //todo: check current suit holster slots? if (held_holsters >= 0 && held_holsters < 5) { player.Holsters()(held_holsters).Equipment match { case Some(unholsteredItem: Equipment) => + log.info(s"ObjectHeld: ${player.Name} has drawn a $unholsteredItem from its holster") if (unholsteredItem.Definition == GlobalDefinitions.remote_electronics_kit) { // Player has unholstered a REK - we need to set an atttribute on the REK itself to change the beam/icon colour to the correct one for the player's hack level continent.AvatarEvents ! AvatarServiceMessage( @@ -4266,12 +4242,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con avatarActor ! AvatarActor.SuspendStaminaRegeneration(2.5 seconds) case msg @ ZipLineMessage(player_guid, forwards, action, path_id, pos) => - log.info("ZipLineMessage: " + msg) val (isTeleporter: Boolean, path: Option[ZipLinePath]) = continent.zipLinePaths.find(x => x.PathId == path_id) match { case Some(x) => (x.IsTeleporter, Some(x)) case _ => - log.warn(s"Couldn't find zipline path ${path_id} in zone ${continent.Number} / ${continent.id}") + log.warn(s"$player.Name} couldn't find a zipline path $path_id in zone ${continent.id}") (false, None) } if (isTeleporter) { @@ -4295,7 +4270,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con sendResponse(ZipLineMessage(player_guid, forwards, action, 0, pos)) case _ => log.warn( - s"Tried to do something with a zipline but can't handle it. forwards: ${forwards} action: ${action} path_id: ${path_id} zone: ${continent.Number} / ${continent.id}" + s"${player.Name} tried to do something with a zipline but can't handle it. forwards: ${forwards} action: ${action} path_id: ${path_id} zone: ${continent.Number} / ${continent.id}" ) } } @@ -4317,9 +4292,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con (vehicle.MountedIn.isEmpty || !vehicle.Seats.values.exists(_.isOccupied)) ) { vehicle.Actor ! Vehicle.Deconstruct() - log.info(s"RequestDestroy: vehicle $vehicle") + //log.info(s"RequestDestroy: vehicle $vehicle") } else { - log.info(s"RequestDestroy: must own vehicle in order to deconstruct it") + log.warn(s"RequestDestroy: ${player.Name} must own vehicle in order to deconstruct it") } case Some(obj: BoomerTrigger) => @@ -4332,7 +4307,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) //continent.Deployables ! Zone.Deployable.Dismiss(boomer) case Some(thing) => - log.info(s"RequestDestroy: BoomerTrigger object connected to wrong object - $thing") + log.warn(s"RequestDestroy: BoomerTrigger object connected to wrong object - $thing") case None => ; } } @@ -4404,10 +4379,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case msg @ ObjectDeleteMessage(object_guid, unk1) => sendResponse(ObjectDeleteMessage(object_guid, 0)) - log.info("ObjectDelete: " + msg) case msg @ MoveItemMessage(item_guid, source_guid, destination_guid, dest, _) => - log.info(s"MoveItem: $msg") (continent.GUID(source_guid), continent.GUID(destination_guid), ValidObject(item_guid)) match { case ( Some(source: PlanetSideServerObject with Container), @@ -4416,21 +4389,20 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) => ContainableMoveItem(player.Name, source, destination, item, dest) case (None, _, _) => - log.error(s"MoveItem: wanted to move $item_guid from $source_guid, but could not find source object") + log.error(s"MoveItem: ${player.Name} wanted to move $item_guid from $source_guid, but could not find source object") case (_, None, _) => log.error( - s"MoveItem: wanted to move $item_guid to $destination_guid, but could not find destination object" + s"MoveItem: ${player.Name} wanted to move $item_guid to $destination_guid, but could not find destination object" ) case (_, _, None) => - log.error(s"MoveItem: wanted to move $item_guid, but could not find it") + log.error(s"MoveItem: ${player.Name} wanted to move $item_guid, but could not find it") case _ => log.error( - s"MoveItem: wanted to move $item_guid from $source_guid to $destination_guid, but multiple problems were encountered" + s"MoveItem: ${player.Name} wanted to move $item_guid from $source_guid to $destination_guid, but multiple problems were encountered" ) } case msg @ LootItemMessage(item_guid, target_guid) => - log.info(s"LootItem: $msg") (ValidObject(item_guid), continent.GUID(target_guid)) match { case (Some(item: Equipment), Some(destination: PlanetSideServerObject with Container)) => //figure out the source @@ -4453,20 +4425,20 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case (Some((source, Some(_))), Some(dest)) => ContainableMoveItem(player.Name, source, destination, item, dest) case (None, _) => - log.error(s"LootItem: can not find where $item is put currently") + log.error(s"LootItem: ${player.Name} can not find where $item is put currently") case (_, None) => - log.error(s"LootItem: can not find somwhere to put $item in $destination") + log.error(s"LootItem: ${player.Name} can not find anywhere to put $item in $destination") case _ => log.error( - s"LootItem: wanted to move $item_guid to $target_guid, but multiple problems were encountered" + s"LootItem: ${player.Name}wanted to move $item_guid to $target_guid, but multiple problems were encountered" ) } case (Some(obj), _) => - log.warn(s"LootItem: item $obj is (probably) not lootable") + log.warn(s"LootItem: item $obj is (probably) not lootable to ${player.Name}") case (None, _) => - log.warn(s"LootItem: can not find $item_guid") + log.warn(s"LootItem: ${player.Name} can not find $item_guid") case (_, None) => - log.warn(s"LootItem: can not find where to put $item_guid") + log.warn(s"LootItem: ${player.Name} can not find where to put $item_guid") } case msg @ AvatarImplantMessage(player_guid, action, slot, status) => @@ -4480,7 +4452,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con avatarActor ! AvatarActor.DeactivateImplant(implant.definition.implantType) } case Some(implant) if !implant.initialized => () - case _ => log.error(s"AvatarImplantMessage for unknown implant ${msg}") + case _ => log.error(s"AvatarImplantMessage: ${player.Name} has an unknown implant in $slot") } } @@ -4497,7 +4469,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk8, itemType ) => - //log.info("UseItem: " + msg) // TODO: Not all fields in the response are identical to source in real packet logs (but seems to be ok) // TODO: Not all incoming UseItemMessage's respond with another UseItemMessage (i.e. doors only send out GenericObjectStateMsg) val equipment = player.Slot(player.DrawnSlot).Equipment match { @@ -4523,7 +4494,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con CancelZoningProcessWithDescriptiveReason("cancel_use") if (obj.isBackpack) { if (equipment.isEmpty) { - log.info(s"UseItem: ${player.Name} looting the corpse of $obj") + log.info(s"UseItem: ${player.Name} is looting the corpse of ${obj.Name}") sendResponse( UseItemMessage( avatar_guid, @@ -4631,12 +4602,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con true } } else { - log.warn(s"UseItem: $kit behavior not supported") + log.warn(s"UseItem: Your $kit behavior is not supported, ${player.Name}") false } case None => - log.error(s"UseItem: anticipated a $kit, but can't find it") + log.error(s"UseItem: Anticipated a $kit for ${player.Name}, but can't find it") false } if (kitIsUsed) { @@ -4665,9 +4636,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case Some(item) => - log.warn(s"UseItem: looking for Kit to use, but found $item instead") + log.warn(s"UseItem: ${player.Name} looking for Kit to use, but found $item instead") case None => - log.warn(s"UseItem: anticipated a Kit $item_used_guid, but can't find it") + log.warn(s"UseItem: anticipated a Kit $item_used_guid for ${player.Name}, but can't find it") } } else if (itemType == ObjectClass.avatar && unk3) { equipment match { @@ -4686,7 +4657,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con CancelZoningProcessWithDescriptiveReason("cancel_use") locker.Actor ! CommonMessages.Use(player, Some(item)) case None if locker.Faction == player.Faction || !locker.HackedBy.isEmpty => - log.trace(s"UseItem: ${player.Name} accessing a locker") + log.info(s"UseItem: ${player.Name} is accessing a locker") CancelZoningProcessWithDescriptiveReason("cancel_use") val playerLocker = player.avatar.locker sendResponse( @@ -4777,7 +4748,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case Some(terminal: Terminal) => - log.info(s"$msg") equipment match { case Some(item) => CancelZoningProcessWithDescriptiveReason("cancel_use") @@ -4829,7 +4799,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) ) case None => - log.error("UseItem: expected seated vehicle, but found none") + log.error(s"UseItem: Expecting a seated vehicle, ${player.Name} found none") } } else if (tdef == GlobalDefinitions.teleportpad_terminal) { //explicit request @@ -4953,25 +4923,23 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case Some(obj) => CancelZoningProcessWithDescriptiveReason("cancel_use") - log.warn(s"UseItem: don't know how to handle $obj") + log.warn(s"UseItem: ${player.Name} don't know how to handle $obj") case None => - log.error(s"UseItem: can not find object $object_guid") + log.error(s"UseItem: ${player.Name} can not find object $object_guid") } case msg @ ProximityTerminalUseMessage(player_guid, object_guid, _) => - log.trace(s"ProximityTerminalUse: $msg") continent.GUID(object_guid) match { case Some(obj: Terminal with ProximityUnit) => HandleProximityTerminalUse(obj) case Some(obj) => ; - log.warn(s"ProximityTerminalUse: object does not have proximity effects - $obj") + log.warn(s"ProximityTerminalUse: $obj does not have proximity effects for ${player.Name}") case None => - log.warn(s"ProximityTerminalUse: no object with guid $object_guid found") + log.warn(s"ProximityTerminalUse: ${player.Name} can not find an oject with guid $object_guid") } case msg @ UnuseItemMessage(player_guid, object_guid) => - log.info(s"UnuseItem: $msg") ValidObject(object_guid) match { case Some(obj: Player) => UnaccessContainer(obj) @@ -4984,7 +4952,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ DeployObjectMessage(guid, unk1, pos, orient, unk2) => - log.info(s"DeployObject: $msg") //the hand with the construction item is no longer drawn //TODO consider player.Slot(player.LastDrawnSlot) (player.Holsters().find(slot => slot.Equipment.nonEmpty && slot.Equipment.get.GUID == guid) match { @@ -5000,7 +4967,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case turret => turret } - log.info(s"DeployObject: Constructing a ${ammoType}") + log.info(s"DeployObject: ${player.Name} is constructing a $ammoType deployable") CancelZoningProcessWithDescriptiveReason("cancel_use") val dObj: PlanetSideGameObject with Deployable = Deployables.Make(ammoType)() dObj.Position = pos @@ -5016,21 +4983,19 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con continent.tasks ! CallBackForTask(tasking, continent.Deployables, Zone.Deployable.Build(dObj, obj)) case Some(obj) => - log.warn(s"DeployObject: $obj is something?") + log.warn(s"DeployObject: What is $obj, ${player.Name}? It's not a construction tool!") case None => - log.warn("DeployObject: nothing?") + log.warn(s"DeployObject: nothing, ${player.Name}? It's not a construction tool!") } case msg @ GenericObjectActionMessage(object_guid, code) => - //log.info(s"$msg") ValidObject(object_guid) match { case Some(tool: Tool) => if (tool.Definition == GlobalDefinitions.maelstrom && code == 35) { //maelstrom primary fire mode effect (no target) HandleWeaponFireAccountability(object_guid, PlanetSideGUID(Projectile.baseUID)) } - case _ => - log.info(s"$msg") + case _ => ; } case msg @ GenericObjectStateMsg(object_guid, unk1) => @@ -5057,7 +5022,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con player.AwayFromKeyboard = false } if (action == 15) { //max deployment - log.info(s"GenericObject: $player is anchored") + log.info(s"GenericObject: ${player.Name} is anchored") player.UsingSpecial = SpecialExoSuitDefinition.Mode.Anchored continent.AvatarEvents ! AvatarServiceMessage( continent.id, @@ -5075,10 +5040,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con tool.ToFireMode = convertFireModeIndex sendResponse(ChangeFireModeMessage(tool.GUID, convertFireModeIndex)) case _ => - log.warn(s"GenericObject: $player is MAX with an unexpected weapon - ${definition.Name}") + log.warn(s"GenericObject: ${player.Name} is a MAX with an unexpected weapon - ${definition.Name}") } } else if (action == 16) { //max deployment - log.info(s"GenericObject: $player has released the anchors") + log.info(s"GenericObject: ${player.Name} has released the anchors") player.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal continent.AvatarEvents ! AvatarServiceMessage( continent.id, @@ -5102,17 +5067,17 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con if (player.ExoSuit == ExoSuitType.MAX) { ToggleMaxSpecialState(enable = true) } else { - log.warn("Got GenericActionMessage 20 but can't handle it") + log.warn(s"${player.Name} got GenericActionMessage 20 but can't handle it") } } else if (action == 21) { if (player.ExoSuit == ExoSuitType.MAX) { player.Faction match { case PlanetSideEmpire.NC => ToggleMaxSpecialState(enable = false) - case _ => log.warn(s"Player ${player.Name} tried to cancel an uncancellable MAX special ability") + case _ => log.warn(s"${player.Name} tried to cancel an uncancellable MAX special ability") } } else { - log.warn("Got GenericActionMessage 21 but can't handle it") + log.warn(s"${player.Name} got GenericActionMessage 21 but can't handle it") } } else if (action == 36) { //Looking For Squad ON if (squadUI.nonEmpty) { @@ -5142,35 +5107,32 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ ItemTransactionMessage(terminal_guid, transaction_type, _, _, _, _) => - log.info("ItemTransaction: " + msg) continent.GUID(terminal_guid) match { case Some(term: Terminal) => - log.info(s"ItemTransaction: ${term.Definition.Name} found") + log.info(s"ItemTransaction: ${player.Name} is using a terminal") if (lastTerminalOrderFulfillment) { lastTerminalOrderFulfillment = false CancelZoningProcessWithDescriptiveReason("cancel_use") term.Actor ! Terminal.Request(player, msg) } case Some(obj: PlanetSideGameObject) => - log.error(s"ItemTransaction: $obj is not a terminal") + log.error(s"ItemTransaction: $obj is not a terminal, ${player.Name}") case _ => - log.error(s"ItemTransaction: $terminal_guid does not exist") + log.error(s"ItemTransaction: $terminal_guid does not exist, ${player.Name}") } case msg @ FavoritesRequest(player_guid, loadoutType, action, line, label) => CancelZoningProcessWithDescriptiveReason("cancel_use") - log.info(s"FavoritesRequest: $msg") + log.info(s"FavoritesRequest: ${player.Name} wishes to load a saved favorite entry") action match { case FavoritesAction.Save => avatarActor ! AvatarActor.SaveLoadout(player, loadoutType, label, line) case FavoritesAction.Delete => avatarActor ! AvatarActor.DeleteLoadout(player, loadoutType, line) - case FavoritesAction.Unknown => log.warn("FavoritesRequest: unknown favorites action") + case FavoritesAction.Unknown => log.warn(s"FavoritesRequest: ${player.Name} requested an unknown favorites action") } - case msg @ WeaponDelayFireMessage(seq_time, weapon_guid) => - log.info("WeaponDelayFire: " + msg) + case msg @ WeaponDelayFireMessage(seq_time, weapon_guid) => ; case msg @ WeaponDryFireMessage(weapon_guid) => - log.debug("WeaponDryFireMessage: " + msg) FindWeapon match { case Some(tool: Tool) => continent.AvatarEvents ! AvatarServiceMessage( @@ -5193,14 +5155,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk6, unk7 ) => - log.debug(s"WeaponFire: $msg") HandleWeaponFire(weapon_guid, projectile_guid, shot_origin) case msg @ WeaponLazeTargetPositionMessage(weapon, pos1, pos2) => - log.info("Lazing position: " + pos2.toString) + //log.info(s"Lazing position: ${pos2.toString}") case msg @ ObjectDetectedMessage(guid1, guid2, unk, targets) => - //log.info(s"Detection: $msg") FindWeapon match { case Some(weapon) if weapon.Projectile.AutoLock => //projectile with auto-lock instigates a warning on the target @@ -5223,7 +5183,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk3, unk4 ) => - log.info(s"Hit: $msg") + log.trace(s"Hit: $msg") //find defined projectile FindProjectileEntry(projectile_guid) match { case Some(projectile) => @@ -5298,7 +5258,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk4, targets ) => - log.info(s"Splash: $msg") + log.trace(s"Splash: $msg") FindProjectileEntry(projectile_guid) match { case Some(projectile) => val profile = projectile.profile @@ -5382,16 +5342,15 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con unk1, unk2 ) => - log.info(s"WarpgateRequest: $msg") CancelZoningProcessWithDescriptiveReason("cancel_use") if (deadState != DeadState.RespawnTime) { continent.Buildings.values.find(building => building.GUID == building_guid) match { - case Some(wg: WarpGate) if (wg.Active && (GetKnownVehicleAndSeat() match { + case Some(wg: WarpGate) if wg.Active && (GetKnownVehicleAndSeat() match { case (Some(vehicle), _) => wg.Definition.VehicleAllowance && !wg.Definition.NoWarp.contains(vehicle.Definition) case _ => true - })) => + }) => deadState = DeadState.RespawnTime cluster ! ICS.GetSpawnPoint( destinationZoneGuid.guid, @@ -5399,33 +5358,32 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con destinationBuildingGuid, context.self ) + log.info(s"WarpgateRequest: ${player.Name} is trying to use a warp gate") - case Some(wg: WarpGate) if (!wg.Active) => - log.info(s"WarpgateRequest: inactive WarpGate") + case Some(wg: WarpGate) if !wg.Active => + log.warn(s"WarpgateRequest: ${player.Name} is knocking on an inactive warp gate") case _ => deadState = DeadState.RespawnTime RequestSanctuaryZoneSpawn(player, continent.Number) } } else { - log.warn("WarpgateRequest: request consumed; already respawning ...") + log.warn(s"WarpgateRequest: your request was already consumed, ${player.Name}; already working on it ...") } case msg @ MountVehicleMsg(player_guid, mountable_guid, entry_point) => - log.info("MountVehicleMsg: " + msg) ValidObject(mountable_guid) match { case Some(obj: Mountable) => obj.Actor ! Mountable.TryMount(player, entry_point) case None | Some(_) => - log.warn(s"MountVehicleMsg: not a mountable thing") + log.warn(s"MountVehicleMsg: object ${mountable_guid.guid} not a mountable thing, ${player.Name}") } case msg @ DismountVehicleMsg(player_guid, bailType, wasKickedByDriver) => //TODO optimize this later - log.info(s"DismountVehicleMsg: $msg") //common warning for this section - def dismountWarning(msg: String): Unit = { - log.warn(s"$msg; some vehicle might not know that a player is no longer sitting in it") + def dismountWarning(note: String): Unit = { + log.warn(s"$note; some vehicle might not know that ${player.Name} is no longer sitting in it") } if (player.GUID == player_guid) { //normally disembarking from a mount @@ -5447,7 +5405,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con obj.PassengerInSeat(player) match { case Some(0) if controlled.nonEmpty => log.warn( - s"DismountVehicleMsg: can not dismount from vehicle as driver while server has asserted control; please wait ..." + s"DismountVehicleMsg: ${player.Name} can not dismount from vehicle as driver while server has asserted control; please wait ..." ) case Some(seat_num) => obj.Actor ! Mountable.TryDismount(player, seat_num) @@ -5501,7 +5459,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case (None, _) => ; log.warn(s"DismountVehicleMsg: ${player.Name} can not find his vehicle") case (_, None) => ; - log.warn(s"DismountVehicleMsg: player $player_guid could not be found to kick") + log.warn(s"DismountVehicleMsg: player $player_guid could not be found to kick, ${player.Name}") case _ => log.warn(s"DismountVehicleMsg: object is either not a Mountable or not a Player") } @@ -5511,14 +5469,14 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ DeployRequestMessage(player_guid, vehicle_guid, deploy_state, unk2, unk3, pos) => - log.info(s"DeployRequest: $msg") if (player.avatar.vehicle.contains(vehicle_guid) && player.avatar.vehicle == player.VehicleSeated) { continent.GUID(vehicle_guid) match { case Some(obj: Vehicle) => + log.info(s"DeployRequest: ${player.Name} is requesting a deployment change for ${obj.Definition.Name}") obj.Actor ! Deployment.TryDeploymentChange(deploy_state) case _ => - log.error(s"DeployRequest: can not find $vehicle_guid in scope") + log.error(s"DeployRequest: can not find vehicle $vehicle_guid") avatarActor ! AvatarActor.SetVehicle(None) } } else { @@ -5526,14 +5484,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case msg @ AvatarGrenadeStateMessage(player_guid, state) => - log.info("AvatarGrenadeStateMessage: " + msg) + log.info("AvatarGrenadeStateMessage: " + msg) //TODO I thought I had this working? case msg @ SquadDefinitionActionMessage(u1, u2, action) => - log.info(s"SquadDefinitionAction: $msg") squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Definition(u1, u2, action)) case msg @ SquadMembershipRequest(request_type, char_id, unk3, player_name, unk5) => - log.info(s"$msg") squadService ! SquadServiceMessage( player, continent, @@ -5541,11 +5497,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) case msg @ SquadWaypointRequest(request, _, wtype, unk, info) => - log.info(s"Waypoint Request: $msg") squadService ! SquadServiceMessage(player, continent, SquadServiceAction.Waypoint(request, wtype, unk, info)) case msg @ GenericCollisionMsg(u1, p, t, php, thp, pv, tv, ppos, tpos, u2, u3, u4) => - log.debug("Ouch! " + msg) + log.info(s"${player.Name} would be in intense and excruciating pain right now if collison worked") case msg @ BugReportMessage( version_major, @@ -5559,10 +5514,10 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con summary, desc ) => - log.info("BugReportMessage: " + msg) + log.info(s"BugReportMessage: ${player.Name} filed $msg") case msg @ BindPlayerMessage(action, bindDesc, unk1, logging, unk2, unk3, unk4, pos) => - log.info("BindPlayerMessage: " + msg) + //log.info("BindPlayerMessage: " + msg) case msg @ PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value) => log.info("PlanetsideAttributeMessage: " + msg) @@ -5573,7 +5528,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con vehicle.PermissionGroup(attribute_type, attribute_value) match { case Some(allow) => val group = AccessPermissionGroup(attribute_type - 10) - log.info(s"Vehicle attributes: vehicle ${vehicle.GUID} access permission $group changed to $allow") + log.info(s"Vehicle attributes: ${player.Name} changed ${vehicle.Definition.Name}'s access permission $group changed to $allow") continent.VehicleEvents ! VehicleServiceMessage( continent.id, VehicleAction.SeatPermissions(player.GUID, vehicle.GUID, attribute_type, attribute_value) @@ -5611,7 +5566,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case None => ; } } else { - log.warn(s"Vehicle attributes: unsupported change on vehicle $object_guid - $attribute_type") + log.warn(s"Vehicle attributes: unsupported change on vehicle $object_guid - $attribute_type, ${player.Name}") } } else { log.warn(s"Vehicle attributes: ${player.Name} does not own vehicle ${vehicle.GUID} and can not change it") @@ -5622,7 +5577,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con avatarActor ! AvatarActor.SetCosmetics(Cosmetic.valuesFromAttributeValue(attribute_value)) case _ => - log.warn(s"echo unknown attributes behavior") + log.warn(s"echoing unknown attributes behavior") sendResponse(PlanetsideAttributeMessage(object_guid, attribute_type, attribute_value)) } @@ -5636,27 +5591,23 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case _ => log.warn( - s"FacilityBenefitShieldChargeRequest: can not find vehicle ${vehicleGUID.guid} in zone ${continent.id}" + s"FacilityBenefitShieldChargeRequest: ${player.Name} can not find vehicle ${vehicleGUID.guid} in zone ${continent.id}" ) } case None => - log.warn(s"FacilityBenefitShieldChargeRequest: player ${player.Name} is not seated in a vehicle") + log.warn(s"FacilityBenefitShieldChargeRequest: ${player.Name} is not seated in a vehicle") } case msg @ BattleplanMessage(char_id, player_name, zone_id, diagrams) => - log.info("Battleplan: " + msg) + log.info(s"Battleplan: ${player.Name} has a brilliant idea that no one will ever see") - case msg @ CreateShortcutMessage(player_guid, slot, unk, add, shortcut) => - log.debug("CreateShortcutMessage: " + msg) + case msg @ CreateShortcutMessage(player_guid, slot, unk, add, shortcut) => ; - case msg @ FriendsRequest(action, friend) => - log.info("FriendsRequest: " + msg) + case msg @ FriendsRequest(action, friend) => ; - case msg @ HitHint(source_guid, player_guid) => - log.trace(s"HitHint: $msg") //HitHint is manually distributed for proper operation + case msg @ HitHint(source_guid, player_guid) => ; //HitHint is manually distributed for proper operation case msg @ TargetingImplantRequest(list) => - log.info("TargetingImplantRequest: " + msg) val targetInfo: List[TargetInfo] = list.flatMap(x => { continent.GUID(x.target_guid) match { case Some(player: Player) => @@ -5669,7 +5620,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con Some(TargetInfo(player.GUID, health, armor)) case _ => - log.warn(s"Target info requested for guid ${x.target_guid} but is not a player") + log.warn(s"TargetingImplantRequest: The target info that ${player.Name} requested for guid ${x.target_guid} is not for a player") None } }) @@ -5685,11 +5636,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) case msg @ ActionCancelMessage(u1, u2, u3) => - log.info("Cancelled: " + msg) progressBarUpdate.cancel() progressBarValue = None - case default => log.error(s"Unhandled GamePacket $pkt") + case _ => + log.warn(s"Unhandled GamePacket $pkt") } /** @@ -5716,7 +5667,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } def Execute(resolver: ActorRef): Unit = { - log.info(s"Player $localPlayer is registered") + log.trace(s"Player $localPlayer is registered") resolver ! Success(this) localAnnounce ! NewPlayerLoaded(localPlayer) //alerts WorldSessionActor } @@ -5753,7 +5704,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } def Execute(resolver: ActorRef): Unit = { - log.info(s"Player $localPlayer is registered") + log.trace(s"Player $localPlayer is registered") resolver ! Success(this) localAnnounce ! PlayerLoaded(localPlayer) //alerts WorldSessionActor } @@ -5789,7 +5740,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } def Execute(resolver: ActorRef): Unit = { - log.info(s"Vehicle $localVehicle is registered") + log.trace(s"Vehicle $localVehicle is registered") resolver ! Success(this) } }, @@ -5841,7 +5792,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } def Execute(resolver: ActorRef): Unit = { - log.info(s"Vehicle $localVehicle is registered") + log.trace(s"Vehicle $localVehicle is registered") localDriver.VehicleSeated = localVehicle.GUID Vehicles.Own(localVehicle, localDriver) localAnnounce ! PlayerLoaded(localDriver) @@ -6412,28 +6363,28 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) //handle inventory contents - box.Capacity = (if (sumReloadValue <= fullMagazine) { + box.Capacity = if (sumReloadValue <= fullMagazine) { sumReloadValue } else { val splitReloadAmmo: Int = sumReloadValue - fullMagazine log.info( - s"ChangeAmmo: taking ${originalBoxCapacity - splitReloadAmmo} from a box of ${originalBoxCapacity} $requestedAmmoType" + s"ChangeAmmo: ${player.Name} takes ${originalBoxCapacity - splitReloadAmmo} from a box of ${originalBoxCapacity} $requestedAmmoType ammo" ) val boxForInventory = AmmoBox(box.Definition, splitReloadAmmo) continent.tasks ! stowNewFunc(boxForInventory) fullMagazine - }) + } sendResponse( InventoryStateMessage(box.GUID, tool.GUID, box.Capacity) ) //should work for both players and vehicles - log.info(s"ChangeAmmo: loading ${box.Capacity} $requestedAmmoType into ${tool.GUID} @ $ammoSlotIndex") + log.info(s"ChangeAmmo: ${player.Name} loads ${box.Capacity} $requestedAmmoType into ${tool.GUID} in $ammoSlotIndex") if (previousBox.Capacity > 0) { //divide capacity across other existing and not full boxes of that ammo type var capacity = previousBox.Capacity val iter = obj.Inventory.Items .filter(entry => { entry.obj match { - case (item: AmmoBox) => + case item: AmmoBox => item.AmmoType == originalAmmoType && item.FullCapacity != item.Capacity case _ => false @@ -6446,7 +6397,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con val entry = iter.next() val item: AmmoBox = entry.obj.asInstanceOf[AmmoBox] val ammoAllocated = math.min(item.FullCapacity - item.Capacity, capacity) - log.info(s"ChangeAmmo: putting $ammoAllocated back into a box of ${item.Capacity} $originalAmmoType") + log.info(s"ChangeAmmo: ${player.Name} put $ammoAllocated back into a box of ${item.Capacity} $originalAmmoType") capacity -= ammoAllocated modifyFunc(item, -ammoAllocated) } @@ -6527,13 +6478,13 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con val ammoType = tool.AmmoType FindEquipmentStock(player, FindToolThatUses(ammoType), 3, CountGrenades).reverse match { //do not search sidearm holsters case Nil => - log.info(s"no more $ammoType grenades") + log.info(s"${player.Name} has no more $ammoType grenades to throw") RemoveOldEquipmentFromInventory(player)(tool) case x :: xs => //this is similar to ReloadMessage val box = x.obj.asInstanceOf[Tool] val tailReloadValue: Int = if (xs.isEmpty) { 0 } - else { xs.map(_.obj.asInstanceOf[Tool].Magazine).reduce(_ + _) } + else { xs.map(_.obj.asInstanceOf[Tool].Magazine).sum } val sumReloadValue: Int = box.Magazine + tailReloadValue val actualReloadValue = if (sumReloadValue <= 3) { RemoveOldEquipmentFromInventory(player)(x.obj) @@ -6542,7 +6493,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ModifyAmmunition(player)(box.AmmoSlot.Box, 3 - tailReloadValue) 3 } - log.info(s"found $actualReloadValue more $ammoType grenades to throw") + log.info(s"${player.Name} found $actualReloadValue more $ammoType grenades to throw") ModifyAmmunition(player)( tool.AmmoSlot.Box, -actualReloadValue @@ -6596,7 +6547,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } else { "" } - log.error(s"DeployRequest: $obj can not transition to $state - $reason$mobileShift") + log.error(s"DeployRequest: ${player.Name} can not transition $obj to $state - $reason$mobileShift") } /** @@ -6968,12 +6919,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con zone.id, VehicleAction.UnloadVehicle(player.GUID, vehicle, vehicleToDelete) ) - log.info( + log.trace( s"AvatarCreate: cleaning up ghost of transitioning vehicle ${vehicle.Definition.Name}@${vehicleToDelete.guid} in zone ${zone.id}" ) } Vehicles.ReloadAccessPermissions(vehicle, player.Name) - //log.info(s"AvatarCreate (vehicle): $guid -> $data") AvatarCreateInVehicle(player, vehicle, seat) case _ => @@ -6986,7 +6936,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con continent.id, AvatarAction.LoadPlayer(guid, ObjectClass.avatar, guid, packet.ConstructorData(player).get, None) ) - //log.info(s"AvatarCreate: $guid -> $data") + log.trace(s"AvatarCreate: $guid -> $data") log.trace(s"AvatarCreate: ${player.Name}") } continent.Population ! Zone.Population.Spawn(avatar, player, avatarActor) @@ -7101,7 +7051,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con Some(ObjectCreateMessageParent(vguid, seat)) ) ) - //log.info(s"AvatarCreateInVehicle: $pguid -> pdata") + log.trace(s"AvatarCreateInVehicle: $pguid -> pdata") } /** @@ -7137,18 +7087,20 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con //vehicle and driver/passenger val vdef = vehicle.Definition val vguid = vehicle.GUID - if (seat == 0) { + val vdata = if (seat == 0) { val seat = vehicle.Seats(0) seat.unmount(player) - val vdata = vdef.Packet.ConstructorData(vehicle).get + val _vdata = vdef.Packet.ConstructorData(vehicle).get sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, vdata)) seat.mount(player) + _vdata } else { - val vdata = vdef.Packet.ConstructorData(vehicle).get - sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, vdata)) + val _vdata = vdef.Packet.ConstructorData(vehicle).get + sendResponse(ObjectCreateMessage(vehicle.Definition.ObjectId, vguid, _vdata)) + _vdata } Vehicles.ReloadAccessPermissions(vehicle, continent.id) - //log.info(s"AvatarCreate (vehicle): $vguid -> $vdata") + log.trace(s"AvatarCreate (vehicle): $vguid -> $vdata") val pdef = player.avatar.definition val pguid = player.GUID val parent = ObjectCreateMessageParent(vguid, seat) @@ -7156,7 +7108,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con val pdata = pdef.Packet.DetailedConstructorData(player).get player.VehicleSeated = vguid sendResponse(ObjectCreateDetailedMessage(pdef.ObjectId, pguid, pdata)) - //log.info(s"AvatarRejoin: $vguid -> $vdata") + log.trace(s"AvatarRejoin: $pguid -> $pdata") if (seat == 0 || vehicle.WeaponControlledFromSeat(seat).nonEmpty) { sendResponse(ObjectAttachMessage(vguid, pguid, seat)) AccessContainer(vehicle) @@ -7173,7 +7125,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con val data = packet.DetailedConstructorData(player).get val guid = player.GUID sendResponse(ObjectCreateDetailedMessage(ObjectClass.avatar, guid, data)) - //log.info(s"AvatarRejoin: $guid -> $data") + log.trace(s"AvatarRejoin: $guid -> $data") log.trace(s"AvatarRejoin: ${player.Name}") } //cautious redundancy @@ -7343,7 +7295,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con */ def RequestSanctuaryZoneSpawn(tplayer: Player, currentZone: Int): Unit = { if (currentZone == Zones.sanctuaryZoneNumber(tplayer.Faction)) { - log.error("RequestSanctuaryZoneSpawn called for player already in sanctuary.") + log.error(s"RequestSanctuaryZoneSpawn: ${player.Name} is already in faction Sanctuary zone.") sendResponse(DisconnectMessage("RequestSanctuaryZoneSpawn called for player already in sanctuary.")) return } @@ -7447,7 +7399,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con */ def StopUsingProximityUnit(terminal: Terminal with ProximityUnit): Unit = { val term_guid = terminal.GUID - //log.trace(s"StopUsingProximityUnit: attempting to stop using proximity unit ${terminal.Definition.Name}@${term_guid.guid}") val targets = FindProximityUnitTargetsInScope(terminal) if (targets.nonEmpty) { if (usingMedicalTerminal.contains(term_guid)) { @@ -7771,7 +7722,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con PlayerActionsToCancel() avatarActor ! AvatarActor.DeactivateActiveImplants() avatarActor ! AvatarActor.SuspendStaminaRegeneration(3 seconds) - log.info(s"MountVehicleMsg: ${player.Name}_guid mounts $obj @ $seatNum") sendResponse(ObjectAttachMessage(obj_guid, player_guid, seatNum)) continent.VehicleEvents ! VehicleServiceMessage( continent.id, @@ -7787,7 +7737,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con */ def DismountAction(tplayer: Player, obj: PlanetSideGameObject with Mountable, seatNum: Int): Unit = { val player_guid: PlanetSideGUID = tplayer.GUID - log.info(s"DismountVehicleMsg: ${tplayer.Name} dismounts $obj from $seatNum") + log.info( + s"DismountVehicleMsg: ${tplayer.Name} dismounts a ${obj.Definition.asInstanceOf[ObjectDefinition].Name} from seat $seatNum" + ) keepAliveFunc = NormalKeepAlive sendResponse(DismountVehicleMsg(player_guid, BailType.Normal, wasKickedByDriver = false)) continent.VehicleEvents ! VehicleServiceMessage( @@ -7991,7 +7943,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con obj.ModePermissions ) && originalAmmoIndex != obj.AmmoTypeIndex) log.info( - s"ChangeFireMode: construction object ${obj.Definition.Name} changed to ${obj.AmmoType} (mode ${obj.FireModeIndex})" + s"ChangeFireMode: ${player.Name} switched construction object ${obj.Definition.Name} to ${obj.AmmoType} (mode ${obj.FireModeIndex})" ) sendResponse(ChangeAmmoMessage(obj.GUID, obj.AmmoTypeIndex)) } @@ -8053,7 +8005,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con val item = definition.Item val deployables = avatar.deployables val (curr, max) = deployables.CountDeployable(item) - log.info(s"DeployableBuildActivity: ${definition.Name}") //two potential messages related to numerical limitations of deployables if (!avatar.deployables.Available(obj)) { val (removed, msg) = { @@ -8081,7 +8032,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } case None => ; //should be an invalid case log.warn( - s"DeployableBuildActivity: how awkward: we probably shouldn't be allowed to build this deployable right now" + s"DeployableBuildActivity: how awkward: ${player.Name} probably shouldn't be allowed to build this deployable right now" ) } } else if (obj.isInstanceOf[TelepadDeployable]) { @@ -8164,11 +8115,11 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } else { player.Find(tool) match { case Some(newIndex) => - log.warn(s"$logDecorator: looking for item in $index, but item was found at $newIndex instead") + log.warn(s"$logDecorator: ${player.Name} was looking for an item in his hand $index, but item was found at $newIndex instead") player.Slot(newIndex).Equipment = None true case None => - log.error(s"$logDecorator: could not find the target ${tool.Definition.Name}") + log.error(s"$logDecorator: ${player.Name} could not find the target ${tool.Definition.Name}") false } } @@ -8234,7 +8185,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con } } else { log.warn( - s"FindReplacementConstructionItem: slot $index needs to be empty before a replacement ${definition.Name} can be installed" + s"FindReplacementConstructionItem: ${player.Name}, your $index hand needs to be empty before a replacement ${definition.Name} can be installed" ) } } @@ -8274,22 +8225,19 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case Some((parent, Some(slot))) => obj.Position = Vector3.Zero RemoveOldEquipmentFromInventory(parent)(obj) - log.info(s"RequestDestroy: equipment $obj") true case _ => if (player.avatar.locker.Inventory.Remove(object_guid)) { sendResponse(ObjectDeleteMessage(object_guid, 0)) - log.info(s"RequestDestroy: equipment $obj") true } else if (continent.EquipmentOnGround.contains(obj)) { obj.Position = Vector3.Zero continent.Ground ! Zone.Ground.RemoveItem(object_guid) continent.AvatarEvents ! AvatarServiceMessage.Ground(RemoverActor.ClearSpecific(List(obj), continent)) - log.info(s"RequestDestroy: equipment $obj on ground") true } else { - log.warn(s"RequestDestroy: equipment $obj exists, but can not be reached") + log.warn(s"RequestDestroy: equipment $obj exists, but ${player.Name} can not reach it to dispose of it") false } } @@ -8397,7 +8345,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * does not factor in any time required for loading zone or game objects */ def LoadZonePhysicalSpawnPoint(zoneId: String, pos: Vector3, ori: Vector3, respawnTime: FiniteDuration): Unit = { - log.info(s"Load in zone $zoneId at position $pos in $respawnTime") + log.info(s"LoadZonePhysicalSpawnPoint: ${player.Name} will load in zone $zoneId at position $pos in $respawnTime") respawnTimer.cancel() reviveTimer.cancel() deadState = DeadState.RespawnTime @@ -8461,7 +8409,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * @param zoneId the zone in which the player will be placed */ def LoadZoneAsPlayer(targetPlayer: Player, zoneId: String): Unit = { - log.debug(s"loadZoneAsPlayer ${targetPlayer.avatar.name} $zoneId") + log.info(s"LoadZoneAsPlayer ${targetPlayer.avatar.name} loading into $zoneId") if (!zoneReload && zoneId == continent.id) { if (player.isBackpack) { // important! test the actor-wide player ref, not the parameter // respawning from unregistered player @@ -8542,9 +8490,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * @return a tuple composed of an `ActorRef` destination and a message to send to that destination */ def LoadZoneInVehicleAsDriver(vehicle: Vehicle, zoneId: String): Unit = { - log.info(s"LoadZoneInVehicleAsDriver: ${player.Name} is driving a ${vehicle.Definition.Name}") + log.info(s"LoadZoneInVehicleAsDriver: ${player.Name} loading into $zoneId, driving a ${vehicle.Definition.Name}") val manifest = vehicle.PrepareGatingManifest() - log.info(s"$manifest") val pguid = player.GUID val toChannel = manifest.file val topLevel = interstellarFerryTopLevelGUID.getOrElse(vehicle.GUID) @@ -8555,7 +8502,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con manifest.cargo.foreach { case ("MISSING_DRIVER", index) => val cargo = vehicle.CargoHolds(index).occupant.get - log.error(s"LoadZoneInVehicleAsDriver: eject cargo in hold $index; vehicle missing driver") + log.error(s"LoadZoneInVehicleAsDriver: ${player.Name} must eject cargo in hold $index; vehicle is missing driver") CargoBehavior.HandleVehicleCargoDismount(cargo.GUID, cargo, vehicle.GUID, vehicle, false, false, true) case (name, index) => val cargo = vehicle.CargoHolds(index).occupant.get @@ -8634,7 +8581,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * @return a tuple composed of an `ActorRef` destination and a message to send to that destination */ def LoadZoneInVehicleAsPassenger(vehicle: Vehicle, zoneId: String): Unit = { - log.info(s"LoadZoneInVehicleAsPassenger: ${player.Name} is the passenger of a ${vehicle.Definition.Name}") + log.info(s"LoadZoneInVehicleAsPassenger: ${player.Name} loading into $zoneId as the passenger of a ${vehicle.Definition.Name}") if (!zoneReload && zoneId == continent.id) { //transferring a vehicle between spawn points (warp gates) in the same zone self ! PlayerLoaded(player) @@ -8683,7 +8630,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) } case None => - log.error("LoadZoneTransferPassengerMessages: expected a manifest for zone transfer; got nothing") + log.error(s"LoadZoneTransferPassengerMessages: ${player.Name} expected a manifest for zone transfer; got nothing") } } @@ -8844,7 +8791,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con LocalAction.RouterTelepadTransport(pguid, pguid, sguid, dguid) ) } else { - log.warn(s"UseRouterTelepadSystem: can not teleport") + log.warn(s"UseRouterTelepadSystem: ${player.Name} can not teleport") } recentTeleportAttempt = time } @@ -8956,7 +8903,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con .sortBy(tube => Vector3.DistanceSquared(tube.Position, player.Position)) .headOption match { case Some(tube) => - log.info("DrawCurrentAmsSpawnPoint - new @ams spawn point drawn") sendResponse( BindPlayerMessage( BindStatus.Available, @@ -8970,7 +8916,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con ) ) case None => - log.info("DrawCurrentAmsSpawnPoint - no @ams spawn point drawn") sendResponse( BindPlayerMessage( BindStatus.Unavailable, @@ -9120,7 +9065,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case PlanetSideEmpire.NC => if (player.Capacitor > 0) player.UsingSpecial = SpecialExoSuitDefinition.Mode.Shielded case _ => - log.warn(s"Player ${player.Name} tried to use a MAX special ability but their faction doesn't have one") + log.warn(s"${player.Name} tried to use a MAX special ability but their faction doesn't have one") } if ( player.UsingSpecial == SpecialExoSuitDefinition.Mode.Overdrive || player.UsingSpecial == SpecialExoSuitDefinition.Mode.Shielded @@ -9332,7 +9277,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con * @see `persist` */ def KeepAlivePersistence(): Unit = { - //log.info(s"KeepAlive in a vehicle - $upstreamMessageCount") interimUngunnedVehicle = None persist() turnCounterFunc(player.GUID) @@ -9378,8 +9322,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con case None => false } ) { - log.trace( - s"WeaponFireMessage: overwriting unresolved projectile ${projectileGUID.guid}" + log.debug( + s"WeaponFireMessage: overwriting unresolved projectile ${projectileGUID.guid}, known to ${player.Name}" ) } val (angle, attribution, acceptableDistanceToOwner) = obj match { diff --git a/src/main/scala/net/psforever/login/TcpListener.scala b/src/main/scala/net/psforever/login/TcpListener.scala index 1a65c966e..820ba79f1 100644 --- a/src/main/scala/net/psforever/login/TcpListener.scala +++ b/src/main/scala/net/psforever/login/TcpListener.scala @@ -26,7 +26,7 @@ class TcpListener[T <: Actor](actorClass: Class[T], nextActorName: String, liste def receive = { case Tcp.Bound(local) => - log.info(s"Now listening on TCP:$local") + log.debug(s"Now listening on TCP:$local") context.become(ready(sender())) case Tcp.CommandFailed(Tcp.Bind(_, address, _, _, _)) => diff --git a/src/main/scala/net/psforever/objects/Deployables.scala b/src/main/scala/net/psforever/objects/Deployables.scala index 704eb0760..a43f4d1af 100644 --- a/src/main/scala/net/psforever/objects/Deployables.scala +++ b/src/main/scala/net/psforever/objects/Deployables.scala @@ -128,7 +128,6 @@ object Deployables { * @param avatar the player's core */ def InitializeDeployableQuantities(avatar: Avatar): Boolean = { - log.info("Setting up combat engineering ...") avatar.deployables.Initialize(avatar.certifications) } @@ -137,7 +136,6 @@ object Deployables { * @param avatar the player's core */ def InitializeDeployableUIElements(avatar: Avatar): List[(Int, Int, Int, Int)] = { - log.info("Setting up combat engineering UI ...") avatar.deployables.UpdateUI() } diff --git a/src/main/scala/net/psforever/objects/Vehicles.scala b/src/main/scala/net/psforever/objects/Vehicles.scala index 89fa4cee9..9812e4f80 100644 --- a/src/main/scala/net/psforever/objects/Vehicles.scala +++ b/src/main/scala/net/psforever/objects/Vehicles.scala @@ -226,7 +226,7 @@ object Vehicles { * @param unk na; used by `HackMessage` as `unk5` */ def FinishHackingVehicle(target: Vehicle, hacker: Player, unk: Long)(): Unit = { - log.info(s"Vehicle guid: ${target.GUID} has been jacked") + log.info(s"Vehicle ${target.Definition.Name}#${target.GUID.guid} has been jacked by ${hacker.Name}") val zone = target.Zone // Forcefully dismount any cargo target.CargoHolds.values.foreach(cargoHold => { diff --git a/src/main/scala/net/psforever/objects/avatar/PlayerControl.scala b/src/main/scala/net/psforever/objects/avatar/PlayerControl.scala index e50a376b4..0af219319 100644 --- a/src/main/scala/net/psforever/objects/avatar/PlayerControl.scala +++ b/src/main/scala/net/psforever/objects/avatar/PlayerControl.scala @@ -328,7 +328,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm ) case Terminal.InfantryLoadout(exosuit, subtype, holsters, inventory) => - log.info(s"wants to change equipment loadout to their option #${msg.unk1 + 1}") + log.info(s"${player.Name} wants to change equipment loadout to their option #${msg.unk1 + 1}") val fallbackSubtype = 0 val fallbackSuit = ExoSuitType.Standard val originalSuit = player.ExoSuit @@ -371,7 +371,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm (exosuit, subtype) } else { log.warn( - s"no longer has permission to wear the exo-suit type $exosuit; will wear $fallbackSuit instead" + s"${player.Name} no longer has permission to wear the exo-suit type $exosuit; will wear $fallbackSuit instead" ) (fallbackSuit, fallbackSubtype) } @@ -710,6 +710,12 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm super.CancelJammeredStatus(target) //uninitialize implants avatarActor ! AvatarActor.DeinitializeImplants() + cause.adversarial match { + case Some(a) => + damageLog.info(s"DisplayDestroy: ${a.defender} was killed by ${a.attacker}") + case _ => + damageLog.info(s"DisplayDestroy: ${player.Name} killed ${if(player.Sex==CharacterGender.Male){"himself"}else{"herself"}}.") + } events ! AvatarServiceMessage( nameChannel, AvatarAction.Killed(player_guid, target.VehicleSeated) diff --git a/src/main/scala/net/psforever/objects/guid/actor/NumberPoolActor.scala b/src/main/scala/net/psforever/objects/guid/actor/NumberPoolActor.scala index 0f759226f..edc0408e3 100644 --- a/src/main/scala/net/psforever/objects/guid/actor/NumberPoolActor.scala +++ b/src/main/scala/net/psforever/objects/guid/actor/NumberPoolActor.scala @@ -44,7 +44,7 @@ class NumberPoolActor(pool: NumberPool) extends Actor { sender() ! NumberPoolActor.ReturnNumberResult(number, ex, id) case msg => - log.info(s"received an unexpected message - ${msg.toString}") + log.warn(s"Received an unexpected message - ${msg.toString}") } } diff --git a/src/main/scala/net/psforever/objects/guid/actor/UniqueNumberSystem.scala b/src/main/scala/net/psforever/objects/guid/actor/UniqueNumberSystem.scala index 47f5c9966..06f0eca98 100644 --- a/src/main/scala/net/psforever/objects/guid/actor/UniqueNumberSystem.scala +++ b/src/main/scala/net/psforever/objects/guid/actor/UniqueNumberSystem.scala @@ -103,7 +103,7 @@ class UniqueNumberSystem(private val guid: NumberPoolHub, private val poolActors } } catch { case _: Exception => - log.info(s"$obj is already unregistered") + log.warn(s"$obj is already unregistered") callback ! Success(obj) } diff --git a/src/main/scala/net/psforever/objects/serverobject/hackable/GenericHackables.scala b/src/main/scala/net/psforever/objects/serverobject/hackable/GenericHackables.scala index 0614472c9..c50e016a8 100644 --- a/src/main/scala/net/psforever/objects/serverobject/hackable/GenericHackables.scala +++ b/src/main/scala/net/psforever/objects/serverobject/hackable/GenericHackables.scala @@ -104,7 +104,7 @@ object GenericHackables { def FinishHacking(target: PlanetSideServerObject with Hackable, user: Player, unk: Long)(): Unit = { import akka.pattern.ask import scala.concurrent.duration._ - log.info(s"Hacked a $target") + log.info(s"${user.Name} hacked a ${target.Definition.Name}") // Wait for the target actor to set the HackedBy property, otherwise LocalAction.HackTemporarily will not complete properly import scala.concurrent.ExecutionContext.Implicits.global val tplayer = user diff --git a/src/main/scala/net/psforever/objects/serverobject/locks/IFFLockControl.scala b/src/main/scala/net/psforever/objects/serverobject/locks/IFFLockControl.scala index 9d0f79024..f2c9890ef 100644 --- a/src/main/scala/net/psforever/objects/serverobject/locks/IFFLockControl.scala +++ b/src/main/scala/net/psforever/objects/serverobject/locks/IFFLockControl.scala @@ -41,7 +41,7 @@ class IFFLockControl(lock: IFFLock) ) } else { val log = org.log4s.getLogger - log.warn("IFF lock is being hacked, but don't know how to handle this state:") + log.warn(s"IFF lock is being hacked by ${player.Faction}, but don't know how to handle this state:") log.warn(s"Lock - Faction=${lock.Faction}, HackedBy=${lock.HackedBy}") log.warn(s"Player - Faction=${player.Faction}") } diff --git a/src/main/scala/net/psforever/objects/serverobject/terminals/CaptureTerminals.scala b/src/main/scala/net/psforever/objects/serverobject/terminals/CaptureTerminals.scala new file mode 100644 index 000000000..af6864db4 --- /dev/null +++ b/src/main/scala/net/psforever/objects/serverobject/terminals/CaptureTerminals.scala @@ -0,0 +1,57 @@ +// Copyright (c) 2020 PSForever +package net.psforever.objects.serverobject.terminals + +import net.psforever.objects.Player +import net.psforever.objects.serverobject.CommonMessages +import net.psforever.objects.serverobject.terminals.capture.CaptureTerminal +import net.psforever.services.local.{LocalAction, LocalServiceMessage} + +import scala.util.{Failure, Success} + +object CaptureTerminals { + private val log = org.log4s.getLogger("CaptureTerminals") + + /** + * The process of hacking an object is completed. + * Pass the message onto the hackable object and onto the local events system. + * @param target the `Hackable` object that has been hacked + * @param unk na; + * used by `HackMessage` as `unk5` + * @see `HackMessage` + */ + //TODO add params here depending on which params in HackMessage are important + def FinishHackingCaptureConsole(target: CaptureTerminal, hackingPlayer: Player, unk: Long)(): Unit = { + import akka.pattern.ask + import scala.concurrent.duration._ + log.info(s"${hackingPlayer.toString} Hacked a ${target.toString}") + // Wait for the target actor to set the HackedBy property + import scala.concurrent.ExecutionContext.Implicits.global + ask(target.Actor, CommonMessages.Hack(hackingPlayer, target))(1 second).mapTo[Boolean].onComplete { + case Success(_) => + target.Zone.LocalEvents ! LocalServiceMessage( + target.Zone.id, + LocalAction.TriggerSound(hackingPlayer.GUID, target.HackSound, hackingPlayer.Position, 30, 0.49803925f) + ) + val isResecured = hackingPlayer.Faction == target.Faction + if (isResecured) { + // Resecure the CC + target.Zone.LocalEvents ! LocalServiceMessage( + target.Zone.id, + LocalAction.ResecureCaptureTerminal( + target + ) + ) + } + else { + // Start the CC hack timer + target.Zone.LocalEvents ! LocalServiceMessage( + target.Zone.id, + LocalAction.StartCaptureTerminalHack( + target + ) + ) + } + case Failure(_) => log.warn(s"Hack message failed on target guid: ${target.GUID}") + } + } +} diff --git a/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala b/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala index 509525cf4..87553af23 100644 --- a/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala +++ b/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala @@ -160,8 +160,6 @@ object CargoBehavior { VehicleAction.SendResponse(PlanetSideGUID(0), PlanetsideAttributeMessage(cargoGUID, 68, cargo.Shields)) ) val (attachMsg, mountPointMsg) = CargoMountBehaviorForAll(carrier, cargo, mountPoint) - log.info(s"HandleCheckCargoMounting: $attachMsg") - log.info(s"HandleCheckCargoMounting: $mountPointMsg") false } else if (distance > 625 || iteration >= 40) { //vehicles moved too far away or took too long to get into proper position; abort mounting diff --git a/src/main/scala/net/psforever/services/account/AccountIntermediaryService.scala b/src/main/scala/net/psforever/services/account/AccountIntermediaryService.scala index ea619aca2..87d11f8d9 100644 --- a/src/main/scala/net/psforever/services/account/AccountIntermediaryService.scala +++ b/src/main/scala/net/psforever/services/account/AccountIntermediaryService.scala @@ -33,29 +33,29 @@ class AccountIntermediaryService extends Actor { // Called by the LoginSessionActor case StoreAccountData(token, account) => accountsByToken += (token -> account) - log.info(s"Storing intermediary account data for ${account.id}") + log.trace(s"Storing intermediary account data for ${account.id}") // Called by the WorldSessionActor case RetrieveAccountData(token) => accountsByToken.remove(token) match { case Some(acc) => sender() ! ReceiveAccountData(acc) - log.info(s"Retrieving intermediary account data for $acc") + log.trace(s"Retrieving intermediary account data for $acc") case None => log.error(s"Unable to retrieve intermediary account data for $token") } case StoreIPAddress(sessionID, address) => IPAddressBySessionID += (sessionID -> address) - log.info(s"Storing IP address (${address.Address}) for sessionID : $sessionID") + log.trace(s"Storing IP address (${address.Address}) for sessionID : $sessionID") case RetrieveIPAddress(sessionID) => val address: Option[IPAddress] = IPAddressBySessionID.remove(sessionID) if (address.nonEmpty) { sender() ! ReceiveIPAddress(address.get) - log.info(s"Retrieving IP address data for sessionID : ${sessionID}") + log.trace(s"Retrieving IP address data for sessionID : $sessionID") } else { - log.error(s"Unable to retrieve IP address data for sessionID : ${sessionID}") + log.error(s"Unable to retrieve IP address data for sessionID : $sessionID") } case msg => diff --git a/src/main/scala/net/psforever/services/account/AccountPersistenceService.scala b/src/main/scala/net/psforever/services/account/AccountPersistenceService.scala index aefe374ab..ce0b72391 100644 --- a/src/main/scala/net/psforever/services/account/AccountPersistenceService.scala +++ b/src/main/scala/net/psforever/services/account/AccountPersistenceService.scala @@ -410,7 +410,7 @@ class PersistenceMonitor(name: String, squadService: ActorRef) extends Actor { Deployables.Disown(inZone, avatar, context.parent) inZone.Population.tell(Zone.Population.Leave(avatar), context.parent) inZone.tasks.tell(GUIDTask.UnregisterObjectTask(avatar.locker)(inZone.GUID), context.parent) - log.info(s"logout of ${avatar.name}") + log.info(s"Logout of ${avatar.name}") } } diff --git a/src/main/scala/net/psforever/services/avatar/AvatarService.scala b/src/main/scala/net/psforever/services/avatar/AvatarService.scala index 27b3faad1..49c758c20 100644 --- a/src/main/scala/net/psforever/services/avatar/AvatarService.scala +++ b/src/main/scala/net/psforever/services/avatar/AvatarService.scala @@ -25,7 +25,6 @@ class AvatarService(zone: Zone) extends Actor { case Service.Join(channel) => val path = s"/$channel/Avatar" val who = sender() - log.info(s"$who has joined $path") AvatarEvents.subscribe(who, path) case Service.Leave(None) => @@ -33,8 +32,6 @@ class AvatarService(zone: Zone) extends Actor { case Service.Leave(Some(channel)) => val path = s"/$channel/Avatar" - val who = sender() - log.info(s"$who has left $path") AvatarEvents.unsubscribe(sender(), path) case Service.LeaveAll() => diff --git a/src/main/scala/net/psforever/services/chat/ChatService.scala b/src/main/scala/net/psforever/services/chat/ChatService.scala index 36ad052b7..9bbcd1153 100644 --- a/src/main/scala/net/psforever/services/chat/ChatService.scala +++ b/src/main/scala/net/psforever/services/chat/ChatService.scala @@ -142,7 +142,7 @@ class ChatService(context: ActorContext[ChatService.Command]) extends AbstractBe ) case (None, _, _, _) => - log.error("received message from non-subscribed actor") + log.warn("received message from non-subscribed actor") } diff --git a/src/main/scala/net/psforever/services/galaxy/GalaxyService.scala b/src/main/scala/net/psforever/services/galaxy/GalaxyService.scala index 678f99a56..d0463aa64 100644 --- a/src/main/scala/net/psforever/services/galaxy/GalaxyService.scala +++ b/src/main/scala/net/psforever/services/galaxy/GalaxyService.scala @@ -9,38 +9,26 @@ import net.psforever.services.{GenericEventBus, Service} class GalaxyService extends Actor { private[this] val log = org.log4s.getLogger - override def preStart() = { - log.info("Starting...") - } - val GalaxyEvents = new GenericEventBus[GalaxyServiceResponse] def receive: Receive = { case Service.Join(faction) if "TRNCVS".containsSlice(faction) => val path = s"/$faction/Galaxy" - val who = sender() - log.trace(s"$who has joined $path") - GalaxyEvents.subscribe(who, path) + GalaxyEvents.subscribe(sender(), path) case Service.Join("galaxy") => val path = s"/Galaxy" - val who = sender() - log.trace(s"$who has joined $path") - GalaxyEvents.subscribe(who, path) + GalaxyEvents.subscribe(sender(), path) case Service.Join(channel) => val path = s"/$channel/Galaxy" - val who = sender() - log.trace(s"$who has joined $path") - GalaxyEvents.subscribe(who, path) + GalaxyEvents.subscribe(sender(), path) case Service.Leave(None) => GalaxyEvents.unsubscribe(sender()) case Service.Leave(Some(channel)) => val path = s"/$channel/Galaxy" - val who = sender() - log.trace(s"$who has left $path") GalaxyEvents.unsubscribe(sender(), path) case Service.LeaveAll() => @@ -53,7 +41,7 @@ class GalaxyService extends Actor { GalaxyServiceResponse(s"/Galaxy", GalaxyResponse.MapUpdate(msg)) ) - case GalaxyAction.TransferPassenger(player_guid, temp_channel, vehicle, vehicle_to_delete, manifest) => + case GalaxyAction.TransferPassenger(_, temp_channel, vehicle, vehicle_to_delete, manifest) => GalaxyEvents.publish( GalaxyServiceResponse( s"/$forChannel/Galaxy", @@ -69,6 +57,6 @@ class GalaxyService extends Actor { ) case msg => - log.info(s"Unhandled message $msg from ${sender()}") + log.warn(s"Unhandled message $msg from ${sender()}") } } diff --git a/src/main/scala/net/psforever/services/local/LocalService.scala b/src/main/scala/net/psforever/services/local/LocalService.scala index cedf3c234..7c184a6be 100644 --- a/src/main/scala/net/psforever/services/local/LocalService.scala +++ b/src/main/scala/net/psforever/services/local/LocalService.scala @@ -28,27 +28,19 @@ class LocalService(zone: Zone) extends Actor { context.actorOf(Props[RouterTelepadActivation](), s"${zone.id}-telepad-activate-agent") private[this] val log = org.log4s.getLogger - override def preStart() = { - log.trace(s"Awaiting ${zone.id} local events ...") - } - val LocalEvents = new GenericEventBus[LocalServiceResponse] def receive: Receive = { case Service.Join(channel) => val path = s"/$channel/Local" - val who = sender() - log.info(s"$who has joined $path") - LocalEvents.subscribe(who, path) + LocalEvents.subscribe(sender(), path) case Service.Leave(None) => LocalEvents.unsubscribe(sender()) case Service.Leave(Some(channel)) => val path = s"/$channel/Local" - val who = sender() - log.info(s"$who has left $path") - LocalEvents.unsubscribe(who, path) + LocalEvents.unsubscribe(sender(), path) case Service.LeaveAll() => LocalEvents.unsubscribe(sender()) @@ -229,13 +221,6 @@ class LocalService(zone: Zone) extends Actor { //response from HackClearActor case HackClearActor.SendHackMessageHackCleared(target_guid, _, unk1, unk2) => log.info(s"Clearing hack for $target_guid") - LocalEvents.publish( - LocalServiceResponse( - s"/${zone.id}/Local", - Service.defaultPlayerGUID, - LocalResponse.SendHackMessageHackCleared(target_guid, unk1, unk2) - ) - ) //message from ProximityTerminalControl case Terminal.StartProximityEffect(terminal) => @@ -323,7 +308,7 @@ class LocalService(zone: Zone) extends Actor { //get rid of previous linked remote telepad (if any) zone.GUID(internalTelepad.Telepad) match { case Some(old: TelepadDeployable) => - log.info( + log.trace( s"ActivateTeleportSystem: old remote telepad@${old.GUID.guid} linked to internal@${internalTelepad.GUID.guid} will be deconstructed" ) old.Active = false @@ -333,7 +318,7 @@ class LocalService(zone: Zone) extends Actor { } internalTelepad.Telepad = remoteTelepad.GUID if (internalTelepad.Active) { - log.info( + log.trace( s"ActivateTeleportSystem: fully deployed router@${router.GUID.guid} in ${zone.id} will link internal@${internalTelepad.GUID.guid} and remote@${remoteTelepad.GUID.guid}" ) LocalEvents.publish( diff --git a/src/main/scala/net/psforever/services/local/support/DeployableRemover.scala b/src/main/scala/net/psforever/services/local/support/DeployableRemover.scala index c7aeef7f9..0d8f1e654 100644 --- a/src/main/scala/net/psforever/services/local/support/DeployableRemover.scala +++ b/src/main/scala/net/psforever/services/local/support/DeployableRemover.scala @@ -50,7 +50,7 @@ class DeployableRemover(taskResolver: ActorRef) extends RemoverActor(taskResolve override def SecondJob(entry: RemoverActor.Entry): Unit = { val obj = entry.obj.asInstanceOf[PlanetSideGameObject with Deployable] - info(s"Deleting a ${obj.Definition.Name} deployable") + trace(s"Deleting a ${obj.Definition.Name} deployable") context.parent ! DeployableRemover.EliminateDeployable(obj, obj.GUID, obj.Position, entry.zone) super.SecondJob(entry) } diff --git a/src/main/scala/net/psforever/services/local/support/HackClearActor.scala b/src/main/scala/net/psforever/services/local/support/HackClearActor.scala index 3f2fe6141..a74c23459 100644 --- a/src/main/scala/net/psforever/services/local/support/HackClearActor.scala +++ b/src/main/scala/net/psforever/services/local/support/HackClearActor.scala @@ -83,12 +83,12 @@ class HackClearActor() extends Actor { case Some(hackEntry) => val short_timeout: FiniteDuration = math.max(1, hackEntry.duration - (now - hackEntry.time)) nanoseconds - log.info( + log.debug( s"HackClearActor: Still items left in hacked objects list. Checking again in ${short_timeout.toSeconds} seconds" ) import scala.concurrent.ExecutionContext.Implicits.global clearTrigger = context.system.scheduler.scheduleOnce(short_timeout, self, HackClearActor.TryClearHacks()) - case None => log.info("HackClearActor: No objects left in hacked objects list. Not rescheduling check.") + case None => log.debug("HackClearActor: No objects left in hacked objects list. Not rescheduling check.") } } diff --git a/src/main/scala/net/psforever/services/teamwork/SquadService.scala b/src/main/scala/net/psforever/services/teamwork/SquadService.scala index d59bcf496..ab90f1635 100644 --- a/src/main/scala/net/psforever/services/teamwork/SquadService.scala +++ b/src/main/scala/net/psforever/services/teamwork/SquadService.scala @@ -124,11 +124,7 @@ class SquadService extends Actor { private[this] val log = org.log4s.getLogger private def debug(msg: String): Unit = { - log.info(msg) - } - - override def preStart(): Unit = { - log.info("Starting...") + log.debug(msg) } override def postStop(): Unit = { @@ -321,7 +317,7 @@ class SquadService extends Actor { case str if str.matches("//d+") => Publish(to.toLong, msg, excluded) case _ => - log.error(s"Publish(String): subscriber information is an unhandled format - $to") + log.warn(s"Publish(String): subscriber information is an unhandled format - $to") } } @@ -336,7 +332,7 @@ class SquadService extends Actor { case Some(user) => user ! SquadServiceResponse("", msg) case None => - log.error(s"Publish(Long): subscriber information can not be found - $to") + log.warn(s"Publish(Long): subscriber information can not be found - $to") } } @@ -383,7 +379,6 @@ class SquadService extends Actor { case Service.Join(faction) if "TRNCVS".indexOf(faction) > -1 => val path = s"/$faction/Squad" val who = sender() - debug(s"$who has joined $path") SquadEvents.subscribe(who, path) //subscribe to the player's personal channel - necessary for future and previous squad information @@ -392,7 +387,6 @@ class SquadService extends Actor { val longCharId = char_id.toLong val path = s"/$char_id/Squad" val who = sender() - debug(s"$who has joined $path") context.watch(who) UserEvents += longCharId -> who refused(longCharId) = Nil @@ -407,7 +401,6 @@ class SquadService extends Actor { case Service.Leave(Some(faction)) if "TRNCVS".indexOf(faction) > -1 => val path = s"/$faction/Squad" val who = sender() - debug(s"$who has left $path") SquadEvents.unsubscribe(who, path) case Service.Leave(Some(char_id)) => diff --git a/src/main/scala/net/psforever/services/vehicle/VehicleService.scala b/src/main/scala/net/psforever/services/vehicle/VehicleService.scala index 3a89b717e..5edb6c04d 100644 --- a/src/main/scala/net/psforever/services/vehicle/VehicleService.scala +++ b/src/main/scala/net/psforever/services/vehicle/VehicleService.scala @@ -18,27 +18,19 @@ class VehicleService(zone: Zone) extends Actor { private val turretUpgrade: ActorRef = context.actorOf(Props[TurretUpgrader](), s"${zone.id}-turret-upgrade-agent") private[this] val log = org.log4s.getLogger - override def preStart() = { - log.trace(s"Awaiting ${zone.id} vehicle events ...") - } - val VehicleEvents = new GenericEventBus[VehicleServiceResponse] def receive = { case Service.Join(channel) => val path = s"/$channel/Vehicle" - val who = sender() - log.info(s"$who has joined $path") - VehicleEvents.subscribe(who, path) + VehicleEvents.subscribe(sender(), path) case Service.Leave(None) => VehicleEvents.unsubscribe(sender()) case Service.Leave(Some(channel)) => val path = s"/$channel/Vehicle" - val who = sender() - log.info(s"$who has left $path") - VehicleEvents.unsubscribe(who, path) + VehicleEvents.unsubscribe(sender(), path) case Service.LeaveAll() => VehicleEvents.unsubscribe(sender()) @@ -387,7 +379,7 @@ class VehicleService(zone: Zone) extends Actor { } case msg => - log.info(s"Unhandled message $msg from ${sender()}") + log.warn(s"Unhandled message $msg from ${sender()}") } import net.psforever.objects.serverobject.tube.SpawnTube diff --git a/src/main/scala/net/psforever/services/vehicle/support/TurretUpgrader.scala b/src/main/scala/net/psforever/services/vehicle/support/TurretUpgrader.scala index cb7ba4e7e..d3709e71c 100644 --- a/src/main/scala/net/psforever/services/vehicle/support/TurretUpgrader.scala +++ b/src/main/scala/net/psforever/services/vehicle/support/TurretUpgrader.scala @@ -164,7 +164,7 @@ class TurretUpgrader extends SupportActor[TurretUpgrader.Entry] { ) } }) - info(s"Converting manned wall turret weapon to $upgrade") + debug(s"Converting manned wall turret weapon to $upgrade") val oldBoxes = AllMountedWeaponMagazines(target) target.Upgrade = upgrade //perform upgrade @@ -228,7 +228,7 @@ class TurretUpgrader extends SupportActor[TurretUpgrader.Entry] { def FinishUpgradingTurret(entry: TurretUpgrader.Entry)(): Unit = { val target = entry.obj.asInstanceOf[FacilityTurret] val zone = entry.zone - info(s"Wall turret finished ${target.Upgrade} upgrade") + trace(s"Wall turret finished ${target.Upgrade} upgrade") target.ConfirmUpgrade(entry.upgrade) val targetGUID = target.GUID if (target.Health > 0) {