From 3eac7e8cb8c25eb6c2d2cf3b7e1afad6914e06e9 Mon Sep 17 00:00:00 2001 From: HyperSys <66301237+HyperSkys@users.noreply.github.com> Date: Wed, 13 Jul 2022 06:28:48 -0600 Subject: [PATCH] 2.0.1-STABLE --- .../dev/hyperskys/configurator/Configurator.java | 12 +++++------- .../configurator/annotations/GetValue.java | 1 - .../configurator/api/Configuration.java | 16 ++-------------- .../api/exception/PluginNotFoundException.java | 12 ++++++++++++ .../events/ConfigurationReloadEvent.java | 1 - .../configurator/utils/ReflectionUtils.java | 9 +++++++++ 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/main/java/dev/hyperskys/configurator/Configurator.java b/src/main/java/dev/hyperskys/configurator/Configurator.java index 010ccde..41ac882 100644 --- a/src/main/java/dev/hyperskys/configurator/Configurator.java +++ b/src/main/java/dev/hyperskys/configurator/Configurator.java @@ -5,7 +5,7 @@ package dev.hyperskys.configurator; -import dev.hyperskys.configurator.annotations.GetValue; +import dev.hyperskys.configurator.api.exception.ObjectNotFoundException; import dev.hyperskys.configurator.api.exception.PluginNotFoundException; import dev.hyperskys.configurator.utils.FileUtils; import dev.hyperskys.configurator.utils.ReflectionUtils; @@ -13,8 +13,6 @@ import lombok.SneakyThrows; import org.bukkit.plugin.Plugin; -import java.lang.reflect.Field; - /** * The configurator class for initializing all things to do with Configurator. * @since 1.0.0-RELEASE @@ -30,12 +28,12 @@ public class Configurator { */ @SneakyThrows public static void setupConfigurator(Plugin instance) { + ReflectionUtils.disableReflectionsLogger(); if (instance == null) throw new PluginNotFoundException(); - pluginProvided = instance; - ReflectionUtils.disableReflectionsLogger(); - FileUtils.updateFiles(); - instance.getServer().getScheduler().runTaskTimer(instance, FileUtils::updateFiles, 0, 20*2); + try { FileUtils.updateFiles(); } + catch (ObjectNotFoundException ignored) {} + instance.getServer().getScheduler().runTaskTimer(instance, FileUtils::updateFiles, 20*2, 20*2); } } diff --git a/src/main/java/dev/hyperskys/configurator/annotations/GetValue.java b/src/main/java/dev/hyperskys/configurator/annotations/GetValue.java index 6f23472..0518a6a 100644 --- a/src/main/java/dev/hyperskys/configurator/annotations/GetValue.java +++ b/src/main/java/dev/hyperskys/configurator/annotations/GetValue.java @@ -5,7 +5,6 @@ package dev.hyperskys.configurator.annotations; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/dev/hyperskys/configurator/api/Configuration.java b/src/main/java/dev/hyperskys/configurator/api/Configuration.java index 3e1b722..71b586a 100644 --- a/src/main/java/dev/hyperskys/configurator/api/Configuration.java +++ b/src/main/java/dev/hyperskys/configurator/api/Configuration.java @@ -6,14 +6,13 @@ package dev.hyperskys.configurator.api; import dev.hyperskys.configurator.Configurator; -import dev.hyperskys.configurator.annotations.GetValue; import dev.hyperskys.configurator.api.exception.ObjectAlreadyExistsException; import dev.hyperskys.configurator.api.exception.ObjectNotFoundException; import dev.hyperskys.configurator.events.ConfigurationReloadEvent; import dev.hyperskys.configurator.events.ConfigurationSaveEvent; import dev.hyperskys.configurator.output.ConfiguratorLogger; import dev.hyperskys.configurator.utils.FileUtils; -import dev.hyperskys.configurator.utils.ReflectionUtils; + import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; @@ -21,11 +20,9 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; -import org.bukkit.scheduler.BukkitRunnable; import java.io.File; import java.io.IOException; -import java.lang.reflect.Field; import java.util.Objects; /** @@ -145,16 +142,7 @@ public void reload() { long startTime = System.currentTimeMillis(); customFile = YamlConfiguration.loadConfiguration(file); reloadTime = (System.currentTimeMillis() - startTime) / 1000; - - for (Field field : ReflectionUtils.getFieldsAnnotated(GetValue.class, Configurator.getPluginProvided().getClass().getPackage().getName())) { - String fileProvided = field.getAnnotation(GetValue.class).file(); - String pathOfValue = field.getAnnotation(GetValue.class).path(); - - if (FileUtils.findConfiguration(fileProvided, Configurator.getPluginProvided()).get(pathOfValue) != null) { - field.setAccessible(true); - field.set(null, FileUtils.findConfiguration(fileProvided, Configurator.getPluginProvided()).get(pathOfValue)); - } - } + FileUtils.updateFiles(); } } } \ No newline at end of file diff --git a/src/main/java/dev/hyperskys/configurator/api/exception/PluginNotFoundException.java b/src/main/java/dev/hyperskys/configurator/api/exception/PluginNotFoundException.java index 6bead3d..4b292e8 100644 --- a/src/main/java/dev/hyperskys/configurator/api/exception/PluginNotFoundException.java +++ b/src/main/java/dev/hyperskys/configurator/api/exception/PluginNotFoundException.java @@ -1,5 +1,17 @@ +/** + * @author HyperSkys Development + * Copyright (C) 2020-2022 - HyperSkys Development + */ + package dev.hyperskys.configurator.api.exception; +/** + * Will fire if the plugin was not found or instance is null. + * @since 2.0.0-RELEASE + */ public class PluginNotFoundException extends NullPointerException { + /** + * The constructor, yeah it is basic, can't provide information because plugin is null. + */ public PluginNotFoundException() {} } diff --git a/src/main/java/dev/hyperskys/configurator/events/ConfigurationReloadEvent.java b/src/main/java/dev/hyperskys/configurator/events/ConfigurationReloadEvent.java index 4b5fb59..950b735 100644 --- a/src/main/java/dev/hyperskys/configurator/events/ConfigurationReloadEvent.java +++ b/src/main/java/dev/hyperskys/configurator/events/ConfigurationReloadEvent.java @@ -9,7 +9,6 @@ import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.bukkit.event.player.PlayerMoveEvent; /** * This event will fire if any configuration file is reloaded. diff --git a/src/main/java/dev/hyperskys/configurator/utils/ReflectionUtils.java b/src/main/java/dev/hyperskys/configurator/utils/ReflectionUtils.java index b4e9ba0..adc63a2 100644 --- a/src/main/java/dev/hyperskys/configurator/utils/ReflectionUtils.java +++ b/src/main/java/dev/hyperskys/configurator/utils/ReflectionUtils.java @@ -19,6 +19,12 @@ * @since 1.0.7-STABLE */ public class ReflectionUtils { + /** + * Allows you to grab all fields annotated with an annotation in a package. + * @param annotation The annotation you are trying to get. + * @param packageName The name of the package. + * @return All the fields annotated with annotation parameter. + */ public static Set getFieldsAnnotated(Class annotation, String packageName) { Reflections reflections = new Reflections( new ConfigurationBuilder() @@ -29,6 +35,9 @@ public static Set getFieldsAnnotated(Class annotati return reflections.getFieldsAnnotatedWith(annotation); } + /** + * Disables the reflections logger because it sucks, :( + */ public static void disableReflectionsLogger() { System.setProperty("org.slf4j.simpleLogger.log.org.reflections", "off"); }