Skip to content

Commit

Permalink
2.0.1-STABLE
Browse files Browse the repository at this point in the history
  • Loading branch information
HyperSkys committed Jul 13, 2022
1 parent 49d4516 commit 3eac7e8
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 23 deletions.
12 changes: 5 additions & 7 deletions src/main/java/dev/hyperskys/configurator/Configurator.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@

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;
import lombok.Getter;
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
Expand All @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

package dev.hyperskys.configurator.annotations;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
Expand Down
16 changes: 2 additions & 14 deletions src/main/java/dev/hyperskys/configurator/api/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,23 @@
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;
import org.bukkit.Bukkit;
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;

/**
Expand Down Expand Up @@ -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();
}
}
}
Original file line number Diff line number Diff line change
@@ -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() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Field> getFieldsAnnotated(Class<? extends Annotation> annotation, String packageName) {
Reflections reflections = new Reflections(
new ConfigurationBuilder()
Expand All @@ -29,6 +35,9 @@ public static Set<Field> getFieldsAnnotated(Class<? extends Annotation> 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");
}
Expand Down

0 comments on commit 3eac7e8

Please sign in to comment.