public async Task GetVersionsForPlatformAsync_GivenPcPlatform_ReturnsVersions() { var sut = new MinecraftDataReader(TestDataLocator.GetMinecraftDataPath()); var result = (await sut.GetVersionsForPlatformAsync(MinecraftPlatform.Pc)).ToList(); Assert.NotEmpty(result); Assert.Contains(new MinecraftVersion("1.11.2"), result); }
/// <summary> /// Packets are handled here. /// </summary> /// <param name="id">Packet ID</param> /// <param name="data">Packet byte[] data</param> private void HandlePacketClassic(int id, byte[] data) { using (var reader = new MinecraftDataReader(data, NetworkMode)) { if (ServerResponseClassic.ServerResponse[id] == null) { return; } var packet = ServerResponseClassic.ServerResponse[id]().ReadPacket(reader); RaisePacketHandled(id, packet, null); } }
/// <summary> /// Packets are handled here. Compression and encryption are handled here too /// </summary> /// <param name="id">Packet ID</param> /// <param name="data">Packet byte[] data</param> private void HandlePacketModern(int id, byte[] data) { using (var reader = new MinecraftDataReader(data, NetworkMode)) { IPacket packet; switch (_minecraft.State) { #region Status case ServerState.ModernStatus: if (ServerResponse.Status[id] == null) { break; } packet = ServerResponse.Status[id]().ReadPacket(reader); RaisePacketHandled(id, packet, ServerState.ModernStatus); break; #endregion Status #region Login case ServerState.ModernLogin: if (ServerResponse.Login[id] == null) { break; } packet = ServerResponse.Login[id]().ReadPacket(reader); RaisePacketHandled(id, packet, ServerState.ModernLogin); if (id == 0x01) { ModernEnableEncryption(packet); // -- Low-level encryption handle } if (id == 0x03) { ModernSetCompression(packet); // -- Low-level compression handle } break; #endregion Login #region Play case ServerState.ModernPlay: if (ServerResponse.Play[id] == null) { break; } packet = ServerResponse.Play[id]().ReadPacket(reader); if (ServerResponse.Play[id]() == null) { throw new Exception(""); } RaisePacketHandled(id, packet, ServerState.ModernPlay); if (id == 0x46) { ModernSetCompression(packet); // -- Low-level compression handle } // Connection lost if (id == 0x40) { Crashed = true; } break; #endregion Play } } }
private static async Task <VersionDefinition> GetDefinitionsForVersion() { var sut = new MinecraftDataReader(TestDataLocator.GetMinecraftDataPath()); return(await sut.GetDefinitionForVersionAsnyc(MinecraftPlatform.Pc, new MinecraftVersion("1.9.2"))); }