From fae37a45aa859cf04b60895450401af348310b94 Mon Sep 17 00:00:00 2001 From: iGabyTM Date: Fri, 1 Oct 2021 12:37:12 +0300 Subject: [PATCH 1/2] add Matt's VersionHelper util --- .../papi/expansion/player/VersionHelper.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java diff --git a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java new file mode 100644 index 0000000..b37bd68 --- /dev/null +++ b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java @@ -0,0 +1,55 @@ +package com.extendedclip.papi.expansion.player; + +import com.google.common.primitives.Ints; +import org.bukkit.Bukkit; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author Matt (@ipsk) + */ +public final class VersionHelper { + + private static final int VERSION = getCurrentVersion(); + + /** + * + * Damageable#getAbsorptionAmount + * + */ + public static final boolean HAS_ABSORPTION_METHODS = VERSION >= 1_15_0; + + public static final boolean IS_1_17_OR_NEWER = VERSION >= 1_17_0; + + private VersionHelper() { } + + /** + * Gets the current server version + * + * @return A protocol like number representing the version, for example 1.16.5 - 1165 + */ + private static int getCurrentVersion() { + // No need to cache since will only run once + final Matcher matcher = Pattern.compile("(?\\d+\\.\\d+)(?\\.\\d+)?").matcher(Bukkit.getBukkitVersion()); + final StringBuilder stringBuilder = new StringBuilder(); + + if (matcher.find()) { + final String patch = matcher.group("patch"); + + stringBuilder + .append(matcher.group("version").replace(".", "")) + .append((patch == null) ? "0" : patch.replace(".", "")); + } + + final Integer version = Ints.tryParse(stringBuilder.toString()); + + // Should never fail + if (version == null) { + throw new IllegalArgumentException("Could not retrieve server version!"); + } + + return version; + } + +} From d40e1e2bdb288c9333966e6e6c1dd54591fd26eb Mon Sep 17 00:00:00 2001 From: Frcsty Date: Sat, 2 Oct 2021 11:47:38 +0200 Subject: [PATCH 2/2] Setting up v3 expansion --- build.gradle | 2 +- .../expansion/player/PlayerExpansion.java | 49 ++++++++++++----- .../papi/expansion/player/VersionHelper.java | 55 ------------------- 3 files changed, 35 insertions(+), 71 deletions(-) delete mode 100644 src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java diff --git a/build.gradle b/build.gradle index 6b49eb6..4ce0c2e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,3 @@ dependencies { - compileOnly project(":api") + compileOnly project(":common") } \ No newline at end of file diff --git a/src/main/java/at/helpch/placeholderapi/expansion/player/PlayerExpansion.java b/src/main/java/at/helpch/placeholderapi/expansion/player/PlayerExpansion.java index 893a647..ac4d904 100644 --- a/src/main/java/at/helpch/placeholderapi/expansion/player/PlayerExpansion.java +++ b/src/main/java/at/helpch/placeholderapi/expansion/player/PlayerExpansion.java @@ -3,6 +3,18 @@ import at.helpch.placeholderapi.api.expansion.Expansion; import at.helpch.placeholderapi.api.expansion.ExpansionDescription; import at.helpch.placeholderapi.api.expansion.Platform; +import at.helpch.placeholderapi.api.expansion.placeholder.Placeholder; +import at.helpch.placeholderapi.api.expansion.placeholder.PlaceholderContext; +import at.helpch.placeholderapi.api.player.Player; +import at.helpch.placeholderapi.api.player.keyable.key.PlayerKeys; +import at.helpch.placeholderapi.api.server.Server; +import at.helpch.placeholderapi.expansion.time.TimeFormatter; +import at.helpch.placeholderapi.expansion.time.file.Config; +import com.google.inject.Inject; +import org.jetbrains.annotations.NotNull; + +import java.sql.Time; +import java.util.function.Function; @ExpansionDescription( name = "Player", @@ -12,19 +24,26 @@ platforms = {Platform.BUKKIT, Platform.SPONGE, Platform.NUKKIT} ) public final class PlayerExpansion extends Expansion { -// @Override -// public void enable() { -// register(); -// } -// -// private void register() { -// player("name", player -> player.getNullable(PlayerKeys.NAME)); -// player("uuid", player -> player.getNullable(PlayerKeys.UUID)); -// player("has_played_before", player -> player.getNullable(PlayerKeys.HAS_PLAYED_BEFORE)); -// player("is_whitelisted", player -> player.getNullable()); -// } -// -// private void player(@NotNull final String name, @NotNull final Function, Object> function) { -// registerPlaceholder(name, context -> function.apply(context.getPlayer())); -// } + + private final TimeFormatter timeFormatter; + private final Config config; + + @Inject + public PlayerExpansion(@NotNull final Config config) { + this.config = config; + + // TODO: instantiate a single TimeFormatted through out the project, with a main config + this.timeFormatter = new TimeFormatter(config); + } + + @Override + public void enable() { + + } + + @Placeholder("name") + private String name(final PlaceholderContext context) { + return context.getPlayer().get(PlayerKeys.NAME).orElse(""); + } + } diff --git a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java deleted file mode 100644 index b37bd68..0000000 --- a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.extendedclip.papi.expansion.player; - -import com.google.common.primitives.Ints; -import org.bukkit.Bukkit; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * @author Matt (@ipsk) - */ -public final class VersionHelper { - - private static final int VERSION = getCurrentVersion(); - - /** - * - * Damageable#getAbsorptionAmount - * - */ - public static final boolean HAS_ABSORPTION_METHODS = VERSION >= 1_15_0; - - public static final boolean IS_1_17_OR_NEWER = VERSION >= 1_17_0; - - private VersionHelper() { } - - /** - * Gets the current server version - * - * @return A protocol like number representing the version, for example 1.16.5 - 1165 - */ - private static int getCurrentVersion() { - // No need to cache since will only run once - final Matcher matcher = Pattern.compile("(?\\d+\\.\\d+)(?\\.\\d+)?").matcher(Bukkit.getBukkitVersion()); - final StringBuilder stringBuilder = new StringBuilder(); - - if (matcher.find()) { - final String patch = matcher.group("patch"); - - stringBuilder - .append(matcher.group("version").replace(".", "")) - .append((patch == null) ? "0" : patch.replace(".", "")); - } - - final Integer version = Ints.tryParse(stringBuilder.toString()); - - // Should never fail - if (version == null) { - throw new IllegalArgumentException("Could not retrieve server version!"); - } - - return version; - } - -}