Как правильно читать данные байтового массива в объект? - PullRequest
0 голосов
/ 29 апреля 2020

Итак, у меня есть этот байтовый массив, который выглядит следующим образом

[40, 0, 4, 0, 0, 0, 7, 69, 108, 121, 115, 105, 97, 110, 0, 0, 0, 0, 215, 90, 55, 255, 125, 90, 105, 90, 75, 175, 165, 140, 160, 180, 215, 255, 230, 175, 160, 105, 60, 0]

И я пытаюсь разобрать его в объект с именем Player, чтобы заполнить все его свойства, такие как name et c. .

И это был мой подход, который ужасен!

var player = new Player {
    Client = state.workSocket,
    UUID = state.player.UUID,
    PlayerID = data[3],
    SkinVarient = data[4],
    Hair = data[5],
    Name = Encoding.UTF8.GetString(data, 7, data[6]),
    HairDye = data[7 + data[6] + 1],
    HideVisuals = data[7 + data[6] + 2],
    HideVisuals2 = data[7 + data[6] + 3],
    HideMisc = data[7 + data[6] + 4],
    HairColor = data.Skip(data[7 + data[6] + 4]).Take(3).ToArray(),
    SkinColor = data.Skip(data[7 + data[6] + 4] + 3).Take(3).ToArray(),
    EyeColor = data.Skip(data[7 + data[6] + 4] + 3 + 3).Take(3).ToArray(),
    ShirtColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3).Take(3).ToArray(),
    UnderShirtColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3).Take(3).ToArray(),
    PantsColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3 + 3).Take(3).ToArray(),
    ShoeColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3 + 3 + 3).Take(3).ToArray(),
    Difficulty = data.Last()
};

Это не очень надежный и хороший способ составления карты, есть ли правильный способ сделать это? это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...