public override async Task PopulateAsync() { using (var stream = new MinecraftStream(this.PacketData)) { this.Version = (ProtocolVersion)await stream.ReadVarIntAsync(); this.ServerAddress = await stream.ReadStringAsync(); this.ServerPort = await stream.ReadUnsignedShortAsync(); this.NextState = (ClientState)await stream.ReadVarIntAsync(); } }