mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-19 18:44:45 +00:00
outfit_id is uint32L
This commit is contained in:
parent
f977ea8e6f
commit
6e23b701a6
|
|
@ -11,7 +11,7 @@ import shapeless.{::, HNil}
|
||||||
|
|
||||||
final case class OutfitEvent(
|
final case class OutfitEvent(
|
||||||
request_type: OutfitEvent.RequestType.Type,
|
request_type: OutfitEvent.RequestType.Type,
|
||||||
outfit_guid: PlanetSideGUID,
|
outfit_guid: Long,
|
||||||
action: OutfitEventAction
|
action: OutfitEventAction
|
||||||
) extends PlanetSideGamePacket {
|
) extends PlanetSideGamePacket {
|
||||||
type Packet = OutfitEvent
|
type Packet = OutfitEvent
|
||||||
|
|
@ -37,8 +37,6 @@ object OutfitEventAction {
|
||||||
)
|
)
|
||||||
|
|
||||||
final case class OutfitInfo(
|
final case class OutfitInfo(
|
||||||
unk1: Int,
|
|
||||||
unk2: Int,
|
|
||||||
outfit_name: String,
|
outfit_name: String,
|
||||||
unk6: Long,
|
unk6: Long,
|
||||||
unk7: Long,
|
unk7: Long,
|
||||||
|
|
@ -62,8 +60,6 @@ object OutfitEventAction {
|
||||||
) extends OutfitEventAction(code = 0)
|
) extends OutfitEventAction(code = 0)
|
||||||
|
|
||||||
final case class Unk1(
|
final case class Unk1(
|
||||||
unk0: Int,
|
|
||||||
unk1: Int,
|
|
||||||
unk2: Int,
|
unk2: Int,
|
||||||
unk3: Boolean,
|
unk3: Boolean,
|
||||||
) extends OutfitEventAction(code = 1)
|
) extends OutfitEventAction(code = 1)
|
||||||
|
|
@ -73,24 +69,19 @@ object OutfitEventAction {
|
||||||
) extends OutfitEventAction(code = 2)
|
) extends OutfitEventAction(code = 2)
|
||||||
|
|
||||||
final case class Unk3(
|
final case class Unk3(
|
||||||
unk0: Int,
|
|
||||||
unk1: Int,
|
|
||||||
unk2: Int,
|
unk2: Int,
|
||||||
unk3: Boolean,
|
unk3: Boolean,
|
||||||
data: BitVector,
|
data: BitVector,
|
||||||
) extends OutfitEventAction(code = 3)
|
) extends OutfitEventAction(code = 3)
|
||||||
|
|
||||||
final case class Unk4(
|
final case class Unk4(
|
||||||
unk0: Int,
|
new_outfit_id: Long,
|
||||||
unk1: Int,
|
|
||||||
unk2: Int,
|
|
||||||
unk3: Int,
|
unk3: Int,
|
||||||
unk4: Boolean,
|
unk4: Boolean,
|
||||||
data: BitVector,
|
data: BitVector,
|
||||||
) extends OutfitEventAction(code = 4)
|
) extends OutfitEventAction(code = 4)
|
||||||
|
|
||||||
final case class Unk5(
|
final case class Unk5(
|
||||||
unk0: Int,
|
|
||||||
unk1: Int,
|
unk1: Int,
|
||||||
unk2: Int,
|
unk2: Int,
|
||||||
unk3: Int,
|
unk3: Int,
|
||||||
|
|
@ -128,8 +119,6 @@ object OutfitEventAction {
|
||||||
)
|
)
|
||||||
|
|
||||||
private val InfoCodec: Codec[OutfitInfo] = (
|
private val InfoCodec: Codec[OutfitInfo] = (
|
||||||
uint8L ::
|
|
||||||
uint8L ::
|
|
||||||
PacketHelpers.encodedWideStringAligned(5) ::
|
PacketHelpers.encodedWideStringAligned(5) ::
|
||||||
uint32L ::
|
uint32L ::
|
||||||
uint32L ::
|
uint32L ::
|
||||||
|
|
@ -148,12 +137,12 @@ object OutfitEventAction {
|
||||||
uintL(7)
|
uintL(7)
|
||||||
).xmap[OutfitInfo](
|
).xmap[OutfitInfo](
|
||||||
{
|
{
|
||||||
case u1 :: u2 :: outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil =>
|
case outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil =>
|
||||||
OutfitInfo(u1, u2, outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123)
|
OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitInfo(u1, u2, outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123) =>
|
case OutfitInfo(outfit_name, u6, u7, member_count, u9, outfit_rank_names, motd, u19, u20, u21, u21_2, created_timestamp, u23, u24, u25, u123) =>
|
||||||
u1 :: u2 :: outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil
|
outfit_name :: u6 :: u7 :: member_count :: u9 :: outfit_rank_names :: motd :: u19 :: u20 :: u21 :: u21_2 :: created_timestamp :: u23 :: u24 :: u25 :: u123 :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -171,18 +160,16 @@ object OutfitEventAction {
|
||||||
)
|
)
|
||||||
|
|
||||||
val Unk1Codec: Codec[Unk1] = (
|
val Unk1Codec: Codec[Unk1] = (
|
||||||
uint8L ::
|
|
||||||
uint8L ::
|
|
||||||
uint4L ::
|
uint4L ::
|
||||||
bool
|
bool
|
||||||
).xmap[Unk1](
|
).xmap[Unk1](
|
||||||
{
|
{
|
||||||
case u0 :: u1 :: u2 :: u3 :: HNil =>
|
case u2 :: u3 :: HNil =>
|
||||||
Unk1(u0, u1, u2, u3)
|
Unk1(u2, u3)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case Unk1(u0, u1, u2, u3) =>
|
case Unk1(u2, u3) =>
|
||||||
u0 :: u1 :: u2 :: u3 :: HNil
|
u2 :: u3 :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -200,42 +187,37 @@ object OutfitEventAction {
|
||||||
)
|
)
|
||||||
|
|
||||||
val Unk3Codec: Codec[Unk3] = (
|
val Unk3Codec: Codec[Unk3] = (
|
||||||
uint8L ::
|
|
||||||
uint8L ::
|
|
||||||
uint4L ::
|
uint4L ::
|
||||||
bool ::
|
bool ::
|
||||||
bits
|
bits
|
||||||
).xmap[Unk3](
|
).xmap[Unk3](
|
||||||
{
|
{
|
||||||
case u0 :: u1 :: u2 :: u3 :: data :: HNil =>
|
case u2 :: u3 :: data :: HNil =>
|
||||||
Unk3(u0, u1, u2, u3, data)
|
Unk3(u2, u3, data)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case Unk3(u0, u1, u2, u3, data) =>
|
case Unk3(u2, u3, data) =>
|
||||||
u0 :: u1 :: u2 :: u3 :: data :: HNil
|
u2 :: u3 :: data :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
val Unk4Codec: Codec[Unk4] = (
|
val Unk4Codec: Codec[Unk4] = ( // update outfit_id? // 2016.03.18 #10640 // after this packet the referenced id changes to the new one, old is not used again
|
||||||
uint16L ::
|
uint32L :: // real / other outfit_id
|
||||||
uint16L ::
|
|
||||||
uint16L ::
|
|
||||||
uint4L ::
|
uint4L ::
|
||||||
bool ::
|
bool ::
|
||||||
bits
|
bits
|
||||||
).xmap[Unk4](
|
).xmap[Unk4](
|
||||||
{
|
{
|
||||||
case u0 :: u1 :: u2 :: u3 :: u4 :: data :: HNil =>
|
case new_outfit_id :: u3 :: u4 :: data :: HNil =>
|
||||||
Unk4(u0, u1, u2, u3, u4, data)
|
Unk4(new_outfit_id, u3, u4, data)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case Unk4(u0, u1, u2, u3, u4, data) =>
|
case Unk4(new_outfit_id, u3, u4, data) =>
|
||||||
u0 :: u1 :: u2 ::u3 :: u4 :: data :: HNil
|
new_outfit_id ::u3 :: u4 :: data :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
val Unk5Codec: Codec[Unk5] = (
|
val Unk5Codec: Codec[Unk5] = (
|
||||||
uint16L ::
|
|
||||||
uint16L ::
|
uint16L ::
|
||||||
uint16L ::
|
uint16L ::
|
||||||
uint4L ::
|
uint4L ::
|
||||||
|
|
@ -243,12 +225,12 @@ object OutfitEventAction {
|
||||||
bits
|
bits
|
||||||
).xmap[Unk5](
|
).xmap[Unk5](
|
||||||
{
|
{
|
||||||
case u0 :: u1 :: u2 :: u3 :: u4 :: data :: HNil =>
|
case u1 :: u2 :: u3 :: u4 :: data :: HNil =>
|
||||||
Unk5(u0, u1, u2, u3, u4, data)
|
Unk5(u1, u2, u3, u4, data)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case Unk5(u0, u1, u2, u3, u4, data) =>
|
case Unk5(u1, u2, u3, u4, data) =>
|
||||||
u0 :: u1 :: u2 :: u3 :: u4 :: data :: HNil
|
u1 :: u2 :: u3 :: u4 :: data :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -342,7 +324,7 @@ object OutfitEvent extends Marshallable[OutfitEvent] {
|
||||||
|
|
||||||
implicit val codec: Codec[OutfitEvent] = (
|
implicit val codec: Codec[OutfitEvent] = (
|
||||||
("request_type" | RequestType.codec) >>:~ { request_type =>
|
("request_type" | RequestType.codec) >>:~ { request_type =>
|
||||||
("outfit_guid" | PlanetSideGUID.codec) ::
|
("outfit_guid" | uint32L) ::
|
||||||
("action" | selectFromType(request_type.id))
|
("action" | selectFromType(request_type.id))
|
||||||
}
|
}
|
||||||
).xmap[OutfitEvent](
|
).xmap[OutfitEvent](
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ package net.psforever.packet.game
|
||||||
|
|
||||||
import net.psforever.packet.GamePacketOpcode.Type
|
import net.psforever.packet.GamePacketOpcode.Type
|
||||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PacketHelpers, PlanetSideGamePacket}
|
||||||
import net.psforever.types.PlanetSideGUID
|
|
||||||
import scodec.{Attempt, Codec, Err}
|
import scodec.{Attempt, Codec, Err}
|
||||||
import scodec.bits.BitVector
|
import scodec.bits.BitVector
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
|
|
@ -11,8 +10,7 @@ import shapeless.{::, HNil}
|
||||||
|
|
||||||
final case class OutfitMembershipRequest(
|
final case class OutfitMembershipRequest(
|
||||||
request_type: OutfitMembershipRequest.RequestType.Type,
|
request_type: OutfitMembershipRequest.RequestType.Type,
|
||||||
avatar_guid: PlanetSideGUID, // avatar_guid and unk1 are related, might be Long instead
|
outfit_id: Long,
|
||||||
unk1: Int, //
|
|
||||||
action: OutfitMembershipRequestAction
|
action: OutfitMembershipRequestAction
|
||||||
) extends PlanetSideGamePacket {
|
) extends PlanetSideGamePacket {
|
||||||
type Packet = OutfitMembershipRequest
|
type Packet = OutfitMembershipRequest
|
||||||
|
|
@ -170,18 +168,17 @@ object OutfitMembershipRequest extends Marshallable[OutfitMembershipRequest] {
|
||||||
|
|
||||||
implicit val codec: Codec[OutfitMembershipRequest] = (
|
implicit val codec: Codec[OutfitMembershipRequest] = (
|
||||||
("request_type" | RequestType.codec) >>:~ { request_type =>
|
("request_type" | RequestType.codec) >>:~ { request_type =>
|
||||||
("avatar_guid" | PlanetSideGUID.codec) ::
|
("outfit_id" | uint32L) ::
|
||||||
("unk1" | uint16L) ::
|
|
||||||
("action" | selectFromType(request_type.id))
|
("action" | selectFromType(request_type.id))
|
||||||
}
|
}
|
||||||
).xmap[OutfitMembershipRequest](
|
).xmap[OutfitMembershipRequest](
|
||||||
{
|
{
|
||||||
case request_type :: avatar_guid :: u1 :: action :: HNil =>
|
case request_type :: outfit_id :: action :: HNil =>
|
||||||
OutfitMembershipRequest(request_type, avatar_guid, u1, action)
|
OutfitMembershipRequest(request_type, outfit_id, action)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitMembershipRequest(request_type, avatar_guid, u1, action) =>
|
case OutfitMembershipRequest(request_type, outfit_id, action) =>
|
||||||
request_type :: avatar_guid :: u1 :: action :: HNil
|
request_type :: outfit_id :: action :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,7 @@ import shapeless.{::, HNil}
|
||||||
final case class OutfitMembershipResponse(
|
final case class OutfitMembershipResponse(
|
||||||
response_type: OutfitMembershipResponse.ResponseType.Type,
|
response_type: OutfitMembershipResponse.ResponseType.Type,
|
||||||
unk0: Int,
|
unk0: Int,
|
||||||
avatar_guid: PlanetSideGUID, // avatar_guid and unk1 are related, might be Long instead
|
outfit_id: Long,
|
||||||
unk1: PlanetSideGUID, //
|
|
||||||
unk2: PlanetSideGUID,
|
unk2: PlanetSideGUID,
|
||||||
unk3: Int,
|
unk3: Int,
|
||||||
//unk4: Boolean,
|
//unk4: Boolean,
|
||||||
|
|
@ -223,8 +222,7 @@ object OutfitMembershipResponse extends Marshallable[OutfitMembershipResponse] {
|
||||||
implicit val codec: Codec[OutfitMembershipResponse] = (
|
implicit val codec: Codec[OutfitMembershipResponse] = (
|
||||||
("response_type" | ResponseType.codec) >>:~ { response_type =>
|
("response_type" | ResponseType.codec) >>:~ { response_type =>
|
||||||
("unk0" | uint8L) ::
|
("unk0" | uint8L) ::
|
||||||
("avatar_guid" | PlanetSideGUID.codec) ::
|
("outfit_id" | uint32L) ::
|
||||||
("outfit_guid-1" | PlanetSideGUID.codec) ::
|
|
||||||
("target_guid" | PlanetSideGUID.codec) ::
|
("target_guid" | PlanetSideGUID.codec) ::
|
||||||
("unk3" | uint16L) ::
|
("unk3" | uint16L) ::
|
||||||
//("unk4" | bool) ::
|
//("unk4" | bool) ::
|
||||||
|
|
@ -232,12 +230,12 @@ object OutfitMembershipResponse extends Marshallable[OutfitMembershipResponse] {
|
||||||
}
|
}
|
||||||
).xmap[OutfitMembershipResponse](
|
).xmap[OutfitMembershipResponse](
|
||||||
{
|
{
|
||||||
case response_type :: u0 :: avatar_guid :: outfit_guid_1 :: target_guid :: u3 :: action :: HNil =>
|
case response_type :: u0 :: outfit_id :: target_guid :: u3 :: action :: HNil =>
|
||||||
OutfitMembershipResponse(response_type, u0, avatar_guid, outfit_guid_1, target_guid, u3, action)
|
OutfitMembershipResponse(response_type, u0, outfit_id, target_guid, u3, action)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
case OutfitMembershipResponse(response_type, u0, avatar_guid, u1, u2, u3, action) =>
|
case OutfitMembershipResponse(response_type, u0, outfit_id, u2, u3, action) =>
|
||||||
response_type :: u0 :: avatar_guid :: u1 :: u2 :: u3 :: action :: HNil
|
response_type :: u0 :: outfit_id :: u2 :: u3 :: action :: HNil
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,9 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk0_ABC).require match {
|
PacketCoding.decodePacket(unk0_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk0
|
request_type mustEqual RequestType.Unk0
|
||||||
outfit_guid mustEqual PlanetSideGUID(25044)
|
outfit_guid mustEqual 25044
|
||||||
action mustEqual Unk0(
|
action mustEqual Unk0(
|
||||||
OutfitInfo(
|
OutfitInfo(
|
||||||
unk1 = 0,
|
|
||||||
unk2 = 0,
|
|
||||||
outfit_name = "Black Armored Reapers",
|
outfit_name = "Black Armored Reapers",
|
||||||
unk6 = 223190045,
|
unk6 = 223190045,
|
||||||
unk7 = 223190045,
|
unk7 = 223190045,
|
||||||
|
|
@ -85,11 +83,9 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk0 ABC" in {
|
"encode Unk0 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk0,
|
RequestType.Unk0,
|
||||||
PlanetSideGUID(25044),
|
25044,
|
||||||
Unk0(
|
Unk0(
|
||||||
OutfitInfo(
|
OutfitInfo(
|
||||||
unk1 = 0,
|
|
||||||
unk2 = 0,
|
|
||||||
outfit_name = "Black Armored Reapers",
|
outfit_name = "Black Armored Reapers",
|
||||||
unk6 = 223190045,
|
unk6 = 223190045,
|
||||||
unk7 = 223190045,
|
unk7 = 223190045,
|
||||||
|
|
@ -118,8 +114,11 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk1_ABC).require match {
|
PacketCoding.decodePacket(unk1_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk1
|
request_type mustEqual RequestType.Unk1
|
||||||
outfit_guid mustEqual PlanetSideGUID(5400)
|
outfit_guid mustEqual 529688L
|
||||||
action mustEqual Unk1(unk0 = 8, unk1 = 0, unk2 = 0, unk3 = false)
|
action mustEqual Unk1(
|
||||||
|
unk2 = 0,
|
||||||
|
unk3 = false
|
||||||
|
)
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
}
|
}
|
||||||
|
|
@ -128,10 +127,8 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk1 ABC" in {
|
"encode Unk1 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk1,
|
RequestType.Unk1,
|
||||||
PlanetSideGUID(5400),
|
529688L,
|
||||||
Unk1(
|
Unk1(
|
||||||
unk0 = 8,
|
|
||||||
unk1 = 0,
|
|
||||||
unk2 = 0,
|
unk2 = 0,
|
||||||
unk3 = false,
|
unk3 = false,
|
||||||
)
|
)
|
||||||
|
|
@ -145,10 +142,25 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk2_ABC).require match {
|
PacketCoding.decodePacket(unk2_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk2
|
request_type mustEqual RequestType.Unk2
|
||||||
outfit_guid mustEqual PlanetSideGUID(1)
|
outfit_guid mustEqual 2147418113L
|
||||||
action mustEqual Unk2(OutfitInfo(unk1 = 255, unk2 = 127, outfit_name = "PlanetSide_Forever_Vanu",
|
action mustEqual Unk2(OutfitInfo(
|
||||||
unk6 = 0, unk7 = 0, member_count = 1, unk9 = 0, OutfitRankNames("","","","","","","",""),
|
outfit_name = "PlanetSide_Forever_Vanu",
|
||||||
"", PlanetSideGUID(28672), 33353, 0, 0, 0, 0, 0, 0, 0))
|
unk6 = 0,
|
||||||
|
unk7 = 0,
|
||||||
|
member_count = 1,
|
||||||
|
unk9 = 0,
|
||||||
|
OutfitRankNames("","","","","","","",""),
|
||||||
|
"",
|
||||||
|
PlanetSideGUID(28672),
|
||||||
|
33353,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
))
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
}
|
}
|
||||||
|
|
@ -157,11 +169,9 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk2 ABC" in {
|
"encode Unk2 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk2,
|
RequestType.Unk2,
|
||||||
PlanetSideGUID(1),
|
2147418113L,
|
||||||
Unk2(
|
Unk2(
|
||||||
OutfitInfo(
|
OutfitInfo(
|
||||||
unk1 = 255,
|
|
||||||
unk2 = 127,
|
|
||||||
outfit_name = "PlanetSide_Forever_Vanu",
|
outfit_name = "PlanetSide_Forever_Vanu",
|
||||||
unk6 = 0,
|
unk6 = 0,
|
||||||
unk7 = 0,
|
unk7 = 0,
|
||||||
|
|
@ -190,10 +200,8 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk3_ABC).require match {
|
PacketCoding.decodePacket(unk3_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk3
|
request_type mustEqual RequestType.Unk3
|
||||||
outfit_guid mustEqual PlanetSideGUID(1)
|
outfit_guid mustEqual 2147418113L
|
||||||
action mustEqual Unk3(
|
action mustEqual Unk3(
|
||||||
unk0 = 255,
|
|
||||||
unk1 = 127,
|
|
||||||
unk2 = 0,
|
unk2 = 0,
|
||||||
unk3 = false,
|
unk3 = false,
|
||||||
BitVector.fromValidHex("")
|
BitVector.fromValidHex("")
|
||||||
|
|
@ -206,10 +214,8 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk3 ABC" in {
|
"encode Unk3 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk3,
|
RequestType.Unk3,
|
||||||
PlanetSideGUID(1),
|
2147418113L,
|
||||||
Unk3(
|
Unk3(
|
||||||
unk0 = 255,
|
|
||||||
unk1 = 127,
|
|
||||||
unk2 = 0,
|
unk2 = 0,
|
||||||
unk3 = false,
|
unk3 = false,
|
||||||
BitVector.fromValidHex("")
|
BitVector.fromValidHex("")
|
||||||
|
|
@ -224,11 +230,9 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk4_ABC).require match {
|
PacketCoding.decodePacket(unk4_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk4
|
request_type mustEqual RequestType.Unk4
|
||||||
outfit_guid mustEqual PlanetSideGUID(1)
|
outfit_guid mustEqual 2147418113L
|
||||||
action mustEqual Unk4(
|
action mustEqual Unk4(
|
||||||
unk0 = 32767,
|
new_outfit_id = 529744L,
|
||||||
unk1 = 5456,
|
|
||||||
unk2 = 8,
|
|
||||||
0,
|
0,
|
||||||
unk4 = false,
|
unk4 = false,
|
||||||
BitVector.fromValidHex("")
|
BitVector.fromValidHex("")
|
||||||
|
|
@ -241,11 +245,9 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk4 ABC" in {
|
"encode Unk4 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk4,
|
RequestType.Unk4,
|
||||||
PlanetSideGUID(1),
|
2147418113L,
|
||||||
Unk4(
|
Unk4(
|
||||||
unk0 = 32767,
|
new_outfit_id = 529744L,
|
||||||
unk1 = 5456,
|
|
||||||
unk2 = 8,
|
|
||||||
unk3 = 0,
|
unk3 = 0,
|
||||||
unk4 = false,
|
unk4 = false,
|
||||||
BitVector.fromValidHex("")
|
BitVector.fromValidHex("")
|
||||||
|
|
@ -260,9 +262,8 @@ class OutfitEventTest extends Specification {
|
||||||
PacketCoding.decodePacket(unk5_ABC).require match {
|
PacketCoding.decodePacket(unk5_ABC).require match {
|
||||||
case OutfitEvent(request_type, outfit_guid, action) =>
|
case OutfitEvent(request_type, outfit_guid, action) =>
|
||||||
request_type mustEqual RequestType.Unk5
|
request_type mustEqual RequestType.Unk5
|
||||||
outfit_guid mustEqual PlanetSideGUID(1)
|
outfit_guid mustEqual 2147418113L
|
||||||
action mustEqual Unk5(
|
action mustEqual Unk5(
|
||||||
unk0 = 32767,
|
|
||||||
unk1 = 2,
|
unk1 = 2,
|
||||||
unk2 = 0,
|
unk2 = 0,
|
||||||
unk3 = 0,
|
unk3 = 0,
|
||||||
|
|
@ -277,9 +278,8 @@ class OutfitEventTest extends Specification {
|
||||||
"encode Unk5 ABC" in {
|
"encode Unk5 ABC" in {
|
||||||
val msg = OutfitEvent(
|
val msg = OutfitEvent(
|
||||||
RequestType.Unk5,
|
RequestType.Unk5,
|
||||||
PlanetSideGUID(1),
|
2147418113L,
|
||||||
Unk5(
|
Unk5(
|
||||||
unk0 = 32767,
|
|
||||||
unk1 = 2,
|
unk1 = 2,
|
||||||
unk2 = 0,
|
unk2 = 0,
|
||||||
unk3 = 0,
|
unk3 = 0,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import net.psforever.packet._
|
||||||
import net.psforever.packet.game._
|
import net.psforever.packet.game._
|
||||||
import net.psforever.packet.game.OutfitMembershipRequest.RequestType
|
import net.psforever.packet.game.OutfitMembershipRequest.RequestType
|
||||||
import net.psforever.packet.game.OutfitMembershipRequestAction._
|
import net.psforever.packet.game.OutfitMembershipRequestAction._
|
||||||
import net.psforever.types.PlanetSideGUID
|
|
||||||
import org.specs2.mutable._
|
import org.specs2.mutable._
|
||||||
import scodec.bits._
|
import scodec.bits._
|
||||||
|
|
||||||
|
|
@ -25,10 +24,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode CreateOutfit ABC" in {
|
"decode CreateOutfit ABC" in {
|
||||||
PacketCoding.decodePacket(create_ABC).require match {
|
PacketCoding.decodePacket(create_ABC).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Create
|
request_type mustEqual RequestType.Create
|
||||||
avatar_id mustEqual PlanetSideGUID(1)
|
avatar_id mustEqual 1
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual CreateOutfit("", 0, unk4 = false, "ABC")
|
action mustEqual CreateOutfit("", 0, unk4 = false, "ABC")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -36,7 +34,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode CreateOutfit ABC" in {
|
"encode CreateOutfit ABC" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Create, PlanetSideGUID(1), 0, CreateOutfit("", 0, unk4 = false, "ABC"))
|
val msg = OutfitMembershipRequest(RequestType.Create, 1, CreateOutfit("", 0, unk4 = false, "ABC"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual create_ABC
|
pkt mustEqual create_ABC
|
||||||
|
|
@ -44,10 +42,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode CreateOutfit 2222" in {
|
"decode CreateOutfit 2222" in {
|
||||||
PacketCoding.decodePacket(create_2222).require match {
|
PacketCoding.decodePacket(create_2222).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Create
|
request_type mustEqual RequestType.Create
|
||||||
avatar_id mustEqual PlanetSideGUID(8)
|
avatar_id mustEqual 8
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual CreateOutfit("", 0, unk4 = false, "2222")
|
action mustEqual CreateOutfit("", 0, unk4 = false, "2222")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -55,7 +52,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode CreateOutfit 2222" in {
|
"encode CreateOutfit 2222" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Create, PlanetSideGUID(8), 0, CreateOutfit("", 0, unk4 = false, "2222"))
|
val msg = OutfitMembershipRequest(RequestType.Create, 8, CreateOutfit("", 0, unk4 = false, "2222"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual create_2222
|
pkt mustEqual create_2222
|
||||||
|
|
@ -63,10 +60,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode FormOutfit abc" in {
|
"decode FormOutfit abc" in {
|
||||||
PacketCoding.decodePacket(form_abc).require match {
|
PacketCoding.decodePacket(form_abc).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Form
|
request_type mustEqual RequestType.Form
|
||||||
avatar_id mustEqual PlanetSideGUID(1)
|
avatar_id mustEqual 1
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual FormOutfit("", 0, unk4 = false, "abc")
|
action mustEqual FormOutfit("", 0, unk4 = false, "abc")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -74,7 +70,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode FormOutfit abc" in {
|
"encode FormOutfit abc" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Form, PlanetSideGUID(1), 0, FormOutfit("", 0, unk4 = false, "abc"))
|
val msg = OutfitMembershipRequest(RequestType.Form, 1, FormOutfit("", 0, unk4 = false, "abc"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual form_abc
|
pkt mustEqual form_abc
|
||||||
|
|
@ -82,10 +78,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode FormOutfit 1" in {
|
"decode FormOutfit 1" in {
|
||||||
PacketCoding.decodePacket(form_1).require match {
|
PacketCoding.decodePacket(form_1).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Form
|
request_type mustEqual RequestType.Form
|
||||||
avatar_id mustEqual PlanetSideGUID(8)
|
avatar_id mustEqual 8
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual FormOutfit("", 0, unk4 = false, "1")
|
action mustEqual FormOutfit("", 0, unk4 = false, "1")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -93,7 +88,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode FormOutfit 1" in {
|
"encode FormOutfit 1" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Form, PlanetSideGUID(8), 0, FormOutfit("", 0, unk4 = false, "1"))
|
val msg = OutfitMembershipRequest(RequestType.Form, 8, FormOutfit("", 0, unk4 = false, "1"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual form_1
|
pkt mustEqual form_1
|
||||||
|
|
@ -101,10 +96,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode AcceptOutfitInvite 1" in {
|
"decode AcceptOutfitInvite 1" in {
|
||||||
PacketCoding.decodePacket(accept_1).require match {
|
PacketCoding.decodePacket(accept_1).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Accept
|
request_type mustEqual RequestType.Accept
|
||||||
avatar_id mustEqual PlanetSideGUID(1)
|
avatar_id mustEqual 1
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual AcceptOutfitInvite("")
|
action mustEqual AcceptOutfitInvite("")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -112,7 +106,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode AcceptOutfitInvite 1" in {
|
"encode AcceptOutfitInvite 1" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Accept, PlanetSideGUID(1), 0, AcceptOutfitInvite(""))
|
val msg = OutfitMembershipRequest(RequestType.Accept, 1, AcceptOutfitInvite(""))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual accept_1
|
pkt mustEqual accept_1
|
||||||
|
|
@ -120,10 +114,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode AcceptOutfitInvite 2" in {
|
"decode AcceptOutfitInvite 2" in {
|
||||||
PacketCoding.decodePacket(accept_2).require match {
|
PacketCoding.decodePacket(accept_2).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Accept
|
request_type mustEqual RequestType.Accept
|
||||||
avatar_id mustEqual PlanetSideGUID(2)
|
avatar_id mustEqual 2
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual AcceptOutfitInvite("")
|
action mustEqual AcceptOutfitInvite("")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -131,7 +124,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode AcceptOutfitInvite 2" in {
|
"encode AcceptOutfitInvite 2" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Accept, PlanetSideGUID(2), 0, AcceptOutfitInvite(""))
|
val msg = OutfitMembershipRequest(RequestType.Accept, 2, AcceptOutfitInvite(""))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual accept_2
|
pkt mustEqual accept_2
|
||||||
|
|
@ -139,10 +132,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode RejectOutfitInvite 1" in {
|
"decode RejectOutfitInvite 1" in {
|
||||||
PacketCoding.decodePacket(reject_1).require match {
|
PacketCoding.decodePacket(reject_1).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Reject
|
request_type mustEqual RequestType.Reject
|
||||||
avatar_id mustEqual PlanetSideGUID(1)
|
avatar_id mustEqual 1
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual RejectOutfitInvite("")
|
action mustEqual RejectOutfitInvite("")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -150,7 +142,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode RejectOutfitInvite 1" in {
|
"encode RejectOutfitInvite 1" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Reject, PlanetSideGUID(1), 0, RejectOutfitInvite(""))
|
val msg = OutfitMembershipRequest(RequestType.Reject, 1, RejectOutfitInvite(""))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual reject_1
|
pkt mustEqual reject_1
|
||||||
|
|
@ -158,10 +150,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode RejectOutfitInvite 2" in {
|
"decode RejectOutfitInvite 2" in {
|
||||||
PacketCoding.decodePacket(reject_2).require match {
|
PacketCoding.decodePacket(reject_2).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Reject
|
request_type mustEqual RequestType.Reject
|
||||||
avatar_id mustEqual PlanetSideGUID(2)
|
avatar_id mustEqual 2
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual RejectOutfitInvite("")
|
action mustEqual RejectOutfitInvite("")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -169,7 +160,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode RejectOutfitInvite 2" in {
|
"encode RejectOutfitInvite 2" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Reject, PlanetSideGUID(2), 0, RejectOutfitInvite(""))
|
val msg = OutfitMembershipRequest(RequestType.Reject, 2, RejectOutfitInvite(""))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual reject_2
|
pkt mustEqual reject_2
|
||||||
|
|
@ -177,10 +168,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode CancelOutfitInvite 3" in {
|
"decode CancelOutfitInvite 3" in {
|
||||||
PacketCoding.decodePacket(cancel_3).require match {
|
PacketCoding.decodePacket(cancel_3).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Cancel
|
request_type mustEqual RequestType.Cancel
|
||||||
avatar_id mustEqual PlanetSideGUID(3)
|
avatar_id mustEqual 3
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual CancelOutfitInvite(0, 0, "")
|
action mustEqual CancelOutfitInvite(0, 0, "")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -188,7 +178,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode CancelOutfitInvite 3" in {
|
"encode CancelOutfitInvite 3" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Cancel, PlanetSideGUID(3), 0, CancelOutfitInvite(0, 0, ""))
|
val msg = OutfitMembershipRequest(RequestType.Cancel, 3, CancelOutfitInvite(0, 0, ""))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual cancel_3
|
pkt mustEqual cancel_3
|
||||||
|
|
@ -196,10 +186,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode CancelOutfitInvite 1 abc" in {
|
"decode CancelOutfitInvite 1 abc" in {
|
||||||
PacketCoding.decodePacket(cancel_1_abc).require match {
|
PacketCoding.decodePacket(cancel_1_abc).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Cancel
|
request_type mustEqual RequestType.Cancel
|
||||||
avatar_id mustEqual PlanetSideGUID(1)
|
avatar_id mustEqual 1
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual CancelOutfitInvite(0, 0, "abc")
|
action mustEqual CancelOutfitInvite(0, 0, "abc")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -207,7 +196,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode CancelOutfitInvite 1 abc" in {
|
"encode CancelOutfitInvite 1 abc" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Cancel, PlanetSideGUID(1), 0, CancelOutfitInvite(0, 0, "abc"))
|
val msg = OutfitMembershipRequest(RequestType.Cancel, 1, CancelOutfitInvite(0, 0, "abc"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual cancel_1_abc
|
pkt mustEqual cancel_1_abc
|
||||||
|
|
@ -215,10 +204,9 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
|
|
||||||
"decode CancelOutfitInvite 3 def" in {
|
"decode CancelOutfitInvite 3 def" in {
|
||||||
PacketCoding.decodePacket(cancel_3_def).require match {
|
PacketCoding.decodePacket(cancel_3_def).require match {
|
||||||
case OutfitMembershipRequest(request_type, avatar_id, unk1, action) =>
|
case OutfitMembershipRequest(request_type, avatar_id, action) =>
|
||||||
request_type mustEqual RequestType.Cancel
|
request_type mustEqual RequestType.Cancel
|
||||||
avatar_id mustEqual PlanetSideGUID(3)
|
avatar_id mustEqual 3
|
||||||
unk1 mustEqual 0
|
|
||||||
action mustEqual CancelOutfitInvite(0, 0, "def")
|
action mustEqual CancelOutfitInvite(0, 0, "def")
|
||||||
case _ =>
|
case _ =>
|
||||||
ko
|
ko
|
||||||
|
|
@ -226,7 +214,7 @@ class OutfitMembershipRequestTest extends Specification {
|
||||||
}
|
}
|
||||||
|
|
||||||
"encode CancelOutfitInvite 3 def" in {
|
"encode CancelOutfitInvite 3 def" in {
|
||||||
val msg = OutfitMembershipRequest(RequestType.Cancel, PlanetSideGUID(3), 0, CancelOutfitInvite(0, 0, "def"))
|
val msg = OutfitMembershipRequest(RequestType.Cancel, 3, CancelOutfitInvite(0, 0, "def"))
|
||||||
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
pkt mustEqual cancel_3_def
|
pkt mustEqual cancel_3_def
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue