private Task DispatchPacket(ServerboundPluginMessage packet) { return(Task.CompletedTask); }
private Task DispatchPacket(UncompressedPacket packet) { var br = new SpanReader(packet.Data); Task task; switch (packet.PacketId) { // Teleport Confirm case 0x00: task = DispatchPacket(TeleportConfirm.Deserialize(ref br)); break; // Chat Message case 0x03: task = DispatchPacket(ServerboundChatMessage.Deserialize(ref br)); break; // Client Settings case 0x05: task = DispatchPacket(ClientSettings.Deserialize(ref br)); break; // Plugin Message case 0x0A: task = DispatchPacket(ServerboundPluginMessage.Deserialize(ref br)); break; // Keep Alive case 0x0C: task = DispatchPacket(ServerboundKeepAlive.Deserialize(ref br)); break; // Player On Ground case 0x0D: task = DispatchPacket(PlayerOnGround.Deserialize(ref br)); break; // Player Position case 0x0E: task = DispatchPacket(PlayerPosition.Deserialize(ref br)); break; // Position And Look case 0x0F: task = DispatchPacket(ServerboundPositionAndLook.Deserialize(ref br)); break; // Player Look case 0x10: task = DispatchPacket(PlayerLook.Deserialize(ref br)); break; // Player Digging case 0x14: task = DispatchPacket(PlayerDigging.Deserialize(ref br)); break; // Entity Action case 0x15: task = DispatchPacket(EntityAction.Deserialize(ref br)); break; // Held Item Change case 0x1A: task = DispatchPacket(ServerboundHeldItemChange.Deserialize(ref br)); break; // Animation case 0x1D: task = DispatchPacket(ServerboundAnimation.Deserialize(ref br)); break; // Player Block Placement case 0x1F: task = DispatchPacket(PlayerBlockPlacement.Deserialize(ref br)); break; // Use Item case 0x20: task = DispatchPacket(UseItem.Deserialize(ref br)); break; // Click Window case 0x08: task = DispatchPacket(ClickWindow.Deserialize(ref br)); break; // Close Window case 0x09: task = DispatchPacket(ServerboundCloseWindow.Deserialize(ref br)); break; default: Logger.LogWarning($"Unrecognizable packet id: 0x{packet.PacketId:X2}."); return(Task.CompletedTask); } if (!br.IsCosumed) { throw new InvalidDataException($"Packet data is not fully consumed."); } return(task); }