From cc3cd06bfb23eda77ebf28c65005ef371d714907 Mon Sep 17 00:00:00 2001 From: Aphedox Date: Thu, 11 Aug 2016 23:09:11 -0500 Subject: [PATCH] SetEmpireMessage --- .../psforever/packet/GamePacketOpcode.scala | 2 +- .../packet/game/SetEmpireMessage.scala | 21 +++++++++++++++++++ .../src/main/scala/WorldSessionActor.scala | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 common/src/main/scala/net/psforever/packet/game/SetEmpireMessage.scala diff --git a/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala b/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala index 4da688b3..fdd69be5 100644 --- a/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala +++ b/common/src/main/scala/net/psforever/packet/GamePacketOpcode.scala @@ -361,7 +361,7 @@ object GamePacketOpcode extends Enumeration { case ActionProgressMessage => noDecoder(opcode) case ActionCancelMessage => noDecoder(opcode) case ActionCancelAcknowledgeMessage => noDecoder(opcode) - case SetEmpireMessage => noDecoder(opcode) + case SetEmpireMessage => game.SetEmpireMessage.decode case EmoteMsg => game.EmoteMsg.decode case UnuseItemMessage => noDecoder(opcode) case ObjectDetachMessage => noDecoder(opcode) diff --git a/common/src/main/scala/net/psforever/packet/game/SetEmpireMessage.scala b/common/src/main/scala/net/psforever/packet/game/SetEmpireMessage.scala new file mode 100644 index 00000000..dc960220 --- /dev/null +++ b/common/src/main/scala/net/psforever/packet/game/SetEmpireMessage.scala @@ -0,0 +1,21 @@ +// Copyright (c) 2016 PSForever.net to present +package net.psforever.packet.game + +import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket} +import scodec.Codec +import scodec.codecs._ + +final case class SetEmpireMessage(continent_guid : PlanetSideGUID, + empire : PlanetSideEmpire.Value) + extends PlanetSideGamePacket { + type Packet = SetEmpireMessage + def opcode = GamePacketOpcode.SetEmpireMessage + def encode = SetEmpireMessage.encode(this) +} + +object SetEmpireMessage extends Marshallable[SetEmpireMessage] { + implicit val codec : Codec[SetEmpireMessage] = ( + ("continent_guid" | PlanetSideGUID.codec) :: + ("empire" | PlanetSideEmpire.codec) + ).as[SetEmpireMessage] +} diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index a3a531cd..1e1a49ed 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -140,6 +140,7 @@ class WorldSessionActor extends Actor with MDCContextAware { sendRawResponse(hex"31 85 6D 61 70 31 33 85 68 6F 6D 65 33 A4 9C 19 00 00 00 AE 30 5E 70 00 ") sendRawResponse(objectHex) + sendResponse(PacketCoding.CreateGamePacket(0, SetEmpireMessage(PlanetSideGUID(7), PlanetSideEmpire.VS))) sendResponse(PacketCoding.CreateGamePacket(0, ContinentalLockUpdateMessage(PlanetSideGUID(13), PlanetSideEmpire.VS))) // "The VS have captured the VS Sanctuary." sendResponse(PacketCoding.CreateGamePacket(0, BroadcastWarpgateUpdateMessage(PlanetSideGUID(13), PlanetSideGUID(1), 32))) // VS Sanctuary: Inactive Warpgate -> Broadcast Warpgate