Advertisement
KpoKec

Untitled

Apr 11th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.53 KB | None | 0 0
  1.    public class PacketData : IBytes {
  2.         public string nick;
  3.         public string text;
  4.         public string additional;
  5.         public PacketType type;
  6.  
  7.         public PacketData(string nick, string text, string additional = "") {
  8.             this.nick = nick;
  9.             this.text = text;
  10.             this.additional = additional;
  11.             type = PacketType.Chat;
  12.         }
  13.  
  14.         public PacketData(PacketType type, string nick, string text) {
  15.             this.nick = nick;
  16.             this.text = text;
  17.             this.type = type;
  18.             additional = GetDataByType(type);
  19.         }
  20.  
  21.         public PacketData(byte[] data) {
  22.             int counter = 0;
  23.             var l = data[counter]; // длина ника
  24.             counter++;
  25.             nick = BinaryToolz.BytesToUTF(Extract(data, counter, l));
  26.             counter += l;
  27.             l = data[counter];
  28.             counter++;
  29.             text = BinaryToolz.BytesToUTF(Extract(data, counter, l));
  30.             counter += l;
  31.             l = data[counter];
  32.             counter++;
  33.             if (l > 0) {
  34.                 additional = BinaryToolz.BytesToUTF(Extract(data, counter, l));
  35.                 type = GetTypeByData(additional);
  36.             }
  37.         }
  38.  
  39.         public byte[] GetBytes() {
  40.             var b = new List<byte>();
  41.             b.AddRange(BinaryToolz.UTFToBytes(nick));
  42.             b.AddRange(BinaryToolz.UTFToBytes(text));
  43.             b.AddRange(BinaryToolz.UTFToBytes(additional));
  44.             return b.ToArray();
  45.         }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement