From d0882cf02c451608b3f36489f2aeaa9fd68d02e3 Mon Sep 17 00:00:00 2001 From: KennyTV Date: Fri, 16 Apr 2021 23:05:31 +0200 Subject: [PATCH] Update GsonUtil, more javadoc --- .../api/type/types/ComponentType.java | 4 +- .../myles/ViaVersion/packets/Direction.java | 4 +- .../protocols/base/ProtocolInfo.java | 37 ++++++++++++++++++- .../protocols/base/VersionProvider.java | 11 +++++- .../us/myles/ViaVersion/util/GsonUtil.java | 16 +++----- .../providers/BungeeVersionProvider.java | 4 +- circle.yml | 11 ------ .../api/rewriters/ComponentRewriter.java | 3 +- .../commands/defaultsubs/DumpSubCmd.java | 3 +- .../protocols/base/BaseProtocol.java | 2 +- .../protocols/base/BaseProtocol1_7.java | 2 +- .../protocols/base/BaseVersionProvider.java | 3 +- .../blockentities/CommandBlockHandler.java | 4 +- .../providers/VelocityVersionProvider.java | 2 +- 14 files changed, 69 insertions(+), 37 deletions(-) delete mode 100644 circle.yml diff --git a/api/src/main/java/us/myles/ViaVersion/api/type/types/ComponentType.java b/api/src/main/java/us/myles/ViaVersion/api/type/types/ComponentType.java index 15ef134f6..649d9a687 100644 --- a/api/src/main/java/us/myles/ViaVersion/api/type/types/ComponentType.java +++ b/api/src/main/java/us/myles/ViaVersion/api/type/types/ComponentType.java @@ -23,11 +23,11 @@ package us.myles.ViaVersion.api.type.types; import com.google.gson.JsonElement; +import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; import io.netty.buffer.ByteBuf; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.type.Type; -import us.myles.ViaVersion.util.GsonUtil; public class ComponentType extends Type { private static final StringType STRING_TAG = new StringType(262144); @@ -40,7 +40,7 @@ public class ComponentType extends Type { public JsonElement read(ByteBuf buffer) throws Exception { String s = STRING_TAG.read(buffer); try { - return GsonUtil.getJsonParser().parse(s); + return JsonParser.parseString(s); } catch (JsonSyntaxException e) { Via.getPlatform().getLogger().severe("Error when trying to parse json: " + s); throw e; diff --git a/api/src/main/java/us/myles/ViaVersion/packets/Direction.java b/api/src/main/java/us/myles/ViaVersion/packets/Direction.java index cdec6f266..e796e8268 100644 --- a/api/src/main/java/us/myles/ViaVersion/packets/Direction.java +++ b/api/src/main/java/us/myles/ViaVersion/packets/Direction.java @@ -25,11 +25,11 @@ package us.myles.ViaVersion.packets; public enum Direction { /** - * Outgoing server packets sent to the client. + * Clientbound packets sent by the server. */ OUTGOING, /** - * Incoming server packets send by the client to the server. + * Serverbound packets sent by the client. */ INCOMING } diff --git a/api/src/main/java/us/myles/ViaVersion/protocols/base/ProtocolInfo.java b/api/src/main/java/us/myles/ViaVersion/protocols/base/ProtocolInfo.java index 873a74529..af90f303e 100644 --- a/api/src/main/java/us/myles/ViaVersion/protocols/base/ProtocolInfo.java +++ b/api/src/main/java/us/myles/ViaVersion/protocols/base/ProtocolInfo.java @@ -22,6 +22,7 @@ */ package us.myles.ViaVersion.protocols.base; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import us.myles.ViaVersion.api.data.StoredObject; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.protocol.ProtocolPipeline; @@ -42,6 +43,11 @@ public class ProtocolInfo extends StoredObject { super(user); } + /** + * Returns the protocol state the user is currently in. + * + * @return protocol state + */ public State getState() { return state; } @@ -50,6 +56,12 @@ public class ProtocolInfo extends StoredObject { this.state = state; } + /** + * Returns the user's protocol version, or -1 if not set. + * This is set during the {@link State#HANDSHAKE} state. + * + * @return protocol version, or -1 if not set + */ public int getProtocolVersion() { return protocolVersion; } @@ -60,6 +72,12 @@ public class ProtocolInfo extends StoredObject { this.protocolVersion = protocol.getVersion(); } + /** + * Returns the server protocol version the user is connected to, or -1 if not set. + * This is set during the {@link State#HANDSHAKE} state. + * + * @return server protocol version, or -1 if not set + */ public int getServerProtocolVersion() { return serverProtocolVersion; } @@ -69,7 +87,13 @@ public class ProtocolInfo extends StoredObject { this.serverProtocolVersion = protocol.getVersion(); } - public String getUsername() { + /** + * Returns the username associated with this connection. + * This is set once the connection enters the {@link State#PLAY} state. + * + * @return username, set when entering the {@link State#PLAY} state + */ + public @MonotonicNonNull String getUsername() { return username; } @@ -77,6 +101,12 @@ public class ProtocolInfo extends StoredObject { this.username = username; } + /** + * Returns the uuid associated with this connection. + * This is set once the connection enters the {@link State#PLAY} state. + * + * @return uuid, set when entering the {@link State#PLAY} state + */ public UUID getUuid() { return uuid; } @@ -85,6 +115,11 @@ public class ProtocolInfo extends StoredObject { this.uuid = uuid; } + /** + * Returns the user's pipeline. + * + * @return protocol pipeline + */ public ProtocolPipeline getPipeline() { return pipeline; } diff --git a/api/src/main/java/us/myles/ViaVersion/protocols/base/VersionProvider.java b/api/src/main/java/us/myles/ViaVersion/protocols/base/VersionProvider.java index c2390e34b..cfb0cf149 100644 --- a/api/src/main/java/us/myles/ViaVersion/protocols/base/VersionProvider.java +++ b/api/src/main/java/us/myles/ViaVersion/protocols/base/VersionProvider.java @@ -29,9 +29,18 @@ public interface VersionProvider extends Provider { /** * Returns the closest server protocol version to the user's protocol version. + * On non-proxy servers, this returns the actual server version. * * @param connection connection * @return closest server protocol version to the user's protocol version */ - int getServerProtocol(UserConnection connection) throws Exception; + int getClosestServerProtocol(UserConnection connection) throws Exception; + + /** + * @deprecated misleading name, use {@link #getClosestServerProtocol(UserConnection)} + */ + @Deprecated + default int getServerProtocol(UserConnection connection) throws Exception { + return getClosestServerProtocol(connection); + } } diff --git a/api/src/main/java/us/myles/ViaVersion/util/GsonUtil.java b/api/src/main/java/us/myles/ViaVersion/util/GsonUtil.java index 6961cac7e..f0c0c7f4f 100644 --- a/api/src/main/java/us/myles/ViaVersion/util/GsonUtil.java +++ b/api/src/main/java/us/myles/ViaVersion/util/GsonUtil.java @@ -27,28 +27,24 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonParser; public final class GsonUtil { - private static final JsonParser JSON_PARSER = new JsonParser(); - private static final Gson GSON = getGsonBuilder().create(); + private static final Gson GSON = new GsonBuilder().create(); /** - * Get google's Gson magic + * Returns google's Gson magic. * - * @return Gson instance + * @return gson instance */ public static Gson getGson() { return GSON; } - /** - * Get the GsonBuilder in case you want to add other stuff - * - * @return GsonBuilder instance - */ + @Deprecated public static GsonBuilder getGsonBuilder() { return new GsonBuilder(); } + @Deprecated public static JsonParser getJsonParser() { - return JSON_PARSER; + return new JsonParser(); } } diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/providers/BungeeVersionProvider.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/providers/BungeeVersionProvider.java index 82dcb4bca..bb15e2bfb 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/providers/BungeeVersionProvider.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/providers/BungeeVersionProvider.java @@ -43,9 +43,9 @@ public class BungeeVersionProvider extends BaseVersionProvider { } @Override - public int getServerProtocol(UserConnection user) throws Exception { + public int getClosestServerProtocol(UserConnection user) throws Exception { if (ref == null) - return super.getServerProtocol(user); + return super.getClosestServerProtocol(user); // TODO Have one constant list forever until restart? (Might limit plugins if they change this) List list = ReflectionUtil.getStatic(ref, "SUPPORTED_VERSION_IDS", List.class); List sorted = new ArrayList<>(list); diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 6d6afa5b6..000000000 --- a/circle.yml +++ /dev/null @@ -1,11 +0,0 @@ -machine: - java: - version: oraclejdk8 -general: - artifacts: - - "target/*.jar" -test: - override: - - mvn clean install -B - post: - - cp ./target/*.jar $CIRCLE_ARTIFACTS diff --git a/common/src/main/java/us/myles/ViaVersion/api/rewriters/ComponentRewriter.java b/common/src/main/java/us/myles/ViaVersion/api/rewriters/ComponentRewriter.java index f927f23f3..02d10d62c 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/rewriters/ComponentRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/api/rewriters/ComponentRewriter.java @@ -19,6 +19,7 @@ package us.myles.ViaVersion.api.rewriters; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSyntaxException; import us.myles.ViaVersion.api.Via; @@ -118,7 +119,7 @@ public class ComponentRewriter { public JsonElement processText(String value) { try { - JsonElement root = GsonUtil.getJsonParser().parse(value); + JsonElement root = JsonParser.parseString(value); processText(root); return root; } catch (JsonSyntaxException e) { diff --git a/common/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DumpSubCmd.java b/common/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DumpSubCmd.java index 5b2088b4c..ead18a413 100644 --- a/common/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DumpSubCmd.java +++ b/common/src/main/java/us/myles/ViaVersion/commands/defaultsubs/DumpSubCmd.java @@ -18,6 +18,7 @@ package us.myles.ViaVersion.commands.defaultsubs; import com.google.common.io.CharStreams; +import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.command.ViaCommandSender; @@ -85,7 +86,7 @@ public class DumpSubCmd extends ViaSubCommand { con.setDoOutput(true); OutputStream out = con.getOutputStream(); - out.write(GsonUtil.getGsonBuilder().setPrettyPrinting().create().toJson(template).getBytes(StandardCharsets.UTF_8)); + out.write(new GsonBuilder().setPrettyPrinting().create().toJson(template).getBytes(StandardCharsets.UTF_8)); out.close(); if (con.getResponseCode() == 429) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol.java b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol.java index 1d0711d01..d5f588375 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol.java @@ -57,7 +57,7 @@ public class BaseProtocol extends SimpleProtocol { } // Choose the pipe - int serverProtocol = Via.getManager().getProviders().get(VersionProvider.class).getServerProtocol(wrapper.user()); + int serverProtocol = Via.getManager().getProviders().get(VersionProvider.class).getClosestServerProtocol(wrapper.user()); info.setServerProtocolVersion(serverProtocol); List protocols = null; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java index 5e130bf4b..f832500ea 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java @@ -93,7 +93,7 @@ public class BaseProtocol1_7 extends SimpleProtocol { return; } - int closestServerProtocol = versionProvider.getServerProtocol(wrapper.user()); + int closestServerProtocol = versionProvider.getClosestServerProtocol(wrapper.user()); List protocols = null; if (info.getProtocolVersion() >= closestServerProtocol || Via.getPlatform().isOldClientsAllowed()) { protocols = Via.getManager().getProtocolManager().getProtocolPath(info.getProtocolVersion(), closestServerProtocol); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseVersionProvider.java b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseVersionProvider.java index 60c227e3b..7d0947bc1 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseVersionProvider.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseVersionProvider.java @@ -22,7 +22,8 @@ import us.myles.ViaVersion.api.data.UserConnection; public class BaseVersionProvider implements VersionProvider { - public int getServerProtocol(UserConnection connection) throws Exception { + @Override + public int getClosestServerProtocol(UserConnection connection) throws Exception { return Via.getAPI().getServerVersion().lowestSupportedVersion(); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/CommandBlockHandler.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/CommandBlockHandler.java index 429440b9f..389486ab6 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/CommandBlockHandler.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/CommandBlockHandler.java @@ -21,10 +21,10 @@ import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.StringTag; import com.github.steveice10.opennbt.tag.builtin.Tag; import com.google.gson.JsonElement; +import com.google.gson.JsonParser; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.ChatRewriter; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityProvider; -import us.myles.ViaVersion.util.GsonUtil; public class CommandBlockHandler implements BlockEntityProvider.BlockEntityHandler { @Override @@ -35,7 +35,7 @@ public class CommandBlockHandler implements BlockEntityProvider.BlockEntityHandl } Tag out = tag.get("LastOutput"); if (out instanceof StringTag) { - JsonElement value = GsonUtil.getJsonParser().parse(((StringTag) out).getValue()); + JsonElement value = JsonParser.parseString(((StringTag) out).getValue()); ChatRewriter.processTranslate(value); ((StringTag) out).setValue(value.toString()); } diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/providers/VelocityVersionProvider.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/providers/VelocityVersionProvider.java index 93b83ec01..3fca2305f 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/providers/VelocityVersionProvider.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/providers/VelocityVersionProvider.java @@ -43,7 +43,7 @@ public class VelocityVersionProvider extends BaseVersionProvider { } @Override - public int getServerProtocol(UserConnection user) throws Exception { + public int getClosestServerProtocol(UserConnection user) throws Exception { return user.isClientSide() ? getBackProtocol(user) : getFrontProtocol(user); }