From 695972c88456205c4f6a8b7ed41b607bc0a21078 Mon Sep 17 00:00:00 2001 From: david <89749147+analnyroztahovac@users.noreply.github.com> Date: Mon, 21 Aug 2023 11:44:35 +0200 Subject: [PATCH 1/5] update registration, add new tag --- .../bukkit/bridges/ViaVersionBridge.java | 11 ++- .../ViaVersionPlayerExtensions.java | 47 ++++++++++++ .../ViaVersionPlayerProperties.java | 76 ------------------- 3 files changed, 54 insertions(+), 80 deletions(-) create mode 100644 src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java delete mode 100644 src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerProperties.java diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java index 79aba2eacb..7c8acfd54d 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java @@ -1,14 +1,17 @@ package com.denizenscript.depenizen.bukkit.bridges; -import com.denizenscript.denizen.objects.PlayerTag; -import com.denizenscript.denizencore.objects.properties.PropertyParser; import com.denizenscript.depenizen.bukkit.Bridge; -import com.denizenscript.depenizen.bukkit.properties.viaversion.ViaVersionPlayerProperties; +import com.denizenscript.depenizen.bukkit.properties.viaversion.ViaVersionPlayerExtensions; +import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.ViaAPI; public class ViaVersionBridge extends Bridge { + public static ViaAPI viaVersionInstance; + @Override public void init() { - PropertyParser.registerProperty(ViaVersionPlayerProperties.class, PlayerTag.class); + viaVersionInstance = Via.getAPI(); + ViaVersionPlayerExtensions.register(); } } diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java new file mode 100644 index 0000000000..b67acfec5e --- /dev/null +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java @@ -0,0 +1,47 @@ +package com.denizenscript.depenizen.bukkit.properties.viaversion; + +import com.denizenscript.denizen.objects.PlayerTag; +import com.denizenscript.denizencore.objects.core.ElementTag; +import com.denizenscript.depenizen.bukkit.bridges.ViaVersionBridge; +import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; + +public class ViaVersionPlayerExtensions { + + public static void register() { + + // <--[tag] + // @attribute + // @returns ElementTag(Number) + // @plugin Depenizen, ViaVersion + // @deprecated Use 'PlayerTag.viaversion_protocol' + // @description + // Deprecated in favor of <@link tag PlayerTag.viaversion_protocol>. + // --> + + // <--[tag] + // @attribute + // @returns ElementTag(Number) + // @plugin Depenizen, ViaVersion + // @description + // Returns the protocol version number of the player's client. + // See <@link url https://wiki.vg/Protocol_version_numbers> as a reference list. + // Note: When getting the players protocol, join events may not have the protocol linked with the player in time. It is suggested to delay this check by a few ticks. + // --> + PlayerTag.tagProcessor.registerTag(ElementTag.class, "viaversion_protocol", (attribute, object) -> { + return new ElementTag(ViaVersionBridge.viaVersionInstance.getPlayerVersion(object.getUUID())); + }, "viaversion"); + + // <--[tag] + // @attribute + // @returns ElementTag + // @plugin Depenizen, ViaVersion + // @description + // Returns the version based on the protocol version number of the player's client. + // --> + PlayerTag.tagProcessor.registerTag(ElementTag.class, "viaversion_version", (attribute, object) -> { + int version = ViaVersionBridge.viaVersionInstance.getPlayerVersion(object.getUUID()); + return new ElementTag(ProtocolVersion.getProtocol(version).getName(), true); + }); + } + +} diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerProperties.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerProperties.java deleted file mode 100644 index d20d5579a4..0000000000 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerProperties.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.denizenscript.depenizen.bukkit.properties.viaversion; - -import com.denizenscript.denizen.objects.PlayerTag; -import com.denizenscript.denizencore.objects.Mechanism; -import com.denizenscript.denizencore.objects.ObjectTag; -import com.denizenscript.denizencore.objects.core.ElementTag; -import com.denizenscript.denizencore.objects.properties.Property; -import com.denizenscript.denizencore.tags.Attribute; -import us.myles.ViaVersion.api.ViaAPI; -import us.myles.ViaVersion.api.Via; - -public class ViaVersionPlayerProperties implements Property { - - @Override - public String getPropertyString() { - return null; - } - - @Override - public String getPropertyId() { - return "PlayerViaVersion"; - } - - public static boolean describes(ObjectTag object) { - return object instanceof PlayerTag; - } - - public static ViaVersionPlayerProperties getFrom(ObjectTag object) { - if (!describes(object)) { - return null; - } - else { - return new ViaVersionPlayerProperties((PlayerTag) object); - } - } - - public static final String[] handledTags = new String[] { - "viaversion" - }; - - public static final String[] handledMechs = new String[] { - }; // None - - public ViaVersionPlayerProperties(PlayerTag player) { - this.player = player; - } - - PlayerTag player; - - @Override - public ObjectTag getObjectAttribute(Attribute attribute) { - if (attribute == null) { - return null; - } - - // <--[tag] - // @attribute - // @returns ElementTag(Number) - // @plugin Depenizen, ViaVersion - // @description - // Returns the protocol version number of the player's client. - // See <@link url https://wiki.vg/Protocol_version_numbers> as a reference list. - // --> - if (attribute.startsWith("viaversion")) { - ViaAPI api = Via.getAPI(); - return new ElementTag(api.getPlayerVersion(player.getUUID())) - .getObjectAttribute(attribute.fulfill(1)); - } - - return null; - } - - @Override - public void adjust(Mechanism mechanism) { - } -} From ccbdc4a932ddb26907ef27611dcb08b72b0a065b Mon Sep 17 00:00:00 2001 From: david <89749147+analnyroztahovac@users.noreply.github.com> Date: Mon, 21 Aug 2023 11:44:49 +0200 Subject: [PATCH 2/5] lib bump --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d39a4dd3a9..36ea015e76 100644 --- a/pom.xml +++ b/pom.xml @@ -340,7 +340,7 @@ us.myles ViaVersion - 2.1.3 + 4.7.0 system ${basedir}/lib/ViaVersion.jar From 1b46dcb4d410fc19399f8697fbef83627d53adbd Mon Sep 17 00:00:00 2001 From: david <89749147+analnyroztahovac@users.noreply.github.com> Date: Mon, 21 Aug 2023 11:52:07 +0200 Subject: [PATCH 3/5] note --- .../bukkit/properties/viaversion/ViaVersionPlayerExtensions.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java index b67acfec5e..4b7d899c76 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java @@ -37,6 +37,7 @@ public static void register() { // @plugin Depenizen, ViaVersion // @description // Returns the version based on the protocol version number of the player's client. + // Note: When getting the players protocol, join events may not have the protocol linked with the player in time. It is suggested to delay this check by a few ticks. // --> PlayerTag.tagProcessor.registerTag(ElementTag.class, "viaversion_version", (attribute, object) -> { int version = ViaVersionBridge.viaVersionInstance.getPlayerVersion(object.getUUID()); From ab023c06f7c33e142ad25d8a88426578f34ea4e7 Mon Sep 17 00:00:00 2001 From: david <89749147+analnyroztahovac@users.noreply.github.com> Date: Wed, 23 Aug 2023 19:58:57 +0200 Subject: [PATCH 4/5] fixes --- .../bukkit/bridges/ViaVersionBridge.java | 5 ----- .../viaversion/ViaVersionPlayerExtensions.java | 16 ++++++++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java index 7c8acfd54d..a7c34bccd3 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViaVersionBridge.java @@ -2,16 +2,11 @@ import com.denizenscript.depenizen.bukkit.Bridge; import com.denizenscript.depenizen.bukkit.properties.viaversion.ViaVersionPlayerExtensions; -import com.viaversion.viaversion.api.Via; -import com.viaversion.viaversion.api.ViaAPI; public class ViaVersionBridge extends Bridge { - public static ViaAPI viaVersionInstance; - @Override public void init() { - viaVersionInstance = Via.getAPI(); ViaVersionPlayerExtensions.register(); } } diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java index 4b7d899c76..18ecbc86eb 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java @@ -2,7 +2,7 @@ import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizencore.objects.core.ElementTag; -import com.denizenscript.depenizen.bukkit.bridges.ViaVersionBridge; +import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; public class ViaVersionPlayerExtensions { @@ -25,10 +25,10 @@ public static void register() { // @description // Returns the protocol version number of the player's client. // See <@link url https://wiki.vg/Protocol_version_numbers> as a reference list. - // Note: When getting the players protocol, join events may not have the protocol linked with the player in time. It is suggested to delay this check by a few ticks. + // See also <@link tag PlayerTag.viaversion_version> // --> - PlayerTag.tagProcessor.registerTag(ElementTag.class, "viaversion_protocol", (attribute, object) -> { - return new ElementTag(ViaVersionBridge.viaVersionInstance.getPlayerVersion(object.getUUID())); + PlayerTag.registerOnlineOnlyTag(ElementTag.class, "viaversion_protocol", (attribute, object) -> { + return new ElementTag(Via.getAPI().getPlayerVersion(object.getUUID())); }, "viaversion"); // <--[tag] @@ -36,11 +36,11 @@ public static void register() { // @returns ElementTag // @plugin Depenizen, ViaVersion // @description - // Returns the version based on the protocol version number of the player's client. - // Note: When getting the players protocol, join events may not have the protocol linked with the player in time. It is suggested to delay this check by a few ticks. + // Returns the player's client version ("1.19.4", "1.18.2"...). + // See also <@link tag PlayerTag.viaversion_protocol> // --> - PlayerTag.tagProcessor.registerTag(ElementTag.class, "viaversion_version", (attribute, object) -> { - int version = ViaVersionBridge.viaVersionInstance.getPlayerVersion(object.getUUID()); + PlayerTag.registerOnlineOnlyTag(ElementTag.class, "viaversion_version", (attribute, object) -> { + int version = Via.getAPI().getPlayerVersion(object.getUUID()); return new ElementTag(ProtocolVersion.getProtocol(version).getName(), true); }); } From 1406064f9936741949709be62f37a6c666a902f9 Mon Sep 17 00:00:00 2001 From: david <89749147+analnyroztahovac@users.noreply.github.com> Date: Sat, 26 Aug 2023 16:12:01 +0200 Subject: [PATCH 5/5] typo --- .../properties/viaversion/ViaVersionPlayerExtensions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java index 18ecbc86eb..6936ec7e41 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java @@ -10,7 +10,7 @@ public class ViaVersionPlayerExtensions { public static void register() { // <--[tag] - // @attribute + // @attribute // @returns ElementTag(Number) // @plugin Depenizen, ViaVersion // @deprecated Use 'PlayerTag.viaversion_protocol'