Merge pull request #126 from SouNourS/ReleaseAvatarRequestMessage

Packet: ReleaseAvatarRequestMessage
This commit is contained in:
Fate-JH 2017-04-20 18:25:23 -04:00 committed by GitHub
commit 1584c20d25
4 changed files with 50 additions and 2 deletions

View file

@ -522,7 +522,7 @@ object GamePacketOpcode extends Enumeration {
case 0xa9 => game.AvatarGrenadeStateMessage.decode
case 0xaa => noDecoder(UnknownMessage170)
case 0xab => noDecoder(UnknownMessage171)
case 0xac => noDecoder(ReleaseAvatarRequestMessage)
case 0xac => game.ReleaseAvatarRequestMessage.decode
case 0xad => game.AvatarDeadStateMessage.decode
case 0xae => noDecoder(CSAssistMessage)
case 0xaf => noDecoder(CSAssistCommentMessage)

View file

@ -31,7 +31,7 @@ final case class ControlPacket(opcode : ControlPacketOpcode.Value,
object PacketCoding {
/// A lower bound on the packet size
final val PLANETSIDE_MIN_PACKET_SIZE = 2
final val PLANETSIDE_MIN_PACKET_SIZE = 1
/**
* Given a full and complete planetside packet as it would be sent on the wire, attempt to

View file

@ -0,0 +1,21 @@
// Copyright (c) 2017 PSForever
package net.psforever.packet.game
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
import scodec.Codec
/** Packet send by client when clic on button after death
* https://streamable.com/4r16m
*/
final case class ReleaseAvatarRequestMessage()
extends PlanetSideGamePacket {
type Packet = ReleaseAvatarRequestMessage
def opcode = GamePacketOpcode.ReleaseAvatarRequestMessage
def encode = ReleaseAvatarRequestMessage.encode(this)
}
object ReleaseAvatarRequestMessage extends Marshallable[ReleaseAvatarRequestMessage] {
implicit val codec : Codec[ReleaseAvatarRequestMessage] = PacketHelpers.emptyCodec(ReleaseAvatarRequestMessage())
}

View file

@ -0,0 +1,27 @@
// Copyright (c) 2017 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import scodec.bits.HexStringSyntax
class ReleaseAvatarRequestMessageTest extends Specification {
val string = hex"ac"
"decode" in {
PacketCoding.DecodePacket(string).require match {
case ReleaseAvatarRequestMessage() =>
ok
case _ =>
ko
}
}
"encode" in {
val msg = ReleaseAvatarRequestMessage()
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}