diff --git a/.gitignore b/.gitignore index 7fefd82..d1b11b3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ build common/build gameserver/build -proxy/build \ No newline at end of file +proxy/build +run/ \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b4424c4..98b7bc7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,13 +40,6 @@ tasks { mergeServiceFiles() } runVelocity { -// velocityVersion(libs.versions.velocity.api.get()) + velocityVersion(libs.versions.velocity.get()) } -// withType(xyz.jpenilla.runtask.task.AbstractRun::class) { -// javaLauncher.set(javaToolchains.launcherFor { -// languageVersion = JavaLanguageVersion.of(17) -// vendor = JvmVendorSpec.JETBRAINS -// }) -// jvmArgs("-XX:+AllowEnhancedClassRedefinition", "-XX:+AllowRedefinitionToAddDeleteMethods") -// } } \ No newline at end of file diff --git a/src/main/java/com/mattmx/reconnect/ReconnectVelocity.java b/src/main/java/com/mattmx/reconnect/ReconnectVelocity.java index 3a43df1..1b0f175 100644 --- a/src/main/java/com/mattmx/reconnect/ReconnectVelocity.java +++ b/src/main/java/com/mattmx/reconnect/ReconnectVelocity.java @@ -59,12 +59,12 @@ public ReconnectVelocity(@Nullable ProxyServer server, @Nullable Logger logger, StorageManager.registerStorageMethod(new MariaDbStorage()); StorageManager.registerStorageMethod(new SQLiteStorage()); StorageManager.registerStorageMethod(new YamlStorage()); - StorageManager.registerStorageMethod(new LuckPermsStorage()); + if (proxy.getPluginManager().isLoaded("luckperms")) { + StorageManager.registerStorageMethod(new LuckPermsStorage()); + } ReconnectCommand.register(this); - loadStorage(); - checker = new UpdateChecker(); if (checker.get("https://api.github.com/repos/Matt-MX/ReconnectVelocity/releases/latest") @@ -82,9 +82,13 @@ public void loadStorage() { Objects.requireNonNull(method, "That storage method is invalid!"); // Shutdown current manager - getStorageManager().end(); + if (storage != null) { + storage.end(); + } storage = StorageManager.createStorageManager(method); + + getLogger().info("Using {} as storage method!", storage.getStorageMethod().getId()); } @SuppressWarnings({"ResultOfMethodCallIgnored"}) @@ -114,6 +118,8 @@ public void saveDefaultConfig() { @Subscribe public void onProxyInitialization(ProxyInitializeEvent event) { + loadStorage(); + getProxy().getEventManager().register(this, new ReconnectListener(this)); } diff --git a/src/main/java/com/mattmx/reconnect/storage/LuckPermsStorage.java b/src/main/java/com/mattmx/reconnect/storage/LuckPermsStorage.java index 73ca486..1111ccc 100644 --- a/src/main/java/com/mattmx/reconnect/storage/LuckPermsStorage.java +++ b/src/main/java/com/mattmx/reconnect/storage/LuckPermsStorage.java @@ -1,5 +1,6 @@ package com.mattmx.reconnect.storage; +import com.mattmx.reconnect.ReconnectCommand; import com.mattmx.reconnect.ReconnectVelocity; import net.luckperms.api.LuckPermsProvider; import net.luckperms.api.model.user.User; @@ -18,6 +19,7 @@ public void init() { ReconnectVelocity.get().getLogger().warn("LuckPerms is not installed!"); exception.printStackTrace(); } + ReconnectVelocity.get().getLogger().info("LuckPerms found!"); } @Override @@ -55,6 +57,6 @@ public String getLastServer(String uuid) { @Override public String getMethod() { - return null; + return "luckperms"; } } diff --git a/src/main/java/com/mattmx/reconnect/storage/StorageManager.java b/src/main/java/com/mattmx/reconnect/storage/StorageManager.java index a10371f..ee577ac 100644 --- a/src/main/java/com/mattmx/reconnect/storage/StorageManager.java +++ b/src/main/java/com/mattmx/reconnect/storage/StorageManager.java @@ -9,38 +9,31 @@ public class StorageManager { private static final HashMap methods = new HashMap<>(); - private @Nullable StorageMethod currentStorageMethod; + private final @NotNull StorageMethod currentStorageMethod; + + public StorageManager(@NotNull StorageMethod method) { + this.currentStorageMethod = method; + } public void init() { - Objects.requireNonNull(currentStorageMethod, "Storage not initialized! Can't call init until it is initialized.").init(); + currentStorageMethod.init(); } public void end() { - Objects.requireNonNull(currentStorageMethod, "Storage not initialized! Can't call end until it is initialized.").save(); + currentStorageMethod.save(); } public @NotNull StorageMethod getStorageMethod() { - if (this.currentStorageMethod == null) { - throw new RuntimeException("There has been no Storage Method set!"); - } - return this.currentStorageMethod; } - public void setCurrentStorageMethod(@NotNull StorageMethod currentStorageMethod) { - this.currentStorageMethod = currentStorageMethod; - } - public static void registerStorageMethod(@NotNull StorageMethod method) { methods.put(method.getId(), method); } public static StorageManager createStorageManager(@NotNull StorageMethod method) { - StorageManager manager = new StorageManager(); - manager.setCurrentStorageMethod(method); - + StorageManager manager = new StorageManager(method); manager.init(); - return manager; }