@Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buffer = ByteBuffer.wrap(rawDatas);
   this.m_worldX = buffer.getInt();
   this.m_worldY = buffer.getInt();
   return true;
 }
 @Override
 public byte[] encode() {
   final ByteBuffer bb = ByteBuffer.allocate(12 + this.m_action.serializedSize());
   bb.putInt(this.m_action.getId());
   bb.putLong(this.m_itemId);
   this.m_action.serialize(bb);
   return this.addClientHeader((byte) 3, bb.array());
 }
 @Override
 public byte[] encode() {
   final ByteBuffer buffer = ByteBuffer.allocate(5 + this.m_action.serializedSize());
   buffer.putInt(this.m_compartmentId);
   buffer.put((byte) this.m_action.getType().ordinal());
   this.m_action.serializeIn(buffer);
   return this.addClientHeader((byte) 3, buffer.array());
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buffer = ByteBuffer.wrap(rawDatas);
   this.m_gemItemUid = buffer.getLong();
   this.m_roomlayoutPosition = buffer.get();
   this.m_primary = (buffer.get() == 1);
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer bb = ByteBuffer.wrap(rawDatas);
   this.m_eventId = bb.getLong();
   this.m_invitedId = bb.getLong();
   final byte[] tInvitedName = new byte[bb.get()];
   bb.get(tInvitedName);
   this.m_invitedName = StringUtils.fromUTF8(tInvitedName);
   this.m_result = bb.get();
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buffer = ByteBuffer.wrap(rawDatas);
   this.m_sourcePrimary = (buffer.get() == 1);
   this.m_destPrimary = (buffer.get() == 1);
   this.m_sourceRoomLayoutPosition = buffer.get();
   this.m_destRoomLayoutPosition = buffer.get();
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buffer = ByteBuffer.wrap(rawDatas);
   this.m_successful = (buffer.get() == 1);
   this.m_yourDimBag = (buffer.get() == 1);
   this.m_partitionNationId = buffer.getInt();
   if (this.m_successful) {
     if (!this.m_yourDimBag) {
       (this.m_serializedPersonalSpace = new RawDimensionalBagForClient()).unserialize(buffer);
     } else {
       this.m_onMarket = (buffer.get() == 1);
       this.m_fleaAllowed = (buffer.get() == 1);
       this.m_serializedPersonalSpace = null;
     }
   }
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buffer = ByteBuffer.wrap(rawDatas);
   this.m_info = BuildingStruct.fromRaw(buffer);
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer bb = ByteBuffer.wrap(rawDatas);
   (this.m_rawCompartment = new RawStorageBoxCompartment()).unserialize(bb);
   return true;
 }
 @Override
 public boolean decode(final byte[] rawDatas) {
   final ByteBuffer buff = ByteBuffer.wrap(rawDatas);
   this.m_scenarioId = buff.getInt();
   return true;
 }
 @Override
 public byte[] encode() {
   final byte[] name = StringUtils.toUTF8(this.m_inviterName);
   final byte[] groupName = StringUtils.toUTF8(this.m_groupName);
   final int sizeDatas = 3 + name.length + 1 + groupName.length + 8;
   final ByteBuffer buffer = ByteBuffer.allocate(sizeDatas);
   buffer.put(this.m_groupType);
   buffer.put((byte) (this.m_invitationAccepted ? 1 : 0));
   buffer.put((byte) name.length);
   buffer.put(name);
   buffer.put((byte) groupName.length);
   buffer.put(groupName);
   buffer.putLong(this.m_inviterId);
   if (this.m_sendToGlobalServer) {
     return this.addClientHeader((byte) 6, buffer.array());
   }
   return this.addClientHeader((byte) 2, buffer.array());
 }