Fixes From 20210421 Logs (#784)

* test before casting to int; unsupported equipment in loadouts

* replacing null with Default.Actor

* in/out times but no actor

* empty password; squad ui elements out of order
This commit is contained in:
Fate-JH 2021-04-21 17:31:02 -04:00 committed by GitHub
parent ffa8e16c07
commit 00c8b92b44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 27 deletions

View file

@ -105,7 +105,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne
log.trace(s"New login UN:$username. $clientVersion")
}
accountLogin(username, password.get)
accountLogin(username, password.getOrElse(""))
case ConnectToWorldRequestMessage(name, _, _, _, _, _, _) =>
log.info(s"Connect to world request for '$name'")

View file

@ -135,19 +135,21 @@ class SocketActor(
val sessionReaper: Cancellable = context.system.scheduler.scheduleWithFixedDelay(0.seconds, 5.seconds)(() => {
val now = System.currentTimeMillis()
packetActors.keys.foreach(addr => {
incomingTimes.get(addr) match {
case Some(time) =>
if (now - time > Config.app.network.session.inboundGraceTime.toMillis) {
context.self ! StopChild(packetActors(addr))
packetActors.get(addr) match {
case Some(child) =>
if(
(incomingTimes.get(addr) match {
case Some(time) => now - time > Config.app.network.session.inboundGraceTime.toMillis
case _ => false
}) ||
(outgoingTimes.get(addr) match {
case Some(time) => now - time > Config.app.network.session.outboundGraceTime.toMillis
case _ => false
})
) {
context.self ! StopChild(child)
}
case _ => ()
}
outgoingTimes.get(addr) match {
case Some(time) =>
if (now - time > Config.app.network.session.outboundGraceTime.toMillis) {
context.self ! StopChild(packetActors(addr))
}
case _ => ()
case _ => ;
}
})
})

View file

@ -1283,6 +1283,10 @@ class AvatarActor(
case "Kit" =>
doll.Slot(objectIndex).Equipment =
Kit(DefinitionUtil.idToDefinition(objectId).asInstanceOf[KitDefinition])
case "Telepad" | "BoomerTrigger" => ;
//special types of equipment that are not actually loaded
case name =>
log.error(s"failing to add unknown equipment to a loadout - $name")
}
toolAmmo foreach { toolAmmo =>

View file

@ -262,7 +262,7 @@ class ChatActor(
sessionActor ! SessionActor.Suicide()
}
case (CMT_DESTROY, _, contents) =>
case (CMT_DESTROY, _, contents) if contents.matches("\\d+") =>
val guid = contents.toInt
session.zone.GUID(session.zone.map.terminalToSpawnPad.getOrElse(guid, guid)) match {
case Some(pad: VehicleSpawnPad) =>

View file

@ -174,12 +174,12 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
private[this] val damageLog = org.log4s.getLogger(Damageable.LogChannel)
var avatarActor: typed.ActorRef[AvatarActor.Command] = context.spawnAnonymous(AvatarActor(context.self))
var chatActor: typed.ActorRef[ChatActor.Command] = context.spawnAnonymous(ChatActor(context.self, avatarActor))
var accountIntermediary: ActorRef = ActorRef.noSender
var accountPersistence: ActorRef = ActorRef.noSender
var galaxyService: ActorRef = ActorRef.noSender
var squadService: ActorRef = ActorRef.noSender
var propertyOverrideManager: ActorRef = Actor.noSender
var cluster: typed.ActorRef[ICS.Command] = Actor.noSender
var accountIntermediary: ActorRef = Default.Actor
var accountPersistence: ActorRef = Default.Actor
var galaxyService: ActorRef = Default.Actor
var squadService: ActorRef = Default.Actor
var propertyOverrideManager: ActorRef = Default.Actor
var cluster: typed.ActorRef[ICS.Command] = Default.Actor
var _session: Session = Session()
var progressBarValue: Option[Float] = None
var shooting: Option[PlanetSideGUID] = None //ChangeFireStateMessage_Start
@ -3316,13 +3316,16 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
* only the zone-specific squad members will receive the important messages about their squad member's spawn.
*/
def RespawnSquadSetup(): Unit = {
if (squadUI.nonEmpty) {
sendResponse(PlanetsideAttributeMessage(player.GUID, 31, squad_supplement_id))
continent.AvatarEvents ! AvatarServiceMessage(
s"${player.Faction}",
AvatarAction.PlanetsideAttribute(player.GUID, 31, squad_supplement_id)
)
sendResponse(PlanetsideAttributeMessage(player.GUID, 32, squadUI(player.CharId).index))
squadUI.get(player.CharId) match {
case Some(elem) =>
sendResponse(PlanetsideAttributeMessage(player.GUID, 31, squad_supplement_id))
continent.AvatarEvents ! AvatarServiceMessage(
s"${player.Faction}",
AvatarAction.PlanetsideAttribute(player.GUID, 31, squad_supplement_id)
)
sendResponse(PlanetsideAttributeMessage(player.GUID, 32, elem.index))
case _ =>
log.warn(s"RespawnSquadSetup: asked to redraw squad information, but ${player.Name} has no squad element for squad $squad_supplement_id")
}
}