Итак, у меня есть этот байтовый массив, который выглядит следующим образом
[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()
};
Это не очень надежный и хороший способ составления карты, есть ли правильный способ сделать это? это?