Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PacketData : IBytes {
- public string nick;
- public string text;
- public string additional;
- public PacketType type;
- public PacketData(string nick, string text, string additional = "") {
- this.nick = nick;
- this.text = text;
- this.additional = additional;
- type = PacketType.Chat;
- }
- public PacketData(PacketType type, string nick, string text) {
- this.nick = nick;
- this.text = text;
- this.type = type;
- additional = GetDataByType(type);
- }
- public PacketData(byte[] data) {
- int counter = 0;
- var l = data[counter]; // длина ника
- counter++;
- nick = BinaryToolz.BytesToUTF(Extract(data, counter, l));
- counter += l;
- l = data[counter];
- counter++;
- text = BinaryToolz.BytesToUTF(Extract(data, counter, l));
- counter += l;
- l = data[counter];
- counter++;
- if (l > 0) {
- additional = BinaryToolz.BytesToUTF(Extract(data, counter, l));
- type = GetTypeByData(additional);
- }
- }
- public byte[] GetBytes() {
- var b = new List<byte>();
- b.AddRange(BinaryToolz.UTFToBytes(nick));
- b.AddRange(BinaryToolz.UTFToBytes(text));
- b.AddRange(BinaryToolz.UTFToBytes(additional));
- return b.ToArray();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement