a single envelope for inbound messages, replacing [Avatar|Local|Vehicle|Galaxy]ServiceMessage; all variations of PlanetsideAttribute message have been reduced to the PlanetsideAttribute message

This commit is contained in:
Fate-JH 2026-02-05 02:08:35 -05:00
parent d6925131a4
commit 78bc93eb09
35 changed files with 354 additions and 355 deletions

View file

@ -2077,8 +2077,8 @@ class AvatarActor(
avatarCopy(avatar.copy(decoration = avatar.decoration.copy(cosmetics = Some(cosmetics))))
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
session.get.player.GUID,
AvatarAction.PlanetsideAttributeToAll(
PlanetsideAttribute(
session.get.player.GUID,
106,
Cosmetic.valuesToAttributeValue(cosmetics)
)
@ -3002,13 +3002,13 @@ class AvatarActor(
val next = BattleRank.withExperience(newBep).value
val br24 = BattleRank.BR24.value
sessionActor ! SessionActor.SendResponse(BattleExperienceMessage(pguid, newBep, localModifier))
events ! AvatarServiceMessage(zoneId, pguid, AvatarAction.PlanetsideAttributeToAll(17, newBep))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(pguid, 17, newBep))
if (current < br24 && next >= br24 || current >= br24 && next < br24) {
setCosmetics(Set()).onComplete { _ =>
val evts = events
val name = player.Name
val guid = pguid
evts ! AvatarServiceMessage(name, guid, AvatarAction.PlanetsideAttributeToAll(106, 1)) //set to no helmet
evts ! AvatarServiceMessage(name, PlanetsideAttribute(guid, 106, 1)) //set to no helmet
}
}
// when the level is reduced, take away any implants over the implant slot limit
@ -3053,7 +3053,7 @@ class AvatarActor(
val sess = session.get
val zone = sess.zone
avatar = avatar.copy(cep = cep)
zone.AvatarEvents ! AvatarServiceMessage(zone.id, sess.player.GUID, AvatarAction.PlanetsideAttributeToAll(18, cep))
zone.AvatarEvents ! AvatarServiceMessage(zone.id, PlanetsideAttribute(sess.player.GUID, 18, cep))
case Failure(exception) =>
log.error(exception)("db failure")
}
@ -3848,7 +3848,7 @@ class AvatarActor(
val newHealth = player.Health = originalHealth + 1
val events = zone.AvatarEvents
player.LogActivity(HealFromImplant(implant.definition.implantType, 1))
events ! AvatarServiceMessage(zone.id, guid, AvatarAction.PlanetsideAttributeToAll(0, newHealth))
events ! AvatarServiceMessage(zone.id, PlanetsideAttribute(guid, 0, newHealth))
false
} else {
!aliveAndWounded

View file

@ -249,12 +249,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
case PlanetsideAttribute(target_guid, attributeType, attributeValue) if isNotSameTarget =>
sendResponse(PlanetsideAttributeMessage(target_guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeToAll(attributeType, attributeValue) =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeSelf(attributeType, attributeValue) if isSameTarget =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case GenericObjectAction(objectGuid, actionCode) if isNotSameTarget =>
sendResponse(GenericObjectActionMessage(objectGuid, actionCode))

View file

@ -248,12 +248,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
case PlanetsideAttribute(target_guid, attributeType, attributeValue) if isNotSameTarget =>
sendResponse(PlanetsideAttributeMessage(target_guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeToAll(attributeType, attributeValue) =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeSelf(attributeType, attributeValue) if isSameTarget =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case AvatarAction.PlanetsideStringAttribute(attributeType, attributeValue) =>
sendResponse(PlanetsideStringAttributeMessage(guid, attributeType, attributeValue))
@ -699,7 +693,7 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
val events = continent.AvatarEvents
ops.killedWhileMounted(obj, playerGuid)
//make player invisible on client
events ! AvatarServiceMessage(player.Name, playerGuid, AvatarAction.PlanetsideAttributeToAll(29, 1))
events ! AvatarServiceMessage(player.Name, PlanetsideAttribute(playerGuid, 29, 1))
//only the dead player should "see" their own body, so that the death camera has something to focus on
events ! AvatarServiceMessage(continent.id, playerGuid, ObjectDelete(playerGuid))
}

View file

@ -212,12 +212,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
case PlanetsideAttribute(target_guid, attributeType, attributeValue) if isNotSameTarget =>
sendResponse(PlanetsideAttributeMessage(target_guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeToAll(attributeType, attributeValue) =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case AvatarAction.PlanetsideAttributeSelf(attributeType, attributeValue) if isSameTarget =>
sendResponse(PlanetsideAttributeMessage(guid, attributeType, attributeValue))
case GenericObjectAction(objectGuid, actionCode) if isNotSameTarget =>
sendResponse(GenericObjectActionMessage(objectGuid, actionCode))
@ -494,8 +488,7 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
sendResponse(AvatarDeadStateMessage(DeadState.Alive, timer_max=0, timer=0, player.Position, player.Faction, unk5=true))
continent.AvatarEvents ! AvatarServiceMessage(
continent.id,
revivalTargetGuid,
AvatarAction.PlanetsideAttributeToAll(attribute_type=0, health)
PlanetsideAttribute(revivalTargetGuid, attribute_type=0, health)
)
/* uncommon messages (utility, or once in a while) */

View file

@ -19,7 +19,7 @@ import net.psforever.objects.zones.blockmap.BlockMapEntity
import net.psforever.objects.zones.exp.ToDatabase
import net.psforever.services.RemoverActor
import net.psforever.services.avatar.GroundEnvelope
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
import net.psforever.services.local.support.HackCaptureActor
import net.psforever.services.local.{CaptureMessage, LocalAction, LocalServiceMessage}
@ -1030,8 +1030,7 @@ class GeneralOperations(
player.UsingSpecial = SpecialExoSuitDefinition.Mode.Normal
continent.AvatarEvents ! AvatarServiceMessage(
continent.id,
player.GUID,
AvatarAction.PlanetsideAttributeToAll(8, 0)
PlanetsideAttribute(player.GUID, 8, 0)
)
}
}
@ -1040,8 +1039,7 @@ class GeneralOperations(
private def activateMaxSpecialStateMessage(): Unit = {
continent.AvatarEvents ! AvatarServiceMessage(
continent.id,
player.GUID,
AvatarAction.PlanetsideAttributeToAll(8, 1)
PlanetsideAttribute(player.GUID, 8, 1)
)
}

View file

@ -9,6 +9,7 @@ import net.psforever.packet.game.OutfitEventAction.{Initial, Leaving, OutfitInfo
import net.psforever.packet.game.OutfitMembershipResponse.PacketType.CreateResponse
import net.psforever.packet.game._
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.PlanetsideAttribute
import net.psforever.services.chat.OutfitChannel
import net.psforever.types.ChatMessageType
import net.psforever.util.Config
@ -85,8 +86,7 @@ object SessionOutfitHandlers {
player.Zone.AvatarEvents ! AvatarServiceMessage(
player.Zone.id,
player.GUID,
AvatarAction.PlanetsideAttributeToAll(39, outfit.id)
PlanetsideAttribute(player.GUID, 39, outfit.id)
)
player.Zone.AvatarEvents ! AvatarServiceMessage(
@ -176,8 +176,7 @@ object SessionOutfitHandlers {
invited.Zone.AvatarEvents ! AvatarServiceMessage(
invited.Zone.id,
invited.GUID,
AvatarAction.PlanetsideAttributeToAll(39, outfit.id)
PlanetsideAttribute(invited.GUID, 39, outfit.id)
)
invited.Zone.AvatarEvents ! AvatarServiceMessage(
@ -244,8 +243,7 @@ object SessionOutfitHandlers {
kickedBy.Zone.AvatarEvents ! AvatarServiceMessage(
kickedBy.Zone.id,
kickedBy.GUID,
AvatarAction.PlanetsideAttributeToAll(39, 0)
PlanetsideAttribute(kickedBy.GUID, 39, 0)
)
kickedBy.Zone.AvatarEvents ! AvatarServiceMessage(
@ -274,8 +272,7 @@ object SessionOutfitHandlers {
kicked.Zone.AvatarEvents ! AvatarServiceMessage(
kicked.Zone.id,
kicked.GUID,
AvatarAction.PlanetsideAttributeToAll(39, 0)
PlanetsideAttribute(kicked.GUID, 39, 0)
)
kicked.Zone.AvatarEvents ! AvatarServiceMessage(
@ -639,8 +636,7 @@ object SessionOutfitHandlers {
player.Zone.AvatarEvents ! AvatarServiceMessage(
player.Zone.id,
player.GUID,
AvatarAction.PlanetsideAttributeToAll(39, outfit.id)
PlanetsideAttribute(player.GUID, 39, outfit.id)
)
player.Zone.AvatarEvents ! AvatarServiceMessage(

View file

@ -3372,7 +3372,7 @@ class ZoningOperations(
if (tplayer.ExoSuit == ExoSuitType.MAX) {
sendResponse(PlanetsideAttributeMessage(guid, 7, tplayer.Capacitor.toLong))
sendResponse(PlanetsideAttributeMessage(guid, 4, tplayer.Armor))
continent.AvatarEvents ! AvatarServiceMessage(continent.id, guid, AvatarAction.PlanetsideAttributeToAll(4, tplayer.Armor))
continent.AvatarEvents ! AvatarServiceMessage(continent.id, PlanetsideAttribute(guid, 4, tplayer.Armor))
}
// for issue #1269
continent.AllPlayers.filter(_.ExoSuit == ExoSuitType.MAX).foreach(max => sendResponse(PlanetsideAttributeMessage(max.GUID, 4, max.Armor)))
@ -3496,8 +3496,12 @@ class ZoningOperations(
case Some(b: Building) if b.hasCavernLockBenefit =>
tplayer.MaxHealth = 120
tplayer.Health = 120
tplayer.Zone.AvatarEvents ! AvatarServiceMessage(tplayer.Zone.id, tplayer.GUID, AvatarAction.PlanetsideAttributeToAll(0, 120))
tplayer.Zone.AvatarEvents ! AvatarServiceMessage(tplayer.Zone.id, tplayer.GUID, AvatarAction.PlanetsideAttributeToAll(1, 120))
val guid = tplayer.GUID
val zone = tplayer.Zone
val channel = zone.id
val events = zone.AvatarEvents
events ! AvatarServiceMessage(channel, PlanetsideAttribute(guid, 0, 120))
events ! AvatarServiceMessage(channel, PlanetsideAttribute(guid, 1, 120))
case _ => ()
}
doorsThatShouldBeOpenInRange(pos, range = 100f)

View file

@ -15,8 +15,8 @@ import net.psforever.objects.serverobject.terminals.capture.{CaptureTerminal, Ca
import net.psforever.objects.sourcing.PlayerSource
import net.psforever.packet.game.PlanetsideAttributeMessage
import net.psforever.services.InterstellarClusterService
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.{GenericObjectAction, SendResponse}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.{GenericObjectAction, PlanetsideAttribute, SendResponse}
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
import net.psforever.services.local.{CaptureMessage, HackClearMessage, LocalServiceMessage}
import net.psforever.services.local.support.{HackCaptureActor, HackClearActor}
@ -212,9 +212,9 @@ case object MajorFacilityLogic
case Some(GeneratorControl.Event.Critical) =>
val events = zone.AvatarEvents
val guid = building.GUID
val msg = AvatarAction.PlanetsideAttributeToAll(46, 1)
val msg = PlanetsideAttribute(guid, 46, 1)
building.PlayersInSOI.foreach { player =>
events ! AvatarServiceMessage(player.Name, guid, msg)
events ! AvatarServiceMessage(player.Name, msg)
}
true
case Some(GeneratorControl.Event.Destabilized) =>
@ -236,9 +236,9 @@ case object MajorFacilityLogic
case Some(GeneratorControl.Event.Offline) =>
powerLost(details)
val zone = building.Zone
val msg = AvatarAction.PlanetsideAttributeToAll(46, 2)
val msg = PlanetsideAttribute(building.GUID, 46, 2)
building.PlayersInSOI.foreach { player =>
zone.AvatarEvents ! AvatarServiceMessage(player.Name, building.GUID, msg)
zone.AvatarEvents ! AvatarServiceMessage(player.Name, msg)
} //???
true
case Some(GeneratorControl.Event.Normal) =>
@ -248,11 +248,11 @@ case object MajorFacilityLogic
powerRestored(details)
val events = zone.AvatarEvents
val guid = building.GUID
val msg1 = AvatarAction.PlanetsideAttributeToAll(46, 0)
val msg1 = PlanetsideAttribute(guid, 46, 0)
val msg2 = GenericObjectAction(guid, 17)
building.PlayersInSOI.foreach { player =>
val name = player.Name
events ! AvatarServiceMessage(name, guid, msg1) //reset ???; might be global?
events ! AvatarServiceMessage(name, msg1) //reset ???; might be global?
events ! AvatarServiceMessage(name, msg2) //This facility's generator is back on line
}
true
@ -305,9 +305,9 @@ case object MajorFacilityLogic
amenity.Actor ! powerMsg
}
//amenities disabled; red warning lights
events ! AvatarServiceMessage(zoneId, guid, AvatarAction.PlanetsideAttributeToAll(48, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(guid, 48, 1))
//disable spawn target on deployment map
events ! AvatarServiceMessage(zoneId, guid, AvatarAction.PlanetsideAttributeToAll(38, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(guid, 38, 0))
Behaviors.same
}
@ -328,9 +328,9 @@ case object MajorFacilityLogic
amenity.Actor ! powerMsg
}
//amenities enabled; normal lights
events ! AvatarServiceMessage(zoneId, guid, AvatarAction.PlanetsideAttributeToAll(48, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(guid, 48, 0))
//enable spawn target on deployment map
events ! AvatarServiceMessage(zoneId, guid, AvatarAction.PlanetsideAttributeToAll(38, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(guid, 38, 1))
Behaviors.same
}

View file

@ -13,8 +13,8 @@ import net.psforever.objects.zones.Zone
import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObjectActionEnum, HackMessage, HackState, HackState1, HackState7, TriggeredSound, VehicleStateMessage}
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
import net.psforever.services.Service
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.{GenericObjectAction, SendResponse, SetEmpire}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.{GenericObjectAction, PlanetsideAttribute, SendResponse, SetEmpire}
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
@ -172,8 +172,7 @@ object Vehicles {
(0 to 3).foreach(group => {
vehicle.Zone.AvatarEvents ! AvatarServiceMessage(
toChannel,
vehicle_guid,
AvatarAction.PlanetsideAttributeToAll(group + 10, vehicle.PermissionGroup(group).get.id)
PlanetsideAttribute(vehicle_guid, group + 10, vehicle.PermissionGroup(group).get.id)
)
})
}

View file

@ -127,7 +127,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
val zoneId = zone.id
sendResponse(zone, zoneId, PlanetsideAttributeMessage(revivalTargetGuid, attribute_type=0, health))
sendResponse(zone, zoneId, AvatarDeadStateMessage(DeadState.Alive, timer_max=0, timer=0, player.Position, player.Faction, unk5=true))
sendResponse(zone, zoneId, revivalTargetGuid, AvatarAction.PlanetsideAttributeToAll(attribute_type=0, health))
sendResponse(zone, zoneId, PlanetsideAttributeMessage(revivalTargetGuid, attribute_type=0, health))
avatarActor ! AvatarActor.InitializeImplants
avatarActor ! AvatarActor.SuspendStaminaRegeneration(Duration(1, "second"))
@ -153,7 +153,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
uname,
SendResponse(InventoryStateMessage(item.AmmoSlot.Box.GUID, item.GUID, magazine.toLong))
)
events ! AvatarServiceMessage(zone.id, guid, AvatarAction.PlanetsideAttributeToAll(0, newHealth))
events ! AvatarServiceMessage(zone.id, PlanetsideAttribute(guid, 0, newHealth))
player.LogActivity(
HealFromEquipment(
PlayerSource(user),
@ -173,7 +173,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
}
if (player != user) {
//"Someone is trying to heal you"
events ! AvatarServiceMessage(player.Name, guid, AvatarAction.PlanetsideAttributeToAll(55, 1))
events ! AvatarServiceMessage(player.Name, PlanetsideAttribute(guid, 55, 1))
//progress bar remains visible for all heal attempts
events ! AvatarServiceMessage(
uname,
@ -219,7 +219,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
uname,
SendResponse(InventoryStateMessage(item.AmmoSlot.Box.GUID, item.GUID, magazine.toLong))
)
events ! AvatarServiceMessage(zone.id, guid, AvatarAction.PlanetsideAttributeToAll(4, player.Armor))
events ! AvatarServiceMessage(zone.id, PlanetsideAttribute(guid, 4, player.Armor))
player.LogActivity(
RepairFromEquipment(
PlayerSource(user),
@ -240,7 +240,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
if (player != user) {
if (player.isAlive) {
//"Someone is trying to repair you" gets strobed twice for visibility
val msg = AvatarServiceMessage(player.Name, guid, AvatarAction.PlanetsideAttributeToAll(56, 1))
val msg = AvatarServiceMessage(player.Name, PlanetsideAttribute(guid, 56, 1))
events ! msg
import scala.concurrent.ExecutionContext.Implicits.global
context.system.scheduler.scheduleOnce(250 milliseconds, events, msg)
@ -315,8 +315,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
TaskWorkflow.execute(GUIDTask.unregisterEquipment(zone.GUID, kit))
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
player.GUID,
AvatarAction.PlanetsideAttributeToAll(attribute, value)
PlanetsideAttribute(player.GUID, attribute, value)
)
zone.AvatarEvents ! AvatarServiceMessage(
player.Name,
@ -882,8 +881,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
val zone = target.Zone
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
target.GUID,
AvatarAction.PlanetsideAttributeToAll(4, target.Armor)
PlanetsideAttribute(target.GUID, 4, target.Armor)
)
}
//choose
@ -939,7 +937,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
target.LogActivity(cause)
//stat changes
if (damageToCapacitor > 0) {
events ! AvatarServiceMessage(target.Name, targetGUID, AvatarAction.PlanetsideAttributeSelf(7, target.Capacitor.toLong))
events ! AvatarServiceMessage(target.Name, PlanetsideAttribute(targetGUID, 7, target.Capacitor.toLong))
announceConfrontation = true //TODO should we?
}
if (damageToStamina > 0) {
@ -947,7 +945,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
announceConfrontation = true //TODO should we?
}
if (damageToHealth > 0) {
events ! AvatarServiceMessage(zoneId, targetGUID, AvatarAction.PlanetsideAttributeToAll(0, health))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(targetGUID, 0, health))
announceConfrontation = true
}
val countableDamage = damageToHealth + damageToArmor
@ -1055,10 +1053,10 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
}
events ! AvatarServiceMessage(nameChannel, player_guid, AvatarAction.Killed(cause, target.VehicleSeated)) //align client interface fields with state
events ! AvatarServiceMessage(zoneChannel, player_guid, AvatarAction.PlanetsideAttributeToAll(0, 0)) //health
events ! AvatarServiceMessage(zoneChannel, PlanetsideAttribute(player_guid, 0, 0)) //health
if (target.Capacitor > 0) {
target.Capacitor = 0
events ! AvatarServiceMessage(nameChannel, player_guid, AvatarAction.PlanetsideAttributeToAll(7, 0)) // capacitor
events ! AvatarServiceMessage(nameChannel, PlanetsideAttribute(player_guid, 7, 0)) // capacitor
}
val attribute = DamageableEntity.attributionTo(cause, target.Zone, player_guid)
events ! AvatarServiceMessage(
@ -1094,8 +1092,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
case obj: Player if !jammedSound =>
obj.Zone.AvatarEvents ! AvatarServiceMessage(
obj.Zone.id,
obj.GUID,
AvatarAction.PlanetsideAttributeToAll(27, 1)
PlanetsideAttribute(obj.GUID, 27, 1)
)
super.StartJammeredSound(obj, 3000)
case _ => ()
@ -1131,8 +1128,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
case obj: Player if jammedSound =>
obj.Zone.AvatarEvents ! AvatarServiceMessage(
obj.Zone.id,
obj.GUID,
AvatarAction.PlanetsideAttributeToAll(27, 0)
PlanetsideAttribute(obj.GUID, 27, 0)
)
super.CancelJammeredSound(obj)
case _ => ()
@ -1243,10 +1239,10 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
}
def UpdateAuraEffect(target: AuraEffectBehavior.Target) : Unit = {
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarServiceMessage
val zone = target.Zone
val value = target.Aura.foldLeft(0)(_ + PlayerControl.auraEffectToAttributeValue(_))
zone.AvatarEvents ! AvatarServiceMessage(zone.id, target.GUID, AvatarAction.PlanetsideAttributeToAll(54, value))
zone.AvatarEvents ! AvatarServiceMessage(zone.id, PlanetsideAttribute(target.GUID, 54, value))
}
}

View file

@ -3,7 +3,8 @@ package net.psforever.objects.serverobject.damage
import net.psforever.objects.serverobject.structures.Amenity
import net.psforever.objects.vital.interaction.DamageResult
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.PlanetsideAttribute
/**
* The "control" `Actor` mixin for damage-handling code
@ -25,7 +26,7 @@ object DamageableAmenity {
* A destroyed `Amenity` target dispatches two messages to chance its model and operational states.
* The common manifestation is a sparking entity that will no longer report being accessible.
* These `PlanetSideAttributeMessage` attributes are the same as reported during zone load client configuration.
* @see `AvatarAction.PlanetsideAttributeToAll`
* @see `PlanetsideAttribute`
* @see `AvatarServiceMessage`
* @see `Zone.AvatarEvents`
* @param target the entity being destroyed
@ -36,7 +37,7 @@ object DamageableAmenity {
val zoneId = zone.id
val events = zone.AvatarEvents
val targetGUID = target.GUID
events ! AvatarServiceMessage(zoneId, targetGUID, AvatarAction.PlanetsideAttributeToAll(50, 1))
events ! AvatarServiceMessage(zoneId, targetGUID, AvatarAction.PlanetsideAttributeToAll(51, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(targetGUID, 50, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(targetGUID, 51, 1))
}
}

View file

@ -9,6 +9,7 @@ import net.psforever.objects.zones.Zone
import net.psforever.types.PlanetSideGUID
import net.psforever.services.Service
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.PlanetsideAttribute
/**
* The "control" `Actor` mixin for damage-handling code,
@ -140,7 +141,7 @@ object DamageableEntity {
* - reports its adjusted its health;
* - alert the activity monitor for that `Zone` about the damage; and,
* - provide a feedback message regarding the damage.
* @see `AvatarAction.PlanetsideAttributeToAll`
* @see `PlanetsideAttribute`
* @see `SendResponse`
* @see `AvatarServiceMessage`
* @see `DamageFeedbackMessage`
@ -167,8 +168,7 @@ object DamageableEntity {
val zone = target.Zone
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
target.GUID,
AvatarAction.PlanetsideAttributeToAll(0, target.Health)
PlanetsideAttribute(target.GUID, 0, target.Health)
)
true
}
@ -200,7 +200,7 @@ object DamageableEntity {
val zoneId = zone.id
val tguid = target.GUID
val attribution = attributionTo(cause, target.Zone)
zone.AvatarEvents ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(0, target.Health))
zone.AvatarEvents ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 0, target.Health))
if (target.isInstanceOf[SpawnTube]) {}//do nothing to prevent issue #1057
else {
zone.AvatarEvents ! AvatarServiceMessage(

View file

@ -5,7 +5,8 @@ import net.psforever.objects.Tool
import net.psforever.objects.serverobject.structures.Amenity
import net.psforever.objects.sourcing.{SourceEntry, SourceWithHealthEntry}
import net.psforever.objects.vital.{DamagingActivity, RepairFromEquipment, SpawningActivity}
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.PlanetsideAttribute
/**
* The "control" `Actor` mixin for repair-handling code
@ -27,7 +28,7 @@ object RepairableAmenity {
/**
* A restored `Amenity` target dispatches two messages to chance its model and operational states.
* These `PlanetSideAttributeMessage` attributes are the same as reported during zone load client configuration.
* @see `AvatarAction.PlanetsideAttributeToAll`
* @see `PlanetsideAttribute`
* @see `AvatarServiceMessage`
* @see `Zone.AvatarEvents`
* @param target the entity being destroyed
@ -37,8 +38,8 @@ object RepairableAmenity {
val zoneId = zone.id
val events = zone.AvatarEvents
val targetGUID = target.GUID
events ! AvatarServiceMessage(zoneId, targetGUID, AvatarAction.PlanetsideAttributeToAll(50, 0))
events ! AvatarServiceMessage(zoneId, targetGUID, AvatarAction.PlanetsideAttributeToAll(51, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(targetGUID, 50, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(targetGUID, 51, 0))
RestorationOfHistory(target)
}

View file

@ -8,8 +8,8 @@ import net.psforever.objects.vital.RepairFromEquipment
import net.psforever.objects.{Player, Tool}
import net.psforever.packet.game.{ChatMsg, InventoryStateMessage, RepairMessage}
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, Vector3}
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
/**
* The "control" `Actor` mixin for repair-handling code,
@ -67,7 +67,7 @@ trait RepairableEntity extends Repairable {
* Calculate the health points change and enact that repair action if the targets are stationary.
* Restore the target entity to a not destroyed state if applicable.
* Always show the repair progress bar window by using the appropriate packet.
* @see `AvatarAction.PlanetsideAttributeToAll`
* @see `PlanetsideAttribute`
* @see `SendResponse`
* @see `AvatarService`
* @see `InventoryStateMessage`
@ -140,11 +140,11 @@ trait RepairableEntity extends Repairable {
val newHealth = target.Health = target.Health + amount
if (target.Destroyed) {
if (newHealth >= target.Definition.RepairRestoresAt) {
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(0, newHealth))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 0, newHealth))
Restoration(target)
}
} else {
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(0, newHealth))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 0, newHealth))
}
newHealth
}

View file

@ -27,7 +27,7 @@ import net.psforever.objects.serverobject.structures.{Building, PoweredAmenityCo
import net.psforever.objects.vital.{HealFromTerminal, RepairFromTerminal, Vitality}
import net.psforever.objects.zones.ZoneAware
import net.psforever.packet.game.InventoryStateMessage
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.services.vehicle.VehicleServiceMessage
@ -354,8 +354,7 @@ object ProximityTerminalControl {
target.MaxHealth = newMax
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
target.GUID,
AvatarAction.PlanetsideAttributeToAll(1, newMax)
PlanetsideAttribute(target.GUID, 1, newMax)
)
}
if (target.Health < newMax) {
@ -370,8 +369,7 @@ object ProximityTerminalControl {
val zone = target.Zone
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
target.GUID,
AvatarAction.PlanetsideAttributeToAll(0, target.Health)
PlanetsideAttribute(target.GUID, 0, target.Health)
)
}
@ -410,8 +408,7 @@ object ProximityTerminalControl {
val zone = target.Zone
zone.AvatarEvents ! AvatarServiceMessage(
zone.id,
target.GUID,
AvatarAction.PlanetsideAttributeToAll(4, target.Armor)
PlanetsideAttribute(target.GUID, 4, target.Armor)
)
target.Armor == maxArmor
} else {

View file

@ -8,7 +8,8 @@ import net.psforever.objects.serverobject.affinity.FactionAffinityBehavior
import net.psforever.objects.serverobject.damage.{Damageable, DamageableWeaponTurret}
import net.psforever.objects.serverobject.repair.RepairableWeaponTurret
import net.psforever.objects.vital.interaction.DamageResult
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarServiceMessage
import net.psforever.services.base.messages.PlanetsideAttribute
trait TurretControl
extends Actor
@ -39,8 +40,8 @@ trait TurretControl
val zoneId = zone.id
val events = zone.AvatarEvents
val tguid = TurretObject.GUID
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(50, 0))
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(51, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 50, 0))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 51, 0))
}
/**
@ -56,7 +57,7 @@ trait TurretControl
val tguid = target.GUID
CancelJammeredSound(target)
CancelJammeredStatus(target)
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(50, 1))
events ! AvatarServiceMessage(zoneId, tguid, AvatarAction.PlanetsideAttributeToAll(51, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 50, 1))
events ! AvatarServiceMessage(zoneId, PlanetsideAttribute(tguid, 51, 1))
}
}

View file

@ -101,10 +101,6 @@ object AvatarAction {
final case class OxygenState(player: OxygenStateTarget, vehicle: Option[OxygenStateTarget]) extends SelfRespondingEvent
final case class PlanetsideAttributeToAll(attribute_type: Int, attribute_value: Long) extends SelfRespondingEvent
final case class PlanetsideAttributeSelf(attribute_type: Int, attribute_value: Long) extends SelfRespondingEvent
final case class PlanetsideStringAttribute(attribute_type: Int, attribute_value: String) extends SelfRespondingEvent
final case class PlayerState(

View file

@ -4,15 +4,15 @@ package net.psforever.services.avatar
import net.psforever.objects.zones.Zone
import net.psforever.services.{RemoverActor, Service}
import net.psforever.services.avatar.AvatarAction.{DropItem, PickupItem, Release}
import net.psforever.services.base.{EventMessage, GenericMessageEnvelope, GenericMessageToSupportEnvelope, GenericMessageToSupportEnvelopeOnly}
import net.psforever.services.base.{EventMessage, GenericMessageToSupportEnvelope, GenericMessageToSupportEnvelopeOnly, MessageEnvelope}
import net.psforever.types.PlanetSideGUID
final case class AvatarServiceMessage(channel: String, filter: PlanetSideGUID, msg: EventMessage)
extends GenericMessageEnvelope
object AvatarServiceMessage {
def apply(channel: String, actionMessage: EventMessage): AvatarServiceMessage =
AvatarServiceMessage(channel, Service.defaultPlayerGUID, actionMessage)
def apply(channel: String, msg: EventMessage): MessageEnvelope =
MessageEnvelope(channel, Service.defaultPlayerGUID, msg)
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): MessageEnvelope =
MessageEnvelope(channel, filter, msg)
}
final case class ReleaseMessage(

View file

@ -0,0 +1,7 @@
// Copyright (c) 2026 PSForever
package net.psforever.services.base
import net.psforever.types.PlanetSideGUID
case class MessageEnvelope(channel: String, filter: PlanetSideGUID, msg: EventMessage)
extends GenericMessageEnvelope

View file

@ -2,14 +2,10 @@
package net.psforever.services.galaxy
import net.psforever.services.Service
import net.psforever.services.base.{EventMessage, GenericMessageEnvelope}
import net.psforever.types.PlanetSideGUID
final case class GalaxyServiceMessage(channel: String, msg: EventMessage)
extends GenericMessageEnvelope {
def filter: PlanetSideGUID = Service.defaultPlayerGUID
}
import net.psforever.services.base.{EventMessage, MessageEnvelope}
object GalaxyServiceMessage {
def apply(actionMessage: EventMessage): GalaxyServiceMessage = GalaxyServiceMessage("", actionMessage)
def apply(msg: EventMessage): MessageEnvelope = MessageEnvelope("", Service.defaultPlayerGUID, msg)
def apply(channel: String, msg: EventMessage): MessageEnvelope = MessageEnvelope(channel, Service.defaultPlayerGUID, msg)
}

View file

@ -2,17 +2,17 @@
package net.psforever.services.local
import net.psforever.services.Service
import net.psforever.services.base.{EventMessage, GenericMessageEnvelope, GenericMessageToSupportEnvelope, GenericMessageToSupportEnvelopeOnly}
import net.psforever.services.base.{EventMessage, GenericMessageToSupportEnvelope, GenericMessageToSupportEnvelopeOnly, MessageEnvelope}
import net.psforever.services.local.LocalAction.{IsADoorMessage, IsAHackMessage}
import net.psforever.services.local.support.CaptureFlagManager
import net.psforever.types.PlanetSideGUID
final case class LocalServiceMessage(channel: String, filter: PlanetSideGUID, msg: EventMessage)
extends GenericMessageEnvelope
object LocalServiceMessage {
def apply(channel: String, localMessage: EventMessage): LocalServiceMessage =
LocalServiceMessage(channel, Service.defaultPlayerGUID, localMessage)
def apply(channel: String, localMessage: EventMessage): MessageEnvelope =
MessageEnvelope(channel, Service.defaultPlayerGUID, localMessage)
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): MessageEnvelope =
MessageEnvelope(channel, filter, msg)
}
final case class DoorMessage(

View file

@ -2,18 +2,18 @@
package net.psforever.services.vehicle
import net.psforever.services.Service
import net.psforever.services.base.{EventMessage, GenericMessageEnvelope, GenericMessageToSupportEnvelopeOnly}
import net.psforever.services.base.{EventMessage, GenericMessageToSupportEnvelopeOnly, MessageEnvelope}
import net.psforever.types.PlanetSideGUID
final case class VehicleServiceMessage(channel: String, filter: PlanetSideGUID, msg: EventMessage)
extends GenericMessageEnvelope
object VehicleServiceMessage {
def apply(channel: String, localMessage: EventMessage): MessageEnvelope =
MessageEnvelope(channel, Service.defaultPlayerGUID, localMessage)
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): MessageEnvelope =
MessageEnvelope(channel, filter, msg)
}
final case class TurretMessage(supportMessage: Any)
extends GenericMessageToSupportEnvelopeOnly {
def supportLabel: String = "turretUpgrader"
}
object VehicleServiceMessage {
def apply(channel: String, actionMessage: EventMessage): VehicleServiceMessage =
VehicleServiceMessage(channel, Service.defaultPlayerGUID, actionMessage)
}

View file

@ -22,10 +22,9 @@ import net.psforever.objects.vital.{SpawningActivity, Vitality}
import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game.DamageWithPositionMessage
import net.psforever.types._
import net.psforever.services.Service
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.base.support.SupportActor
import net.psforever.services.vehicle.{TurretMessage, VehicleAction, VehicleServiceMessage}
import net.psforever.services.vehicle.TurretMessage
import org.specs2.mutable.Specification
import scala.concurrent.duration._
@ -37,7 +36,9 @@ import net.psforever.objects.vital.interaction.DamageInteraction
import net.psforever.objects.vital.base.DamageResolution
import net.psforever.objects.vital.projectile.ProjectileReason
import net.psforever.objects.vital.resolution.ResolutionCalculations.Output
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{ObjectDelete, PlanetsideAttribute, SendResponse}
import net.psforever.services.vehicle.support.TurretUpgrader
class DamageableTest extends Specification {
val player1: Player = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
@ -328,7 +329,7 @@ class DamageableEntityDamageTest extends ActorTest {
val msg1 = avatarProbe.receiveOne(5000 milliseconds)
val msg2 = activityProbe.receiveOne(5000 milliseconds)
msg1 match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(ValidPlanetSideGUID(2), 0, 3600)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(ValidPlanetSideGUID(2), 0, 3600)) => ()
case _ => assert(false, "DamageableEntity:handle taking damage - player not messaged")
}
msg2 match {
@ -402,13 +403,13 @@ class DamageableEntityDestroyedTest extends ActorTest {
val msg1_2 = avatarProbe.receiveN(2, 500 milliseconds)
assert(
msg1_2.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg1_2(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case _ => false
}
)
@ -553,19 +554,19 @@ class DamageableAmenityTest extends ActorTest {
term.Actor ! Vitality.Damage(applyDamageTo)
val msg1234 = avatarProbe.receiveN(4, 3000 milliseconds)
msg1234.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => ()
case _ => assert(false)
}
msg1234(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ()
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ()
case _ => assert(false)
}
msg1234(2) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 50, 1)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 50, 1)) => ()
case _ => assert(false)
}
msg1234(3) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 51, 1)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 51, 1)) => ()
case _ => assert(false)
}
assert(term.Health <= term.Definition.DamageDestroysAt)
@ -641,7 +642,7 @@ class DamageableMountableDamageTest extends ActorTest {
val msg2 = activityProbe.receiveOne(5000 milliseconds)
assert(
msg1_3.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -656,7 +657,7 @@ class DamageableMountableDamageTest extends ActorTest {
)
assert(
msg1_3(1) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
_,
SendResponse(Seq(DamageWithPositionMessage(_, Vector3(2, 2, 2))))
@ -745,11 +746,11 @@ class DamageableMountableDestroyTest extends ActorTest {
val msg3 = player2Probe.receiveOne(200 milliseconds)
msg12.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => ()
case _ => assert(false)
}
msg12(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ()
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ()
case _ => assert(false)
}
msg3 match {
@ -832,7 +833,7 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
val msg4 = avatarProbe.receiveOne(500 milliseconds)
assert(
msg12 match {
case VehicleServiceMessage("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -847,7 +848,7 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
)
assert(
msg4 match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
_,
SendResponse(Seq(DamageWithPositionMessage(_, Vector3(2, 2, 2))))
@ -933,7 +934,7 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
val msg12 = vehicleProbe.receiveN(2, 500 milliseconds)
assert(
msg12.head match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
PlanetsideAttribute(PlanetSideGUID(2), 27, 1)
@ -944,7 +945,7 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
)
assert(
msg12(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
PlanetsideAttribute(PlanetSideGUID(5), 27, 1)
@ -1074,12 +1075,12 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
val msg3 = player2Probe.receiveOne(200 milliseconds)
val msg56 = vehicleProbe.receiveN(2, 200 milliseconds)
msg12_4.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => ;
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => ;
case _ =>
assert(false, s"DamageableWeaponTurretDestructionTest-1: ${msg12_4.head}")
}
msg12_4(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ;
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => ;
case _ =>
assert(false, s"DamageableWeaponTurretDestructionTest-2: ${msg12_4(1)}")
}
@ -1089,7 +1090,7 @@ class DamageableWeaponTurretDestructionTest extends ActorTest {
assert(false, s"DamageableWeaponTurretDestructionTest-3: player not dead - $msg3")
}
msg12_4(2) match {
case AvatarServiceMessage("test", _, ObjectDelete(PlanetSideGUID(5), _)) => ;
case MessageEnvelope("test", _, ObjectDelete(PlanetSideGUID(5), _)) => ;
case _ =>
assert(false, s"DamageableWeaponTurretDestructionTest-4: ${msg12_4(2)}")
}
@ -1184,13 +1185,13 @@ class DamageableVehicleDamageTest extends ActorTest {
val msg4 = avatarProbe.receiveOne(200 milliseconds)
assert(
msg12.head match {
case VehicleServiceMessage(_, _, PlanetsideAttribute(PlanetSideGUID(1), 68, _)) => true
case MessageEnvelope(_, _, PlanetsideAttribute(PlanetSideGUID(1), 68, _)) => true
case _ => false
}
)
assert(
msg12(1) match {
case VehicleServiceMessage("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case _ => false
}
)
@ -1205,7 +1206,7 @@ class DamageableVehicleDamageTest extends ActorTest {
)
assert(
msg4 match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
_,
SendResponse(Seq(DamageWithPositionMessage(9, Vector3(2, 0, 0))))
@ -1321,11 +1322,11 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
val msg3 = activityProbe.receiveOne(500 milliseconds)
val msg45 = avatarProbe.receiveN(2,500 milliseconds)
msg12.head match {
case VehicleServiceMessage(_, _, PlanetsideAttribute(PlanetSideGUID(1), 68, _)) => ;
case MessageEnvelope(_, _, PlanetsideAttribute(PlanetSideGUID(1), 68, _)) => ;
case _ => assert(false)
}
msg12(1) match {
case VehicleServiceMessage("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => ;
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => ;
case _ => assert(false)
}
msg3 match {
@ -1336,7 +1337,7 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
case _ => assert(false)
}
msg45.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
_,
SendResponse(Seq(DamageWithPositionMessage(400, Vector3(2, 0, 0))))
@ -1344,7 +1345,7 @@ class DamageableVehicleDamageMountedTest extends FreedContextActorTest {
case _ => assert(false)
}
msg45(1) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter3",
_,
SendResponse(Seq(DamageWithPositionMessage(0, Vector3(2, 0, 0))))
@ -1458,7 +1459,7 @@ class DamageableVehicleJammeringMountedTest extends FreedContextActorTest {
player3Probe.expectNoMessage(200 milliseconds)
assert(
msg12 match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
PlanetsideAttribute(PlanetSideGUID(4), 27, 1)
@ -1553,11 +1554,11 @@ class DamageableVehicleDestroyTest extends ActorTest {
val msg124 = avatarProbe.receiveN(2, 3000 milliseconds)
val msg3 = player2Probe.receiveOne(3000 milliseconds)
msg124.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => ()
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => ()
case _ => assert(false)
}
msg124(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(1), _, _, Vector3(1, 0, 0))) => ()
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(1), _, _, Vector3(1, 0, 0))) => ()
case _ => assert(false)
}
msg3 match {
@ -1718,31 +1719,31 @@ class DamageableVehicleDestroyTest extends ActorTest {
// vehicleProbe.expectNoMessage(10 milliseconds)
// assert(
// msg_avatar.exists({
// case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(4), 0, _)) => true
// case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(4), 0, _)) => true
// case _ => false
// })
// )
// assert(
// msg_avatar.exists({
// case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(4), _, _, Vector3(1, 0, 0))) => true
// case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(4), _, _, Vector3(1, 0, 0))) => true
// case _ => false
// })
// )
// assert(
// msg_avatar.exists({
// case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => true
// case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
// case _ => false
// })
// )
// assert(
// msg_avatar.exists({
// case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(1), _, _, Vector3(1, 0, 0))) => true
// case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(1), _, _, Vector3(1, 0, 0))) => true
// case _ => false
// })
// )
// assert(
// msg_avatar.exists({
// case AvatarServiceMessage("test", ObjectDelete(PlanetSideGUID(0), PlanetSideGUID(2), _)) => true
// case MessageEnvelope("test", _, ObjectDelete(PlanetSideGUID(0), PlanetSideGUID(2), _)) => true
// case _ => false
// })
// )
@ -1760,7 +1761,7 @@ class DamageableVehicleDestroyTest extends ActorTest {
// )
// assert(
// msg_vehicle.exists({
// case VehicleServiceMessage(
// case MessageEnvelope(
// "test",
// _,
// PlanetsideAttribute(PlanetSideGUID(4), 27, 0)
@ -1771,7 +1772,7 @@ class DamageableVehicleDestroyTest extends ActorTest {
// )
// assert(
// msg_vehicle.exists({
// case VehicleServiceMessage(
// case MessageEnvelope(
// "test",
// _,
// PlanetsideAttribute(PlanetSideGUID(1), 68, 0)

View file

@ -13,10 +13,9 @@ import net.psforever.objects.guid.NumberPoolHub
import net.psforever.objects.guid.source.MaxNumberSource
import net.psforever.objects.zones.{Zone, ZoneDeployableActor, ZoneMap}
import net.psforever.packet.game._
import net.psforever.services.Service
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{ObjectDelete, SendResponse}
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.services.local.LocalAction
import net.psforever.types._
import scala.collection.mutable
@ -51,13 +50,13 @@ class DeployableBehaviorSetupTest extends ActorTest {
val eventsMsgs = eventsProbe.receiveN(2, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", _, LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq jmine, "self-setup test - not same mine")
case _ =>
assert( false, "self-setup test - wrong deploy message")
}
eventsMsgs(1) match {
case LocalServiceMessage("TR", _,
case MessageEnvelope("TR", _,
LocalAction.DeployableMapIcon(
DeploymentAction.Build,
DeployableInfo(PlanetSideGUID(1), DeployableIcon.DisruptorMine, Vector3(1,2,3), PlanetSideGUID(0))
@ -159,7 +158,7 @@ class DeployableBehaviorSetupOwnedP2Test extends FreedContextActorTest {
//assert(false, "test needs to be fixed")
val eventsMsgs = eventsProbe.receiveN(7, 10.seconds)
eventsMsgs.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(ObjectDeployedMessage(0, "jammer_mine", DeployOutcome.Success, 1, 20)))
@ -168,11 +167,11 @@ class DeployableBehaviorSetupOwnedP2Test extends FreedContextActorTest {
assert(false, "owned setup test, 2 - did not receive build confirmation")
}
eventsMsgs(1) match {
case LocalServiceMessage("TestCharacter1", _, LocalAction.DeployableUIFor(DeployedItem.jammer_mine)) => ;
case MessageEnvelope("TestCharacter1", _, LocalAction.DeployableUIFor(DeployedItem.jammer_mine)) => ;
case _ => assert(false, "owned setup test, 2 - did not receive ui update")
}
eventsMsgs(2) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
PlanetSideGUID(3),
LocalAction.TriggerEffectLocation("spawn_object_effect", Vector3(1,2,3), Vector3(4,5,6))
@ -180,14 +179,14 @@ class DeployableBehaviorSetupOwnedP2Test extends FreedContextActorTest {
case _ => assert(false, "owned setup test, 2 - no spawn fx")
}
eventsMsgs(3) match {
case LocalServiceMessage("test", _, LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq jmine, "owned setup test, 2 - not same mine")
case _ =>
assert( false, "owned setup test, 2 - wrong deploy message")
}
//the message order can be jumbled from here-on
eventsMsgs(4) match {
case LocalServiceMessage("TR", _,
case MessageEnvelope("TR", _,
LocalAction.DeployableMapIcon(
DeploymentAction.Build,
DeployableInfo(PlanetSideGUID(1), DeployableIcon.DisruptorMine, Vector3(1,2,3), PlanetSideGUID(3))
@ -197,7 +196,7 @@ class DeployableBehaviorSetupOwnedP2Test extends FreedContextActorTest {
assert(false, "owned setup test, 2 - no icon or wrong icon")
}
eventsMsgs(5) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(1), 21)))
@ -206,7 +205,7 @@ class DeployableBehaviorSetupOwnedP2Test extends FreedContextActorTest {
assert(false, "owned setup test, 2 - build action not reset (GOAM21)")
}
eventsMsgs(6) match {
case AvatarServiceMessage("test", _, ObjectDelete(PlanetSideGUID(2), 0)) => ;
case MessageEnvelope("test", _, ObjectDelete(PlanetSideGUID(2), 0)) => ;
case _ =>
assert(false, "owned setup test, 2 - construction tool not deleted")
}
@ -247,11 +246,11 @@ class DeployableBehaviorDeconstructTest extends ActorTest {
jmine.Actor ! Deployable.Deconstruct()
val eventsMsgs = eventsProbe.receiveN(2, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", _, LocalAction.EliminateDeployable(_, PlanetSideGUID(1), Vector3(1,2,3), 2)) => ;
case MessageEnvelope("test", _, LocalAction.EliminateDeployable(_, PlanetSideGUID(1), Vector3(1,2,3), 2)) => ;
case _ => assert(false, "deconstruct test - not eliminating deployable")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"TR", _,
LocalAction.DeployableMapIcon(
DeploymentAction.Dismiss,
@ -309,12 +308,12 @@ class DeployableBehaviorDeconstructOwnedTest extends FreedContextActorTest {
jmine.Actor ! Deployable.Deconstruct()
val eventsMsgs = eventsProbe.receiveN(3, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", _, LocalAction.EliminateDeployable(mine, ValidPlanetSideGUID(1), Vector3(1.0,2.0,3.0),2))
case MessageEnvelope("test", _, LocalAction.EliminateDeployable(mine, ValidPlanetSideGUID(1), Vector3(1.0,2.0,3.0),2))
if mine eq jmine => ;
case _ => assert(false, "owned deconstruct test - not eliminating deployable")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"TR", _,
LocalAction.DeployableMapIcon(
DeploymentAction.Dismiss,
@ -324,7 +323,7 @@ class DeployableBehaviorDeconstructOwnedTest extends FreedContextActorTest {
case _ => assert(false, "owned deconstruct test - not removing icon")
}
eventsMsgs(2) match {
case LocalServiceMessage("TestCharacter1", _, LocalAction.DeployableUIFor(DeployedItem.jammer_mine)) => ;
case MessageEnvelope("TestCharacter1", _, LocalAction.DeployableUIFor(DeployedItem.jammer_mine)) => ;
case _ => assert(false, "")
}

View file

@ -17,14 +17,15 @@ import net.psforever.packet.game.{DeployableIcon, DeployableInfo, DeploymentActi
import net.psforever.types._
import org.specs2.mutable.Specification
import net.psforever.services.Service
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.local.LocalAction
import net.psforever.objects.avatar.Avatar
import net.psforever.objects.vital.base.DamageResolution
import net.psforever.objects.vital.interaction.DamageInteraction
import net.psforever.objects.vital.projectile.ProjectileReason
import akka.actor.typed.scaladsl.adapter._
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry}
import net.psforever.services.base.MessageEnvelope
import scala.collection.mutable
import scala.concurrent.duration._
@ -370,8 +371,9 @@ class ExplosiveDeployableJammerTest extends ActorTest {
case _ => assert(false, "")
}
// eventMsgs.head match {
// case LocalServiceMessage(
// case MessageEnvelope(
// "NC",
// _,
// LocalAction.DeployableMapIcon(
// ValidPlanetSideGUID(0),
// DeploymentAction.Dismiss,
@ -381,12 +383,13 @@ class ExplosiveDeployableJammerTest extends ActorTest {
// case _ => assert(false, "")
// }
eventMsgs(1) match {
case LocalServiceMessage("test", _, LocalAction.Detonate(PlanetSideGUID(1), _)) => ;
case MessageEnvelope("test", _, LocalAction.Detonate(PlanetSideGUID(1), _)) => ;
case _ => assert(false, "")
}
eventMsgs(2) match {
case LocalServiceMessage(
"NC", _,
case MessageEnvelope(
"NC",
_,
LocalAction.DeployableMapIcon(
DeploymentAction.Dismiss,
DeployableInfo(ValidPlanetSideGUID(1), DeployableIcon.HEMine, Vector3.Zero, ValidPlanetSideGUID(0))
@ -395,7 +398,7 @@ class ExplosiveDeployableJammerTest extends ActorTest {
case _ => assert(false, "")
}
eventMsgs(3) match {
case AvatarServiceMessage(
case MessageEnvelope(
"test",
_,
AvatarAction.Destroy(
@ -484,13 +487,14 @@ class ExplosiveDeployableJammerExplodeTest extends ActorTest {
case _ => assert(false, "")
}
eventMsgs(1) match {
case LocalServiceMessage("test", _, LocalAction.Detonate(PlanetSideGUID(2), target))
case MessageEnvelope("test", _, LocalAction.Detonate(PlanetSideGUID(2), target))
if target eq h_mine => ()
case _ => assert(false, "")
}
eventMsgs(2) match {
case LocalServiceMessage(
"NC", _,
case MessageEnvelope(
"NC",
_,
LocalAction.DeployableMapIcon(
DeploymentAction.Dismiss,
DeployableInfo(PlanetSideGUID(2), DeployableIcon.HEMine, _, PlanetSideGUID(0))
@ -576,8 +580,9 @@ class ExplosiveDeployableDestructionTest extends ActorTest {
player1Probe.expectNoMessage(200 milliseconds)
val p2Msgs = player2Probe.receiveN(1, 200 milliseconds)
eventMsgs.head match {
case LocalServiceMessage(
"NC", _,
case MessageEnvelope(
"NC",
_,
LocalAction.DeployableMapIcon(
DeploymentAction.Dismiss,
DeployableInfo(PlanetSideGUID(2), DeployableIcon.HEMine, _, PlanetSideGUID(0))
@ -586,14 +591,14 @@ class ExplosiveDeployableDestructionTest extends ActorTest {
case _ => assert(false, "")
}
eventMsgs(1) match {
case AvatarServiceMessage(
case MessageEnvelope(
"test", _,
AvatarAction.Destroy(PlanetSideGUID(2), PlanetSideGUID(3), Service.defaultPlayerGUID, Vector3.Zero)
) => ;
case _ => assert(false, "")
}
eventMsgs(2) match {
case LocalServiceMessage("test", _, LocalAction.TriggerEffect("detonate_damaged_mine", PlanetSideGUID(2))) => ;
case MessageEnvelope("test", _, LocalAction.TriggerEffect("detonate_damaged_mine", PlanetSideGUID(2))) => ;
case _ => assert(false, "")
}
p2Msgs.head match {

View file

@ -8,9 +8,10 @@ import net.psforever.objects.serverobject.PlanetSideServerObject
import net.psforever.objects.{GlobalDefinitions, Vehicle}
import net.psforever.objects.serverobject.deploy.{Deployment, DeploymentBehavior}
import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.services.base.MessageEnvelope
import net.psforever.types.{DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
import org.specs2.mutable.Specification
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
import net.psforever.services.vehicle.VehicleAction
import scala.concurrent.duration.Duration
@ -72,7 +73,7 @@ class DeploymentBehavior2Test extends ActorTest {
case _ => assert(false, "")
}
reply2.head match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Deploying, 0, false, Vector3.Zero)
@ -85,7 +86,7 @@ class DeploymentBehavior2Test extends ActorTest {
case _ => assert(false, "")
}
reply2(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Deployed, 0, false, Vector3.Zero)
@ -102,7 +103,7 @@ class DeploymentBehavior2Test extends ActorTest {
case _ => assert(false, "")
}
reply4.head match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Undeploying, 0, false, Vector3.Zero)
@ -115,7 +116,7 @@ class DeploymentBehavior2Test extends ActorTest {
case _ => assert(false, "")
}
reply4(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Mobile, 0, false, Vector3.Zero)
@ -144,7 +145,7 @@ class DeploymentBehavior3Test extends ActorTest {
case _ => assert(false, "")
}
reply2.head match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Deploying, 0, false, Vector3.Zero)
@ -157,7 +158,7 @@ class DeploymentBehavior3Test extends ActorTest {
case _ => assert(false, "")
}
reply2(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Deployed, 0, false, Vector3.Zero)
@ -174,7 +175,7 @@ class DeploymentBehavior3Test extends ActorTest {
case _ => assert(false, "")
}
reply4.head match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Undeploying, 0, false, Vector3.Zero)
@ -187,7 +188,7 @@ class DeploymentBehavior3Test extends ActorTest {
case _ => assert(false, "")
}
reply4(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test",
_,
VehicleAction.DeployRequest(_, PlanetSideGUID(1), DriveState.Mobile, 0, false, Vector3.Zero)

View file

@ -12,7 +12,7 @@ import net.psforever.objects.{Default, GlobalDefinitions, Player}
import net.psforever.objects.serverobject.doors.{Door, DoorControl}
import net.psforever.objects.serverobject.structures.{Building, StructureType}
import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.services.local.{DoorMessage, LocalAction, LocalResponse, LocalServiceMessage, LocalServiceResponse}
import net.psforever.services.local.{DoorMessage, LocalAction, LocalServiceResponse}
import net.psforever.types._
import org.specs2.mutable.Specification

View file

@ -19,9 +19,10 @@ import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game.{InventoryStateMessage, RepairMessage}
import net.psforever.types._
import org.specs2.mutable.Specification
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
import net.psforever.services.vehicle.VehicleAction
import scala.collection.mutable
import scala.concurrent.duration._
@ -260,7 +261,7 @@ class FacilityTurretControlRestorationTest extends ActorTest {
val msg4 = vehicleProbe.receiveOne(500 milliseconds)
assert(
msg12345.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(8), _, PlanetSideGUID(7), _)))
@ -271,25 +272,25 @@ class FacilityTurretControlRestorationTest extends ActorTest {
)
assert(
msg12345(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg12345(2) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 50, 0)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 50, 0)) => true
case _ => false
}
)
assert(
msg12345(3) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 51, 0)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 51, 0)) => true
case _ => false
}
)
assert(
msg12345(4) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -300,7 +301,7 @@ class FacilityTurretControlRestorationTest extends ActorTest {
)
assert(
msg4 match {
case VehicleServiceMessage("test", _, VehicleAction.EquipmentInSlot(_, PlanetSideGUID(2), 1, t))
case MessageEnvelope("test", _, VehicleAction.EquipmentInSlot(PlanetSideGUID(2), 1, t))
if t eq turretWeapon =>
true
case _ => false

View file

@ -24,8 +24,9 @@ import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game.{InventoryStateMessage, RepairMessage, TriggerEffectMessage}
import net.psforever.types._
import org.specs2.mutable.Specification
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
import scala.concurrent.duration._
@ -119,7 +120,7 @@ class GeneratorControlDamageTest extends ActorTest {
val msg_building = buildingProbe.receiveOne(500 milliseconds)
assert(
msg_avatar match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -204,7 +205,7 @@ class GeneratorControlCriticalTest extends ActorTest {
val msg_building = buildingProbe.receiveOne(500 milliseconds)
assert(
msg_avatar match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -313,19 +314,19 @@ class GeneratorControlDestroyedTest extends ActorTest {
)
assert(
msg_avatar2.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg_avatar2(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case _ => false
}
)
assert(
msg_avatar2(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(TriggerEffectMessage(PlanetSideGUID(2), "explosion_generator", None, None)))
@ -442,19 +443,19 @@ class GeneratorControlKillsTest extends ActorTest {
)
assert(
msg_avatar2.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg_avatar2(1) match {
case AvatarServiceMessage("test", AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case MessageEnvelope("test", _, AvatarAction.Destroy(PlanetSideGUID(2), _, _, Vector3(1, 0, 0))) => true
case _ => false
}
)
assert(
msg_avatar2(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(TriggerEffectMessage(PlanetSideGUID(2), "explosion_generator", None, None)))
@ -821,7 +822,7 @@ class GeneratorControlRepairPastRestorePoint extends ActorTest {
val msg_building = buildingProbe.receiveOne(200 milliseconds)
assert(
msg_avatar.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(ValidPlanetSideGUID(5), _, ValidPlanetSideGUID(4), _)))
@ -832,13 +833,13 @@ class GeneratorControlRepairPastRestorePoint extends ActorTest {
)
assert(
msg_avatar(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg_avatar(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(ValidPlanetSideGUID(2), _)))

View file

@ -24,8 +24,9 @@ import net.psforever.objects.vital.projectile.ProjectileReason
import net.psforever.objects.vital.resolution.ResolutionCalculations.Output
import net.psforever.packet.game._
import net.psforever.types._
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.{HintsAtAttacker, SendResponse}
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{HintsAtAttacker, PlanetsideAttribute, SendResponse}
import scala.concurrent.duration._
@ -69,7 +70,7 @@ class PlayerControlHealTest extends ActorTest {
val msg_avatar = avatarProbe.receiveN(4, 500 milliseconds)
assert(
msg_avatar.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -80,23 +81,24 @@ class PlayerControlHealTest extends ActorTest {
)
assert(
msg_avatar(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg_avatar(2) match {
case AvatarServiceMessage(
"TestCharacter2",
AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 55, 1)
) =>
case MessageEnvelope(
"TestCharacter2",
_,
PlanetsideAttribute(PlanetSideGUID(2), 55, 1)
) =>
true
case _ => false
}
)
assert(
msg_avatar(3) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -149,7 +151,7 @@ class PlayerControlHealSelfTest extends ActorTest {
val msg_avatar1 = avatarProbe.receiveN(2, 500 milliseconds)
assert(
msg_avatar1.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -160,7 +162,7 @@ class PlayerControlHealSelfTest extends ActorTest {
)
assert(
msg_avatar1(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case _ => false
}
)
@ -173,7 +175,7 @@ class PlayerControlHealSelfTest extends ActorTest {
val msg_avatar2 = avatarProbe.receiveN(2, 500 milliseconds)
assert(
msg_avatar2.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -184,7 +186,7 @@ class PlayerControlHealSelfTest extends ActorTest {
)
assert(
msg_avatar2(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case _ => false
}
)
@ -234,7 +236,7 @@ class PlayerControlRepairTest extends ActorTest {
val msg_avatar = avatarProbe.receiveN(5, 1000 milliseconds)
assert(
msg_avatar.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -245,23 +247,24 @@ class PlayerControlRepairTest extends ActorTest {
)
assert(
msg_avatar(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 4, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 4, _)) => true
case _ => false
}
)
assert(
msg_avatar(2) match {
case AvatarServiceMessage(
"TestCharacter2",
AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 56, 1)
) =>
case MessageEnvelope(
"TestCharacter2",
_,
PlanetsideAttribute(PlanetSideGUID(2), 56, 1)
) =>
true
case _ => false
}
)
assert(
msg_avatar(3) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -272,9 +275,10 @@ class PlayerControlRepairTest extends ActorTest {
)
assert(
msg_avatar(4) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 56, 1)
_,
PlanetsideAttribute(PlanetSideGUID(2), 56, 1)
) =>
true
case _ => false
@ -326,7 +330,7 @@ class PlayerControlRepairSelfTest extends ActorTest {
val msg_avatar1 = avatarProbe.receiveN(2, 500 milliseconds)
assert(
msg_avatar1.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -337,7 +341,7 @@ class PlayerControlRepairSelfTest extends ActorTest {
)
assert(
msg_avatar1(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 4, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 4, _)) => true
case _ => false
}
)
@ -350,7 +354,7 @@ class PlayerControlRepairSelfTest extends ActorTest {
val msg_avatar2 = avatarProbe.receiveN(2, 500 milliseconds)
assert(
msg_avatar2.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(4), _, PlanetSideGUID(3), _)))
@ -361,7 +365,7 @@ class PlayerControlRepairSelfTest extends ActorTest {
)
assert(
msg_avatar2(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 4, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 4, _)) => true
case _ => false
}
)
@ -434,7 +438,7 @@ class PlayerControlDamageTest extends ActorTest {
val msg_activity = activityProbe.receiveOne(200 milliseconds)
assert(
msg_avatar.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 4, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 4, _)) => true
case _ => false
}
)
@ -446,7 +450,7 @@ class PlayerControlDamageTest extends ActorTest {
)
assert(
msg_avatar(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -461,7 +465,7 @@ class PlayerControlDamageTest extends ActorTest {
)
assert(
msg_avatar(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
PlanetSideGUID(1),
HintsAtAttacker(PlanetSideGUID(2))
@ -547,7 +551,7 @@ class PlayerControlDeathStandingTest extends ActorTest {
activityProbe.expectNoMessage(200 milliseconds)
assert(
msg_avatar.head match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 4, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 4, _)) => true
case _ => false
}
)
@ -559,26 +563,26 @@ class PlayerControlDeathStandingTest extends ActorTest {
)
assert(
msg_avatar(1) match {
case AvatarServiceMessage("TestCharacter2", AvatarAction.Killed(PlanetSideGUID(2), _, None)) => true
case MessageEnvelope("TestCharacter2", _, AvatarAction.Killed(PlanetSideGUID(2), _, None)) => true
case _ => false
}
)
assert(
msg_avatar(2) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg_avatar(3) match {
case AvatarServiceMessage("TestCharacter2", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 7, _)) =>
case MessageEnvelope("TestCharacter2", _, PlanetsideAttribute(PlanetSideGUID(2), 7, _)) =>
true
case _ => false
}
)
assert(
msg_avatar(4) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter2",
_,
SendResponse(Seq(DestroyMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _)))
@ -674,8 +678,9 @@ class PlayerControlDeathStandingTest extends ActorTest {
// )
// assert(
// msg_avatar.head match {
// case AvatarServiceMessage(
// case MessageEnvelope(
// "TestCharacter2",
// _,
// AvatarAction.Killed(PlanetSideGUID(2), _, Some(PlanetSideGUID(7)))
// ) =>
// true
@ -684,13 +689,13 @@ class PlayerControlDeathStandingTest extends ActorTest {
// )
// assert(
// msg_avatar(1) match {
// case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
// case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
// case _ => false
// }
// )
// assert(
// msg_avatar(2) match {
// case AvatarServiceMessage(
// case MessageEnvelope(
// "TestCharacter2",
// _,
// SendResponse(DestroyMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _))
@ -743,8 +748,9 @@ class PlayerControlDeathStandingTest extends ActorTest {
// val msg_drown = avatarProbe.receiveOne(250 milliseconds)
// assert(
// msg_drown match {
// case AvatarServiceMessage(
// case MessageEnvelope(
// "TestCharacter1",
// _,
// AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _)
// ) => true
// case _ => false
@ -797,8 +803,9 @@ class PlayerControlDeathStandingTest extends ActorTest {
// val msg_drown = avatarProbe.receiveOne(250 milliseconds)
// assert(
// msg_drown match {
// case AvatarServiceMessage(
// case MessageEnvelope(
// "TestCharacter1",
// _,
// AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _)
// ) => true
// case _ => false
@ -810,8 +817,9 @@ class PlayerControlDeathStandingTest extends ActorTest {
// val msg_recover = avatarProbe.receiveOne(250 milliseconds)
// assert(
// msg_recover match {
// case AvatarServiceMessage(
// case MessageEnvelope(
// "TestCharacter1",
// _,
// AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Recovery, _), _)
// ) => true
// case _ => false
@ -863,19 +871,19 @@ class PlayerControlInteractWithLavaTest extends ActorTest {
val msg_burn = avatarProbe.receiveN(3, 1 seconds)
assert(
msg_burn.head match {
case AvatarServiceMessage("test-map", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => true
case MessageEnvelope("test-map", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case _ => false
}
)
assert(
msg_burn(1) match {
case AvatarServiceMessage("TestCharacter1", AvatarAction.EnvironmentalDamage(PlanetSideGUID(1), _, _)) => true
case MessageEnvelope("TestCharacter1", _, AvatarAction.EnvironmentalDamage(PlanetSideGUID(1), _, _)) => true
case _ => false
}
)
assert(
msg_burn(2) match {
case AvatarServiceMessage("test-map", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 54, _)) => true
case MessageEnvelope("test-map", _, PlanetsideAttribute(PlanetSideGUID(1), 54, _)) => true
case _ => false
}
)

View file

@ -17,9 +17,10 @@ import net.psforever.objects.vehicles.control.VehicleControl
import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game.{InventoryStateMessage, RepairMessage}
import net.psforever.types._
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
import net.psforever.services.avatar.AvatarAction
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
import net.psforever.services.vehicle.VehicleAction
import scala.concurrent.duration._
@ -71,7 +72,7 @@ class RepairableEntityRepairTest extends ActorTest {
val msg123 = avatarProbe.receiveN(3, 500 milliseconds)
assert(
msg123.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(5), _, PlanetSideGUID(4), _)))
@ -82,13 +83,13 @@ class RepairableEntityRepairTest extends ActorTest {
)
assert(
msg123(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg123(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -189,7 +190,7 @@ class RepairableAmenityTest extends ActorTest {
val msg12345 = avatarProbe.receiveN(5, 500 milliseconds)
assert(
msg12345.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(5), _, PlanetSideGUID(4), _)))
@ -200,25 +201,25 @@ class RepairableAmenityTest extends ActorTest {
)
assert(
msg12345(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
assert(
msg12345(2) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 50, 0)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 50, 0)) => true
case _ => false
}
)
assert(
msg12345(3) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 51, 0)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 51, 0)) => true
case _ => false
}
)
assert(
msg12345(4) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -288,7 +289,7 @@ class RepairableTurretWeapon extends ActorTest {
val msg4 = vehicleProbe.receiveOne(500 milliseconds)
assert(
msg12345.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(8), _, PlanetSideGUID(7), _)))
@ -299,14 +300,14 @@ class RepairableTurretWeapon extends ActorTest {
)
assert(
msg12345(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
//msg12345(2) and msg12345(3) are related to RepairableAmenity
assert(
msg12345(4) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(2), _)))
@ -317,7 +318,7 @@ class RepairableTurretWeapon extends ActorTest {
)
assert(
msg4 match {
case VehicleServiceMessage("test", _, VehicleAction.EquipmentInSlot(_, PlanetSideGUID(2), 1, t))
case MessageEnvelope("test", _, VehicleAction.EquipmentInSlot(_, PlanetSideGUID(2), 1, t))
if t eq turretWeapon =>
true
case _ => false
@ -370,7 +371,7 @@ class RepairableVehicleRepair extends ActorTest {
val msg123 = avatarProbe.receiveN(3, 500 milliseconds)
assert(
msg123.head match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(InventoryStateMessage(PlanetSideGUID(6), _, PlanetSideGUID(5), _)))
@ -381,13 +382,13 @@ class RepairableVehicleRepair extends ActorTest {
)
assert(
msg123(1) match {
case AvatarServiceMessage("test", AvatarAction.PlanetsideAttributeToAll(PlanetSideGUID(1), 0, _)) => true
case MessageEnvelope("test", _, PlanetsideAttribute(PlanetSideGUID(1), 0, _)) => true
case _ => false
}
)
assert(
msg123(2) match {
case AvatarServiceMessage(
case MessageEnvelope(
"TestCharacter1",
_,
SendResponse(Seq(RepairMessage(PlanetSideGUID(1), _)))

View file

@ -16,8 +16,8 @@ import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game.UseItemMessage
import net.psforever.types._
import org.specs2.mutable.Specification
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
import net.psforever.objects.avatar.Avatar
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.PlanetsideAttribute
import net.psforever.services.{InterstellarClusterService, Service, ServiceManager}
import net.psforever.services.galaxy.GalaxyService
@ -236,7 +236,7 @@ class ResourceSiloControlNtuWarningTest extends ActorTest {
val reply = zoneEvents.receiveOne(5000 milliseconds)
reply match {
case AvatarServiceMessage("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case MessageEnvelope("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case _ => assert(ResourceSiloTest.fail, s"$reply is wrong")
}
assert(!obj.LowNtuWarningOn)
@ -275,12 +275,12 @@ class ResourceSiloControlUpdate1Test extends ActorTest {
assert(obj.NtuCapacitor == 305)
assert(obj.CapacitorDisplay == 3)
reply1.head match {
case AvatarServiceMessage("nowhere", _, PlanetsideAttribute(PlanetSideGUID(1), 45, 3)) => ;
case MessageEnvelope("nowhere", _, PlanetsideAttribute(PlanetSideGUID(1), 45, 3)) => ;
case _ => assert(ResourceSiloTest.fail, s"$reply1 is wrong")
}
assert(reply2.isInstanceOf[BuildingActor.MapUpdate], s"$reply2 is wrong")
reply1(1) match {
case AvatarServiceMessage("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case MessageEnvelope("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case _ => assert(ResourceSiloTest.fail, s"${reply1(1)} is wrong")
}
assert(!obj.LowNtuWarningOn)
@ -319,12 +319,12 @@ class ResourceSiloControlUpdate2Test extends ActorTest {
assert(obj.NtuCapacitor == 205)
assert(obj.CapacitorDisplay == 2)
reply1.head match {
case AvatarServiceMessage("nowhere", _, PlanetsideAttribute(PlanetSideGUID(1), 45, 2)) => ;
case MessageEnvelope("nowhere", _, PlanetsideAttribute(PlanetSideGUID(1), 45, 2)) => ;
case _ => assert(ResourceSiloTest.fail, s"$reply1 is wrong")
}
assert(reply2.isInstanceOf[BuildingActor.MapUpdate])
reply1(1) match {
case AvatarServiceMessage("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case MessageEnvelope("nowhere", _, PlanetsideAttribute(PlanetSideGUID(6), 47, 0)) => ;
case _ => assert(ResourceSiloTest.fail, s"${reply1(1)} is wrong")
}
assert(!obj.LowNtuWarningOn)

View file

@ -15,8 +15,9 @@ import net.psforever.objects.vehicles.{Utility, UtilityType}
import net.psforever.objects.zones.{Zone, ZoneDeployableActor, ZoneMap}
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
import net.psforever.packet.game._
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.SendResponse
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import net.psforever.services.local.LocalAction
import net.psforever.types.{DriveState, PlanetSideGUID, Vector3}
import scala.collection.mutable
@ -48,14 +49,15 @@ class TelepadDeployableNoRouterTest extends ActorTest {
val eventsMsgs = eventsProbe.receiveN(4, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq telepad, "no-router telepad deployable testt - not same telepad")
case _ =>
assert( false, "no-router telepad deployable test - wrong deploy message")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Build,
@ -65,12 +67,13 @@ class TelepadDeployableNoRouterTest extends ActorTest {
case _ => assert(false, "no-router telepad deployable test - no icon or wrong icon")
}
eventsMsgs(2) match {
case LocalServiceMessage("test", LocalAction.EliminateDeployable(`telepad`, PlanetSideGUID(1), Vector3.Zero, 2)) => ;
case MessageEnvelope("test", _, LocalAction.EliminateDeployable(`telepad`, PlanetSideGUID(1), Vector3.Zero, 2)) => ;
case _ => assert(false, "no-router telepad deployable test - not eliminating deployable")
}
eventsMsgs(3) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Dismiss,
@ -117,14 +120,15 @@ class TelepadDeployableNoActivationTest extends ActorTest {
val eventsMsgs = eventsProbe.receiveN(4, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq telepad, "no-activate telepad deployable testt - not same telepad")
case _ =>
assert( false, "no-activate telepad deployable test - wrong deploy message")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Build,
@ -135,12 +139,13 @@ class TelepadDeployableNoActivationTest extends ActorTest {
assert( false, "no-activate telepad deployable test - no icon or wrong icon")
}
eventsMsgs(2) match {
case LocalServiceMessage("test", LocalAction.EliminateDeployable(`telepad`, PlanetSideGUID(1), Vector3.Zero, 2)) => ;
case MessageEnvelope("test", _, LocalAction.EliminateDeployable(`telepad`, PlanetSideGUID(1), Vector3.Zero, 2)) => ;
case _ => assert(false, "no-activate telepad deployable test - not eliminating deployable")
}
eventsMsgs(3) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Dismiss,
@ -190,14 +195,15 @@ class TelepadDeployableAttemptTest extends ActorTest {
val eventsMsgs = eventsProbe.receiveN(2, 10.seconds)
val routerMsgs = routerProbe.receiveN(1, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq telepad, "link attempt telepad deployable testt - not same telepad")
case _ =>
assert( false, "link attempt telepad deployable test - wrong deploy message")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Build,
@ -263,14 +269,15 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
val eventsMsgs = eventsProbe.receiveN(9, 10.seconds)
eventsMsgs.head match {
case LocalServiceMessage("test", LocalAction.DeployItem(obj)) =>
case MessageEnvelope("test", _, LocalAction.DeployItem(obj)) =>
assert(obj eq telepad, "link to router test - not same telepad")
case _ =>
assert( false, "link to router test - wrong deploy message")
}
eventsMsgs(1) match {
case LocalServiceMessage(
case MessageEnvelope(
"NEUTRAL",
_,
LocalAction.DeployableMapIcon(
PlanetSideGUID(0),
DeploymentAction.Build,
@ -280,7 +287,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - no icon or wrong icon")
}
eventsMsgs(2) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(
@ -290,7 +297,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not create the internal router telepad (1)")
}
eventsMsgs(3) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(3), 27)))
@ -298,7 +305,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not create the internal router telepad (2)")
}
eventsMsgs(4) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(3), 30)))
@ -306,7 +313,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not create the internal router telepad (3)")
}
eventsMsgs(5) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(3), 27)))
@ -314,7 +321,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not link the internal telepad (1)")
}
eventsMsgs(6) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(3), 28)))
@ -322,7 +329,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not link the internal telepad (2)")
}
eventsMsgs(7) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(1), 27)))
@ -330,7 +337,7 @@ class TelepadDeployableResponseFromRouterTest extends FreedContextActorTest {
case _ => assert(false, "link to router test - did not link the telepad (1)")
}
eventsMsgs(8) match {
case LocalServiceMessage(
case MessageEnvelope(
"test",
_,
SendResponse(Seq(GenericObjectActionMessage(PlanetSideGUID(1), 28)))

View file

@ -25,8 +25,9 @@ import net.psforever.objects.vital.{ShieldCharge, SpawningActivity, Vitality}
import net.psforever.objects.zones.{Zone, ZoneMap}
import net.psforever.packet.game._
import net.psforever.services.ServiceManager
import net.psforever.services.base.MessageEnvelope
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
import net.psforever.services.vehicle.VehicleAction
import net.psforever.types._
import scala.concurrent.duration._
@ -73,7 +74,7 @@ class VehicleControlPrepareForDeletionPassengerTest extends ActorTest {
val vehicle_msg = vehicleProbe.receiveN(1, 500 milliseconds)
vehicle_msg.head match {
case VehicleServiceMessage("test", _, VehicleAction.KickPassenger(PlanetSideGUID(2), 4, true, PlanetSideGUID(1))) => ;
case MessageEnvelope("test", _, VehicleAction.KickPassenger(PlanetSideGUID(2), 4, true, PlanetSideGUID(1))) => ;
case _ =>
assert(false, s"VehicleControlPrepareForDeletionPassengerTest: ${vehicle_msg.head}")
}
@ -137,32 +138,32 @@ class VehicleControlPrepareForDeletionPassengerTest extends ActorTest {
// val vehicle_msg = vehicleProbe.receiveN(6, 1 minute)
// //dismounting as cargo messages
// vehicle_msg.head match {
// case VehicleServiceMessage("test", _, VehicleAction.KickPassenger(PlanetSideGUID(3), 4, true, PlanetSideGUID(1))) => ;
// case MessageEnvelope("test", _, VehicleAction.KickPassenger(PlanetSideGUID(3), 4, true, PlanetSideGUID(1))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-1: ${vehicle_msg.head}")
// }
// vehicle_msg(1) match {
// case VehicleServiceMessage(_, _, SendResponse(PlanetsideAttributeMessage(PlanetSideGUID(1), 0, _))) => ;
// case MessageEnvelope(_, _, SendResponse(PlanetsideAttributeMessage(PlanetSideGUID(1), 0, _))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-2: ${vehicle_msg(1)}")
// }
// vehicle_msg(2) match {
// case VehicleServiceMessage(_, _, SendResponse(PlanetsideAttributeMessage(PlanetSideGUID(1), 68, _))) => ;
// case MessageEnvelope(_, _, SendResponse(PlanetsideAttributeMessage(PlanetSideGUID(1), 68, _))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-3: ${vehicle_msg(2)}")
// }
// vehicle_msg(3) match {
// case VehicleServiceMessage("test", _, SendResponse(CargoMountPointStatusMessage(PlanetSideGUID(2), _, PlanetSideGUID(1), _, 1, CargoStatus.InProgress, 0))) => ;
// case MessageEnvelope("test", _, SendResponse(CargoMountPointStatusMessage(PlanetSideGUID(2), _, PlanetSideGUID(1), _, 1, CargoStatus.InProgress, 0))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-4: ${vehicle_msg(3)}")
// }
// vehicle_msg(4) match {
// case VehicleServiceMessage("test", _, SendResponse(ObjectDetachMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _, _, _))) => ;
// case MessageEnvelope("test", _, SendResponse(ObjectDetachMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _, _, _))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-5: ${vehicle_msg(4)}")
// }
// vehicle_msg(5) match {
// case VehicleServiceMessage("test", _, SendResponse(CargoMountPointStatusMessage(PlanetSideGUID(2), _, _, PlanetSideGUID(1), 1, CargoStatus.Empty, 0))) => ;
// case MessageEnvelope("test", _, SendResponse(CargoMountPointStatusMessage(PlanetSideGUID(2), _, _, PlanetSideGUID(1), 1, CargoStatus.Empty, 0))) => ;
// case _ =>
// assert(false, s"VehicleControlPrepareForDeletionMountedInTest-6: ${vehicle_msg(5)}")
// }
@ -225,7 +226,7 @@ class VehicleControlPrepareForDeletionMountedCargoTest extends FreedContextActor
val vehicleMsgs = eventsProbe.receiveN(6, 10.seconds)
val cargoMsgs = cargoProbe.receiveN(1, 1.seconds)
vehicleMsgs.head match {
case VehicleServiceMessage("test", _, VehicleAction.KickPassenger(PlanetSideGUID(4), 4, true, PlanetSideGUID(2))) => ()
case MessageEnvelope("test", _, VehicleAction.KickPassenger(PlanetSideGUID(4), 4, true, PlanetSideGUID(2))) => ()
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-1: ${vehicleMsgs.head}")
}
@ -233,27 +234,27 @@ class VehicleControlPrepareForDeletionMountedCargoTest extends FreedContextActor
assert(lodestar.Seats(0).occupant.isEmpty)
//cargo dismounting messages
vehicleMsgs(1) match {
case VehicleServiceMessage(_, _, SendResponse(Seq(PlanetsideAttributeMessage(PlanetSideGUID(1), 0, _)))) => ()
case MessageEnvelope(_, _, SendResponse(Seq(PlanetsideAttributeMessage(PlanetSideGUID(1), 0, _)))) => ()
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-2: ${vehicleMsgs(1)}")
}
vehicleMsgs(2) match {
case VehicleServiceMessage(_, _, SendResponse(Seq(PlanetsideAttributeMessage(PlanetSideGUID(1), 68, _)))) => ()
case MessageEnvelope(_, _, SendResponse(Seq(PlanetsideAttributeMessage(PlanetSideGUID(1), 68, _)))) => ()
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-3: ${vehicleMsgs(2)}")
}
vehicleMsgs(3) match {
case VehicleServiceMessage("test", _, SendResponse(Seq(CargoMountPointStatusMessage(PlanetSideGUID(2), _, PlanetSideGUID(1), _, 1, CargoStatus.InProgress, 0)))) => ;
case MessageEnvelope("test", _, SendResponse(Seq(CargoMountPointStatusMessage(PlanetSideGUID(2), _, PlanetSideGUID(1), _, 1, CargoStatus.InProgress, 0)))) => ;
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-4: ${vehicleMsgs(3)}")
}
vehicleMsgs(4) match {
case VehicleServiceMessage("test", _, SendResponse(Seq(ObjectDetachMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _, _, _)))) => ()
case MessageEnvelope("test", _, SendResponse(Seq(ObjectDetachMessage(PlanetSideGUID(2), PlanetSideGUID(1), _, _, _, _)))) => ()
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-5: ${vehicleMsgs(4)}")
}
vehicleMsgs(5) match {
case VehicleServiceMessage("test", _, SendResponse(Seq(CargoMountPointStatusMessage(PlanetSideGUID(2), _, _, PlanetSideGUID(1), 1, CargoStatus.Empty, 0)))) => ()
case MessageEnvelope("test", _, SendResponse(Seq(CargoMountPointStatusMessage(PlanetSideGUID(2), _, _, PlanetSideGUID(1), 1, CargoStatus.Empty, 0)))) => ()
case _ =>
assert(false, s"VehicleControlPrepareForDeletionMountedCargoTest-6: ${vehicleMsgs(5)}")
}
@ -545,7 +546,7 @@ class VehicleControlShieldsNotChargingTooEarlyTest extends ActorTest {
val msg = probe.receiveOne(200 milliseconds)
//assert(msg.isInstanceOf[Vehicle.UpdateShieldsCharge])
assert(msg match {
case VehicleServiceMessage(_, _, PlanetsideAttribute(PlanetSideGUID(10), 68, 15)) => true
case MessageEnvelope(_, _, PlanetsideAttribute(PlanetSideGUID(10), 68, 15)) => true
case _ => false
})
assert(vehicle.Shields == 15)
@ -1005,7 +1006,7 @@ class VehicleControlInteractWithLavaTest extends ActorTest {
msg_burn.foreach { msg =>
assert(
msg match {
case VehicleServiceMessage("test-zone", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case MessageEnvelope("test-zone", _, PlanetsideAttribute(PlanetSideGUID(2), 0, _)) => true
case _ => false
}
)
@ -1103,7 +1104,7 @@ class ApcControlCanChargeCapacitor extends FreedContextActorTest {
do {
val msg = vehicleProbe.receiveOne(3.seconds)
msg match {
case VehicleServiceMessage(_, _, PlanetsideAttribute(PlanetSideGUID(1), 113, capacitance)) =>
case MessageEnvelope(_, _, PlanetsideAttribute(PlanetSideGUID(1), 113, capacitance)) =>
assert(capacitance > 0)
case _ =>
assert(false)
@ -1177,11 +1178,11 @@ class ApcControlCanEmp extends FreedContextActorTest {
apc.Actor ! SpecialEmp.Burst()
val vehicleMsgs = vehicleProbe.receiveN(2, 500.milliseconds)
vehicleMsgs.head match {
case VehicleServiceMessage(_, _, PlanetsideAttribute(PlanetSideGUID(1), 113, 0)) => ;
case MessageEnvelope(_, _, PlanetsideAttribute(PlanetSideGUID(1), 113, 0)) => ;
case _ => assert(false)
}
vehicleMsgs(1) match {
case VehicleServiceMessage(
case MessageEnvelope(
"test-zone",
_,
SendResponse(Seq(

View file

@ -14,11 +14,12 @@ import net.psforever.objects.{GlobalDefinitions, Player}
import net.psforever.types.{CharacterSex, CharacterVoice, PlanetSideEmpire, PlanetSideGUID}
import org.specs2.mutable.Specification
import net.psforever.services.Service
import net.psforever.services.local.{LocalService, LocalServiceMessage}
import net.psforever.services.local.LocalService
import scala.concurrent.duration._
import akka.actor.typed.scaladsl.adapter._
import net.psforever.objects.avatar.Avatar
import net.psforever.services.base.MessageEnvelope
class ProximityTest extends Specification {
@ -200,7 +201,7 @@ class ProximityTerminalControlStartTest extends ActorTest {
assert(terminal.Owner.Continent.equals("test"))
terminal.Actor.tell(CommonMessages.Use(avatar, Some(avatar)), probe2.ref)
probe1.expectMsgClass(1 second, classOf[LocalServiceMessage])
probe1.expectMsgClass(1 second, classOf[MessageEnvelope])
probe2.expectMsgClass(1 second, classOf[ProximityUnit.Action])
assert(terminal.NumberUsers == 1)
}
@ -270,7 +271,7 @@ class ProximityTerminalControlTwoUsersTest extends ActorTest {
assert(terminal.Owner.Continent.equals("test"))
terminal.Actor.tell(CommonMessages.Use(avatar, Some(avatar)), probe2.ref)
probe1.expectMsgClass(1 second, classOf[LocalServiceMessage])
probe1.expectMsgClass(1 second, classOf[MessageEnvelope])
probe2.expectMsgClass(5 second, classOf[ProximityUnit.Action])
terminal.Actor.tell(CommonMessages.Use(avatar2, Some(avatar2)), probe3.ref)
@ -328,7 +329,7 @@ class ProximityTerminalControlStopTest extends ActorTest {
assert(terminal.Owner.Continent.equals("test"))
terminal.Actor.tell(CommonMessages.Use(avatar, Some(avatar)), probe2.ref)
probe1.expectMsgClass(1 second, classOf[LocalServiceMessage])
probe1.expectMsgClass(1 second, classOf[MessageEnvelope])
probe2.expectMsgClass(1 second, classOf[ProximityUnit.Action])
terminal.Actor ! CommonMessages.Unuse(avatar, Some(avatar))
@ -340,7 +341,7 @@ class ProximityTerminalControlStopTest extends ActorTest {
case out => assert(false, s"last message $out is not StopAction")
}
//probe2.expectMsgClass(1 second, classOf[ProximityUnit.StopAction])
probe1.expectMsgClass(1 second, classOf[LocalServiceMessage])
probe1.expectMsgClass(1 second, classOf[MessageEnvelope])
assert(terminal.NumberUsers == 0)
}
}
@ -406,7 +407,7 @@ class ProximityTerminalControlNotStopTest extends ActorTest {
assert(terminal.Owner.Continent.equals("test"))
terminal.Actor.tell(CommonMessages.Use(avatar, Some(avatar)), probe2.ref)
probe1.expectMsgClass(100 millisecond, classOf[LocalServiceMessage])
probe1.expectMsgClass(100 millisecond, classOf[MessageEnvelope])
assert(terminal.NumberUsers == 1)
terminal.Actor.tell(CommonMessages.Use(avatar2, Some(avatar2)), probe3.ref)
@ -418,7 +419,7 @@ class ProximityTerminalControlNotStopTest extends ActorTest {
assert(terminal.NumberUsers == 1)
terminal.Actor ! CommonMessages.Unuse(avatar2, Some(avatar2))
probe1.expectMsgClass(100 millisecond, classOf[LocalServiceMessage])
probe1.expectMsgClass(100 millisecond, classOf[MessageEnvelope])
assert(terminal.NumberUsers == 0)
}
}