Packet: AvatarJumpMessage (#41)

* added AvatarJumpMessage packet

* I was advised to commit these chanegs first
This commit is contained in:
Fate-JH 2016-07-27 01:08:54 -04:00 committed by pschord
parent 13a096de60
commit 29cf96bafb
4 changed files with 44 additions and 1 deletions

View file

@ -382,7 +382,7 @@ object GamePacketOpcode extends Enumeration {
case SetCurrentAvatarMessage => game.SetCurrentAvatarMessage.decode
case ObjectHeldMessage => game.ObjectHeldMessage.decode
case WeaponFireMessage => game.WeaponFireMessage.decode
case AvatarJumpMessage => noDecoder(opcode)
case AvatarJumpMessage => game.AvatarJumpMessage.decode
case PickupItemMessage => noDecoder(opcode)
case DropItemMessage => game.DropItemMessage.decode
case InventoryStateMessage => noDecoder(opcode)

View file

@ -0,0 +1,20 @@
// 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._
import scodec.bits._
final case class AvatarJumpMessage(state : Boolean)
extends PlanetSideGamePacket {
type Packet = AvatarJumpMessage
def opcode = GamePacketOpcode.AvatarJumpMessage
def encode = AvatarJumpMessage.encode(this)
}
object AvatarJumpMessage extends Marshallable[AvatarJumpMessage] {
implicit val codec : Codec[AvatarJumpMessage] = (
("state" | bool)
).as[AvatarJumpMessage]
}

View file

@ -350,6 +350,26 @@ class GamePacketTest extends Specification {
}
}
"AvatarJumpMessage" should {
val string = hex"35 80"
"decode" in {
PacketCoding.DecodePacket(string).require match {
case AvatarJumpMessage(state) =>
state mustEqual true
case default =>
ko
}
}
"encode" in {
val msg = AvatarJumpMessage(true)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}
"RequestDestroyMessage" should {
val string = hex"2D A49C"

View file

@ -178,6 +178,9 @@ class WorldSessionActor extends Actor with MDCContextAware {
case msg @ ObjectHeldMessage(avatar_guid, held_holsters, unk1) =>
log.info("ObjectHeld: " + msg)
case msg @ AvatarJumpMessage(state) =>
//log.info("AvatarJump: " + msg)
case msg @ RequestDestroyMessage(object_guid) =>
log.info("RequestDestroy: " + msg)
// TODO: Make sure this is the correct response in all cases