Comply with checkstyle again

This commit is contained in:
Frank van der Heijden 2020-07-05 16:59:07 +02:00
parent e67b20dee0
commit af4c7ba214
No known key found for this signature in database
GPG key ID: 26DA56488D314D11
36 changed files with 329 additions and 74 deletions

View file

@ -11,9 +11,9 @@ import java.util.Map;
import net.frankheijden.serverutils.bukkit.commands.CommandPlugins;
import net.frankheijden.serverutils.bukkit.commands.CommandServerUtils;
import net.frankheijden.serverutils.bukkit.entities.BukkitPlugin;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.bukkit.listeners.BukkitListener;
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
import net.frankheijden.serverutils.common.ServerUtilsApp;
@ -68,7 +68,7 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
Bukkit.getPluginManager().registerEvents(new BukkitListener(), this);
ServerUtilsApp.checkForUpdates();
ServerUtilsApp.tryCheckForUpdates();
}
public static ServerUtils getInstance() {

View file

@ -6,18 +6,35 @@ import net.frankheijden.serverutils.common.providers.ChatProvider;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
/**
* Provides basic chat functionality for Bukkit servers.
*/
public class BukkitChatProvider extends ChatProvider {
/**
* Retrieves the console sender of a Bukkit instance.
* @return The console sender.
*/
@Override
public ServerCommandSender getConsoleSender() {
return BukkitUtils.wrap(Bukkit.getConsoleSender());
}
/**
* Colorizes the given string.
* @param str The string to color.
* @return The colored string.
*/
@Override
public String color(String str) {
return ChatColor.translateAlternateColorCodes('&', str);
}
/**
* Broadcasts a message over a Bukkit instance.
* @param permission The permission the receivers need to have.
* @param message The message to broadcast.
*/
@Override
public void broadcast(String permission, String message) {
Bukkit.broadcast(message, permission);

View file

@ -3,19 +3,35 @@ package net.frankheijden.serverutils.bukkit.entities;
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import org.bukkit.command.CommandSender;
/**
* A wrap for a Bukkit CommandSender.
*/
public class BukkitCommandSender implements ServerCommandSender {
private final CommandSender sender;
/**
* Constructs a new CommandSender instance.
* @param sender The sender to wrap.
*/
public BukkitCommandSender(CommandSender sender) {
this.sender = sender;
}
/**
* Sends a message to a CommandSender.
* @param message The message to send.
*/
@Override
public void sendMessage(String message) {
sender.sendMessage(message);
}
/**
* Checks if the CommandSender has a permission.
* @param permission The permission to check.
* @return Whether or not they have the permission.
*/
@Override
public boolean hasPermission(String permission) {
return sender.hasPermission(permission);

View file

@ -4,8 +4,8 @@ import java.io.File;
import java.io.InputStream;
import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.common.providers.ResourceProvider;
import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.providers.ResourceProvider;
public class BukkitResourceProvider implements ResourceProvider {

View file

@ -1,7 +1,7 @@
package net.frankheijden.serverutils.bukkit.listeners;
import net.frankheijden.serverutils.common.listeners.ServerListener;
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
import net.frankheijden.serverutils.common.listeners.ServerListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;

View file

@ -16,9 +16,9 @@ import net.frankheijden.serverutils.bukkit.reflection.RCraftingManager;
import net.frankheijden.serverutils.bukkit.reflection.RJavaPlugin;
import net.frankheijden.serverutils.bukkit.reflection.RPluginClassLoader;
import net.frankheijden.serverutils.bukkit.reflection.RSimplePluginManager;
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.Result;
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.PluginCommand;
@ -329,6 +329,15 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
return null;
}
@Override
public File getPluginFile(Plugin plugin) {
try {
return RJavaPlugin.getFile(plugin);
} catch (ReflectiveOperationException ex) {
throw new RuntimeException("Error retrieving current plugin file", ex);
}
}
@Override
public File getPluginsFolder() {
return plugin.getDataFolder().getParentFile();
@ -343,13 +352,4 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin> {
public String getPluginName(Plugin plugin) {
return plugin.getName();
}
@Override
public File getPluginFile(Plugin plugin) {
try {
return RJavaPlugin.getFile(plugin);
} catch (ReflectiveOperationException ex) {
throw new RuntimeException("Error retrieving current plugin file", ex);
}
}
}

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.bukkit.entities.BukkitReflection.MINOR;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
@ -18,6 +16,8 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RDedicatedServer {
private static Class<?> dedicatedServerClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
@ -9,6 +7,8 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VE
import java.lang.reflect.Field;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RDedicatedServerProperties {
private static Class<?> serverPropertiesClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
@ -9,6 +7,8 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VE
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RDedicatedServerSettings {
private static Class<?> serverSettingsClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
@ -11,6 +9,8 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RJsonList {
private static Class<?> jsonListClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
@ -9,6 +7,8 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VE
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RMinecraftServer {
private static Class<?> minecraftServerClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
@ -9,6 +7,8 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VE
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RPlayerList {
private static Class<?> playerListClass;

View file

@ -1,7 +1,5 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
@ -9,6 +7,8 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VE
import java.lang.reflect.Method;
import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RPropertyManager {
private static Class<?> propertyManagerClass;

View file

@ -47,7 +47,7 @@ public class ServerUtils extends Plugin {
reload();
getProxy().getPluginManager().registerListener(this, new BungeeListener());
ServerUtilsApp.checkForUpdates();
ServerUtilsApp.tryCheckForUpdates();
}
public static ServerUtils getInstance() {

View file

@ -1,5 +1,7 @@
package net.frankheijden.serverutils.bungee.commands;
import static net.frankheijden.serverutils.common.config.Messenger.sendMessage;
import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.CommandCompletion;
@ -7,6 +9,11 @@ import co.aikar.commands.annotation.CommandPermission;
import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Subcommand;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
import net.frankheijden.serverutils.bungee.managers.BungeePluginManager;
@ -25,12 +32,6 @@ import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.PluginDescription;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import static net.frankheijden.serverutils.common.config.Messenger.sendMessage;
@CommandAlias("bsu|bserverutils")
public class CommandServerUtils extends BaseCommand {

View file

@ -5,8 +5,8 @@ import java.io.IOException;
import java.io.InputStream;
import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.common.providers.ResourceProvider;
import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.providers.ResourceProvider;
public class BungeeResourceProvider implements ResourceProvider {

View file

@ -1,17 +1,6 @@
package net.frankheijden.serverutils.bungee.managers;
import com.google.common.base.Preconditions;
import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader;
import net.frankheijden.serverutils.bungee.reflection.RPluginManager;
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.Result;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.PluginDescription;
import org.yaml.snakeyaml.Yaml;
import java.io.Closeable;
import java.io.File;
@ -27,6 +16,18 @@ import java.util.jar.JarFile;
import java.util.logging.Level;
import java.util.stream.Collectors;
import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader;
import net.frankheijden.serverutils.bungee.reflection.RPluginManager;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.Result;
import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.PluginDescription;
import org.yaml.snakeyaml.Yaml;
public class BungeePluginManager extends AbstractPluginManager<Plugin> {
private static final ProxyServer proxy = ProxyServer.getInstance();
@ -73,7 +74,7 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
try {
desc = getPluginDescription(file);
} catch (Exception ex) {
proxy.getLogger().log(Level.WARNING, "Could not load plugin from file " + file, ex );
proxy.getLogger().log(Level.WARNING, "Could not load plugin from file " + file, ex);
return new BungeeLoadResult(Result.INVALID_DESCRIPTION);
}
@ -102,9 +103,8 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
String name = desc.getName();
try {
plugin.onEnable();
proxy.getLogger().log(Level.INFO, "Enabled plugin {0} version {1} by {2}", new Object[] {
name, desc.getVersion(), desc.getAuthor()
});
Object[] args = new Object[] { name, desc.getVersion(), desc.getAuthor() };
proxy.getLogger().log(Level.INFO, "Enabled plugin {0} version {1} by {2}", args);
return Result.SUCCESS;
} catch (Throwable th) {
proxy.getLogger().log(Level.WARNING, "Exception encountered when loading plugin: " + name, th);
@ -158,6 +158,11 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
return new File(proxy.getPluginsFolder(), fileName);
}
/**
* Retrieves the File of a plugin associated with a name.
* @param pluginName The plugin name to search for.
* @return The File if the plugin exists with that name.
*/
public File getPluginFile(String pluginName) {
for (File file : getPluginJars()) {
PluginDescription desc;
@ -172,6 +177,17 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
return null;
}
@Override
public File getPluginFile(Plugin plugin) {
return plugin.getFile();
}
/**
* Retrieves the PluginDescription of a (plugin's) File.
* @param file The file.
* @return The PluginDescription.
* @throws Exception Iff and I/O exception occurred, or notNullChecks failed.
*/
public static PluginDescription getPluginDescription(File file) throws Exception {
try (JarFile jar = new JarFile(file)) {
JarEntry entry = getPluginDescriptionEntry(jar);
@ -189,12 +205,22 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
}
}
/**
* Retrieves the JarEntry which contains the Description file of the JarFile.
* @param jar The JarFile.
* @return The description JarEntry.
*/
public static JarEntry getPluginDescriptionEntry(JarFile jar) {
JarEntry entry = jar.getJarEntry("bungee.yml");
if (entry == null) return jar.getJarEntry("plugin.yml");
return entry;
}
/**
* Retrieves the closable classloader of the plugin, if possible.
* @param plugin The plugin.
* @return The closable instance.
*/
public static Closeable getCloseable(Plugin plugin) {
ClassLoader loader = plugin.getClass().getClassLoader();
if (loader instanceof Closeable) return (Closeable) loader;
@ -211,6 +237,11 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
return getPlugins(false);
}
/**
* Retrieves a list of plugins.
* @param modules Whether or not to include `module` plugins.
* @return The list of plugins.
*/
public List<Plugin> getPlugins(boolean modules) {
Collection<Plugin> plugins = plugin.getProxy().getPluginManager().getPlugins();
if (modules) return new ArrayList<>(plugins);
@ -224,11 +255,11 @@ public class BungeePluginManager extends AbstractPluginManager<Plugin> {
return plugin.getDataFolder().getName();
}
@Override
public File getPluginFile(Plugin plugin) {
return plugin.getFile();
}
/**
* Retrieves the plugins sorted by their names.
* @param modules Whether or not to include `module` plugins
* @return The sorted plugins.
*/
public List<Plugin> getPluginsSorted(boolean modules) {
List<Plugin> plugins = getPlugins(modules);
plugins.sort(Comparator.comparing(this::getPluginName));

View file

@ -1,17 +1,14 @@
package net.frankheijden.serverutils.bungee.reflection;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.PluginDescription;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import java.util.Map;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.PluginDescription;
public class RPluginClassLoader {

View file

@ -5,10 +5,11 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import com.google.common.collect.Multimap;
import java.lang.reflect.Field;
import java.util.Map;
import com.google.common.collect.Multimap;
import net.frankheijden.serverutils.common.utils.MapUtils;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin;
@ -60,6 +61,13 @@ public class RPluginManager {
return (Map<String, Command>) get(fields, instance, "commandMap");
}
/**
* Retrieves the registered plugin of the command.
* @param instance The PluginManager instance.
* @param cmd The command to check the plugin of.
* @return The plugin of the command
* @throws IllegalAccessException Iff some reflection error occurred.
*/
@SuppressWarnings("unchecked")
public static Plugin getPlugin(Object instance, Command cmd) throws IllegalAccessException {
Object obj = get(fields, instance, "commandsByPlugin");

View file

@ -24,7 +24,10 @@ public class ServerUtilsApp<T> {
new ServerUtilsApp<>(obj, plugin);
}
public static void checkForUpdates() {
/**
* Tries checking for updates if enabled by the config.
*/
public static void tryCheckForUpdates() {
if (Config.getInstance().getConfig().getBoolean("settings.check-updates")) {
UpdateCheckerTask.start(getPlugin().getChatProvider().getConsoleSender(), true);
}

View file

@ -7,6 +7,9 @@ import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import net.frankheijden.serverutils.common.utils.ListBuilder;
import net.frankheijden.serverutils.common.utils.ListFormat;
/**
* Provides some common utility methods for the Plugins command.
*/
public class Plugins {
/**

View file

@ -1,14 +1,26 @@
package net.frankheijden.serverutils.common.config;
/**
* The general common config class.
*/
public class Config extends YamlResource {
private static Config instance;
/**
* Constructs a new Config with the config file name and the resource name from the jar.
* @param fileName The file name in the data folder.
* @param resource The resource name in the jar file.
*/
public Config(String fileName, String resource) {
super(fileName, resource);
instance = this;
}
/**
* Retrieves the current instance of the Config.
* @return The current instance.
*/
public static Config getInstance() {
return instance;
}

View file

@ -5,16 +5,28 @@ import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.utils.StringUtils;
/**
* The general common messenger class.
*/
public class Messenger extends YamlResource {
private static Messenger instance;
private static final ServerUtilsPlugin plugin = ServerUtilsApp.getPlugin();
/**
* Constructs a new Messenger with the messages file name and the resource name from the jar.
* @param fileName The file name in the data folder.
* @param resource The resource name in the jar file.
*/
public Messenger(String fileName, String resource) {
super(fileName, resource);
instance = this;
}
/**
* Retrieves the current instance of the Messenger.
* @return The current instance.
*/
public static Messenger getInstance() {
return instance;
}
@ -61,6 +73,11 @@ public class Messenger extends YamlResource {
}
}
/**
* Colorizes the given string.
* @param str The string to color.
* @return The colored string.
*/
public static String color(String str) {
return Messenger.plugin.getChatProvider().color(str);
}

View file

@ -3,20 +3,56 @@ package net.frankheijden.serverutils.common.config;
import java.io.IOException;
import java.util.Collection;
/**
* A wrap for a Yaml Configuration file.
*/
public interface YamlConfig {
/**
* Retrieves the value at a given path.
* @param path The path.
* @return The object.
*/
Object get(String path);
/**
* Sets a value to a path.
* @param path The path.
* @param value The object to set the path's value to.
*/
void set(String path, Object value);
/**
* Retrieves a string from a path.
* @param path The path.
* @return The string at given path.
*/
String getString(String path);
/**
* Retrieves a boolean from a path.
* @param path The path.
* @return The boolean at given path.
*/
boolean getBoolean(String path);
/**
* Retrieves the key nodes at the current level.
* @return The keys.
*/
Collection<? extends String> getKeys();
/**
* Saves the YamlConfig to disk.
* @throws IOException Iff an I/O error occurred.
*/
void save() throws IOException;
/**
* Adds defaults if keys don't exist to the configuration specified.
* @param def The defaults to copy values over from.
* @param conf The configuration to copy the defaults to.
*/
static void addDefaults(YamlConfig def, YamlConfig conf) {
addDefaults(def, conf, "");
}

View file

@ -7,6 +7,9 @@ import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.providers.ResourceProvider;
/**
* A class which provides functionality for loading and setting defaults of Yaml Configurations.
*/
public class YamlResource {
private static final ServerUtilsPlugin plugin = ServerUtilsApp.getPlugin();
@ -26,6 +29,10 @@ public class YamlResource {
config = YamlConfig.init(provider.load(is), provider.load(file));
}
/**
* Retrieves the YamlConfig of this resource.
* @return The YamlConfig.
*/
public YamlConfig getConfig() {
return config;
}

View file

@ -3,6 +3,9 @@ package net.frankheijden.serverutils.common.entities;
import java.io.Closeable;
import java.io.IOException;
/**
* A result which should be closed when done.
*/
public class CloseableResult implements Closeable {
private Result result;
@ -20,18 +23,35 @@ public class CloseableResult implements Closeable {
this.closeable = closeable;
}
/**
* Constructs a new closable result with no closable instance.
* @param result The result of the procedure
*/
public CloseableResult(Result result) {
this(result, null);
}
/**
* Constructs a new closable result with a closable instance and success result.
* @param closeable The closable of the procedure.
*/
public CloseableResult(Closeable closeable) {
this(Result.SUCCESS, closeable);
}
/**
* Retrieves the result.
* @return The result.
*/
public Result getResult() {
return result;
}
/**
* Sets the result of this instance.
* @param result The result to set.
* @return The current instance.
*/
public CloseableResult set(Result result) {
this.result = result;
return this;
@ -49,6 +69,10 @@ public class CloseableResult implements Closeable {
}
}
/**
* Closes the closable.
* @throws IOException Iff an I/O error occurred.
*/
@Override
public void close() throws IOException {
closeable.close();

View file

@ -1,31 +1,60 @@
package net.frankheijden.serverutils.common.entities;
/**
* A result which contains a loaded object from a load operation.
* @param <T> The loaded object type
*/
public class LoadResult<T> {
private final T obj;
private final Result result;
/**
* Constructs a new LoadResult with an object and a result.
* @param obj The object of the load operation.
* @param result The result of the load operation.
*/
public LoadResult(T obj, Result result) {
this.obj = obj;
this.result = result;
}
/**
* Constructs a new LoadResult with an object and a success result.
* @param obj The object of the load operation.
*/
public LoadResult(T obj) {
this(obj, Result.SUCCESS);
}
/**
* Constructs a new LoadResult without a loaded object, just a result.
* @param result The result of the load operation.
*/
public LoadResult(Result result) {
this(null, result);
}
/**
* Retrieves the loaded object.
* @return The loaded object.
*/
public T get() {
return obj;
}
/**
* The result of the LoadResult.
* @return The result.
*/
public Result getResult() {
return result;
}
/**
* Checks whether the result is a success.
* @return Whether there is success or not.
*/
public boolean isSuccess() {
return obj != null && result == Result.SUCCESS;
}

View file

@ -2,6 +2,9 @@ package net.frankheijden.serverutils.common.entities;
import net.frankheijden.serverutils.common.config.Messenger;
/**
* An enum containing possible results.
*/
public enum Result {
NOT_EXISTS,
NOT_ENABLED,
@ -17,10 +20,18 @@ public enum Result {
private String arg;
/**
* private constructor which initializes a result with an empty argument.
*/
Result() {
this.arg = "";
}
/**
* Sets the argument of the result's message.
* @param arg The argument
* @return The current instance.
*/
public Result arg(String arg) {
this.arg = arg;
return this;

View file

@ -1,8 +1,20 @@
package net.frankheijden.serverutils.common.entities;
/**
* A basic wrapper for a CommandSender.
*/
public interface ServerCommandSender {
/**
* Sends a message to a CommandSender.
* @param message The message to send.
*/
void sendMessage(String message);
/**
* Checks if the CommandSender has a permission.
* @param permission The permission to check.
* @return Whether or not they have the permission.
*/
boolean hasPermission(String permission);
}

View file

@ -9,6 +9,10 @@ public class ServerListener {
private static final YamlConfig config = Config.getInstance().getConfig();
/**
* Handles the update check on the given ServerCommandSender.
* @param sender The sender which triggered the update.
*/
public static void handleUpdate(ServerCommandSender sender) {
if (!config.getBoolean("settings.check-updates-login")) return;

View file

@ -1,12 +1,12 @@
package net.frankheijden.serverutils.common.managers;
import java.io.File;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.LoadResult;
import net.frankheijden.serverutils.common.entities.Result;
import net.frankheijden.serverutils.common.providers.PluginProvider;
import java.io.File;
public abstract class AbstractPluginManager<T> extends PluginProvider<T> {
public abstract LoadResult<T> loadPlugin(String pluginFile);

View file

@ -2,11 +2,28 @@ package net.frankheijden.serverutils.common.providers;
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
/**
* A basic chat provider class.
*/
public abstract class ChatProvider {
/**
* Retrieves the console sender of a server instance.
* @return The console sender.
*/
public abstract ServerCommandSender getConsoleSender();
/**
* Colorizes the given string.
* @param str The string to color.
* @return The colored string.
*/
public abstract String color(String str);
/**
* Broadcasts a message over a server instance.
* @param permission The permission the receivers need to have.
* @param message The message to broadcast.
*/
public abstract void broadcast(String permission, String message);
}

View file

@ -16,12 +16,20 @@ public abstract class PluginProvider<T> {
public abstract File getPluginFile(T plugin);
/**
* Retrieves a list of plugins, sorted by name.
* @return The list of plugins.
*/
public List<T> getPluginsSorted() {
List<T> plugins = getPlugins();
plugins.sort(Comparator.comparing(this::getPluginName));
return plugins;
}
/**
* Retrieves a list of plugin names.
* @return The plugin names.
*/
public List<String> getPluginNames() {
return getPlugins().stream()
.map(this::getPluginName)

View file

@ -1,10 +1,10 @@
package net.frankheijden.serverutils.common.providers;
import net.frankheijden.serverutils.common.config.YamlConfig;
import java.io.File;
import java.io.InputStream;
import net.frankheijden.serverutils.common.config.YamlConfig;
public interface ResourceProvider {
InputStream getResource(String resource);

View file

@ -4,6 +4,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.ConnectException;
@ -12,13 +13,13 @@ import java.net.UnknownHostException;
import java.util.logging.Level;
import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.managers.AbstractVersionManager;
import net.frankheijden.serverutils.common.config.Config;
import net.frankheijden.serverutils.common.config.Messenger;
import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.entities.CloseableResult;
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.managers.AbstractVersionManager;
import net.frankheijden.serverutils.common.utils.FileUtils;
import net.frankheijden.serverutils.common.utils.VersionUtils;
@ -158,8 +159,9 @@ public class UpdateCheckerTask implements Runnable {
return;
}
File pluginFile = plugin.getPluginManager().getPluginFile(ServerUtilsApp.getPlatformPlugin());
try {
FileUtils.download(downloadLink, plugin.getPluginManager().getPluginFile(ServerUtilsApp.getPlatformPlugin()));
FileUtils.download(downloadLink, pluginFile);
} catch (IOException ex) {
broadcastDownloadStatus(githubVersion, true);
throw new RuntimeException(DOWNLOAD_ERROR, ex);

View file

@ -43,9 +43,9 @@ subprojects {
toolVersion "8.25"
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
// ignoreFailures = false
// maxErrors = 0
// maxWarnings = 0
ignoreFailures = false
maxErrors = 0
maxWarnings = 0
}
shadowJar.dependsOn checkstyleMain, checkstyleTest, test