Advertisement
Guest User

SelectedServerDataMessage

a guest
Apr 15th, 2019
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.19 KB | None | 0 0
  1. namespace Stump.DofusProtocol.Messages
  2. {
  3.     public class SelectedServerDataMessage : Message
  4.     {
  5.         public const uint Id = 42;
  6.         public override uint MessageId
  7.         {
  8.             get { return Id; }
  9.         }
  10.        
  11.         public short serverId;
  12.         public string address;
  13.         public short port;
  14.         public bool canCreateNewCharacter;
  15.         public IEnumerable<sbyte> ticket;
  16.        
  17.         public SelectedServerDataMessage()
  18.         {
  19.         }
  20.        
  21.         public SelectedServerDataMessage(short serverId, string address, short port, bool canCreateNewCharacter, IEnumerable<sbyte> ticket)
  22.         {
  23.             this.serverId = serverId;
  24.             this.address = address;
  25.             this.port = port;
  26.             this.canCreateNewCharacter = canCreateNewCharacter;
  27.             this.ticket = ticket;
  28.         }
  29.        
  30.         public override void Serialize(IDataWriter writer)
  31.         {
  32.             writer.WriteVarShort(serverId);
  33.             writer.WriteUTF(address);
  34.             writer.WriteShort(port);
  35.             writer.WriteBoolean(canCreateNewCharacter);
  36.             writer.WriteVarInt((int)ticket.Count());
  37.             foreach (var entry in ticket)
  38.             {
  39.                  writer.WriteSByte(entry);
  40.             }
  41.         }
  42.        
  43.         public override void Deserialize(IDataReader reader)
  44.         {
  45.             serverId = reader.ReadVarShort();
  46.             if (serverId < 0)
  47.                 throw new Exception("Forbidden value on serverId = " + serverId + ", it doesn't respect the following condition : serverId < 0");
  48.             address = reader.ReadUTF();
  49.             port = reader.ReadShort();
  50.             if (port < 0 || port > 65535)
  51.                 throw new Exception("Forbidden value on port = " + port + ", it doesn't respect the following condition : port < 0 || port > 65535");
  52.             canCreateNewCharacter = reader.ReadBoolean();
  53.             var limit = reader.ReadVarInt();
  54.             var ticket_ = new sbyte[limit];
  55.             for (int i = 0; i < limit; i++)
  56.             {
  57.                  ticket_[i] = reader.ReadSByte();
  58.             }
  59.             ticket = ticket_;
  60.         }
  61.        
  62.     }
  63.    
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement