mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-14 16:04:43 +00:00
reorganized the services.base classes; streamlined the class inheritance structure and param requirements for certain classes; messed up all imports
This commit is contained in:
parent
775d9dca5e
commit
4dc5d7f01e
149 changed files with 460 additions and 506 deletions
|
|
@ -16,13 +16,13 @@ import net.psforever.packet.game.{ObjectCreateMessage, PlayerStateMessageUpstrea
|
||||||
import net.psforever.types._
|
import net.psforever.types._
|
||||||
import net.psforever.services.{RemoverActor, Service, ServiceManager}
|
import net.psforever.services.{RemoverActor, Service, ServiceManager}
|
||||||
import net.psforever.services.avatar._
|
import net.psforever.services.avatar._
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ObjectDelete, PlanetsideAttribute, WeaponDryFire}
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ConcealPlayer, ObjectDelete, PlanetsideAttribute, ReloadTool, WeaponDryFire}
|
||||||
|
|
||||||
class AvatarService1Test extends ActorTest {
|
class AvatarService1Test extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"construct" in {
|
"construct" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
assert(true)
|
assert(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -32,7 +32,7 @@ class AvatarService2Test extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"subscribe" in {
|
"subscribe" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
assert(true)
|
assert(true)
|
||||||
}
|
}
|
||||||
|
|
@ -43,7 +43,7 @@ class AvatarService3Test extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
"subscribe to a specific channel" in {
|
"subscribe to a specific channel" in {
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! Service.Leave()
|
service ! Service.Leave()
|
||||||
assert(true)
|
assert(true)
|
||||||
|
|
@ -55,7 +55,7 @@ class AvatarService4Test extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"subscribe" in {
|
"subscribe" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! Service.LeaveAll()
|
service ! Service.LeaveAll()
|
||||||
assert(true)
|
assert(true)
|
||||||
|
|
@ -67,7 +67,7 @@ class AvatarService5Test extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass an unhandled message" in {
|
"pass an unhandled message" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! "hello"
|
service ! "hello"
|
||||||
expectNoMessage()
|
expectNoMessage()
|
||||||
|
|
@ -79,7 +79,7 @@ class ArmorChangedTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ArmorChanged" in {
|
"pass ArmorChanged" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ArmorChanged(ExoSuitType.Reinforced, 0))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ArmorChanged(ExoSuitType.Reinforced, 0))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -97,17 +97,17 @@ class ConcealPlayerTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ConcealPlayer" in {
|
"pass ConcealPlayer" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", AvatarAction.ConcealPlayer(PlanetSideGUID(10)))
|
service ! AvatarServiceMessage("test", ConcealPlayer(PlanetSideGUID(10)))
|
||||||
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), AvatarAction.ConcealPlayer(PlanetSideGUID(10))))
|
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), ConcealPlayer(PlanetSideGUID(10))))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class EquipmentInHandTest extends ActorTest {
|
class EquipmentInHandTest extends ActorTest {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), "release-test-service")
|
val service = system.actorOf(Props(classOf[AvatarService]), "release-test-service")
|
||||||
val toolDef = GlobalDefinitions.beamer
|
val toolDef = GlobalDefinitions.beamer
|
||||||
val tool = Tool(toolDef)
|
val tool = Tool(toolDef)
|
||||||
tool.GUID = PlanetSideGUID(40)
|
tool.GUID = PlanetSideGUID(40)
|
||||||
|
|
@ -134,7 +134,7 @@ class EquipmentInHandTest extends ActorTest {
|
||||||
|
|
||||||
class DroptItemTest extends ActorTest {
|
class DroptItemTest extends ActorTest {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), "release-test-service")
|
val service = system.actorOf(Props(classOf[AvatarService]), "release-test-service")
|
||||||
val toolDef = GlobalDefinitions.beamer
|
val toolDef = GlobalDefinitions.beamer
|
||||||
val tool = Tool(toolDef)
|
val tool = Tool(toolDef)
|
||||||
tool.Position = Vector3(1, 2, 3)
|
tool.Position = Vector3(1, 2, 3)
|
||||||
|
|
@ -173,7 +173,7 @@ class LoadPlayerTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass LoadPlayer" in {
|
"pass LoadPlayer" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
//no parent data
|
//no parent data
|
||||||
service ! AvatarServiceMessage(
|
service ! AvatarServiceMessage(
|
||||||
|
|
@ -197,7 +197,7 @@ class ObjectDeleteTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ObjectDelete" in {
|
"pass ObjectDelete" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ObjectDelete(PlanetSideGUID(11)))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ObjectDelete(PlanetSideGUID(11)))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -216,7 +216,7 @@ class ObjectHeldTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ObjectHeld" in {
|
"pass ObjectHeld" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ObjectHeld(1, 2))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ObjectHeld(1, 2))
|
||||||
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), AvatarAction.ObjectHeld(1, 2)))
|
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), AvatarAction.ObjectHeld(1, 2)))
|
||||||
|
|
@ -228,7 +228,7 @@ class PutDownFDUTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass PutDownFDU" in {
|
"pass PutDownFDU" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", AvatarAction.PutDownFDU(PlanetSideGUID(10)))
|
service ! AvatarServiceMessage("test", AvatarAction.PutDownFDU(PlanetSideGUID(10)))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -242,7 +242,7 @@ class PlanetsideAttributeTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass PlanetsideAttribute" in {
|
"pass PlanetsideAttribute" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), PlanetsideAttribute(PlanetSideGUID(10), 5, 1200L))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), PlanetsideAttribute(PlanetSideGUID(10), 5, 1200L))
|
||||||
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), PlanetsideAttribute(PlanetSideGUID(10), 5, 1200L)))
|
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), PlanetsideAttribute(PlanetSideGUID(10), 5, 1200L)))
|
||||||
|
|
@ -271,7 +271,7 @@ class PlayerStateTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass PlayerState" in {
|
"pass PlayerState" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage(
|
service ! AvatarServiceMessage(
|
||||||
"test",
|
"test",
|
||||||
|
|
@ -322,7 +322,7 @@ class PickupItemTest extends ActorTest {
|
||||||
|
|
||||||
"pass PickUpItem" in {
|
"pass PickUpItem" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! PickupItemMessage("test", AvatarAction.PickupItem(tool), Zone.Nowhere)
|
service ! PickupItemMessage("test", AvatarAction.PickupItem(tool), Zone.Nowhere)
|
||||||
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), ObjectDelete(tool.GUID, 0)))
|
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), ObjectDelete(tool.GUID, 0)))
|
||||||
|
|
@ -333,10 +333,10 @@ class ReloadTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass Reload" in {
|
"pass Reload" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.Reload(PlanetSideGUID(40)))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ReloadTool(PlanetSideGUID(40)))
|
||||||
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), AvatarAction.Reload(PlanetSideGUID(40))))
|
expectMsg(AvatarServiceResponse("/test/Avatar", PlanetSideGUID(10), ReloadTool(PlanetSideGUID(40))))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -348,7 +348,7 @@ class ChangeAmmoTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ChangeAmmo" in {
|
"pass ChangeAmmo" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage(
|
service ! AvatarServiceMessage(
|
||||||
"test",
|
"test",
|
||||||
|
|
@ -387,7 +387,7 @@ class ChangeFireModeTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ChangeFireMode" in {
|
"pass ChangeFireMode" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ChangeFireMode(PlanetSideGUID(40), 0))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), AvatarAction.ChangeFireMode(PlanetSideGUID(40), 0))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -401,7 +401,7 @@ class ChangeFireStateStartTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ChangeFireState_Start" in {
|
"pass ChangeFireState_Start" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ChangeFireState_Start(PlanetSideGUID(40)))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ChangeFireState_Start(PlanetSideGUID(40)))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -419,7 +419,7 @@ class ChangeFireStateStopTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass ChangeFireState_Stop" in {
|
"pass ChangeFireState_Stop" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ChangeFireState_Stop(PlanetSideGUID(40)))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), ChangeFireState_Stop(PlanetSideGUID(40)))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -437,7 +437,7 @@ class WeaponDryFireTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass WeaponDryFire" in {
|
"pass WeaponDryFire" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage("test", PlanetSideGUID(10), WeaponDryFire(PlanetSideGUID(40)))
|
service ! AvatarServiceMessage("test", PlanetSideGUID(10), WeaponDryFire(PlanetSideGUID(40)))
|
||||||
expectMsg(
|
expectMsg(
|
||||||
|
|
@ -453,7 +453,7 @@ class AvatarStowEquipmentTest extends ActorTest {
|
||||||
"AvatarService" should {
|
"AvatarService" should {
|
||||||
"pass StowEquipment" in {
|
"pass StowEquipment" in {
|
||||||
ServiceManager.boot(system)
|
ServiceManager.boot(system)
|
||||||
val service = system.actorOf(Props(classOf[AvatarService], Zone.Nowhere), AvatarServiceTest.TestName)
|
val service = system.actorOf(Props(classOf[AvatarService]), AvatarServiceTest.TestName)
|
||||||
service ! Service.Join("test")
|
service ! Service.Join("test")
|
||||||
service ! AvatarServiceMessage(
|
service ! AvatarServiceMessage(
|
||||||
"test",
|
"test",
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ import net.psforever.objects.vital.{DamagingActivity, HealFromImplant, HealingAc
|
||||||
import net.psforever.packet.game.objectcreate.{BasicCharacterData, ObjectClass, RibbonBars}
|
import net.psforever.packet.game.objectcreate.{BasicCharacterData, ObjectClass, RibbonBars}
|
||||||
import net.psforever.packet.game.{Friend => GameFriend, _}
|
import net.psforever.packet.game.{Friend => GameFriend, _}
|
||||||
import net.psforever.persistence
|
import net.psforever.persistence
|
||||||
import net.psforever.services.base.messages.{SendResponse, PlanetsideAttribute}
|
import net.psforever.services.base.message.{SendResponse, PlanetsideAttribute}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.types.{
|
import net.psforever.types.{
|
||||||
CharacterSex,
|
CharacterSex,
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,13 @@ import net.psforever.services.CavernRotationService
|
||||||
import net.psforever.services.CavernRotationService.SendCavernRotationUpdates
|
import net.psforever.services.CavernRotationService.SendCavernRotationUpdates
|
||||||
import net.psforever.services.ServiceManager.LookupResult
|
import net.psforever.services.ServiceManager.LookupResult
|
||||||
import net.psforever.services.account.{PlayerToken, ReceiveAccountData}
|
import net.psforever.services.account.{PlayerToken, ReceiveAccountData}
|
||||||
import net.psforever.services.avatar.AvatarServiceResponse
|
import net.psforever.services.avatar.AvatarStamp
|
||||||
|
import net.psforever.services.base.envelope.{GenericResponseEnvelope, Undelivered}
|
||||||
import net.psforever.services.chat.ChatService
|
import net.psforever.services.chat.ChatService
|
||||||
import net.psforever.services.galaxy.GalaxyServiceResponse
|
import net.psforever.services.galaxy.GalaxyStamp
|
||||||
import net.psforever.services.local.LocalServiceResponse
|
import net.psforever.services.local.LocalStamp
|
||||||
import net.psforever.services.teamwork.SquadServiceResponse
|
import net.psforever.services.teamwork.SquadServiceResponse
|
||||||
import net.psforever.services.vehicle.VehicleServiceResponse
|
import net.psforever.services.vehicle.VehicleStamp
|
||||||
import org.joda.time.LocalDateTime
|
import org.joda.time.LocalDateTime
|
||||||
import org.log4s.MDC
|
import org.log4s.MDC
|
||||||
|
|
||||||
|
|
@ -170,27 +171,32 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
case packet: PlanetSideGamePacket =>
|
case packet: PlanetSideGamePacket =>
|
||||||
handleGamePkt(packet)
|
handleGamePkt(packet)
|
||||||
|
|
||||||
case AvatarServiceResponse(toChannel, guid, reply) =>
|
case SquadServiceResponse(_, excluded, reply) =>
|
||||||
logic.avatarResponse.handle(toChannel, guid, reply)
|
logic.squad.handle(reply, excluded)
|
||||||
|
|
||||||
case GalaxyServiceResponse(_, reply) =>
|
case envelope: GenericResponseEnvelope =>
|
||||||
logic.galaxy.handle(reply)
|
val GenericResponseEnvelope(toChannel, guid, reply) = envelope
|
||||||
|
envelope.stamp match {
|
||||||
case LocalServiceResponse(toChannel, guid, reply) =>
|
case AvatarStamp =>
|
||||||
logic.local.handle(toChannel, guid, reply)
|
logic.avatarResponse.handle(toChannel, guid, reply)
|
||||||
|
case LocalStamp =>
|
||||||
|
logic.local.handle(toChannel, guid, reply)
|
||||||
|
case VehicleStamp =>
|
||||||
|
logic.vehicleResponse.handle(toChannel, guid, reply)
|
||||||
|
case GalaxyStamp =>
|
||||||
|
logic.galaxy.handle(reply)
|
||||||
|
case Undelivered =>
|
||||||
|
log.error(s"received a message's response that was not delivered by an event system - $reply")
|
||||||
|
case unknownStamp =>
|
||||||
|
log.error(s"received a message's response from an unknown event system - stamp: $unknownStamp")
|
||||||
|
}
|
||||||
|
|
||||||
case Mountable.MountMessages(tplayer, reply) =>
|
case Mountable.MountMessages(tplayer, reply) =>
|
||||||
logic.mountResponse.handle(tplayer, reply)
|
logic.mountResponse.handle(tplayer, reply)
|
||||||
|
|
||||||
case SquadServiceResponse(_, excluded, response) =>
|
|
||||||
logic.squad.handle(response, excluded)
|
|
||||||
|
|
||||||
case Terminal.TerminalMessage(tplayer, msg, order) =>
|
case Terminal.TerminalMessage(tplayer, msg, order) =>
|
||||||
logic.terminals.handle(tplayer, msg, order)
|
logic.terminals.handle(tplayer, msg, order)
|
||||||
|
|
||||||
case VehicleServiceResponse(toChannel, guid, reply) =>
|
|
||||||
logic.vehicleResponse.handle(toChannel, guid, reply)
|
|
||||||
|
|
||||||
case ChatService.MessageResponse(fromSession, message, _) =>
|
case ChatService.MessageResponse(fromSession, message, _) =>
|
||||||
logic.chat.handleIncomingMessage(message, fromSession)
|
logic.chat.handleIncomingMessage(message, fromSession)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,7 @@ import net.psforever.objects.serverobject.mount.Mountable
|
||||||
import net.psforever.objects.vital.RevivingActivity
|
import net.psforever.objects.vital.RevivingActivity
|
||||||
import net.psforever.packet.game.{AvatarImplantMessage, CreateShortcutMessage, HitHint, ImplantAction}
|
import net.psforever.packet.game.{AvatarImplantMessage, CreateShortcutMessage, HitHint, ImplantAction}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceResponse}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceResponse}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ConcealPlayer, EventResponse, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
|
||||||
import net.psforever.types.ImplantType
|
import net.psforever.types.ImplantType
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
@ -430,9 +429,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
case SendResponse(msgs) =>
|
case SendResponse(msgs) =>
|
||||||
msgs.foreach(sendResponse)
|
msgs.foreach(sendResponse)
|
||||||
|
|
||||||
case AvatarAction.SendResponseTargeted(targetGuid, msg) if resolvedPlayerGuid == targetGuid =>
|
|
||||||
sendResponse(msg)
|
|
||||||
|
|
||||||
/* common messages (maybe once every respawn) */
|
/* common messages (maybe once every respawn) */
|
||||||
case ReloadTool(itemGuid)
|
case ReloadTool(itemGuid)
|
||||||
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
||||||
|
|
@ -505,7 +501,7 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
||||||
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
||||||
|
|
||||||
case AvatarAction.ConcealPlayer(_) =>
|
case ConcealPlayer(_) =>
|
||||||
sendResponse(GenericObjectActionMessage(guid, code=9))
|
sendResponse(GenericObjectActionMessage(guid, code=9))
|
||||||
|
|
||||||
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ChatMsg, SetChatFilterMessage}
|
import net.psforever.packet.game.{ChatMsg, SetChatFilterMessage}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, SetEmpire}
|
import net.psforever.services.base.message.{ObjectDelete, SetEmpire}
|
||||||
import net.psforever.services.chat.{ChatChannel, DefaultChannel, SpectatorChannel, SquadChannel}
|
import net.psforever.services.chat.{ChatChannel, DefaultChannel, SpectatorChannel, SquadChannel}
|
||||||
import net.psforever.types.ChatMessageType.{CMT_TOGGLESPECTATORMODE, CMT_TOGGLE_GM}
|
import net.psforever.types.ChatMessageType.{CMT_TOGGLESPECTATORMODE, CMT_TOGGLE_GM}
|
||||||
import net.psforever.types.{ChatMessageType, PlanetSideEmpire}
|
import net.psforever.types.{ChatMessageType, PlanetSideEmpire}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ChatMsg, ObjectCreateDetailedMessage, PlanetsideAttributeMessage}
|
import net.psforever.packet.game.{ChatMsg, ObjectCreateDetailedMessage, PlanetsideAttributeMessage}
|
||||||
import net.psforever.packet.game.objectcreate.RibbonBars
|
import net.psforever.packet.game.objectcreate.RibbonBars
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.chat.{CustomerServiceChannel, SpectatorChannel}
|
import net.psforever.services.chat.{CustomerServiceChannel, SpectatorChannel}
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{ChatMessageType, MeritCommendation, PlanetSideGUID}
|
import net.psforever.types.{ChatMessageType, MeritCommendation, PlanetSideGUID}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ import net.psforever.packet.game.OutfitEventAction.{Initial, OutfitInfo, OutfitR
|
||||||
import net.psforever.packet.game.{ActionCancelMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, OutfitEvent, OutfitMemberEvent, OutfitMembershipRequest, OutfitMembershipResponse, OutfitRequest, OutfitRequestAction, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
import net.psforever.packet.game.{ActionCancelMessage, AvatarFirstTimeEventMessage, AvatarImplantMessage, AvatarJumpMessage, BattleplanMessage, BindPlayerMessage, BugReportMessage, ChangeFireModeMessage, ChangeShortcutBankMessage, CharacterCreateRequestMessage, CharacterRequestMessage, ChatMsg, CollisionIs, ConnectToWorldRequestMessage, CreateShortcutMessage, DeadState, DeployObjectMessage, DisplayedAwardMessage, DropItemMessage, EmoteMsg, FacilityBenefitShieldChargeRequestMessage, FriendsRequest, GenericAction, GenericActionMessage, GenericCollisionMsg, GenericObjectActionAtPositionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HitHint, InvalidTerrainMessage, LootItemMessage, MoveItemMessage, ObjectDetectedMessage, ObjectHeldMessage, OutfitEvent, OutfitMemberEvent, OutfitMembershipRequest, OutfitMembershipResponse, OutfitRequest, OutfitRequestAction, PickupItemMessage, PlanetsideAttributeMessage, PlayerStateMessageUpstream, RequestDestroyMessage, TargetingImplantRequest, TerrainCondition, TradeMessage, UnuseItemMessage, UseItemMessage, VoiceHostInfo, VoiceHostRequest, ZipLineMessage}
|
||||||
import net.psforever.services.RemoverActor
|
import net.psforever.services.RemoverActor
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage, CorpseEnvelope}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage, CorpseEnvelope}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import net.psforever.objects.serverobject.turret.{FacilityTurret, WeaponTurret}
|
||||||
import net.psforever.objects.vehicles.AccessPermissionGroup
|
import net.psforever.objects.vehicles.AccessPermissionGroup
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.packet.game.{ChatMsg, DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlanetsideAttributeMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
import net.psforever.packet.game.{ChatMsg, DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlanetsideAttributeMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
||||||
import net.psforever.services.base.messages.{SendResponse, SetEmpire}
|
import net.psforever.services.base.message.{SendResponse, SetEmpire}
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{BailType, ChatMessageType, DriveState, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, ChatMessageType, DriveState, PlanetSideGUID, Vector3}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.{Player, Session, Vehicle}
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.PlanetSidePacket
|
import net.psforever.packet.PlanetSidePacket
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
import net.psforever.services.chat.SpectatorChannel
|
import net.psforever.services.chat.SpectatorChannel
|
||||||
import net.psforever.services.teamwork.{SquadAction, SquadServiceMessage}
|
import net.psforever.services.teamwork.{SquadAction, SquadServiceMessage}
|
||||||
import net.psforever.types.{ChatMessageType, SquadRequestType}
|
import net.psforever.types.{ChatMessageType, SquadRequestType}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import net.psforever.objects.zones.interaction.InteractsWithZone
|
||||||
import net.psforever.packet.game.{ChildObjectStateMessage, DeployRequestMessage, FrameVehicleStateMessage, PlanetsideAttributeMessage, VehicleStateMessage, VehicleSubStateMessage}
|
import net.psforever.packet.game.{ChildObjectStateMessage, DeployRequestMessage, FrameVehicleStateMessage, PlanetsideAttributeMessage, VehicleStateMessage, VehicleSubStateMessage}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.CachedMessage
|
import net.psforever.services.base.CachedMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{DriveState, Vector3}
|
import net.psforever.types.{DriveState, Vector3}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,7 @@ import net.psforever.objects.vital.RevivingActivity
|
||||||
import net.psforever.objects.vital.interaction.Adversarial
|
import net.psforever.objects.vital.interaction.Adversarial
|
||||||
import net.psforever.packet.game.{AvatarImplantMessage, CreateShortcutMessage, ImplantAction, PlanetsideStringAttributeMessage}
|
import net.psforever.packet.game.{AvatarImplantMessage, CreateShortcutMessage, ImplantAction, PlanetsideStringAttributeMessage}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ConcealPlayer, EventResponse, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
|
||||||
import net.psforever.types.ImplantType
|
import net.psforever.types.ImplantType
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
@ -484,9 +483,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
case SendResponse(msgs) =>
|
case SendResponse(msgs) =>
|
||||||
msgs.foreach(sendResponse)
|
msgs.foreach(sendResponse)
|
||||||
|
|
||||||
case AvatarAction.SendResponseTargeted(targetGuid, msg) if resolvedPlayerGuid == targetGuid =>
|
|
||||||
sendResponse(msg)
|
|
||||||
|
|
||||||
/* common messages (maybe once every respawn) */
|
/* common messages (maybe once every respawn) */
|
||||||
case ReloadTool(itemGuid)
|
case ReloadTool(itemGuid)
|
||||||
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
||||||
|
|
@ -613,7 +609,7 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
||||||
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
||||||
|
|
||||||
case AvatarAction.ConcealPlayer(_) =>
|
case ConcealPlayer(_) =>
|
||||||
sendResponse(GenericObjectActionMessage(guid, code=9))
|
sendResponse(GenericObjectActionMessage(guid, code=9))
|
||||||
|
|
||||||
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@ import akka.actor.{ActorContext, ActorRef, typed}
|
||||||
import net.psforever.actors.session.AvatarActor
|
import net.psforever.actors.session.AvatarActor
|
||||||
import net.psforever.actors.session.support.{GalaxyHandlerFunctions, SessionData, SessionGalaxyHandlers}
|
import net.psforever.actors.session.support.{GalaxyHandlerFunctions, SessionData, SessionGalaxyHandlers}
|
||||||
import net.psforever.packet.game.{BroadcastWarpgateUpdateMessage, FriendsResponse, HotSpotUpdateMessage, ZoneInfoMessage, ZonePopulationUpdateMessage, HotSpotInfo => PacketHotSpotInfo}
|
import net.psforever.packet.game.{BroadcastWarpgateUpdateMessage, FriendsResponse, HotSpotUpdateMessage, ZoneInfoMessage, ZonePopulationUpdateMessage, HotSpotInfo => PacketHotSpotInfo}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{EventResponse, SendResponse}
|
||||||
import net.psforever.services.base.messages.SendResponse
|
|
||||||
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
||||||
import net.psforever.types.{MemberAction, PlanetSideEmpire}
|
import net.psforever.types.{MemberAction, PlanetSideEmpire}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ import net.psforever.packet.game.{ActionCancelMessage, ActionResultMessage, Avat
|
||||||
import net.psforever.services.account.{AccountPersistenceService, RetrieveAccountData}
|
import net.psforever.services.account.{AccountPersistenceService, RetrieveAccountData}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.CachedMessage
|
import net.psforever.services.base.CachedMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.local.support.CaptureFlagManager
|
import net.psforever.services.local.support.CaptureFlagManager
|
||||||
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, ImplantType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{CapacitorStateType, ChatMessageType, Cosmetic, ExoSuitType, ImplantType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,7 @@ import net.psforever.objects.serverobject.doors.Door
|
||||||
import net.psforever.objects.vehicles.MountableWeapons
|
import net.psforever.objects.vehicles.MountableWeapons
|
||||||
import net.psforever.objects.{BoomerDeployable, ExplosiveDeployable, TelepadDeployable, Tool, TurretDeployable}
|
import net.psforever.objects.{BoomerDeployable, ExplosiveDeployable, TelepadDeployable, Tool, TurretDeployable}
|
||||||
import net.psforever.packet.game.{ChatMsg, DeployableObjectsInfoMessage, GenericActionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HackMessage, HackState, HackState1, InventoryStateMessage, ObjectAttachMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, OrbitalShuttleTimeMsg, PadAndShuttlePair, PlanetsideAttributeMessage, ProximityTerminalUseMessage, SetEmpireMessage, TriggerEffectMessage, TriggerSoundMessage, TriggeredSound, VehicleStateMessage}
|
import net.psforever.packet.game.{ChatMsg, DeployableObjectsInfoMessage, GenericActionMessage, GenericObjectActionMessage, GenericObjectStateMsg, HackMessage, HackState, HackState1, InventoryStateMessage, ObjectAttachMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, OrbitalShuttleTimeMsg, PadAndShuttlePair, PlanetsideAttributeMessage, ProximityTerminalUseMessage, SetEmpireMessage, TriggerEffectMessage, TriggerSoundMessage, TriggeredSound, VehicleStateMessage}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{EventResponse, GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse, SetEmpire}
|
||||||
import net.psforever.services.base.messages.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse, SetEmpire}
|
|
||||||
import net.psforever.services.{InterstellarClusterService, Service}
|
import net.psforever.services.{InterstellarClusterService, Service}
|
||||||
import net.psforever.services.local.LocalAction
|
import net.psforever.services.local.LocalAction
|
||||||
import net.psforever.types.{ChatMessageType, PlanetSideGUID, SpawnGroup}
|
import net.psforever.types.{ChatMessageType, PlanetSideGUID, SpawnGroup}
|
||||||
|
|
@ -154,9 +153,6 @@ class LocalHandlerLogic(val ops: SessionLocalHandlers, implicit val context: Act
|
||||||
case LocalAction.GenericActionMessage(actionNumber) =>
|
case LocalAction.GenericActionMessage(actionNumber) =>
|
||||||
sendResponse(GenericActionMessage(actionNumber))
|
sendResponse(GenericActionMessage(actionNumber))
|
||||||
|
|
||||||
case LocalAction.ChatMessage(msg) =>
|
|
||||||
sendResponse(msg)
|
|
||||||
|
|
||||||
case LocalAction.LluSpawned(llu) =>
|
case LocalAction.LluSpawned(llu) =>
|
||||||
// Create LLU on client
|
// Create LLU on client
|
||||||
sendResponse(ObjectCreateMessage(
|
sendResponse(ObjectCreateMessage(
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import net.psforever.objects.serverobject.turret.{FacilityTurret, WeaponTurret}
|
||||||
import net.psforever.objects.vehicles.AccessPermissionGroup
|
import net.psforever.objects.vehicles.AccessPermissionGroup
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.packet.game.{ChatMsg, DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlanetsideAttributeMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
import net.psforever.packet.game.{ChatMsg, DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlanetsideAttributeMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
||||||
import net.psforever.services.base.messages.{SendResponse, SetEmpire}
|
import net.psforever.services.base.message.{SendResponse, SetEmpire}
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{BailType, ChatMessageType, DriveState, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, ChatMessageType, DriveState, PlanetSideGUID, Vector3}
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,7 @@ import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.packet.game.{ChangeAmmoMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ChatMsg, ChildObjectStateMessage, DeadState, DeployRequestMessage, DismountVehicleMsg, FrameVehicleStateMessage, GenericObjectActionMessage, HitHint, InventoryStateMessage, ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, PlanetsideAttributeMessage, ReloadMessage, ServerVehicleOverrideMsg, VehicleStateMessage, WeaponDryFireMessage}
|
import net.psforever.packet.game.{ChangeAmmoMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ChatMsg, ChildObjectStateMessage, DeadState, DeployRequestMessage, DismountVehicleMsg, FrameVehicleStateMessage, GenericObjectActionMessage, HitHint, InventoryStateMessage, ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, PlanetsideAttributeMessage, ReloadMessage, ServerVehicleOverrideMsg, VehicleStateMessage, WeaponDryFireMessage}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, EventResponse, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, WeaponDryFire}
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, WeaponDryFire}
|
|
||||||
import net.psforever.services.local.support.CaptureFlagManager
|
import net.psforever.services.local.support.CaptureFlagManager
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceResponse}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceResponse}
|
||||||
import net.psforever.types.{BailType, ChatMessageType, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, ChatMessageType, PlanetSideGUID, Vector3}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ import net.psforever.objects.Players
|
||||||
import net.psforever.objects.avatar.scoring.Kill
|
import net.psforever.objects.avatar.scoring.Kill
|
||||||
import net.psforever.objects.sourcing.PlayerSource
|
import net.psforever.objects.sourcing.PlayerSource
|
||||||
import net.psforever.packet.game.{AvatarImplantMessage, ImplantAction}
|
import net.psforever.packet.game.{AvatarImplantMessage, ImplantAction}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ConcealPlayer, EventResponse, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, GenericObjectAction, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, SetEmpire, WeaponDryFire}
|
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
//
|
//
|
||||||
|
|
@ -416,9 +415,6 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
sendResponse(msg)
|
sendResponse(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
case AvatarAction.SendResponseTargeted(targetGuid, msg) if resolvedPlayerGuid == targetGuid =>
|
|
||||||
sendResponse(msg)
|
|
||||||
|
|
||||||
/* common messages (maybe once every respawn) */
|
/* common messages (maybe once every respawn) */
|
||||||
case ReloadTool(itemGuid)
|
case ReloadTool(itemGuid)
|
||||||
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
if isNotSameTarget && ops.lastSeenStreamMessage.get(guid.guid).exists { _.visible } =>
|
||||||
|
|
@ -504,7 +500,7 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A
|
||||||
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
case AvatarAction.ChangeFireMode(itemGuid, mode) if isNotSameTarget =>
|
||||||
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
sendResponse(ChangeFireModeMessage(itemGuid, mode))
|
||||||
|
|
||||||
case AvatarAction.ConcealPlayer(_) =>
|
case ConcealPlayer(_) =>
|
||||||
sendResponse(GenericObjectActionMessage(guid, code=9))
|
sendResponse(GenericObjectActionMessage(guid, code=9))
|
||||||
|
|
||||||
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
case AvatarAction.EnvironmentalDamage(_, _, _) =>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import net.psforever.packet.game.{ActionCancelMessage, AvatarFirstTimeEventMessa
|
||||||
import net.psforever.services.account.AccountPersistenceService
|
import net.psforever.services.account.AccountPersistenceService
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.CachedMessage
|
import net.psforever.services.base.CachedMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.types.{ExoSuitType, Vector3}
|
import net.psforever.types.{ExoSuitType, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.duration.DurationInt
|
import scala.concurrent.duration.DurationInt
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.serverobject.mount.Mountable
|
||||||
import net.psforever.objects.serverobject.terminals.implant.ImplantTerminalMech
|
import net.psforever.objects.serverobject.terminals.implant.ImplantTerminalMech
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.packet.game.{DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
import net.psforever.packet.game.{DelayedPathMountMsg, DismountVehicleCargoMsg, DismountVehicleMsg, GenericObjectActionMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectDetachMessage, PlayerStasisMessage, PlayerStateShiftMessage, ShiftState}
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.packet.game.{DeployableInfo, DeployableObjectsInfoMessage,
|
||||||
import net.psforever.packet.game.objectcreate.{ObjectClass, ObjectCreateMessageParent, RibbonBars}
|
import net.psforever.packet.game.objectcreate.{ObjectClass, ObjectCreateMessageParent, RibbonBars}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
import net.psforever.services.chat.SpectatorChannel
|
import net.psforever.services.chat.SpectatorChannel
|
||||||
import net.psforever.services.teamwork.{SquadAction, SquadServiceMessage}
|
import net.psforever.services.teamwork.{SquadAction, SquadServiceMessage}
|
||||||
import net.psforever.types.{CapacitorStateType, ChatMessageType, ExoSuitType, MeritCommendation, SquadRequestType}
|
import net.psforever.types.{CapacitorStateType, ChatMessageType, ExoSuitType, MeritCommendation, SquadRequestType}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ import net.psforever.objects.equipment.Equipment
|
||||||
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.packet.game.{ChangeAmmoMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ChildObjectStateMessage, DeadState, DeployRequestMessage, DismountVehicleMsg, FrameVehicleStateMessage, GenericObjectActionMessage, InventoryStateMessage, ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, PlanetsideAttributeMessage, ReloadMessage, ServerVehicleOverrideMsg, VehicleStateMessage, WeaponDryFireMessage}
|
import net.psforever.packet.game.{ChangeAmmoMessage, ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ChildObjectStateMessage, DeadState, DeployRequestMessage, DismountVehicleMsg, FrameVehicleStateMessage, GenericObjectActionMessage, InventoryStateMessage, ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectCreateMessage, ObjectDeleteMessage, ObjectDetachMessage, PlanetsideAttributeMessage, ReloadMessage, ServerVehicleOverrideMsg, VehicleStateMessage, WeaponDryFireMessage}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, EventResponse, GenericObjectAction, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, WeaponDryFire}
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, GenericObjectAction, ObjectDelete, PlanetsideAttribute, ReloadTool, SendResponse, WeaponDryFire}
|
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceResponse}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceResponse}
|
||||||
import net.psforever.types.{BailType, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import net.psforever.objects.zones.blockmap.BlockMapEntity
|
||||||
import net.psforever.objects.zones.exp.ToDatabase
|
import net.psforever.objects.zones.exp.ToDatabase
|
||||||
import net.psforever.services.RemoverActor
|
import net.psforever.services.RemoverActor
|
||||||
import net.psforever.services.avatar.GroundEnvelope
|
import net.psforever.services.avatar.GroundEnvelope
|
||||||
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.local.support.HackCaptureActor
|
import net.psforever.services.local.support.HackCaptureActor
|
||||||
import net.psforever.services.local.{CaptureMessage, LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{CaptureMessage, LocalAction, LocalServiceMessage}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,7 @@ import net.psforever.packet.game.objectcreate.ConstructorData
|
||||||
import net.psforever.objects.zones.exp
|
import net.psforever.objects.zones.exp
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage, AvatarServiceResponse}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage, AvatarServiceResponse}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.{EventResponse, SendResponse}
|
||||||
import net.psforever.services.base.messages.SendResponse
|
|
||||||
import net.psforever.services.chat.OutfitChannel
|
import net.psforever.services.chat.OutfitChannel
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package net.psforever.actors.session.support
|
||||||
|
|
||||||
import akka.actor.{ActorContext, ActorRef, typed}
|
import akka.actor.{ActorContext, ActorRef, typed}
|
||||||
import net.psforever.packet.game.FriendsResponse
|
import net.psforever.packet.game.FriendsResponse
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.EventResponse
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import net.psforever.objects.ce.Deployable
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskWorkflow}
|
import net.psforever.objects.guid.{GUIDTask, TaskWorkflow}
|
||||||
import net.psforever.objects.serverobject.interior.Sidedness
|
import net.psforever.objects.serverobject.interior.Sidedness
|
||||||
import net.psforever.packet.game.{GenericObjectActionMessage, ObjectDeleteMessage, PlanetsideAttributeMessage, TriggerEffectMessage}
|
import net.psforever.packet.game.{GenericObjectActionMessage, ObjectDeleteMessage, PlanetsideAttributeMessage, TriggerEffectMessage}
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.EventResponse
|
||||||
import net.psforever.types.{PlanetSideGUID, Vector3}
|
import net.psforever.types.{PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
trait LocalHandlerFunctions extends CommonSessionInterfacingFunctionality {
|
trait LocalHandlerFunctions extends CommonSessionInterfacingFunctionality {
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.vehicles.{CargoBehavior, MountableWeapons}
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.packet.game.{DismountVehicleCargoMsg, GenericObjectActionMessage, InventoryStateMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
import net.psforever.packet.game.{DismountVehicleCargoMsg, GenericObjectActionMessage, InventoryStateMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
||||||
import net.psforever.services.base.CachedMessage
|
import net.psforever.services.base.CachedMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{BailType, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, PlanetSideGUID, Vector3}
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.packet.game.OutfitEventAction.{Initial, Leaving, OutfitInfo
|
||||||
import net.psforever.packet.game.OutfitMembershipResponse.PacketType.CreateResponse
|
import net.psforever.packet.game.OutfitMembershipResponse.PacketType.CreateResponse
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.chat.OutfitChannel
|
import net.psforever.services.chat.OutfitChannel
|
||||||
import net.psforever.types.ChatMessageType
|
import net.psforever.types.ChatMessageType
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
package net.psforever.actors.session.support
|
package net.psforever.actors.session.support
|
||||||
|
|
||||||
import akka.actor.{ActorContext, ActorRef, typed}
|
import akka.actor.{ActorContext, ActorRef, typed}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.teamwork.SquadServiceResponse
|
import net.psforever.services.teamwork.SquadServiceResponse
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import akka.actor.{ActorContext, ActorRef, typed}
|
||||||
import net.psforever.actors.session.AvatarActor
|
import net.psforever.actors.session.AvatarActor
|
||||||
import net.psforever.objects.Vehicle
|
import net.psforever.objects.Vehicle
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.base.EventResponse
|
import net.psforever.services.base.message.EventResponse
|
||||||
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideGUID}
|
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideGUID}
|
||||||
|
|
||||||
trait VehicleHandlerFunctions extends CommonSessionInterfacingFunctionality {
|
trait VehicleHandlerFunctions extends CommonSessionInterfacingFunctionality {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import net.psforever.objects.zones.exp.ToDatabase
|
||||||
import net.psforever.packet.game.UplinkRequest
|
import net.psforever.packet.game.UplinkRequest
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.CachedMessage
|
import net.psforever.services.base.CachedMessage
|
||||||
import net.psforever.services.base.messages.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ReloadTool, SendResponse, WeaponDryFire}
|
import net.psforever.services.base.message.{ChangeAmmo, ChangeFireState_Start, ChangeFireState_Stop, ReloadTool, SendResponse, WeaponDryFire}
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, ValidPlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, ValidPlanetSideGUID, Vector3}
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import net.psforever.objects.zones.blockmap.BlockMapEntity
|
||||||
import net.psforever.packet.game.GenericAction.FirstPersonViewWithEffect
|
import net.psforever.packet.game.GenericAction.FirstPersonViewWithEffect
|
||||||
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, CloudInfo, GenericActionMessage, GenericObjectActionEnum, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, StormInfo, TriggeredSound, TrainingZoneMessage, WeatherMessage}
|
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, CloudInfo, GenericActionMessage, GenericObjectActionEnum, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, StormInfo, TriggeredSound, TrainingZoneMessage, WeatherMessage}
|
||||||
import net.psforever.services.avatar.{CorpseEnvelope, ReleaseMessage}
|
import net.psforever.services.avatar.{CorpseEnvelope, ReleaseMessage}
|
||||||
import net.psforever.services.base.messages.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.chat.DefaultChannel
|
import net.psforever.services.chat.DefaultChannel
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.PlanetSideGamePacket
|
import net.psforever.packet.PlanetSideGamePacket
|
||||||
import net.psforever.packet.game.ContinentalLockUpdateMessage
|
import net.psforever.packet.game.ContinentalLockUpdateMessage
|
||||||
import net.psforever.persistence
|
import net.psforever.persistence
|
||||||
import net.psforever.services.base.messages.{SendResponse, SetEmpire}
|
import net.psforever.services.base.message.{SendResponse, SetEmpire}
|
||||||
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.services.{InterstellarClusterService, ServiceManager}
|
import net.psforever.services.{InterstellarClusterService, ServiceManager}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import net.psforever.objects.zones.exp.{ExperienceCalculator, SupportExperienceC
|
||||||
import net.psforever.packet.game.{BuildingInfoUpdateMessage, PlanetsideAttributeMessage}
|
import net.psforever.packet.game.{BuildingInfoUpdateMessage, PlanetsideAttributeMessage}
|
||||||
import net.psforever.util.Database._
|
import net.psforever.util.Database._
|
||||||
import net.psforever.persistence
|
import net.psforever.persistence
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import net.psforever.objects.sourcing.PlayerSource
|
||||||
import net.psforever.packet.game.PlanetsideAttributeMessage
|
import net.psforever.packet.game.PlanetsideAttributeMessage
|
||||||
import net.psforever.services.InterstellarClusterService
|
import net.psforever.services.InterstellarClusterService
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{GenericObjectAction, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{GenericObjectAction, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
||||||
import net.psforever.services.local.{CaptureMessage, HackClearMessage, LocalServiceMessage}
|
import net.psforever.services.local.{CaptureMessage, HackClearMessage, LocalServiceMessage}
|
||||||
import net.psforever.services.local.support.{HackCaptureActor, HackClearActor}
|
import net.psforever.services.local.support.{HackCaptureActor, HackClearActor}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import net.psforever.objects.vital.TerminalUsedActivity
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.types.{ExoSuitType, PlanetSideGUID, TransactionType, Vector3}
|
import net.psforever.types.{ExoSuitType, PlanetSideGUID, TransactionType, Vector3}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
|
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.Future
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.vital.etc.TriggerUsedReason
|
||||||
import net.psforever.objects.vital.interaction.DamageInteraction
|
import net.psforever.objects.vital.interaction.DamageInteraction
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.types.PlanetSideEmpire
|
import net.psforever.types.PlanetSideEmpire
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.serverobject.{CommonMessages, PlanetSideServerObjec
|
||||||
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, TurretSource}
|
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, TurretSource}
|
||||||
import net.psforever.objects.vital.{DismountingActivity, InGameActivity, MountingActivity, ShieldCharge}
|
import net.psforever.objects.vital.{DismountingActivity, InGameActivity, MountingActivity, ShieldCharge}
|
||||||
import net.psforever.packet.game.HackState1
|
import net.psforever.packet.game.HackState1
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import net.psforever.packet.game._
|
||||||
import net.psforever.types.{ChatMessageType, ExoSuitType, PlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, ExoSuitType, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, SendResponse}
|
import net.psforever.services.base.message.{ObjectDelete, SendResponse}
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
|
|
||||||
import scala.annotation.tailrec
|
import scala.annotation.tailrec
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import net.psforever.objects.serverobject.repair.RepairableEntity
|
||||||
import net.psforever.objects.vital.SimpleResolutions
|
import net.psforever.objects.vital.SimpleResolutions
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.types.{PlanetSideGUID, Vector3}
|
import net.psforever.types.{PlanetSideGUID, Vector3}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import net.psforever.objects.serverobject.hackable.Hackable
|
||||||
import net.psforever.objects.serverobject.repair.RepairableEntity
|
import net.psforever.objects.serverobject.repair.RepairableEntity
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.vital.resolution.ResolutionCalculations
|
import net.psforever.objects.vital.resolution.ResolutionCalculations
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package net.psforever.objects
|
||||||
import net.psforever.objects.equipment.ChargeFireModeDefinition
|
import net.psforever.objects.equipment.ChargeFireModeDefinition
|
||||||
import net.psforever.packet.game.QuantityUpdateMessage
|
import net.psforever.packet.game.QuantityUpdateMessage
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
|
|
||||||
object Tools {
|
object Tools {
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObje
|
||||||
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{GenericObjectAction, PlanetsideAttribute, SendResponse, SetEmpire}
|
import net.psforever.services.base.message.{GenericObjectAction, PlanetsideAttribute, SendResponse, SetEmpire}
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.packet.game.{ObjectAttachMessage, ObjectCreateDetailedMessa
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, SendResponse}
|
import net.psforever.services.base.message.{ObjectDelete, SendResponse}
|
||||||
|
|
||||||
class CorpseControl(player: Player) extends Actor with ContainableBehavior {
|
class CorpseControl(player: Player) extends Actor with ContainableBehavior {
|
||||||
def ContainerObject = player
|
def ContainerObject = player
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,7 @@ import net.psforever.objects.vital.collision.CollisionReason
|
||||||
import net.psforever.objects.vital.etc.{PainboxReason, SuicideReason}
|
import net.psforever.objects.vital.etc.{PainboxReason, SuicideReason}
|
||||||
import net.psforever.objects.vital.interaction.{DamageInteraction, DamageResult}
|
import net.psforever.objects.vital.interaction.{DamageInteraction, DamageResult}
|
||||||
import net.psforever.packet.PlanetSideGamePacket
|
import net.psforever.packet.PlanetSideGamePacket
|
||||||
import net.psforever.services.base.EventMessage
|
import net.psforever.services.base.message.{EventMessage, HintsAtAttacker, ObjectDelete, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.base.messages.{HintsAtAttacker, ObjectDelete, PlanetsideAttribute, SendResponse}
|
|
||||||
import org.joda.time.{LocalDateTime, Seconds}
|
import org.joda.time.{LocalDateTime, Seconds}
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.environment.{EnvironmentAttribute, Env
|
||||||
import net.psforever.objects.serverobject.environment.interaction.{InteractionWith, RespondsToZoneEnvironment}
|
import net.psforever.objects.serverobject.environment.interaction.{InteractionWith, RespondsToZoneEnvironment}
|
||||||
import net.psforever.objects.serverobject.interior.{Sidedness, TraditionalInteriorAware}
|
import net.psforever.objects.serverobject.interior.{Sidedness, TraditionalInteriorAware}
|
||||||
import net.psforever.objects.zones.interaction.InteractsWithZone
|
import net.psforever.objects.zones.interaction.InteractsWithZone
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.serverobject.shuttle.OrbitalShuttlePad
|
||||||
import net.psforever.objects.zones.interaction.InteractsWithZone
|
import net.psforever.objects.zones.interaction.InteractsWithZone
|
||||||
import net.psforever.packet.game.{ChatMsg, PlayerStateShiftMessage, ShiftState}
|
import net.psforever.packet.game.{ChatMsg, PlayerStateShiftMessage, ShiftState}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.hart.ShuttleState
|
import net.psforever.services.hart.ShuttleState
|
||||||
import net.psforever.types.ChatMessageType
|
import net.psforever.types.ChatMessageType
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SetEmpire
|
import net.psforever.services.base.message.SetEmpire
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.types.PlanetSideEmpire
|
import net.psforever.types.PlanetSideEmpire
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.vehicles.Utility.InternalTelepad
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{GenericObjectActionMessage, ObjectCreateMessage, ObjectDeleteMessage}
|
import net.psforever.packet.game.{GenericObjectActionMessage, ObjectCreateMessage, ObjectDeleteMessage}
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import net.psforever.objects.vital.RepairFromArmorSiphon
|
||||||
import net.psforever.objects.vital.etc.{ArmorSiphonModifiers, ArmorSiphonReason}
|
import net.psforever.objects.vital.etc.{ArmorSiphonModifiers, ArmorSiphonReason}
|
||||||
import net.psforever.objects.vital.interaction.DamageInteraction
|
import net.psforever.objects.vital.interaction.DamageInteraction
|
||||||
import net.psforever.packet.game.QuantityUpdateMessage
|
import net.psforever.packet.game.QuantityUpdateMessage
|
||||||
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.vehicles.MountedWeapons
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.vital.projectile.ProjectileReason
|
import net.psforever.objects.vital.projectile.ProjectileReason
|
||||||
import net.psforever.objects.zones.{Zone, ZoneAware}
|
import net.psforever.objects.zones.{Zone, ZoneAware}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import net.psforever.objects.serverobject.containable.{Containable, ContainableB
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.packet.game.{ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectDetachMessage}
|
import net.psforever.packet.game.{ObjectAttachMessage, ObjectCreateDetailedMessage, ObjectDetachMessage}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, SendResponse}
|
import net.psforever.services.base.message.{ObjectDelete, SendResponse}
|
||||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package net.psforever.objects.serverobject.damage
|
||||||
import net.psforever.objects.serverobject.structures.Amenity
|
import net.psforever.objects.serverobject.structures.Amenity
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "control" `Actor` mixin for damage-handling code
|
* The "control" `Actor` mixin for damage-handling code
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "control" `Actor` mixin for damage-handling code,
|
* The "control" `Actor` mixin for damage-handling code,
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import net.psforever.objects.vital.interaction.{DamageInteraction, DamageResult}
|
||||||
import net.psforever.packet.game.DamageWithPositionMessage
|
import net.psforever.packet.game.DamageWithPositionMessage
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.{HintsAtAttacker, SendResponse}
|
import net.psforever.services.base.message.{HintsAtAttacker, SendResponse}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functions to assist other damage-dealing code for objects that contain users.
|
* Functions to assist other damage-dealing code for objects that contain users.
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.objects.zones.exp.ToDatabase
|
import net.psforever.objects.zones.exp.ToDatabase
|
||||||
import net.psforever.packet.game.DamageWithPositionMessage
|
import net.psforever.packet.game.DamageWithPositionMessage
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.DamageWithPositionMessage
|
import net.psforever.packet.game.DamageWithPositionMessage
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{ObjectDelete, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.base.support.SupportActor
|
import net.psforever.services.base.support.SupportActor
|
||||||
import net.psforever.services.vehicle.support.TurretUpgrader
|
import net.psforever.services.vehicle.support.TurretUpgrader
|
||||||
import net.psforever.services.vehicle.{TurretMessage, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{TurretMessage, VehicleServiceMessage}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.TriggerEffectMessage
|
import net.psforever.packet.game.TriggerEffectMessage
|
||||||
import net.psforever.types.{PlanetSideGeneratorState, Vector3}
|
import net.psforever.types.{PlanetSideGeneratorState, Vector3}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.zones.blockmap.BlockMapEntity
|
||||||
import net.psforever.packet.game.{GenericObjectActionMessage, HackMessage, HackState, HackState1, HackState7, TriggeredSound}
|
import net.psforever.packet.game.{GenericObjectActionMessage, HackMessage, HackState, HackState1, HackState7, TriggeredSound}
|
||||||
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID}
|
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.support.HackClearActor
|
import net.psforever.services.local.support.HackClearActor
|
||||||
import net.psforever.services.local.{HackClearMessage, HackEntityMessage, LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{HackClearMessage, HackEntityMessage, LocalAction, LocalServiceMessage}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import net.psforever.objects.serverobject.interior.Sidedness
|
||||||
import net.psforever.objects.{Player, Vehicle}
|
import net.psforever.objects.{Player, Vehicle}
|
||||||
import net.psforever.objects.serverobject.structures.Amenity
|
import net.psforever.objects.serverobject.structures.Amenity
|
||||||
import net.psforever.objects.serverobject.terminals.Terminal
|
import net.psforever.objects.serverobject.terminals.Terminal
|
||||||
import net.psforever.services.base.SelfRespondingEvent
|
import net.psforever.services.base.message.SelfRespondingEvent
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.structures.Amenity
|
||||||
import net.psforever.objects.sourcing.{SourceEntry, SourceWithHealthEntry}
|
import net.psforever.objects.sourcing.{SourceEntry, SourceWithHealthEntry}
|
||||||
import net.psforever.objects.vital.{DamagingActivity, RepairFromEquipment, SpawningActivity}
|
import net.psforever.objects.vital.{DamagingActivity, RepairFromEquipment, SpawningActivity}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "control" `Actor` mixin for repair-handling code
|
* The "control" `Actor` mixin for repair-handling code
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.{Player, Tool}
|
||||||
import net.psforever.packet.game.{ChatMsg, InventoryStateMessage, RepairMessage}
|
import net.psforever.packet.game.{ChatMsg, InventoryStateMessage, RepairMessage}
|
||||||
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, Vector3}
|
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, Vector3}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{PlanetsideAttribute, SendResponse}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "control" `Actor` mixin for repair-handling code,
|
* The "control" `Actor` mixin for repair-handling code,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.{GlobalDefinitions, Ntu, NtuContainer, NtuStorageBe
|
||||||
import net.psforever.types.{ExperienceType, PlanetSideEmpire}
|
import net.psforever.types.{ExperienceType, PlanetSideEmpire}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.serverobject.doors.Door
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.base.support.SupportActor
|
import net.psforever.services.base.support.SupportActor
|
||||||
import net.psforever.services.local.{DoorMessage, LocalAction}
|
import net.psforever.services.local.{DoorMessage, LocalAction}
|
||||||
import net.psforever.services.hart.{HartTimer, HartTimerActions}
|
import net.psforever.services.hart.{HartTimer, HartTimerActions}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ package net.psforever.objects.serverobject.structures.participation
|
||||||
import net.psforever.objects.Player
|
import net.psforever.objects.Player
|
||||||
import net.psforever.objects.avatar.scoring.Kill
|
import net.psforever.objects.avatar.scoring.Kill
|
||||||
import net.psforever.objects.sourcing.UniquePlayer
|
import net.psforever.objects.sourcing.UniquePlayer
|
||||||
import net.psforever.services.base.messages.GenericObjectAction
|
import net.psforever.services.base.message.GenericObjectAction
|
||||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import net.psforever.objects.avatar.scoring.Kill
|
||||||
import net.psforever.objects.serverobject.hackable.Hackable
|
import net.psforever.objects.serverobject.hackable.Hackable
|
||||||
import net.psforever.objects.zones.exp.ToDatabase
|
import net.psforever.objects.zones.exp.ToDatabase
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.damage.Damageable
|
||||||
import net.psforever.objects.sourcing.AmenitySource
|
import net.psforever.objects.sourcing.AmenitySource
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.packet.game.HackState1
|
import net.psforever.packet.game.HackState1
|
||||||
import net.psforever.services.base.messages.{PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.local.HackClearMessage
|
import net.psforever.services.local.HackClearMessage
|
||||||
import net.psforever.services.local.support.HackClearActor
|
import net.psforever.services.local.support.HackClearActor
|
||||||
import org.log4s.Logger
|
import org.log4s.Logger
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.objects.{GlobalDefinitions, Player, SimpleItem}
|
import net.psforever.objects.{GlobalDefinitions, Player, SimpleItem}
|
||||||
import net.psforever.packet.game.HackState1
|
import net.psforever.packet.game.HackState1
|
||||||
import net.psforever.services.base.messages.SetEmpire
|
import net.psforever.services.base.message.SetEmpire
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID}
|
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import net.psforever.objects.serverobject.turret.auto.AutomatedTurret.Target
|
||||||
import net.psforever.objects.serverobject.turret.auto.{AffectedByAutomaticTurretFire, AutomatedTurret, AutomatedTurretBehavior}
|
import net.psforever.objects.serverobject.turret.auto.{AffectedByAutomaticTurretFire, AutomatedTurret, AutomatedTurretBehavior}
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.packet.game.{ChangeFireModeMessage, HackState1}
|
import net.psforever.packet.game.{ChangeFireModeMessage, HackState1}
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.support.TurretUpgrader
|
import net.psforever.services.vehicle.support.TurretUpgrader
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.{BailType, PlanetSideEmpire, PlanetSideGUID}
|
import net.psforever.types.{BailType, PlanetSideEmpire, PlanetSideGUID}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.serverobject.damage.{Damageable, DamageableWeaponTu
|
||||||
import net.psforever.objects.serverobject.repair.RepairableWeaponTurret
|
import net.psforever.objects.serverobject.repair.RepairableWeaponTurret
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
|
|
||||||
trait TurretControl
|
trait TurretControl
|
||||||
extends Actor
|
extends Actor
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.ce.Deployable
|
||||||
import net.psforever.objects.{Player, Tool, TurretDeployable}
|
import net.psforever.objects.{Player, Tool, TurretDeployable}
|
||||||
import net.psforever.packet.game.{HackMessage, HackState, HackState1, HackState7, InventoryStateMessage}
|
import net.psforever.packet.game.{HackMessage, HackState, HackState1, HackState7, InventoryStateMessage}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.{SendResponse, SetEmpire}
|
import net.psforever.services.base.message.{SendResponse, SetEmpire}
|
||||||
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
|
||||||
import net.psforever.services.vehicle.support.TurretUpgrader
|
import net.psforever.services.vehicle.support.TurretUpgrader
|
||||||
import net.psforever.services.vehicle.{TurretMessage, VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{TurretMessage, VehicleAction, VehicleServiceMessage}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import net.psforever.objects.zones.interaction.InteractsWithZone
|
||||||
import net.psforever.objects.{Default, PlanetSideGameObject, Player}
|
import net.psforever.objects.{Default, PlanetSideGameObject, Player}
|
||||||
import net.psforever.packet.game.{ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ObjectDetectedMessage}
|
import net.psforever.packet.game.{ChangeFireStateMessage_Start, ChangeFireStateMessage_Stop, ObjectDetectedMessage}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.types.{PlanetSideGUID, Vector3}
|
import net.psforever.types.{PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@ import net.psforever.objects.serverobject.deploy.Deployment
|
||||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||||
import net.psforever.objects.serverobject.structures.WarpGate
|
import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
||||||
import net.psforever.objects.{NtuContainer, _}
|
import net.psforever.objects._
|
||||||
import net.psforever.types.DriveState
|
import net.psforever.types.DriveState
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import akka.actor.typed.scaladsl.adapter._
|
import akka.actor.typed.scaladsl.adapter._
|
||||||
import net.psforever.objects.serverobject.transfer.TransferContainer.TransferMaterial
|
import net.psforever.objects.serverobject.transfer.TransferContainer.TransferMaterial
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
|
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.packet.game.{CargoMountPointStatusMessage, ObjectAttachMess
|
||||||
import net.psforever.types.{BailType, CargoStatus, PlanetSideGUID, Vector3}
|
import net.psforever.types.{BailType, CargoStatus, PlanetSideGUID, Vector3}
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
package net.psforever.objects.vehicles.control
|
package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
import net.psforever.types.DriveState
|
import net.psforever.types.DriveState
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import net.psforever.objects.vital.prop.DamageWithPosition
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{TriggerEffectMessage, TriggeredEffectLocation}
|
import net.psforever.packet.game.{TriggerEffectMessage, TriggeredEffectLocation}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.messages.{GenericObjectAction, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{GenericObjectAction, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types._
|
import net.psforever.types._
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import akka.actor.{Actor, Cancellable}
|
import akka.actor.{Actor, Cancellable}
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.services.base.messages.PlanetsideAttribute
|
import net.psforever.services.base.message.PlanetsideAttribute
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
|
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ import net.psforever.packet.game._
|
||||||
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
import net.psforever.packet.game.objectcreate.ObjectCreateMessageParent
|
||||||
import net.psforever.types._
|
import net.psforever.types._
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.{ObjectDelete, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{ObjectDelete, PlanetsideAttribute, SendResponse}
|
||||||
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
import net.psforever.services.vehicle.{VehicleAction, VehicleServiceMessage}
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.avatar.interaction.WithEntrance
|
||||||
import net.psforever.objects.serverobject.doors.InteriorDoorPassage
|
import net.psforever.objects.serverobject.doors.InteriorDoorPassage
|
||||||
import net.psforever.objects.serverobject.environment.PieceOfEnvironment
|
import net.psforever.objects.serverobject.environment.PieceOfEnvironment
|
||||||
import net.psforever.objects.zones.interaction.InteractsWithZone
|
import net.psforever.objects.zones.interaction.InteractsWithZone
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
|
|
||||||
class WithEntranceInVehicle
|
class WithEntranceInVehicle
|
||||||
extends WithEntrance() {
|
extends WithEntrance() {
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@ import enumeratum.values.{StringEnum, StringEnumEntry}
|
||||||
import net.psforever.objects.{PlanetSideGameObject, Player, Vehicle}
|
import net.psforever.objects.{PlanetSideGameObject, Player, Vehicle}
|
||||||
import net.psforever.objects.serverobject.environment._
|
import net.psforever.objects.serverobject.environment._
|
||||||
import net.psforever.packet.game.{ChatMsg, OffshoreVehicleMessage}
|
import net.psforever.packet.game.{ChatMsg, OffshoreVehicleMessage}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.base.messages.SendResponse
|
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
|
|
@ -690,10 +689,7 @@ object MapEnvironment {
|
||||||
val warning = s"Do not travel any further $trespass of the battlefield or you$punishment"
|
val warning = s"Do not travel any further $trespass of the battlefield or you$punishment"
|
||||||
p.Zone.AvatarEvents ! AvatarServiceMessage(
|
p.Zone.AvatarEvents ! AvatarServiceMessage(
|
||||||
p.Name,
|
p.Name,
|
||||||
AvatarAction.SendResponseTargeted(
|
SendResponse(ChatMsg(ChatMessageType.CMT_QUIT, warning))
|
||||||
Service.defaultPlayerGUID,
|
|
||||||
ChatMsg(ChatMessageType.CMT_QUIT, warning)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1616,7 +1616,7 @@ object Zone {
|
||||||
|
|
||||||
zone.avatarEvents = context.actorOf(Props(classOf[AvatarService], zone), s"$id-avatar-events")
|
zone.avatarEvents = context.actorOf(Props(classOf[AvatarService], zone), s"$id-avatar-events")
|
||||||
zone.localEvents = context.actorOf(Props(classOf[LocalService], zone), s"$id-local-events")
|
zone.localEvents = context.actorOf(Props(classOf[LocalService], zone), s"$id-local-events")
|
||||||
zone.vehicleEvents = context.actorOf(Props(classOf[VehicleService], zone), s"$id-vehicle-events")
|
zone.vehicleEvents = context.actorOf(Props(classOf[VehicleService]), s"$id-vehicle-events")
|
||||||
|
|
||||||
zone.timeOfDayOrigin = System.currentTimeMillis()
|
zone.timeOfDayOrigin = System.currentTimeMillis()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import net.psforever.objects.sourcing.ObjectSource
|
||||||
import net.psforever.objects.vehicles.MountedWeapons
|
import net.psforever.objects.vehicles.MountedWeapons
|
||||||
import net.psforever.objects.vital.SpawningActivity
|
import net.psforever.objects.vital.SpawningActivity
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.local.LocalServiceMessage
|
import net.psforever.services.local.LocalServiceMessage
|
||||||
import net.psforever.types.ChatMessageType
|
import net.psforever.types.ChatMessageType
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.ballistics.Projectile
|
||||||
import net.psforever.objects.guid.{GUIDTask, StraightforwardTask, TaskBundle, TaskWorkflow}
|
import net.psforever.objects.guid.{GUIDTask, StraightforwardTask, TaskBundle, TaskWorkflow}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.objects.{Default, GlobalDefinitions, Vehicle}
|
import net.psforever.objects.{Default, GlobalDefinitions, Vehicle}
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.VehicleServiceMessage
|
import net.psforever.services.vehicle.VehicleServiceMessage
|
||||||
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, Vector3}
|
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, Vector3}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import net.psforever.objects.Default
|
||||||
import net.psforever.objects.serverobject.structures.{Building, WarpGate}
|
import net.psforever.objects.serverobject.structures.{Building, WarpGate}
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.ChatMsg
|
import net.psforever.packet.game.ChatMsg
|
||||||
import net.psforever.services.base.messages.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage, GalaxyServiceResponse}
|
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage, GalaxyServiceResponse}
|
||||||
import net.psforever.types.ChatMessageType
|
import net.psforever.types.ChatMessageType
|
||||||
import net.psforever.util.Config
|
import net.psforever.util.Config
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import net.psforever.persistence
|
||||||
import net.psforever.types.Vector3
|
import net.psforever.types.Vector3
|
||||||
import net.psforever.services.{Service, ServiceManager}
|
import net.psforever.services.{Service, ServiceManager}
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
import net.psforever.services.galaxy.{GalaxyAction, GalaxyServiceMessage}
|
||||||
import net.psforever.zones.Zones
|
import net.psforever.zones.Zones
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,9 @@ import net.psforever.objects.serverobject.environment.interaction.common.Watery.
|
||||||
import net.psforever.objects.sourcing.{SourceEntry, UniquePlayer}
|
import net.psforever.objects.sourcing.{SourceEntry, UniquePlayer}
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.PlanetSideGamePacket
|
|
||||||
import net.psforever.packet.game.{ImplantAction, ObjectCreateMessage}
|
import net.psforever.packet.game.{ImplantAction, ObjectCreateMessage}
|
||||||
import net.psforever.packet.game.objectcreate.{ConstructorData, DroppedItemData, ObjectCreateMessageParent, PlacementData}
|
import net.psforever.packet.game.objectcreate.{ConstructorData, DroppedItemData, ObjectCreateMessageParent, PlacementData}
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.{EventMessage, EventResponse, ObjectDelete, SelfRespondingEvent}
|
||||||
import net.psforever.services.base.{EventMessage, EventResponse, SelfRespondingEvent}
|
|
||||||
import net.psforever.types.{ExoSuitType, ExperienceType, PlanetSideGUID, TransactionType, Vector3}
|
import net.psforever.types.{ExoSuitType, ExperienceType, PlanetSideGUID, TransactionType, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.duration.FiniteDuration
|
import scala.concurrent.duration.FiniteDuration
|
||||||
|
|
@ -26,8 +24,6 @@ object AvatarAction {
|
||||||
|
|
||||||
final case class ChangeFireMode(item_guid: PlanetSideGUID, mode: Int) extends SelfRespondingEvent
|
final case class ChangeFireMode(item_guid: PlanetSideGUID, mode: Int) extends SelfRespondingEvent
|
||||||
|
|
||||||
final case class ConcealPlayer(player_guid: PlanetSideGUID) extends SelfRespondingEvent
|
|
||||||
|
|
||||||
final case class EnvironmentalDamage(player_guid: PlanetSideGUID, source_guid: PlanetSideGUID, amount: Int) extends SelfRespondingEvent
|
final case class EnvironmentalDamage(player_guid: PlanetSideGUID, source_guid: PlanetSideGUID, amount: Int) extends SelfRespondingEvent
|
||||||
|
|
||||||
final case class DeactivateImplantSlot(player_guid: PlanetSideGUID, slot: Int) extends SelfRespondingEvent
|
final case class DeactivateImplantSlot(player_guid: PlanetSideGUID, slot: Int) extends SelfRespondingEvent
|
||||||
|
|
@ -153,8 +149,6 @@ object AvatarAction {
|
||||||
final case class StowEquipment(target_guid: PlanetSideGUID, slot: Int, item: Equipment)
|
final case class StowEquipment(target_guid: PlanetSideGUID, slot: Int, item: Equipment)
|
||||||
extends SelfRespondingEvent
|
extends SelfRespondingEvent
|
||||||
|
|
||||||
final case class SendResponseTargeted(target_guid: PlanetSideGUID, msg: PlanetSideGamePacket) extends SelfRespondingEvent
|
|
||||||
|
|
||||||
final case class TerminalOrderResult(terminal_guid: PlanetSideGUID, action: TransactionType.Value, result: Boolean)
|
final case class TerminalOrderResult(terminal_guid: PlanetSideGUID, action: TransactionType.Value, result: Boolean)
|
||||||
extends SelfRespondingEvent
|
extends SelfRespondingEvent
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,8 @@
|
||||||
package net.psforever.services.avatar
|
package net.psforever.services.avatar
|
||||||
|
|
||||||
import akka.actor.{ActorContext, ActorRef, Props}
|
import akka.actor.{ActorContext, ActorRef, Props}
|
||||||
import net.psforever.objects.zones.Zone
|
|
||||||
import net.psforever.services.avatar.support.{CorpseRemovalActor, DroppedItemRemover}
|
import net.psforever.services.avatar.support.{CorpseRemovalActor, DroppedItemRemover}
|
||||||
import net.psforever.services.base.{EventServiceSupport, GenericEventServiceWithCacheAndSupport, GenericMessageEnvelope}
|
import net.psforever.services.base.{EventServiceSupport, EventSystemStamp, GenericEventServiceWithCacheAndSupport}
|
||||||
|
|
||||||
case object CorpseRemovalSupport
|
case object CorpseRemovalSupport
|
||||||
extends EventServiceSupport {
|
extends EventServiceSupport {
|
||||||
|
|
@ -22,12 +21,10 @@ case object LitterRemovalSupport
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class AvatarService(zone: Zone)
|
case object AvatarStamp extends EventSystemStamp
|
||||||
extends GenericEventServiceWithCacheAndSupport[AvatarServiceResponse](
|
|
||||||
busName = "Avatar",
|
class AvatarService
|
||||||
|
extends GenericEventServiceWithCacheAndSupport(
|
||||||
|
stamp = AvatarStamp,
|
||||||
eventSupportServices = List(CorpseRemovalSupport, LitterRemovalSupport)
|
eventSupportServices = List(CorpseRemovalSupport, LitterRemovalSupport)
|
||||||
) {
|
)
|
||||||
protected def composeResponseEnvelope(msg: GenericMessageEnvelope): AvatarServiceResponse = {
|
|
||||||
AvatarServiceResponse(formatChannelOnBusName(msg.channel), msg.filter, msg.msg.response())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ package net.psforever.services.avatar
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.services.{RemoverActor, Service}
|
import net.psforever.services.{RemoverActor, Service}
|
||||||
import net.psforever.services.avatar.AvatarAction.{DropItem, PickupItem, Release}
|
import net.psforever.services.avatar.AvatarAction.{DropItem, PickupItem, Release}
|
||||||
import net.psforever.services.base.{EventMessage, GenericMessageToSupportEnvelope, GenericMessageToSupportEnvelopeOnly, MessageEnvelope}
|
import net.psforever.services.base.envelope.MessageEnvelope
|
||||||
|
import net.psforever.services.base.message.EventMessage
|
||||||
|
import net.psforever.services.base.{GenericSupportEnvelope, GenericSupportEnvelopeOnly}
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
object AvatarServiceMessage {
|
object AvatarServiceMessage {
|
||||||
|
|
@ -16,11 +18,11 @@ object AvatarServiceMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class ReleaseMessage(
|
final case class ReleaseMessage(
|
||||||
channel: String,
|
originalChannel: String,
|
||||||
filter: PlanetSideGUID,
|
filter: PlanetSideGUID,
|
||||||
msg: Release
|
msg: Release
|
||||||
)
|
)
|
||||||
extends GenericMessageToSupportEnvelope {
|
extends GenericSupportEnvelope {
|
||||||
def supportLabel: String = "undertaker"
|
def supportLabel: String = "undertaker"
|
||||||
def supportMessage: Any = {
|
def supportMessage: Any = {
|
||||||
val Release(player, zone, time) = msg
|
val Release(player, zone, time) = msg
|
||||||
|
|
@ -34,12 +36,12 @@ object ReleaseMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class PickupItemMessage(
|
final case class PickupItemMessage(
|
||||||
channel: String,
|
originalChannel: String,
|
||||||
filter: PlanetSideGUID,
|
filter: PlanetSideGUID,
|
||||||
msg: PickupItem,
|
msg: PickupItem,
|
||||||
zone: Zone
|
zone: Zone
|
||||||
)
|
)
|
||||||
extends GenericMessageToSupportEnvelope {
|
extends GenericSupportEnvelope {
|
||||||
def supportLabel: String = "janitor"
|
def supportLabel: String = "janitor"
|
||||||
def supportMessage: Any = {
|
def supportMessage: Any = {
|
||||||
val PickupItem(item, _) = msg
|
val PickupItem(item, _) = msg
|
||||||
|
|
@ -53,12 +55,12 @@ object PickupItemMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class DropItemMessage(
|
final case class DropItemMessage(
|
||||||
channel: String,
|
originalChannel: String,
|
||||||
filter: PlanetSideGUID,
|
filter: PlanetSideGUID,
|
||||||
msg: DropItem,
|
msg: DropItem,
|
||||||
zone: Zone
|
zone: Zone
|
||||||
)
|
)
|
||||||
extends GenericMessageToSupportEnvelope {
|
extends GenericSupportEnvelope {
|
||||||
def supportLabel: String = "janitor"
|
def supportLabel: String = "janitor"
|
||||||
def supportMessage: Any = {
|
def supportMessage: Any = {
|
||||||
val DropItem(item) = msg
|
val DropItem(item) = msg
|
||||||
|
|
@ -72,11 +74,11 @@ object DropItemMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class CorpseEnvelope(supportMessage: Any)
|
final case class CorpseEnvelope(supportMessage: Any)
|
||||||
extends GenericMessageToSupportEnvelopeOnly {
|
extends GenericSupportEnvelopeOnly {
|
||||||
def supportLabel: String = "undertaker"
|
def supportLabel: String = "undertaker"
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class GroundEnvelope(supportMessage: Any)
|
final case class GroundEnvelope(supportMessage: Any)
|
||||||
extends GenericMessageToSupportEnvelopeOnly {
|
extends GenericSupportEnvelopeOnly {
|
||||||
def supportLabel: String = "janitor"
|
def supportLabel: String = "janitor"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
// Copyright (c) 2017 PSForever
|
// Copyright (c) 2017 PSForever
|
||||||
package net.psforever.services.avatar
|
package net.psforever.services.avatar
|
||||||
|
|
||||||
|
import net.psforever.services.base.message.EventResponse
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
import net.psforever.services.base.{EventResponse, GenericResponseEnvelope}
|
import net.psforever.services.base.EventSystemStamp
|
||||||
|
import net.psforever.services.base.envelope.GenericResponseEnvelope
|
||||||
|
|
||||||
final case class AvatarServiceResponse(
|
final case class AvatarServiceResponse(
|
||||||
channel: String,
|
channel: String,
|
||||||
filter: PlanetSideGUID,
|
filter: PlanetSideGUID,
|
||||||
reply: EventResponse
|
reply: EventResponse
|
||||||
) extends GenericResponseEnvelope
|
) extends GenericResponseEnvelope {
|
||||||
|
def stamp: EventSystemStamp = AvatarStamp
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.Player
|
||||||
import net.psforever.types.ExoSuitType
|
import net.psforever.types.ExoSuitType
|
||||||
import net.psforever.services.RemoverActor
|
import net.psforever.services.RemoverActor
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import net.psforever.objects.equipment.Equipment
|
||||||
import net.psforever.objects.guid.{GUIDTask, TaskBundle}
|
import net.psforever.objects.guid.{GUIDTask, TaskBundle}
|
||||||
import net.psforever.services.RemoverActor
|
import net.psforever.services.RemoverActor
|
||||||
import net.psforever.services.avatar.AvatarServiceMessage
|
import net.psforever.services.avatar.AvatarServiceMessage
|
||||||
import net.psforever.services.base.messages.ObjectDelete
|
import net.psforever.services.base.message.ObjectDelete
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,32 +3,23 @@ package net.psforever.services.base
|
||||||
|
|
||||||
import akka.actor.Actor
|
import akka.actor.Actor
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
import net.psforever.services.base.bus.{AllGenericBusMsg, GenericEventBus, GenericEventBusResponse}
|
import net.psforever.services.base.bus.GenericEventBus
|
||||||
|
import net.psforever.services.base.envelope.{GenericMessageEnvelope, GenericResponseEnvelope}
|
||||||
import org.log4s.Logger
|
import org.log4s.Logger
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
|
|
||||||
trait GenericResponseEnvelope
|
trait EventSystemStamp
|
||||||
extends GenericEventBusResponse {
|
|
||||||
def reply: EventResponse
|
|
||||||
}
|
|
||||||
|
|
||||||
trait GenericMessageEnvelope
|
abstract class GenericEventService(stamp: EventSystemStamp)
|
||||||
extends AllGenericBusMsg {
|
|
||||||
def msg: EventMessage
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class GenericEventService[OUT <: GenericResponseEnvelope](busName: String)
|
|
||||||
extends Actor {
|
extends Actor {
|
||||||
protected lazy val log: Logger = org.log4s.getLogger(getClass.getSimpleName)
|
protected lazy val log: Logger = org.log4s.getLogger(getClass.getSimpleName)
|
||||||
|
|
||||||
protected val eventBus: GenericEventBus[OUT] = new GenericEventBus[OUT]
|
protected val eventBus: GenericEventBus = new GenericEventBus
|
||||||
|
|
||||||
def BusName: String = busName
|
|
||||||
|
|
||||||
private def commonJoinBehavior: Receive = {
|
private def commonJoinBehavior: Receive = {
|
||||||
case Service.Join(channel) =>
|
case Service.Join(channel) =>
|
||||||
val path = formatChannelOnBusName(channel)
|
val path = formatChannel(channel)
|
||||||
val who = sender()
|
val who = sender()
|
||||||
eventBus.subscribe(who, path)
|
eventBus.subscribe(who, path)
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +29,7 @@ abstract class GenericEventService[OUT <: GenericResponseEnvelope](busName: Stri
|
||||||
eventBus.unsubscribe(sender())
|
eventBus.unsubscribe(sender())
|
||||||
|
|
||||||
case Service.Leave(Some(channel)) =>
|
case Service.Leave(Some(channel)) =>
|
||||||
val path = formatChannelOnBusName(channel)
|
val path = formatChannel(channel)
|
||||||
eventBus.unsubscribe(sender(), path)
|
eventBus.unsubscribe(sender(), path)
|
||||||
|
|
||||||
case Service.LeaveAll() =>
|
case Service.LeaveAll() =>
|
||||||
|
|
@ -62,7 +53,9 @@ abstract class GenericEventService[OUT <: GenericResponseEnvelope](busName: Stri
|
||||||
eventBus.publish(composeResponseEnvelope(msg))
|
eventBus.publish(composeResponseEnvelope(msg))
|
||||||
}
|
}
|
||||||
|
|
||||||
protected def composeResponseEnvelope(@unused msg: GenericMessageEnvelope): OUT
|
protected def composeResponseEnvelope(@unused msg: GenericMessageEnvelope): GenericResponseEnvelope = {
|
||||||
|
msg.response(stamp, formatChannel)
|
||||||
|
}
|
||||||
|
|
||||||
protected def formatChannelOnBusName(channel: String): String = s"/$channel/$busName"
|
protected def formatChannel(channel: String): String = s"/$channel"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,24 +2,31 @@
|
||||||
package net.psforever.services.base
|
package net.psforever.services.base
|
||||||
|
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
|
import net.psforever.services.base.envelope.{GenericMessageEnvelope, MessageEnvelope, MessageTransformationBehavior}
|
||||||
|
import net.psforever.services.base.message.EventMessage
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
import scala.collection.concurrent.{Map => CMap}
|
import scala.collection.concurrent.{Map => CMap}
|
||||||
import scala.jdk.CollectionConverters._
|
import scala.jdk.CollectionConverters._
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Adapted from the rating limiting code in https://github.com/Pinapse/giant with permission
|
Adapted from the rating limiting code in https://github.com/Pinapse/giant with permission
|
||||||
*/
|
*/
|
||||||
|
|
||||||
trait CachedGenericEventMessageEnvelope
|
trait CachedGenericEventMessageEnvelope
|
||||||
extends GenericMessageEnvelope {
|
extends MessageTransformationBehavior {
|
||||||
def guid: PlanetSideGUID
|
def guid: PlanetSideGUID
|
||||||
}
|
}
|
||||||
|
|
||||||
final case class CachedMessage(guid: PlanetSideGUID, channel: String, filter: PlanetSideGUID, msg: EventMessage)
|
final case class CachedMessage(
|
||||||
extends CachedGenericEventMessageEnvelope
|
guid: PlanetSideGUID,
|
||||||
|
originalChannel: String,
|
||||||
|
override val filter: PlanetSideGUID,
|
||||||
|
override val msg: EventMessage
|
||||||
|
) extends CachedGenericEventMessageEnvelope {
|
||||||
|
assert(guid != Service.defaultPlayerGUID, "can not cache message under default GUID")
|
||||||
|
}
|
||||||
|
|
||||||
object CachedMessage {
|
object CachedMessage {
|
||||||
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): GenericMessageEnvelope = {
|
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): GenericMessageEnvelope = {
|
||||||
|
|
@ -31,31 +38,13 @@ object CachedMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object CachedGenericEventMessageEnvelope {
|
|
||||||
def apply(channel: String, filter: PlanetSideGUID, msg: EventMessage): GenericMessageEnvelope = {
|
|
||||||
if (filter == Service.defaultPlayerGUID) {
|
|
||||||
MessageEnvelope(channel, filter, msg)
|
|
||||||
} else {
|
|
||||||
CachedMessage(filter, channel, filter, msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def apply(guid: PlanetSideGUID, channel: String, filter: PlanetSideGUID, msg: EventMessage): GenericMessageEnvelope = {
|
|
||||||
if (guid == Service.defaultPlayerGUID) {
|
|
||||||
MessageEnvelope(channel, filter, msg)
|
|
||||||
} else {
|
|
||||||
CachedMessage(guid, channel, filter, msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private case object FlushCachedMessages
|
private case object FlushCachedMessages
|
||||||
|
|
||||||
abstract class GenericEventServiceWithCacheAndSupport[OUT <: GenericResponseEnvelope]
|
abstract class GenericEventServiceWithCacheAndSupport
|
||||||
(
|
(
|
||||||
busName: String,
|
stamp: EventSystemStamp,
|
||||||
eventSupportServices: List[EventServiceSupport]
|
eventSupportServices: List[EventServiceSupport]
|
||||||
) extends GenericEventServiceWithSupport[OUT](busName, eventSupportServices) {
|
) extends GenericEventServiceWithSupport(stamp, eventSupportServices) {
|
||||||
private val flushCacheWait: Long = 50 //milliseconds
|
private val flushCacheWait: Long = 50 //milliseconds
|
||||||
private var hasCachedMessages: Boolean = false
|
private var hasCachedMessages: Boolean = false
|
||||||
private var nextTimeToFlushCache: Long = 0L
|
private var nextTimeToFlushCache: Long = 0L
|
||||||
|
|
|
||||||
|
|
@ -3,40 +3,58 @@ package net.psforever.services.base
|
||||||
|
|
||||||
import akka.actor.{ActorContext, ActorRef}
|
import akka.actor.{ActorContext, ActorRef}
|
||||||
import net.psforever.services.Service
|
import net.psforever.services.Service
|
||||||
|
import net.psforever.services.base.envelope.{GenericMessageEnvelope, GenericResponseEnvelope, MessageTransformationBehavior, NoReply, Undelivered}
|
||||||
|
import net.psforever.services.base.message.{EventMessage, EventResponse, SelfRespondingEvent}
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
import scala.annotation.unused
|
import scala.annotation.unused
|
||||||
|
|
||||||
|
case object NoMessage extends SelfRespondingEvent
|
||||||
|
|
||||||
|
case object NoResponseEnvelope extends GenericResponseEnvelope {
|
||||||
|
def reply: EventResponse = NoReply
|
||||||
|
def stamp: EventSystemStamp = Undelivered
|
||||||
|
def channel: String = ""
|
||||||
|
def filter: PlanetSideGUID = Service.defaultPlayerGUID
|
||||||
|
}
|
||||||
|
|
||||||
trait EventServiceSupport {
|
trait EventServiceSupport {
|
||||||
def label: String
|
def label: String
|
||||||
def constructor(@unused context: ActorContext): ActorRef
|
def constructor(@unused context: ActorContext): ActorRef
|
||||||
}
|
}
|
||||||
|
|
||||||
trait GenericMessageToSupportEnvelope
|
sealed trait GenericMessageToSupport {
|
||||||
extends GenericMessageEnvelope {
|
|
||||||
def supportLabel: String
|
def supportLabel: String
|
||||||
def supportMessage: Any
|
def supportMessage: Any
|
||||||
}
|
}
|
||||||
|
|
||||||
trait GenericMessageToSupportEnvelopeOnly
|
trait GenericSupportEnvelope
|
||||||
extends GenericMessageToSupportEnvelope {
|
extends GenericMessageToSupport
|
||||||
|
with MessageTransformationBehavior
|
||||||
|
|
||||||
|
trait GenericSupportEnvelopeOnly
|
||||||
|
extends GenericMessageToSupport
|
||||||
|
with GenericMessageEnvelope {
|
||||||
|
def originalChannel: String = ""
|
||||||
def channel: String = ""
|
def channel: String = ""
|
||||||
def filter: PlanetSideGUID = Service.defaultPlayerGUID
|
def filter: PlanetSideGUID = Service.defaultPlayerGUID
|
||||||
def msg: EventMessage = null
|
def msg: EventMessage = NoMessage
|
||||||
|
|
||||||
|
def response(@unused stamp: EventSystemStamp, @unused sendToChannel: String => String): GenericResponseEnvelope = NoResponseEnvelope
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class GenericEventServiceWithSupport[OUT <: GenericResponseEnvelope]
|
abstract class GenericEventServiceWithSupport
|
||||||
(
|
(
|
||||||
busName: String,
|
stamp: EventSystemStamp,
|
||||||
eventSupportServices: List[EventServiceSupport]
|
eventSupportServices: List[EventServiceSupport]
|
||||||
) extends GenericEventService[OUT](busName) {
|
) extends GenericEventService(stamp) {
|
||||||
|
|
||||||
private val supportServices: Map[String, ActorRef] =
|
private val supportServices: Map[String, ActorRef] =
|
||||||
eventSupportServices
|
eventSupportServices
|
||||||
.map { supportService => (supportService.label, supportService.constructor(context)) }
|
.map { supportService => (supportService.label, supportService.constructor(context)) }
|
||||||
.toMap[String, ActorRef]
|
.toMap[String, ActorRef]
|
||||||
|
|
||||||
private def forwardToSupport(msg: GenericMessageToSupportEnvelope): Unit = {
|
private def forwardToSupport(msg: GenericMessageToSupport): Unit = {
|
||||||
supportServices
|
supportServices
|
||||||
.get(msg.supportLabel)
|
.get(msg.supportLabel)
|
||||||
.map { support =>
|
.map { support =>
|
||||||
|
|
@ -50,12 +68,12 @@ abstract class GenericEventServiceWithSupport[OUT <: GenericResponseEnvelope]
|
||||||
|
|
||||||
override protected def handleMessage(event: GenericMessageEnvelope): Unit = {
|
override protected def handleMessage(event: GenericMessageEnvelope): Unit = {
|
||||||
event match {
|
event match {
|
||||||
case msg: GenericMessageToSupportEnvelopeOnly =>
|
case msg: GenericSupportEnvelopeOnly =>
|
||||||
forwardToSupport(msg)
|
forwardToSupport(msg)
|
||||||
case msg: GenericMessageToSupportEnvelope =>
|
case msg: GenericSupportEnvelope =>
|
||||||
forwardToSupport(msg)
|
forwardToSupport(msg)
|
||||||
eventBus.publish(composeResponseEnvelope(event))
|
eventBus.publish(composeResponseEnvelope(event))
|
||||||
case _ =>
|
case event =>
|
||||||
eventBus.publish(composeResponseEnvelope(event))
|
eventBus.publish(composeResponseEnvelope(event))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
// 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
|
|
||||||
|
|
@ -3,19 +3,11 @@ package net.psforever.services.base.bus
|
||||||
|
|
||||||
import akka.event.{ActorEventBus, SubchannelClassification}
|
import akka.event.{ActorEventBus, SubchannelClassification}
|
||||||
import akka.util.Subclassification
|
import akka.util.Subclassification
|
||||||
import net.psforever.types.PlanetSideGUID
|
import net.psforever.services.base.envelope.GenericResponseEnvelope
|
||||||
|
|
||||||
trait AllGenericBusMsg {
|
class GenericEventBus
|
||||||
def channel: String
|
|
||||||
def filter: PlanetSideGUID
|
|
||||||
}
|
|
||||||
|
|
||||||
trait GenericEventBusResponse
|
|
||||||
extends AllGenericBusMsg
|
|
||||||
|
|
||||||
class GenericEventBus[A <: GenericEventBusResponse]
|
|
||||||
extends ActorEventBus with SubchannelClassification {
|
extends ActorEventBus with SubchannelClassification {
|
||||||
type Event = A
|
type Event = GenericResponseEnvelope
|
||||||
type Classifier = String
|
type Classifier = String
|
||||||
|
|
||||||
protected def classify(event: Event): Classifier = event.channel
|
protected def classify(event: Event): Classifier = event.channel
|
||||||
|
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
||||||
// Copyright (c) 2026 PSForever
|
|
||||||
package net.psforever.services.base.bus
|
|
||||||
|
|
||||||
import net.psforever.types.PlanetSideGUID
|
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
|
||||||
import scala.annotation.unused
|
|
||||||
import scala.collection.concurrent.{Map => CMap}
|
|
||||||
import scala.jdk.CollectionConverters._
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adapted from the rating limiting code in https://github.com/Pinapse/giant with permission
|
|
||||||
*/
|
|
||||||
|
|
||||||
trait GenericGuidEventBusResponse
|
|
||||||
extends GenericEventBusResponse {
|
|
||||||
def guid: PlanetSideGUID
|
|
||||||
def inner: Any
|
|
||||||
}
|
|
||||||
|
|
||||||
class RateLimitScheduler[A <: GenericGuidEventBusResponse](eventBus: GenericEventBus[A], interval: Long) extends Thread {
|
|
||||||
private var hasWork: Boolean = false
|
|
||||||
private var working: Boolean = false
|
|
||||||
private var timeOfLastFlush: Long = 0L
|
|
||||||
private val buffer: CMap[String, CMap[String, CMap[PlanetSideGUID, A]]] =
|
|
||||||
new ConcurrentHashMap[String, CMap[String, CMap[PlanetSideGUID, A]]]().asScala
|
|
||||||
|
|
||||||
override def run(): Unit = {
|
|
||||||
while (working) {
|
|
||||||
//originally, there was a Thread.sleep(interval) here, replaced by timeOfLastFlush logic
|
|
||||||
flushBuffer()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def push(event: A): Unit = {
|
|
||||||
val eventClassName = event.inner.getClass.getName
|
|
||||||
val cache =
|
|
||||||
buffer
|
|
||||||
.getOrElseUpdate(event.channel, new ConcurrentHashMap[String, CMap[PlanetSideGUID, A]]().asScala)
|
|
||||||
.getOrElseUpdate(eventClassName, new ConcurrentHashMap[PlanetSideGUID, A]().asScala)
|
|
||||||
cache.updateWith(event.guid) { _ => Some(event) }
|
|
||||||
hasWork = true
|
|
||||||
}
|
|
||||||
|
|
||||||
def flushBuffer(): Unit = {
|
|
||||||
val curr = System.currentTimeMillis()
|
|
||||||
if (hasWork && timeOfLastFlush + interval <= curr) {
|
|
||||||
flushBufferNow(curr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def flushBufferNow(curr: Long = System.currentTimeMillis()): Unit = {
|
|
||||||
buffer.foreachEntry { (_, map) =>
|
|
||||||
map.foreachEntry { (_, map) =>
|
|
||||||
map.foreachEntry { (_, event) =>
|
|
||||||
eventBus.truePublish(event)
|
|
||||||
}
|
|
||||||
map.clear()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
hasWork = false
|
|
||||||
timeOfLastFlush = curr
|
|
||||||
}
|
|
||||||
|
|
||||||
override def start(): Unit = {
|
|
||||||
working = true
|
|
||||||
timeOfLastFlush = System.currentTimeMillis()
|
|
||||||
super.start()
|
|
||||||
}
|
|
||||||
|
|
||||||
def isRunning: Boolean = {
|
|
||||||
working
|
|
||||||
}
|
|
||||||
|
|
||||||
def stopRunning(): Unit = {
|
|
||||||
working = false
|
|
||||||
flushBufferNow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class GenericGuidEventBus[A <: GenericGuidEventBusResponse](rateLimit: Double)
|
|
||||||
extends GenericEventBus[A] {
|
|
||||||
private val rateLimitedDispatch = new RateLimitScheduler[A](
|
|
||||||
eventBus = this,
|
|
||||||
scala.math.floor(1000.0 / rateLimit).toInt
|
|
||||||
)
|
|
||||||
rateLimitedDispatch.start()
|
|
||||||
|
|
||||||
override def publish(event: Event): Unit = {
|
|
||||||
if (rateLimit > 0 && shouldRateLimit(event) && rateLimitedDispatch.isRunning) {
|
|
||||||
rateLimitedDispatch.push(event)
|
|
||||||
} else {
|
|
||||||
truePublish(event)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def shouldRateLimit(@unused event: Event): Boolean
|
|
||||||
|
|
||||||
// override protected def publish(event: Event, subscriber: Subscriber): Unit = {
|
|
||||||
// val trimmedEventClassName =
|
|
||||||
// event.inner.getClass().getName().stripPrefix(event.inner.getClass.getPackageName() + ".").stripSuffix("$")
|
|
||||||
// GenericGuidEventBus.genericGuidEventBusPublish.labels(event.channel, trimmedEventClassName).inc()
|
|
||||||
// subscriber ! event
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
// Copyright (c) 2026 PSForever
|
||||||
|
package net.psforever.services.base.envelope
|
||||||
|
|
||||||
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
|
trait AllEnvelopes {
|
||||||
|
def channel: String
|
||||||
|
def filter: PlanetSideGUID
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright (c) 2026 PSForever
|
||||||
|
package net.psforever.services.base.envelope
|
||||||
|
|
||||||
|
import net.psforever.services.base.EventSystemStamp
|
||||||
|
import net.psforever.services.base.message.EventMessage
|
||||||
|
import net.psforever.types.PlanetSideGUID
|
||||||
|
|
||||||
|
trait GenericMessageEnvelope
|
||||||
|
extends AllEnvelopes {
|
||||||
|
def originalChannel: String
|
||||||
|
def msg: EventMessage
|
||||||
|
def response(stamp: EventSystemStamp, sendToChannel: String => String): GenericResponseEnvelope
|
||||||
|
}
|
||||||
|
|
||||||
|
object GenericMessageEnvelope {
|
||||||
|
def unapply(obj: GenericMessageEnvelope): Option[(String, PlanetSideGUID, EventMessage)] = {
|
||||||
|
Some((obj.originalChannel, obj.filter, obj.msg))
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue