diff --git a/README.md b/README.md index c1ce9ec1..7f4efe09 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Join the [Discord](https://discord.gg/v7nmTDTW8W) or create an issue for support ## Supported server versions -All Paper and Spigot versions from 1.7.10 to 1.21.11 are natively supported. +All Paper and Spigot versions from 1.7.10 to 26.1 are natively supported. ## Installation diff --git a/build.gradle.kts b/build.gradle.kts index 34943b22..b88ab43f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ allprojects { - version = "2.7.0" + version = "2.7.1-SNAPSHOT" group = "net.megavex" description = "Powerful packet-level scoreboard library for Paper/Spigot servers" } diff --git a/commons/build.gradle.kts b/commons/build.gradle.kts deleted file mode 100644 index 7ac30a63..00000000 --- a/commons/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") -} - -dependencies { - api(project(":scoreboard-library-api")) - compileOnly(libs.spigotApi) -} diff --git a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/CollectionProvider.java b/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/CollectionProvider.java deleted file mode 100644 index 0a4119c8..00000000 --- a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/CollectionProvider.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.megavex.scoreboardlibrary.implementation.commons; - -import org.jetbrains.annotations.NotNull; - -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodHandles.Lookup; -import java.lang.invoke.MethodType; -import java.util.*; - -public final class CollectionProvider { - private static final MethodHandle mapConstructor, setConstructor, listConstructor; - - static { - Lookup lookup = MethodHandles.publicLookup(); - MethodType parameters = MethodType.methodType(void.class, int.class); - mapConstructor = getConstructor(lookup, "it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap", HashMap.class, parameters); - setConstructor = getConstructor(lookup, "it.unimi.dsi.fastutil.objects.ObjectOpenHashSet", HashSet.class, parameters); - listConstructor = getConstructor(lookup, "it.unimi.dsi.fastutil.objects.ObjectArrayList", ArrayList.class, parameters); - } - - private CollectionProvider() { - } - - private static MethodHandle getConstructor(Lookup lookup, String fastUtilClass, Class fallback, MethodType parameters) { - Class clazz; - try { - clazz = Class.forName(fastUtilClass); - } catch (ClassNotFoundException e) { - clazz = fallback; - } - - try { - return lookup.findConstructor(clazz, parameters); - } catch (NoSuchMethodException | IllegalAccessException e) { - throw new ExceptionInInitializerError(e); - } - } - - public static @NotNull Map map(int capacity) { - try { - // noinspection unchecked - return (Map) mapConstructor.invokeWithArguments(capacity); - } catch (Throwable e) { - throw new RuntimeException(e); - } - } - - public static @NotNull Set set(int capacity) { - try { - // noinspection unchecked - return (Set) setConstructor.invokeWithArguments(capacity); - } catch (Throwable e) { - throw new RuntimeException(e); - } - } - - public static @NotNull List list(int capacity) { - try { - // noinspection unchecked - return (List) listConstructor.invokeWithArguments(capacity); - } catch (Throwable e) { - throw new RuntimeException(e); - } - } -} diff --git a/implementation/build.gradle.kts b/implementation/build.gradle.kts index 9a131005..f847adce 100644 --- a/implementation/build.gradle.kts +++ b/implementation/build.gradle.kts @@ -1,12 +1,17 @@ plugins { id("net.megavex.scoreboardlibrary.base-conventions") + //id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" +} + +repositories { + maven("https://repo.viaversion.com") } dependencies { api(project(":scoreboard-library-api")) - implementation(project(":scoreboard-library-packet-adapter-base")) compileOnly(libs.spigotApi) - implementation(project(":scoreboard-library-modern")) - implementation(project(":scoreboard-library-legacy")) + compileOnly("com.viaversion:viaversion-api:5.7.1") + compileOnly("io.netty:netty-buffer:4.2.10.Final") + compileOnly("io.netty:netty-handler:4.2.10.Final") } diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/PacketAdapterLoader.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/PacketAdapterLoader.java index c3636eee..2c56137a 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/PacketAdapterLoader.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/PacketAdapterLoader.java @@ -10,8 +10,6 @@ import java.lang.reflect.InvocationTargetException; public final class PacketAdapterLoader { - private static final String MODERN = "modern", LEGACY = "legacy"; - private PacketAdapterLoader() { } @@ -61,7 +59,11 @@ private PacketAdapterLoader() { case "1.12": case "1.12.1": case "1.12.2": - return tryLoadImplementationClass(LEGACY); + try { + return Class.forName("net.megavex.scoreboardlibrary.implementation.packetAdapter.legacy.PacketAdapterProviderImpl"); + } catch (ClassNotFoundException ignored) { + return null; + } case "1.13": case "1.13.1": case "1.13.2": @@ -108,22 +110,22 @@ private PacketAdapterLoader() { case "1.21.9": case "1.21.10": case "1.21.11": - return tryLoadImplementationClass(MODERN); + case "26.1": + return tryLoadModern(); default: // Hide from relocation checkers String property = "net.mega".concat("vex.scoreboardlibrary.forceModern"); if (System.getProperty(property, "").equalsIgnoreCase("true")) { - return tryLoadImplementationClass(MODERN); + return tryLoadModern(); } return null; } } - private static @Nullable Class tryLoadImplementationClass(@NotNull String name) { + private static Class tryLoadModern() { try { - String path = "net.megavex.scoreboardlibrary.implementation.packetAdapter." + name + ".PacketAdapterProviderImpl"; - return Class.forName(path); + return Class.forName("net.megavex.scoreboardlibrary.implementation.packetAdapter.modern.PacketAdapterProviderImpl"); } catch (ClassNotFoundException ignored) { return null; } diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/ScoreboardLibraryImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/ScoreboardLibraryImpl.java index d41669e9..f88132c2 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/ScoreboardLibraryImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/ScoreboardLibraryImpl.java @@ -30,7 +30,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -public class ScoreboardLibraryImpl implements ScoreboardLibrary { +public final class ScoreboardLibraryImpl implements ScoreboardLibrary { private final Plugin plugin; private final PacketAdapterProvider packetAdapter; private final TaskScheduler taskScheduler; diff --git a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java similarity index 96% rename from commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java index d43213b8..4ef24409 100644 --- a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LegacyFormatUtil.java @@ -8,6 +8,7 @@ import org.bukkit.ChatColor; import org.jetbrains.annotations.Nullable; +import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -21,7 +22,7 @@ public final class LegacyFormatUtil { static { ChatColor[] values = ChatColor.values(); - chatColorMap = CollectionProvider.map(values.length); + chatColorMap = new HashMap<>(values.length); for (ChatColor value : values) { if (!value.isColor()) continue; diff --git a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java similarity index 83% rename from commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java index 79967c01..7936e55b 100644 --- a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LineRenderingStrategy.java @@ -9,7 +9,7 @@ public enum LineRenderingStrategy { */ LEGACY, /** - * For versions 1.13-1.20.2, where team properties are stored as components with no limits. + * For versions 1.13+, where team properties are stored as components with no limits. */ MODERN, /** diff --git a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java similarity index 94% rename from commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java index b58f4af6..0a8de17c 100644 --- a/commons/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/commons/LocaleProvider.java @@ -12,10 +12,13 @@ public final class LocaleProvider { private static final Locale DEFAULT_LOCALE = Locale.US; - private static final Function provider = get(); + private static final Function PROVIDER = get(); + + private LocaleProvider() { + } public static @NotNull Locale locale(Player player) { - return provider.apply(player); + return PROVIDER.apply(player); } private static @NotNull Function get() { diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveManagerImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveManagerImpl.java index 05a90cf0..b8f1e7f8 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveManagerImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveManagerImpl.java @@ -6,7 +6,6 @@ import net.megavex.scoreboardlibrary.api.objective.ObjectiveScore; import net.megavex.scoreboardlibrary.api.objective.ScoreboardObjective; import net.megavex.scoreboardlibrary.implementation.ScoreboardLibraryImpl; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.packetAdapter.PropertiesPacketType; import net.megavex.scoreboardlibrary.implementation.packetAdapter.objective.ObjectivePacketAdapter; import net.megavex.scoreboardlibrary.implementation.player.PlayerDisplayable; @@ -19,13 +18,13 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; -public class ObjectiveManagerImpl implements ObjectiveManager, PlayerDisplayable { +public final class ObjectiveManagerImpl implements ObjectiveManager, PlayerDisplayable { private final ScoreboardLibraryImpl library; private final Map objectives = new ConcurrentHashMap<>(); private final Map displaySlots = new HashMap<>(); - private final Set players = CollectionProvider.set(8); - private final Set displayingPlayers = CollectionProvider.set(8); + private final Set players = new HashSet<>(8); + private final Set displayingPlayers = new HashSet<>(8); private final Queue taskQueue = new ConcurrentLinkedQueue<>(); private boolean closed; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveUpdaterTask.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveUpdaterTask.java index 4216ab61..d2626040 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveUpdaterTask.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ObjectiveUpdaterTask.java @@ -7,7 +7,7 @@ import java.util.Iterator; import java.util.logging.Level; -public class ObjectiveUpdaterTask implements Runnable { +public final class ObjectiveUpdaterTask implements Runnable { private final ScoreboardLibraryImpl scoreboardLibrary; private final RunningTask task; private final Object lock = new Object(); diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ScoreboardObjectiveImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ScoreboardObjectiveImpl.java index 370266cb..8a8c68f0 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ScoreboardObjectiveImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/objective/ScoreboardObjectiveImpl.java @@ -16,7 +16,7 @@ import static net.kyori.adventure.text.Component.empty; -public class ScoreboardObjectiveImpl implements ScoreboardObjective { +public final class ScoreboardObjectiveImpl implements ScoreboardObjective { private final ObjectivePacketAdapter packetAdapter; private final Queue taskQueue; private final String name; diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/ImmutableTeamProperties.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/ImmutableTeamProperties.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/ImmutableTeamProperties.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/ImmutableTeamProperties.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketAdapterProvider.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketAdapterProvider.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketAdapterProvider.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketAdapterProvider.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketSender.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketSender.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketSender.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PacketSender.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PropertiesPacketType.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PropertiesPacketType.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PropertiesPacketType.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/PropertiesPacketType.java diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ChatColorUtil.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ChatColorUtil.java similarity index 100% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ChatColorUtil.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ChatColorUtil.java diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyMinecraftClasses.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyMinecraftClasses.java similarity index 100% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyMinecraftClasses.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyMinecraftClasses.java diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyPacketSender.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyPacketSender.java similarity index 100% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyPacketSender.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/LegacyPacketSender.java diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java similarity index 98% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java index a4d08da1..643f68be 100644 --- a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/ObjectivePacketAdapterImpl.java @@ -18,7 +18,7 @@ import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection; -public class ObjectivePacketAdapterImpl implements ObjectivePacketAdapter { +public final class ObjectivePacketAdapterImpl implements ObjectivePacketAdapter { private final String objectiveName; private Object removePacket; diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAccessors.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAccessors.java similarity index 100% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAccessors.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAccessors.java diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java similarity index 93% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java index d10e5eb2..1889c8d7 100644 --- a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/PacketAdapterProviderImpl.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; @SuppressWarnings("unused") -public class PacketAdapterProviderImpl implements PacketAdapterProvider { +public final class PacketAdapterProviderImpl implements PacketAdapterProvider { public PacketAdapterProviderImpl(Plugin plugin) {} @Override diff --git a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java similarity index 98% rename from versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java index 893801f3..28fdf6a3 100644 --- a/versions/legacy/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/legacy/TeamsPacketAdapterImpl.java @@ -19,7 +19,7 @@ import static net.megavex.scoreboardlibrary.implementation.commons.LegacyFormatUtil.limitLegacyText; -public class TeamsPacketAdapterImpl implements TeamsPacketAdapter { +public final class TeamsPacketAdapterImpl implements TeamsPacketAdapter { private final String teamName; private Object removePacket; diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAccessors.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAccessors.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAccessors.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAccessors.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java similarity index 97% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java index 45546ed4..e91c81b3 100644 --- a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/PacketAdapterProviderImpl.java @@ -21,7 +21,7 @@ import java.util.WeakHashMap; @SuppressWarnings("unused") -public class PacketAdapterProviderImpl implements PacketAdapterProvider { +public final class PacketAdapterProviderImpl implements PacketAdapterProvider { private final ViaAPI via; private final ModernPacketSender packetSender; private final WeakHashMap viaTeamPacketIds = new WeakHashMap<>(); diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/RelocatedGson.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/RelocatedGson.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/RelocatedGson.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/RelocatedGson.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/AbstractObjectivePacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/AbstractObjectivePacketAdapter.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/AbstractObjectivePacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/AbstractObjectivePacketAdapter.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java similarity index 95% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java index d4493d73..d9264ee0 100644 --- a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/PaperObjectivePacketAdapter.java @@ -13,7 +13,7 @@ import java.util.Collection; -public class PaperObjectivePacketAdapter extends AbstractObjectivePacketAdapter { +public final class PaperObjectivePacketAdapter extends AbstractObjectivePacketAdapter { public PaperObjectivePacketAdapter(@NotNull PacketAdapterProviderImpl provider, @NotNull String objectiveName) { super(provider, objectiveName); } diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/ScoreFormatConverter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/ScoreFormatConverter.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/ScoreFormatConverter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/ScoreFormatConverter.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java similarity index 95% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java index e86bb66f..b53f704d 100644 --- a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/objective/SpigotObjectivePacketAdapter.java @@ -13,7 +13,7 @@ import java.util.Collection; -public class SpigotObjectivePacketAdapter extends AbstractObjectivePacketAdapter { +public final class SpigotObjectivePacketAdapter extends AbstractObjectivePacketAdapter { public SpigotObjectivePacketAdapter(@NotNull PacketAdapterProviderImpl provider, @NotNull String objectiveName) { super(provider, objectiveName); } diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/AbstractTeamsPacketAdapterImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/AbstractTeamsPacketAdapterImpl.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/AbstractTeamsPacketAdapterImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/AbstractTeamsPacketAdapterImpl.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/LegacyTeamDisplayPacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/LegacyTeamDisplayPacketAdapter.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/LegacyTeamDisplayPacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/LegacyTeamDisplayPacketAdapter.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java similarity index 98% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java index 8dd0c7e1..1044818c 100644 --- a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/PaperTeamsPacketAdapterImpl.java @@ -16,7 +16,7 @@ import java.util.Locale; import java.util.Optional; -public class PaperTeamsPacketAdapterImpl extends AbstractTeamsPacketAdapterImpl { +public final class PaperTeamsPacketAdapterImpl extends AbstractTeamsPacketAdapterImpl { public PaperTeamsPacketAdapterImpl(PacketAdapterProviderImpl provider, @NotNull String teamName) { super(provider, teamName); } diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java similarity index 97% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java index 369bfdff..2e508b2f 100644 --- a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/team/SpigotTeamsPacketAdapter.java @@ -18,7 +18,7 @@ import java.util.Locale; import java.util.Optional; -public class SpigotTeamsPacketAdapter extends AbstractTeamsPacketAdapterImpl { +public final class SpigotTeamsPacketAdapter extends AbstractTeamsPacketAdapterImpl { public SpigotTeamsPacketAdapter(PacketAdapterProviderImpl provider, @NotNull String teamName) { super(provider, teamName); } diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernComponentProvider.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernComponentProvider.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernComponentProvider.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernComponentProvider.java diff --git a/versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernPacketSender.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernPacketSender.java similarity index 100% rename from versions/modern/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernPacketSender.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/modern/util/ModernPacketSender.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectiveConstants.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectiveConstants.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectiveConstants.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectiveConstants.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectivePacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectivePacketAdapter.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectivePacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/objective/ObjectivePacketAdapter.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/EntriesPacketType.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/EntriesPacketType.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/EntriesPacketType.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/EntriesPacketType.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamConstants.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamConstants.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamConstants.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamConstants.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamDisplayPacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamDisplayPacketAdapter.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamDisplayPacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamDisplayPacketAdapter.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamsPacketAdapter.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamsPacketAdapter.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamsPacketAdapter.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/team/TeamsPacketAdapter.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java similarity index 89% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java index 9b207326..e32a3c3b 100644 --- a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/LocalePacketUtil.java @@ -1,12 +1,12 @@ package net.megavex.scoreboardlibrary.implementation.packetAdapter.util; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.commons.LocaleProvider; import net.megavex.scoreboardlibrary.implementation.packetAdapter.PacketSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.Collection; +import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.function.Function; @@ -31,7 +31,7 @@ public static

void sendLocalePackets( return; } - Map map = CollectionProvider.map(1); + Map map = new HashMap<>(1); for (Player player : players) { Locale locale = LocaleProvider.locale(player); P packet = map.computeIfAbsent(locale, i -> packetFunction.apply(locale)); diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java similarity index 93% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java index 8cb9ba82..2e9086ef 100644 --- a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ConstructorAccessor.java @@ -5,7 +5,7 @@ import java.lang.invoke.MethodHandle; -public class ConstructorAccessor { +public final class ConstructorAccessor { private final MethodHandle handle; public ConstructorAccessor(@NotNull MethodHandle handle) { diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java similarity index 96% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java index 6f49fa0a..8b334495 100644 --- a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/FieldAccessor.java @@ -6,7 +6,7 @@ import java.lang.invoke.MethodHandle; -public class FieldAccessor { +public final class FieldAccessor { private final MethodHandle getter, setter; public FieldAccessor(@NotNull MethodHandle getter, @Nullable MethodHandle setter) { diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java similarity index 94% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java index 343f6823..63089f8c 100644 --- a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MethodAccessor.java @@ -5,7 +5,7 @@ import java.lang.invoke.MethodHandle; -public class MethodAccessor { +public final class MethodAccessor { private final MethodHandle handle; public MethodAccessor(@NotNull MethodHandle handle) { diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MinecraftClasses.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MinecraftClasses.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MinecraftClasses.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/MinecraftClasses.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/PacketConstructor.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/PacketConstructor.java similarity index 100% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/PacketConstructor.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/PacketConstructor.java diff --git a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java similarity index 99% rename from versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java rename to implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java index e9e1af71..c661d21c 100644 --- a/versions/packet-adapter-base/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/util/reflect/ReflectUtil.java @@ -9,7 +9,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; -public class ReflectUtil { +public final class ReflectUtil { // Inspired by // https://github.com/dmulloy2/ProtocolLib/blob/02e917cd08cf5b37a52052e22b223272a040e0df/src/main/java/com/comphenix/protocol/reflect/accessors/MethodHandleHelper.java diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/DisplayableQueue.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/DisplayableQueue.java index 5302cab1..34d56af0 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/DisplayableQueue.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/DisplayableQueue.java @@ -1,60 +1,66 @@ package net.megavex.scoreboardlibrary.implementation.player; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.ArrayList; import java.util.List; import java.util.UUID; -public class DisplayableQueue { +public final class DisplayableQueue { private final UUID playerUuid; - private final List queue = CollectionProvider.list(1); + private final List queue = new ArrayList<>(1); public DisplayableQueue(@NotNull UUID playerUuid) { this.playerUuid = playerUuid; } - public synchronized @Nullable T current() { - if (queue.isEmpty()) { - return null; - } else { - return queue.get(0); + public @Nullable T current() { + synchronized (this) { + if (queue.isEmpty()) { + return null; + } else { + return queue.get(0); + } } } - public synchronized void add(@NotNull T displayable) { - if (queue.contains(displayable)) { - throw new IllegalStateException("displayable already registered"); - } + public void add(@NotNull T displayable) { + synchronized (this) { + if (queue.contains(displayable)) { + throw new IllegalStateException("displayable already registered"); + } - queue.add(displayable); + queue.add(displayable); - if (current() == displayable) { - Player player = Bukkit.getPlayer(playerUuid); - if (player != null) { - displayable.display(player); + if (current() == displayable) { + Player player = Bukkit.getPlayer(playerUuid); + if (player != null) { + displayable.display(player); + } } } } - public synchronized void remove(@NotNull T displayable) { - boolean wasCurrent = displayable == current(); - if (!queue.remove(displayable)) { - throw new IllegalStateException("displayable not registered"); - } + public void remove(@NotNull T displayable) { + synchronized (this) { + boolean wasCurrent = displayable == current(); + if (!queue.remove(displayable)) { + throw new IllegalStateException("displayable not registered"); + } - if (!wasCurrent) { - return; - } + if (!wasCurrent) { + return; + } - T newDisplayable = current(); - if (newDisplayable != null) { - Player player = Bukkit.getPlayer(playerUuid); - if (player != null) { - newDisplayable.display(player); + T newDisplayable = current(); + if (newDisplayable != null) { + Player player = Bukkit.getPlayer(playerUuid); + if (player != null) { + newDisplayable.display(player); + } } } } diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/LocaleListener.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/LocaleListener.java index beb7e127..8886e5bb 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/LocaleListener.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/LocaleListener.java @@ -15,7 +15,7 @@ import org.bukkit.event.player.PlayerLocaleChangeEvent; import org.jetbrains.annotations.NotNull; -public class LocaleListener implements Listener { +public final class LocaleListener implements Listener { private final ScoreboardLibraryImpl scoreboardLibrary; public LocaleListener(@NotNull ScoreboardLibraryImpl scoreboardLibrary) { diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/ScoreboardLibraryPlayer.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/ScoreboardLibraryPlayer.java index 2d52ada1..d669e993 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/ScoreboardLibraryPlayer.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/player/ScoreboardLibraryPlayer.java @@ -8,7 +8,7 @@ import java.util.UUID; -public class ScoreboardLibraryPlayer { +public final class ScoreboardLibraryPlayer { private final DisplayableQueue teamManagerQueue; private final DisplayableQueue objectiveManagerQueue; private final DisplayableQueue sidebarQueue; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/BukkitTaskScheduler.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/BukkitTaskScheduler.java index e06f72ba..50019ea3 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/BukkitTaskScheduler.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/BukkitTaskScheduler.java @@ -3,7 +3,7 @@ import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; -class BukkitTaskScheduler implements TaskScheduler { +final class BukkitTaskScheduler implements TaskScheduler { private final Plugin plugin; public BukkitTaskScheduler(@NotNull Plugin plugin) { diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/FoliaTaskScheduler.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/FoliaTaskScheduler.java index ae69cea5..a3e5a731 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/FoliaTaskScheduler.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/scheduler/FoliaTaskScheduler.java @@ -11,7 +11,7 @@ import java.util.concurrent.TimeUnit; import java.util.function.Consumer; -class FoliaTaskScheduler implements TaskScheduler { +final class FoliaTaskScheduler implements TaskScheduler { private static final Class asyncSchedulerClass; private static final Class scheduledTaskClass; private static final Class cancelledStateClass; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/AbstractSidebar.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/AbstractSidebar.java index c399f5ad..7a05c065 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/AbstractSidebar.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/AbstractSidebar.java @@ -6,18 +6,14 @@ import net.megavex.scoreboardlibrary.api.objective.ScoreFormat; import net.megavex.scoreboardlibrary.api.sidebar.Sidebar; import net.megavex.scoreboardlibrary.implementation.ScoreboardLibraryImpl; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.packetAdapter.PropertiesPacketType; import net.megavex.scoreboardlibrary.implementation.packetAdapter.objective.ObjectivePacketAdapter; import net.megavex.scoreboardlibrary.implementation.player.PlayerDisplayable; import net.megavex.scoreboardlibrary.implementation.player.ScoreboardLibraryPlayer; import net.megavex.scoreboardlibrary.implementation.sidebar.line.GlobalLineInfo; import net.megavex.scoreboardlibrary.implementation.sidebar.line.LocaleLineHandler; -import java.util.Collection; -import java.util.Collections; -import java.util.Objects; -import java.util.Queue; -import java.util.Set; + +import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.function.Consumer; import net.kyori.adventure.text.Component; @@ -38,7 +34,7 @@ public abstract class AbstractSidebar implements Sidebar, PlayerDisplayable { private final GlobalLineInfo[] lines; private Component title = empty(); - private final Set players = CollectionProvider.set(8); + private final Set players = new HashSet<>(8); private boolean closed; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/PlayerDependantLocaleSidebar.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/PlayerDependantLocaleSidebar.java index 50e44bdf..951811dd 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/PlayerDependantLocaleSidebar.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/PlayerDependantLocaleSidebar.java @@ -13,7 +13,7 @@ import java.util.Set; import java.util.function.Consumer; -public class PlayerDependantLocaleSidebar extends AbstractSidebar { +public final class PlayerDependantLocaleSidebar extends AbstractSidebar { private final Map playerMap = new HashMap<>(); private final Map localeMap = new HashMap<>(); diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SidebarUpdaterTask.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SidebarUpdaterTask.java index 139143d7..c7cbfad3 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SidebarUpdaterTask.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SidebarUpdaterTask.java @@ -7,7 +7,7 @@ import java.util.Iterator; import java.util.logging.Level; -public class SidebarUpdaterTask implements Runnable { +public final class SidebarUpdaterTask implements Runnable { private final ScoreboardLibraryImpl scoreboardLibrary; private final RunningTask task; private final Object lock = new Object(); diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SingleLocaleSidebar.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SingleLocaleSidebar.java index 7d464346..eb401bd8 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SingleLocaleSidebar.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/SingleLocaleSidebar.java @@ -1,26 +1,25 @@ package net.megavex.scoreboardlibrary.implementation.sidebar; import net.megavex.scoreboardlibrary.implementation.ScoreboardLibraryImpl; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.sidebar.line.LocaleLineHandler; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.HashSet; import java.util.Locale; import java.util.Set; import java.util.function.Consumer; -public class SingleLocaleSidebar extends AbstractSidebar { +public final class SingleLocaleSidebar extends AbstractSidebar { private final Locale locale; private final LocaleLineHandler sidebar; - private final Set internalPlayers; + private final Set internalPlayers = new HashSet<>(8); public SingleLocaleSidebar(@NotNull ScoreboardLibraryImpl scoreboardLibrary, int size, @NotNull String objectiveName, @NotNull Locale locale) { super(scoreboardLibrary, size, objectiveName); this.locale = locale; this.sidebar = new LocaleLineHandler(this, locale); - this.internalPlayers = CollectionProvider.set(8); } @Override diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/GlobalLineInfo.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/GlobalLineInfo.java index f20984c7..93e5e718 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/GlobalLineInfo.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/GlobalLineInfo.java @@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class GlobalLineInfo { +public final class GlobalLineInfo { private final String player; private final int line; private final TeamsPacketAdapter packetAdapter; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/LocaleLineHandler.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/LocaleLineHandler.java index db9d2a3f..f913bcaa 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/LocaleLineHandler.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/LocaleLineHandler.java @@ -9,7 +9,7 @@ import java.util.Collections; import java.util.Locale; -public class LocaleLineHandler { +public final class LocaleLineHandler { private final AbstractSidebar sidebar; private final Locale locale; private final SidebarLineHandler[] lineHandlers; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/SidebarLineHandler.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/SidebarLineHandler.java index edf116e8..092f878a 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/SidebarLineHandler.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/SidebarLineHandler.java @@ -2,7 +2,6 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.translation.GlobalTranslator; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.commons.LineRenderingStrategy; import net.megavex.scoreboardlibrary.implementation.sidebar.line.locale.LegacyLocaleLine; import net.megavex.scoreboardlibrary.implementation.sidebar.line.locale.LocaleLine; @@ -12,12 +11,13 @@ import org.jetbrains.annotations.NotNull; import java.util.Collection; +import java.util.HashSet; import java.util.Set; -public class SidebarLineHandler { +public final class SidebarLineHandler { private final LineRenderingStrategy strategy; private final LocaleLineHandler localeLineHandler; - private final Set players = CollectionProvider.set(1); + private final Set players = new HashSet<>(1); private final LocaleLine[] lines; public SidebarLineHandler(@NotNull LineRenderingStrategy strategy, @NotNull LocaleLineHandler localeLineHandler) { diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/LegacyLocaleLine.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/LegacyLocaleLine.java index 065f43f9..ef58c30f 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/LegacyLocaleLine.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/LegacyLocaleLine.java @@ -21,7 +21,7 @@ import static net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection; // Implementation for versions below 1.13 -public class LegacyLocaleLine implements LocaleLine, ImmutableTeamProperties { +public final class LegacyLocaleLine implements LocaleLine, ImmutableTeamProperties { private final GlobalLineInfo info; private final SidebarLineHandler handler; private final TeamDisplayPacketAdapter packetAdapter; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/ModernLocaleLine.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/ModernLocaleLine.java index 49ceff83..966aa406 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/ModernLocaleLine.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/ModernLocaleLine.java @@ -15,7 +15,7 @@ import static net.kyori.adventure.text.Component.empty; // Implementation for versions above 1.13 -public class ModernLocaleLine implements LocaleLine, ImmutableTeamProperties { +public final class ModernLocaleLine implements LocaleLine, ImmutableTeamProperties { private final GlobalLineInfo info; private final SidebarLineHandler handler; private final Collection entries; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/PostModernLocaleLine.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/PostModernLocaleLine.java index bd0bb1ac..73cef010 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/PostModernLocaleLine.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/sidebar/line/locale/PostModernLocaleLine.java @@ -11,7 +11,7 @@ // Implementation for versions 1.20.3+ // This is not yet being used as it might break on servers with plugins such as ViaBackwards, // however it will once Mojang decides to remove legacy chat format support -public class PostModernLocaleLine implements LocaleLine { +public final class PostModernLocaleLine implements LocaleLine { private final GlobalLineInfo info; private final SidebarLineHandler handler; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/ScoreboardTeamImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/ScoreboardTeamImpl.java index cd359e58..a2e2800d 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/ScoreboardTeamImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/ScoreboardTeamImpl.java @@ -12,7 +12,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; -public class ScoreboardTeamImpl implements ScoreboardTeam { +public final class ScoreboardTeamImpl implements ScoreboardTeam { private final TeamManagerImpl teamManager; private final String name; private final TeamsPacketAdapter packetAdapter; diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamDisplayImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamDisplayImpl.java index a51750fb..f30e4b3c 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamDisplayImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamDisplayImpl.java @@ -8,7 +8,6 @@ import net.megavex.scoreboardlibrary.api.team.TeamDisplay; import net.megavex.scoreboardlibrary.api.team.enums.CollisionRule; import net.megavex.scoreboardlibrary.api.team.enums.NameTagVisibility; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.packetAdapter.ImmutableTeamProperties; import net.megavex.scoreboardlibrary.implementation.packetAdapter.PropertiesPacketType; import net.megavex.scoreboardlibrary.implementation.packetAdapter.team.EntriesPacketType; @@ -21,12 +20,12 @@ import static net.kyori.adventure.text.Component.empty; -public class TeamDisplayImpl implements TeamDisplay, ImmutableTeamProperties { +public final class TeamDisplayImpl implements TeamDisplay, ImmutableTeamProperties { private final ScoreboardTeamImpl team; private final TeamDisplayPacketAdapter packetAdapter; - private final Set players = CollectionProvider.set(4); - private final List entries = CollectionProvider.list(4); - private final List syncedEntries = CollectionProvider.list(4); + private final Set players = new HashSet<>(4); + private final List entries = new ArrayList<>(4); + private final List syncedEntries = new ArrayList<>(4); private Component displayName = empty(), prefix = empty(), suffix = empty(); diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamManagerImpl.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamManagerImpl.java index e33736be..a5fa0a67 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamManagerImpl.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamManagerImpl.java @@ -5,7 +5,6 @@ import net.megavex.scoreboardlibrary.api.team.TeamDisplay; import net.megavex.scoreboardlibrary.api.team.TeamManager; import net.megavex.scoreboardlibrary.implementation.ScoreboardLibraryImpl; -import net.megavex.scoreboardlibrary.implementation.commons.CollectionProvider; import net.megavex.scoreboardlibrary.implementation.packetAdapter.PropertiesPacketType; import net.megavex.scoreboardlibrary.implementation.player.PlayerDisplayable; import net.megavex.scoreboardlibrary.implementation.player.ScoreboardLibraryPlayer; @@ -20,11 +19,11 @@ import java.util.function.BiFunction; import java.util.function.Function; -public class TeamManagerImpl implements TeamManager, PlayerDisplayable { +public final class TeamManagerImpl implements TeamManager, PlayerDisplayable { private final ScoreboardLibraryImpl scoreboardLibrary; - private final Set players = CollectionProvider.set(8); - private final List internalPlayers = CollectionProvider.list(8); + private final Set players = new HashSet<>(8); + private final List internalPlayers = new ArrayList<>(8); private final Map teams = new ConcurrentHashMap<>(); private final Queue taskQueue = new ConcurrentLinkedQueue<>(); diff --git a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamUpdaterTask.java b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamUpdaterTask.java index bc2c3352..28fd6e51 100644 --- a/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamUpdaterTask.java +++ b/implementation/src/main/java/net/megavex/scoreboardlibrary/implementation/team/TeamUpdaterTask.java @@ -7,7 +7,7 @@ import java.util.Iterator; import java.util.logging.Level; -public class TeamUpdaterTask implements Runnable { +public final class TeamUpdaterTask implements Runnable { private final ScoreboardLibraryImpl scoreboardLibrary; private final RunningTask task; private final Object lock = new Object(); diff --git a/settings.gradle.kts b/settings.gradle.kts index 05c6cff1..f3989dfc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,27 +1,10 @@ rootProject.name = "scoreboard-library" include(":api") -include(":commons") include(":implementation") include(":extra-kotlin") include(":test-plugin") -include(":packet-adapter-base") -project(":packet-adapter-base").projectDir = file("versions/packet-adapter-base") - -include(":packetevents") -project(":packetevents").projectDir = file("versions/packetevents") - -include(":modern") -project(":modern").projectDir = file("versions/modern") - -include(":legacy") -project(":legacy").projectDir = file("versions/legacy") - -// For backwards compatibility -include(":v1_8_R3") -project(":v1_8_R3").projectDir = file("versions/v1_8_R3") - val modulePrefix = rootProject.name rootProject.children.forEach { it.name = "$modulePrefix-${it.name}" diff --git a/test-env/init b/test-env/init index f550b83c..e4e2c648 100755 --- a/test-env/init +++ b/test-env/init @@ -102,7 +102,7 @@ download_file() { fi } -download_file "buildtools.jar" "https://hub.spigotmc.org/jenkins/job/BuildTools/197/artifact/target/BuildTools.jar" "9a5b059ace22eaef28fb62f96970f0abe1490f06c860229b94627cd72eaf6ea5" +download_file "buildtools.jar" "https://hub.spigotmc.org/jenkins/job/BuildTools/198/artifact/target/BuildTools.jar" "23eefb5a08655fe83c40ddac7a4ca78b6b2583efccd9c98c58b27df0aa31fa35" download_file "viaversion.jar" "https://ci.viaversion.com/job/ViaVersion-Java8/38/artifact/build/libs/ViaVersion-5.7.1-downgraded.jar" "dcce3d30e195de9a3372616298bac1acd29196e5c3676a0fba745be9e3d91808" download_file "viabackwards.jar" "https://ci.viaversion.com/view/ViaBackwards/job/ViaBackwards-Java8/31/artifact/build/libs/ViaBackwards-5.7.1-downgraded.jar" "9727fd246d3566bffc3f71e1bda0e6db71bf5814a254e7ab5a2941ca0e94ecd6" @@ -236,3 +236,7 @@ create_server "1.21.11-paper" "jdk25" "true" create_spigot_server "1.21.11" "jdk25" +# --- 26.1 --- + +create_spigot_server "26.1" "jdk25" + diff --git a/versions/legacy/build.gradle.kts b/versions/legacy/build.gradle.kts deleted file mode 100644 index 83833c46..00000000 --- a/versions/legacy/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") -} - -dependencies { - compileOnly(project(":scoreboard-library-packet-adapter-base")) - compileOnly(libs.spigotApi) -} diff --git a/versions/modern/build.gradle.kts b/versions/modern/build.gradle.kts deleted file mode 100644 index cabcdffb..00000000 --- a/versions/modern/build.gradle.kts +++ /dev/null @@ -1,46 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") - //id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" -} - -repositories { - maven("https://repo.viaversion.com") -} - -dependencies { - compileOnly(project(":scoreboard-library-packet-adapter-base")) { - //exclude(group = "org.spigotmc", module = "spigot-api") - } - compileOnly(libs.spigotApi) - compileOnly("com.viaversion:viaversion-api:5.7.1") - compileOnly("io.netty:netty-buffer:4.2.10.Final") - compileOnly("io.netty:netty-handler:4.2.10.Final") - //paperweight.paperDevBundle("1.21.11-R0.1-SNAPSHOT") -} - -tasks { - javadoc { - exclude("**") - } -} - -java { - disableAutoTargetJvm() -} - -indra { - includeJavaSoftwareComponentInPublications(false) -} - -publishing { - publications.getByName("maven") { - // Kept for backwards compatibility - artifact(tasks.jar) { - classifier = "mojmap" - } - - artifact(tasks.jar) - artifact(tasks.javadocJar) - artifact(tasks.sourcesJar) - } -} diff --git a/versions/packet-adapter-base/build.gradle.kts b/versions/packet-adapter-base/build.gradle.kts deleted file mode 100644 index 2737f1d2..00000000 --- a/versions/packet-adapter-base/build.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") -} - -dependencies { - api(project(":scoreboard-library-api")) - api(project(":scoreboard-library-commons")) - compileOnly(libs.spigotApi) -} diff --git a/versions/packetevents/build.gradle.kts b/versions/packetevents/build.gradle.kts deleted file mode 100644 index 71484e5a..00000000 --- a/versions/packetevents/build.gradle.kts +++ /dev/null @@ -1,5 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") -} - -// packetevents adapter is gone, this module is kept for compatibility diff --git a/versions/v1_8_R3/build.gradle.kts b/versions/v1_8_R3/build.gradle.kts deleted file mode 100644 index bef69d4b..00000000 --- a/versions/v1_8_R3/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - id("net.megavex.scoreboardlibrary.base-conventions") -} - -dependencies { - // Alias to legacy for backwards compatibility - implementation(project(":scoreboard-library-legacy")) -}