From 80a59f7478eb310b8ae01fd5bc4c013abc7cf967 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Sun, 30 May 2021 17:43:52 -0400 Subject: [PATCH] Add API exposure for platform and platform-specific protocol versions --- .../velocitypowered/api/network/PlatformVersion.java | 12 ++++++++++++ .../api/network/registry/Platform.java | 10 ++++++++++ .../network/registry/ProtocolVersionRegistry.java | 8 ++++++++ 3 files changed, 30 insertions(+) create mode 100644 api/src/main/java/com/velocitypowered/api/network/PlatformVersion.java create mode 100644 api/src/main/java/com/velocitypowered/api/network/registry/Platform.java create mode 100644 api/src/main/java/com/velocitypowered/api/network/registry/ProtocolVersionRegistry.java diff --git a/api/src/main/java/com/velocitypowered/api/network/PlatformVersion.java b/api/src/main/java/com/velocitypowered/api/network/PlatformVersion.java new file mode 100644 index 000000000..0be6e33ff --- /dev/null +++ b/api/src/main/java/com/velocitypowered/api/network/PlatformVersion.java @@ -0,0 +1,12 @@ +package com.velocitypowered.api.network; + +import com.velocitypowered.api.network.registry.Platform; +import java.util.List; + +public interface PlatformVersion { + Platform platform(); + + int protocolVersion(); + + List supportedVersions(); +} diff --git a/api/src/main/java/com/velocitypowered/api/network/registry/Platform.java b/api/src/main/java/com/velocitypowered/api/network/registry/Platform.java new file mode 100644 index 000000000..f532273a7 --- /dev/null +++ b/api/src/main/java/com/velocitypowered/api/network/registry/Platform.java @@ -0,0 +1,10 @@ +package com.velocitypowered.api.network.registry; + +public interface Platform { + Platform JAVA = new Platform() { + @Override + public String toString() { + return "Java Edition"; + } + }; +} diff --git a/api/src/main/java/com/velocitypowered/api/network/registry/ProtocolVersionRegistry.java b/api/src/main/java/com/velocitypowered/api/network/registry/ProtocolVersionRegistry.java new file mode 100644 index 000000000..91930547d --- /dev/null +++ b/api/src/main/java/com/velocitypowered/api/network/registry/ProtocolVersionRegistry.java @@ -0,0 +1,8 @@ +package com.velocitypowered.api.network.registry; + +import com.velocitypowered.api.network.PlatformVersion; +import org.checkerframework.checker.nullness.qual.Nullable; + +public interface ProtocolVersionRegistry { + @Nullable PlatformVersion lookup(Platform platform, int version); +}