mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
Packet: ObjectDeleteMessage
* Add ObjectDeleteMessage packet * Add ObjectDeleteMessage test * Add ObjectDeleteMessage handler stub
This commit is contained in:
parent
427429b34c
commit
dc6488edfc
|
|
@ -348,7 +348,7 @@ object GamePacketOpcode extends Enumeration {
|
||||||
case BindPlayerMessage => noDecoder(opcode)
|
case BindPlayerMessage => noDecoder(opcode)
|
||||||
case ObjectCreateMessage_Duplicate => noDecoder(opcode)
|
case ObjectCreateMessage_Duplicate => noDecoder(opcode)
|
||||||
case ObjectCreateMessage => game.ObjectCreateMessage.decode
|
case ObjectCreateMessage => game.ObjectCreateMessage.decode
|
||||||
case ObjectDeleteMessage => noDecoder(opcode)
|
case ObjectDeleteMessage => game.ObjectDeleteMessage.decode
|
||||||
case PingMsg => noDecoder(opcode)
|
case PingMsg => noDecoder(opcode)
|
||||||
case VehicleStateMessage => noDecoder(opcode)
|
case VehicleStateMessage => noDecoder(opcode)
|
||||||
case FrameVehicleStateMessage => noDecoder(opcode)
|
case FrameVehicleStateMessage => noDecoder(opcode)
|
||||||
|
|
|
||||||
|
|
@ -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 ObjectDeleteMessage(object_guid : PlanetSideGUID,
|
||||||
|
unk1 : Int)
|
||||||
|
extends PlanetSideGamePacket {
|
||||||
|
type Packet = ObjectDeleteMessage
|
||||||
|
def opcode = GamePacketOpcode.ObjectDeleteMessage
|
||||||
|
def encode = ObjectDeleteMessage.encode(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
object ObjectDeleteMessage extends Marshallable[ObjectDeleteMessage] {
|
||||||
|
implicit val codec : Codec[ObjectDeleteMessage] = (
|
||||||
|
("object_guid" | PlanetSideGUID.codec) ::
|
||||||
|
("unk1" | uintL(3))
|
||||||
|
).as[ObjectDeleteMessage]
|
||||||
|
}
|
||||||
|
|
@ -369,5 +369,26 @@ class GamePacketTest extends Specification {
|
||||||
pkt mustEqual string
|
pkt mustEqual string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"ObjectDeleteMessage" should {
|
||||||
|
val string = hex"19 4C00 00"
|
||||||
|
|
||||||
|
"decode" in {
|
||||||
|
PacketCoding.DecodePacket(string).require match {
|
||||||
|
case ObjectDeleteMessage(object_guid, unk1) =>
|
||||||
|
object_guid mustEqual PlanetSideGUID(76)
|
||||||
|
unk1 mustEqual 0
|
||||||
|
case default =>
|
||||||
|
ko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"encode" in {
|
||||||
|
val msg = ObjectDeleteMessage(PlanetSideGUID(76), 0)
|
||||||
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
|
pkt mustEqual string
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,11 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
||||||
|
|
||||||
case msg @ RequestDestroyMessage(object_guid) =>
|
case msg @ RequestDestroyMessage(object_guid) =>
|
||||||
log.info("RequestDestroy: " + msg)
|
log.info("RequestDestroy: " + msg)
|
||||||
|
// TODO: Make sure this is the correct response in all cases
|
||||||
|
sendResponse(PacketCoding.CreateGamePacket(0, ObjectDeleteMessage(object_guid, 0)))
|
||||||
|
|
||||||
|
case msg @ ObjectDeleteMessage(object_guid, unk1) =>
|
||||||
|
log.info("ObjectDelete: " + msg)
|
||||||
|
|
||||||
case default => log.debug(s"Unhandled GamePacket ${pkt}")
|
case default => log.debug(s"Unhandled GamePacket ${pkt}")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue