Update dependencies

- Updated checkstyle
- Fixed new checkstyle issues
- Added staged feature: reloading server.properties partially
This commit is contained in:
Frank van der Heijden 2020-12-19 15:19:23 +01:00
parent d52e834f11
commit 466e2659e8
No known key found for this signature in database
GPG key ID: 26DA56488D314D11
51 changed files with 228 additions and 93 deletions

View file

@ -5,9 +5,9 @@ archivesBaseName = rootProject.name + '-Bukkit'
dependencies { dependencies {
implementation 'co.aikar:acf-paper:0.5.0-SNAPSHOT' implementation 'co.aikar:acf-paper:0.5.0-SNAPSHOT'
implementation 'org.bstats:bstats-bukkit:1.7' implementation 'org.bstats:bstats-bukkit:1.8'
implementation project(":Common") implementation project(":Common")
compileOnly 'com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT' compileOnly 'com.destroystokyo.paper:paper-api:1.16.4-R0.1-SNAPSHOT'
} }
processResources { processResources {

View file

@ -3,11 +3,9 @@ package net.frankheijden.serverutils.bukkit;
import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.BukkitCommandCompletionContext;
import co.aikar.commands.CommandCompletions; import co.aikar.commands.CommandCompletions;
import co.aikar.commands.PaperCommandManager; import co.aikar.commands.PaperCommandManager;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.commands.CommandPlugins; import net.frankheijden.serverutils.bukkit.commands.CommandPlugins;
import net.frankheijden.serverutils.bukkit.commands.CommandServerUtils; import net.frankheijden.serverutils.bukkit.commands.CommandServerUtils;
import net.frankheijden.serverutils.bukkit.entities.BukkitPlugin; import net.frankheijden.serverutils.bukkit.entities.BukkitPlugin;

View file

@ -6,7 +6,6 @@ import co.aikar.commands.annotation.CommandPermission;
import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Subcommand; import co.aikar.commands.annotation.Subcommand;
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager; import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils; import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
import net.frankheijden.serverutils.common.commands.Plugins; import net.frankheijden.serverutils.common.commands.Plugins;

View file

@ -13,16 +13,15 @@ import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Dependency; import co.aikar.commands.annotation.Dependency;
import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Subcommand; import co.aikar.commands.annotation.Subcommand;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import net.frankheijden.serverutils.bukkit.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult; import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager; import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
import net.frankheijden.serverutils.bukkit.reflection.RCraftServer; import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
import net.frankheijden.serverutils.bukkit.reflection.RDedicatedServer;
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils; import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
import net.frankheijden.serverutils.bukkit.utils.ReloadHandler; import net.frankheijden.serverutils.bukkit.utils.ReloadHandler;
import net.frankheijden.serverutils.common.config.Messenger; import net.frankheijden.serverutils.common.config.Messenger;
@ -55,6 +54,7 @@ public class CommandServerUtils extends BaseCommand {
supportedConfigs.put("server-icon.png", RCraftServer::loadIcon); supportedConfigs.put("server-icon.png", RCraftServer::loadIcon);
supportedConfigs.put("banned-ips.json", RCraftServer::reloadIpBans); supportedConfigs.put("banned-ips.json", RCraftServer::reloadIpBans);
supportedConfigs.put("banned-players.json", RCraftServer::reloadProfileBans); supportedConfigs.put("banned-players.json", RCraftServer::reloadProfileBans);
supportedConfigs.put("server.properties", RDedicatedServer::reloadServerProperties);
} }
@Dependency @Dependency

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.bukkit.entities;
import java.io.File; import java.io.File;
import java.util.logging.Logger; import java.util.logging.Logger;
import net.frankheijden.serverutils.bukkit.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager; import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
import net.frankheijden.serverutils.bukkit.managers.BukkitTaskManager; import net.frankheijden.serverutils.bukkit.managers.BukkitTaskManager;

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.bukkit.entities;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import net.frankheijden.serverutils.bukkit.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.common.config.YamlConfig; import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.providers.ResourceProvider; import net.frankheijden.serverutils.common.providers.ResourceProvider;

View file

@ -8,7 +8,6 @@ import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.common.config.YamlConfig; import net.frankheijden.serverutils.common.config.YamlConfig;
import org.bukkit.configuration.MemorySection; import org.bukkit.configuration.MemorySection;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;

View file

@ -13,7 +13,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import net.frankheijden.serverutils.bukkit.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult; import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
import net.frankheijden.serverutils.bukkit.reflection.RCommandMap; import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;

View file

@ -6,7 +6,6 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.SimpleCommandMap; import org.bukkit.command.SimpleCommandMap;

View file

@ -18,7 +18,6 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Warning; import org.bukkit.Warning;
@ -67,7 +66,8 @@ public class RCraftServer {
fieldOf("playerList")); fieldOf("playerList"));
methods = getAllMethods(craftServerClass, methods = getAllMethods(craftServerClass,
methodOf("loadIcon"), methodOf("loadIcon"),
methodOf("syncCommands", min(13))); methodOf("syncCommands", min(13)),
methodOf("getHandle"));
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@ -89,7 +89,7 @@ public class RCraftServer {
* @throws IllegalAccessException When prohibited access to the method. * @throws IllegalAccessException When prohibited access to the method.
*/ */
public static File getOptionsFile(String option) throws IllegalAccessException, InvocationTargetException { public static File getOptionsFile(String option) throws IllegalAccessException, InvocationTargetException {
Object console = get(fields, craftServer, "console"); Object console = getConsole();
Object options = get(RDedicatedServer.getFields(), console, "options"); Object options = get(RDedicatedServer.getFields(), console, "options");
return (File) invoke(ROptionSet.getMethods(), options, "valueOf", option); return (File) invoke(ROptionSet.getMethods(), options, "valueOf", option);
} }
@ -106,6 +106,10 @@ public class RCraftServer {
invoke(methods, craftServer, "syncCommands"); invoke(methods, craftServer, "syncCommands");
} }
public static Object getConsole() throws IllegalAccessException {
return get(fields, craftServer, "console");
}
/** /**
* Reloads the bukkit configuration. * Reloads the bukkit configuration.
* @throws ReflectiveOperationException Iff exception thrown regarding reflection. * @throws ReflectiveOperationException Iff exception thrown regarding reflection.
@ -114,7 +118,7 @@ public class RCraftServer {
YamlConfiguration bukkit = YamlConfiguration.loadConfiguration(getConfigFile()); YamlConfiguration bukkit = YamlConfiguration.loadConfiguration(getConfigFile());
set(fields, craftServer, "configuration", bukkit); set(fields, craftServer, "configuration", bukkit);
Object console = get(fields, craftServer, "console"); Object console = getConsole();
RDedicatedServer.reload(console); RDedicatedServer.reload(console);
set(fields, craftServer, "monsterSpawn", bukkit.getInt("spawn-limits.monsters")); set(fields, craftServer, "monsterSpawn", bukkit.getInt("spawn-limits.monsters"));

View file

@ -13,7 +13,6 @@ import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Predicate; import java.util.function.Predicate;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.common.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -14,11 +14,15 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.exact;
import static net.frankheijden.serverutils.common.reflection.VersionParam.max; import static net.frankheijden.serverutils.common.reflection.VersionParam.max;
import static net.frankheijden.serverutils.common.reflection.VersionParam.min; import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.file.Path;
import java.util.Map; import java.util.Map;
import java.util.Properties;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.common.reflection.VersionParam; import net.frankheijden.serverutils.common.reflection.VersionParam;
@ -62,6 +66,14 @@ public class RDedicatedServer {
} }
} }
public static Class<?> getClazz() {
return dedicatedServerClass;
}
public static Object getCustomRegistry(Object dedicatedServer) throws ReflectiveOperationException {
return invoke(methods, dedicatedServer, "getCustomRegistry");
}
public static Map<String, Field> getFields() { public static Map<String, Field> getFields() {
return fields; return fields;
} }
@ -115,6 +127,30 @@ public class RDedicatedServer {
} }
} }
/**
* Reloads server.properties.
* @throws ReflectiveOperationException Iff exception thrown regarding reflection.
*/
public static void reloadServerProperties() throws ReflectiveOperationException {
Object console = RCraftServer.getConsole();
Object playerList = get(RMinecraftServer.getFields(), console, "playerList");
Object propertyManager = get(fields, console, "propertyManager");
Path path = RDedicatedServerSettings.getServerPropertiesPath(propertyManager);
Properties properties = new Properties();
try (InputStream in = new FileInputStream(path.toFile())) {
properties.load(in);
} catch (IOException ex) {
throw new ReflectiveOperationException("Unable to load server.properties", ex);
}
int maxPlayers = Integer.parseInt(properties.getProperty("max-players"));
set(RPlayerList.getFields(), playerList, "maxPlayers", maxPlayers);
int viewDistance = Integer.parseInt(properties.getProperty("view-distance"));
RPlayerList.setViewDistance(playerList, viewDistance);
}
public static Object getConfigValue(Object config, String key) throws IllegalAccessException { public static Object getConfigValue(Object config, String key) throws IllegalAccessException {
return get(RDedicatedServerProperties.getFields(), config, key); return get(RDedicatedServerProperties.getFields(), config, key);
} }

View file

@ -5,7 +5,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RDedicatedServerProperties { public class RDedicatedServerProperties {

View file

@ -1,21 +1,26 @@
package net.frankheijden.serverutils.bukkit.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.common.reflection.ConstructorParam.constructorOf; import static net.frankheijden.serverutils.common.reflection.ConstructorParam.constructorOf;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllConstructors; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllConstructors;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.file.Path;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RDedicatedServerSettings { public class RDedicatedServerSettings {
private static Class<?> serverSettingsClass; private static Class<?> serverSettingsClass;
private static Map<String, Method> methods; private static Map<String, Method> methods;
private static Map<String, Field> fields;
private static List<Constructor<?>> constructors; private static List<Constructor<?>> constructors;
static { static {
@ -24,6 +29,8 @@ public class RDedicatedServerSettings {
BukkitReflection.NMS)); BukkitReflection.NMS));
methods = getAllMethods(serverSettingsClass, methods = getAllMethods(serverSettingsClass,
methodOf("getProperties")); methodOf("getProperties"));
fields = getAllFields(serverSettingsClass,
fieldOf("path"));
constructors = getAllConstructors(serverSettingsClass, constructors = getAllConstructors(serverSettingsClass,
constructorOf(Class.forName("joptsimple.OptionSet")), constructorOf(Class.forName("joptsimple.OptionSet")),
constructorOf(Class.forName(String.format("net.minecraft.server.%s.IRegistryCustom", constructorOf(Class.forName(String.format("net.minecraft.server.%s.IRegistryCustom",
@ -52,6 +59,10 @@ public class RDedicatedServerSettings {
return getConstructor().newInstance(registry, options); return getConstructor().newInstance(registry, options);
} }
public static Path getServerPropertiesPath(Object instance) throws ReflectiveOperationException {
return (Path) get(fields, instance, "path");
}
public static Map<String, Method> getMethods() { public static Map<String, Method> getMethods() {
return methods; return methods;
} }

View file

@ -13,7 +13,6 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class RJavaPlugin { public class RJavaPlugin {

View file

@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
public class RJavaPluginLoader { public class RJavaPluginLoader {

View file

@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.inv
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RJsonList { public class RJsonList {

View file

@ -12,7 +12,6 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Predicate; import java.util.function.Predicate;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -1,17 +1,20 @@
package net.frankheijden.serverutils.bukkit.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RMinecraftServer { public class RMinecraftServer {
private static Class<?> minecraftServerClass; private static Class<?> minecraftServerClass;
private static Map<String, Method> methods; private static Map<String, Method> methods;
private static Map<String, Field> fields;
static { static {
try { try {
@ -20,6 +23,8 @@ public class RMinecraftServer {
methods = getAllMethods(minecraftServerClass, methods = getAllMethods(minecraftServerClass,
methodOf("getServer"), methodOf("getServer"),
methodOf("getCraftingManager")); methodOf("getCraftingManager"));
fields = getAllFields(minecraftServerClass,
fieldOf("playerList"));
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@ -28,4 +33,8 @@ public class RMinecraftServer {
public static Map<String, Method> getMethods() { public static Map<String, Method> getMethods() {
return methods; return methods;
} }
public static Map<String, Field> getFields() {
return fields;
}
} }

View file

@ -1,24 +1,33 @@
package net.frankheijden.serverutils.bukkit.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.set;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RPlayerList { public class RPlayerList {
private static Class<?> playerListClass; private static Class<?> playerListClass;
private static Map<String, Method> methods; private static Map<String, Method> methods;
private static Map<String, Field> fields;
static { static {
try { try {
playerListClass = Class.forName(String.format("net.minecraft.server.%s.PlayerList", BukkitReflection.NMS)); playerListClass = Class.forName(String.format("net.minecraft.server.%s.PlayerList", BukkitReflection.NMS));
methods = getAllMethods(playerListClass, methods = getAllMethods(playerListClass,
methodOf("getIPBans"), methodOf("getIPBans"),
methodOf("getProfileBans")); methodOf("getProfileBans"),
methodOf("a", int.class));
fields = getAllFields(playerListClass,
fieldOf("maxPlayers"),
fieldOf("viewDistance"));
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
@ -27,4 +36,13 @@ public class RPlayerList {
public static Map<String, Method> getMethods() { public static Map<String, Method> getMethods() {
return methods; return methods;
} }
public static Map<String, Field> getFields() {
return fields;
}
public static void setViewDistance(Object instance, int viewDistance) throws ReflectiveOperationException {
set(fields, instance, "viewDistance", viewDistance);
invoke(methods, instance, "a", viewDistance);
}
} }

View file

@ -54,6 +54,6 @@ public class RPluginClassLoader {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static Map<String, Class<?>> getClasses(Object pluginLoader) throws IllegalAccessException { public static Map<String, Class<?>> getClasses(Object pluginLoader) throws IllegalAccessException {
return (Map<String,Class<?>>) get(fields, pluginLoader, "classes"); return (Map<String, Class<?>>) get(fields, pluginLoader, "classes");
} }
} }

View file

@ -5,7 +5,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
public class RPropertyManager { public class RPropertyManager {

View file

@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.common.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection; import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
import net.frankheijden.serverutils.common.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -9,7 +9,6 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginLoader; import org.bukkit.plugin.PluginLoader;
import org.bukkit.plugin.SimplePluginManager; import org.bukkit.plugin.SimplePluginManager;

View file

@ -9,9 +9,9 @@ repositories {
dependencies { dependencies {
implementation 'co.aikar:acf-bungee:0.5.0-SNAPSHOT' implementation 'co.aikar:acf-bungee:0.5.0-SNAPSHOT'
implementation 'org.bstats:bstats-bungeecord:1.7' implementation 'org.bstats:bstats-bungeecord:1.8'
implementation project(":Common") implementation project(":Common")
compileOnly 'net.md-5:bungeecord-api:1.16-R0.2-SNAPSHOT' compileOnly 'net.md-5:bungeecord-api:1.16-R0.4-SNAPSHOT'
} }
processResources { processResources {

View file

@ -9,11 +9,9 @@ import co.aikar.commands.annotation.CommandPermission;
import co.aikar.commands.annotation.Default; import co.aikar.commands.annotation.Default;
import co.aikar.commands.annotation.Description; import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.Subcommand; import co.aikar.commands.annotation.Subcommand;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import net.frankheijden.serverutils.bungee.ServerUtils; import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult; import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
import net.frankheijden.serverutils.bungee.managers.BungeePluginManager; import net.frankheijden.serverutils.bungee.managers.BungeePluginManager;

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.bungee.entities;
import java.io.File; import java.io.File;
import java.util.logging.Logger; import java.util.logging.Logger;
import net.frankheijden.serverutils.bungee.ServerUtils; import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.managers.BungeePluginManager; import net.frankheijden.serverutils.bungee.managers.BungeePluginManager;
import net.frankheijden.serverutils.bungee.managers.BungeeTaskManager; import net.frankheijden.serverutils.bungee.managers.BungeeTaskManager;

View file

@ -3,7 +3,6 @@ package net.frankheijden.serverutils.bungee.entities;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import net.frankheijden.serverutils.bungee.ServerUtils; import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.common.config.YamlConfig; import net.frankheijden.serverutils.common.config.YamlConfig;
import net.frankheijden.serverutils.common.providers.ResourceProvider; import net.frankheijden.serverutils.common.providers.ResourceProvider;

View file

@ -7,7 +7,6 @@ import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.common.config.YamlConfig; import net.frankheijden.serverutils.common.config.YamlConfig;
import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider; import net.md_5.bungee.config.ConfigurationProvider;

View file

@ -1,7 +1,6 @@
package net.frankheijden.serverutils.bungee.managers; package net.frankheijden.serverutils.bungee.managers;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import java.io.Closeable; import java.io.Closeable;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
@ -17,7 +16,6 @@ import java.util.jar.JarEntry;
import java.util.jar.JarFile; import java.util.jar.JarFile;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.frankheijden.serverutils.bungee.ServerUtils; import net.frankheijden.serverutils.bungee.ServerUtils;
import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult; import net.frankheijden.serverutils.bungee.entities.BungeeLoadResult;
import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader; import net.frankheijden.serverutils.bungee.reflection.RPluginClassLoader;

View file

@ -9,7 +9,6 @@ import java.lang.reflect.Field;
import java.net.URL; import java.net.URL;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.PluginDescription; import net.md_5.bungee.api.plugin.PluginDescription;

View file

@ -5,10 +5,8 @@ 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.ReflectionUtils.getAllFields;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import net.frankheijden.serverutils.common.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.Plugin;

View file

@ -8,7 +8,7 @@ repositories {
dependencies { dependencies {
compileOnly 'com.github.FrankHeijden:ServerUtilsUpdater:v1.0.0' compileOnly 'com.github.FrankHeijden:ServerUtilsUpdater:v1.0.0'
compileOnly 'com.google.code.gson:gson:2.8.0' compileOnly 'com.google.code.gson:gson:2.8.6'
} }
shadowJar { shadowJar {

View file

@ -1,7 +1,6 @@
package net.frankheijden.serverutils.common.commands; package net.frankheijden.serverutils.common.commands;
import java.util.List; import java.util.List;
import net.frankheijden.serverutils.common.config.Messenger; import net.frankheijden.serverutils.common.config.Messenger;
import net.frankheijden.serverutils.common.entities.ServerCommandSender; import net.frankheijden.serverutils.common.entities.ServerCommandSender;
import net.frankheijden.serverutils.common.utils.ListBuilder; import net.frankheijden.serverutils.common.utils.ListBuilder;

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.common.config;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import net.frankheijden.serverutils.common.ServerUtilsApp; import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin; import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
import net.frankheijden.serverutils.common.providers.ResourceProvider; import net.frankheijden.serverutils.common.providers.ResourceProvider;

View file

@ -3,7 +3,6 @@ package net.frankheijden.serverutils.common.entities;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Logger; import java.util.logging.Logger;
import net.frankheijden.serverutils.common.managers.AbstractPluginManager; import net.frankheijden.serverutils.common.managers.AbstractPluginManager;
import net.frankheijden.serverutils.common.managers.AbstractTaskManager; import net.frankheijden.serverutils.common.managers.AbstractTaskManager;
import net.frankheijden.serverutils.common.managers.AbstractVersionManager; import net.frankheijden.serverutils.common.managers.AbstractVersionManager;

View file

@ -1,7 +1,6 @@
package net.frankheijden.serverutils.common.managers; package net.frankheijden.serverutils.common.managers;
import java.io.File; import java.io.File;
import net.frankheijden.serverutils.common.ServerUtilsApp; import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.entities.AbstractResult; import net.frankheijden.serverutils.common.entities.AbstractResult;
import net.frankheijden.serverutils.common.entities.CloseableResult; import net.frankheijden.serverutils.common.entities.CloseableResult;

View file

@ -5,7 +5,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
import net.frankheijden.serverutils.common.entities.AbstractTask; import net.frankheijden.serverutils.common.entities.AbstractTask;
public abstract class AbstractTaskManager<T> { public abstract class AbstractTaskManager<T> {

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.common.providers;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import net.frankheijden.serverutils.common.config.YamlConfig; import net.frankheijden.serverutils.common.config.YamlConfig;
public interface ResourceProvider { public interface ResourceProvider {

View file

@ -1,7 +1,6 @@
package net.frankheijden.serverutils.common.tasks; package net.frankheijden.serverutils.common.tasks;
import com.sun.nio.file.SensitivityWatchEventModifier; import com.sun.nio.file.SensitivityWatchEventModifier;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.ClosedWatchServiceException; import java.nio.file.ClosedWatchServiceException;
@ -11,7 +10,6 @@ import java.nio.file.WatchEvent;
import java.nio.file.WatchKey; import java.nio.file.WatchKey;
import java.nio.file.WatchService; import java.nio.file.WatchService;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import net.frankheijden.serverutils.common.ServerUtilsApp; import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.entities.AbstractTask; import net.frankheijden.serverutils.common.entities.AbstractTask;
import net.frankheijden.serverutils.common.entities.ServerCommandSender; import net.frankheijden.serverutils.common.entities.ServerCommandSender;

View file

@ -3,7 +3,6 @@ package net.frankheijden.serverutils.common.tasks;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
@ -11,7 +10,6 @@ import java.net.ConnectException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.logging.Level; import java.util.logging.Level;
import net.frankheijden.serverutils.common.ServerUtilsApp; import net.frankheijden.serverutils.common.ServerUtilsApp;
import net.frankheijden.serverutils.common.config.Config; import net.frankheijden.serverutils.common.config.Config;
import net.frankheijden.serverutils.common.config.Messenger; import net.frankheijden.serverutils.common.config.Messenger;
@ -205,7 +203,7 @@ public class UpdateCheckerTask implements Runnable {
plugin.getPluginManager().enablePlugin(updater); plugin.getPluginManager().enablePlugin(updater);
plugin.getPluginManager().disablePlugin(ServerUtilsApp.getPlatformPlugin()); plugin.getPluginManager().disablePlugin(ServerUtilsApp.getPlatformPlugin());
plugin.getPluginManager().unloadPlugin((Object)ServerUtilsApp.getPlatformPlugin()).tryClose(); plugin.getPluginManager().unloadPlugin((Object) ServerUtilsApp.getPlatformPlugin()).tryClose();
updater.update(pluginFile); updater.update(pluginFile);
updaterFile.delete(); updaterFile.delete();
} else { } else {
@ -216,7 +214,7 @@ public class UpdateCheckerTask implements Runnable {
private void broadcastDownloadStatus(String githubVersion, boolean isError) { private void broadcastDownloadStatus(String githubVersion, boolean isError) {
final String path = "serverutils.update." + (isError ? "failed" : "success"); final String path = "serverutils.update." + (isError ? "failed" : "success");
String message = Messenger.getMessage(path,"%new%", githubVersion); String message = Messenger.getMessage(path, "%new%", githubVersion);
plugin.getChatProvider().broadcast("serverutils.notification.update", message); plugin.getChatProvider().broadcast("serverutils.notification.update", message);
} }

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.common.utils;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;

View file

@ -1,9 +1,7 @@
package net.frankheijden.serverutils.common.utils; package net.frankheijden.serverutils.common.utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import net.frankheijden.serverutils.common.config.Messenger; import net.frankheijden.serverutils.common.config.Messenger;
import net.frankheijden.serverutils.common.entities.ServerCommandSender; import net.frankheijden.serverutils.common.entities.ServerCommandSender;

View file

@ -2,7 +2,6 @@ package net.frankheijden.serverutils.common.utils;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.LogRecord; import java.util.logging.LogRecord;
import net.frankheijden.serverutils.common.entities.ServerCommandSender; import net.frankheijden.serverutils.common.entities.ServerCommandSender;
public class ForwardFilter extends PredicateFilter { public class ForwardFilter extends PredicateFilter {

View file

@ -4,7 +4,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.params.provider.Arguments.of; import static org.junit.jupiter.params.provider.Arguments.of;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.CsvSource;

View file

@ -4,7 +4,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.params.provider.Arguments.of; import static org.junit.jupiter.params.provider.Arguments.of;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.MethodSource;

View file

@ -1,6 +1,6 @@
plugins { plugins {
id 'java' id 'java'
id 'com.github.johnrengelman.shadow' version '5.2.0' id 'com.github.johnrengelman.shadow' version '6.1.0'
} }
group = 'net.frankheijden.serverutils' group = 'net.frankheijden.serverutils'
@ -22,10 +22,10 @@ subprojects {
} }
dependencies { dependencies {
testCompile 'org.assertj:assertj-core:3.15.0' testCompile 'org.assertj:assertj-core:3.18.1'
testCompile 'org.junit.jupiter:junit-jupiter-api:5.6.2' testCompile 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testCompile 'org.junit.jupiter:junit-jupiter-params:5.6.2' testCompile 'org.junit.jupiter:junit-jupiter-params:5.7.0'
testCompile 'org.junit.jupiter:junit-jupiter-engine:5.6.2' testCompile 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
} }
compileJava { compileJava {
@ -39,8 +39,8 @@ subprojects {
} }
checkstyle { checkstyle {
toolVersion "8.25" toolVersion "8.38"
configFile = rootProject.file('config/checkstyle/checkstyle.xml') configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
ignoreFailures = false ignoreFailures = false
maxErrors = 0 maxErrors = 0

View file

@ -7,12 +7,16 @@
Checkstyle configuration that checks the Google coding conventions from Google Java Style Checkstyle configuration that checks the Google coding conventions from Google Java Style
that can be found at https://google.github.io/styleguide/javaguide.html that can be found at https://google.github.io/styleguide/javaguide.html
Checkstyle is very configurable. Be sure to read the documentation at Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution). http://checkstyle.org (or in your downloaded distribution).
To completely disable a check, just comment it out or delete it from the file. To completely disable a check, just comment it out or delete it from the file.
To suppress certain violations please review suppression filters.
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov. Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
--> -->
<module name = "Checker"> <module name = "Checker">
<module name="SuppressWarningsFilter"/>
<property name="charset" value="UTF-8"/> <property name="charset" value="UTF-8"/>
<property name="severity" value="warning"/> <property name="severity" value="warning"/>
@ -23,12 +27,14 @@
<module name="BeforeExecutionExclusionFileFilter"> <module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/> <property name="fileNamePattern" value="module\-info\.java$"/>
</module> </module>
<!-- Checks for whitespace --> <!-- https://checkstyle.org/config_filters.html#SuppressionFilter -->
<!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="SuppressionFilter">
<module name="FileTabCharacter"> <property name="file" value="${config_loc}/suppressions.xml" />
<property name="eachLine" value="true"/>
</module> </module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.org/config_whitespace.html -->
<module name="LineLength"> <module name="LineLength">
<property name="fileExtensions" value="java"/> <property name="fileExtensions" value="java"/>
<!-- changed from 100 to 120, loosen a bit --> <!-- changed from 100 to 120, loosen a bit -->
@ -37,6 +43,17 @@
</module> </module>
<module name="TreeWalker"> <module name="TreeWalker">
<module name="SuppressWarningsHolder"/>
<module name="SuppressWarnings">
<property name="id" value="checkstyle:suppresswarnings"/>
</module>
<module name="SuppressWithNearbyCommentFilter"/>
<module name="SuppressionCommentFilter">
<metadata name="net.sf.eclipsecs.core.comment" value="Single warning"/>
<property name="offCommentFormat" value="CHECKSTYLE\:OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE\:ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
<module name="OuterTypeFilename"/> <module name="OuterTypeFilename"/>
<module name="IllegalTokenText"> <module name="IllegalTokenText">
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
@ -52,16 +69,26 @@
</module> </module>
<module name="AvoidStarImport"/> <module name="AvoidStarImport"/>
<module name="OneTopLevelClass"/> <module name="OneTopLevelClass"/>
<module name="NoLineWrap"/> <module name="NoLineWrap">
<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT"/>
</module>
<module name="EmptyBlock"> <module name="EmptyBlock">
<property name="option" value="TEXT"/> <property name="option" value="TEXT"/>
<property name="tokens" <property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module> </module>
<!-- Disabled because it makes certain code pieces neater. <module name="NeedBraces">
<module name="NeedBraces"/> <property name="tokens"
--> value="LITERAL_DO, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE"/>
<module name="LeftCurly"/> </module>
<module name="LeftCurly">
<property name="tokens"
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT,
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="RightCurly"> <module name="RightCurly">
<property name="id" value="RightCurlySame"/> <property name="id" value="RightCurlySame"/>
<property name="tokens" <property name="tokens"
@ -73,7 +100,19 @@
<property name="option" value="alone"/> <property name="option" value="alone"/>
<property name="tokens" <property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
INSTANCE_INIT"/> INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
</module>
<module name="SuppressionXpathSingleFilter">
<!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
<property name="id" value="RightCurlyAlone"/>
<property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
or preceding-sibling::*[last()][self::LCURLY]]"/>
</module>
<module name="WhitespaceAfter">
<property name="tokens"
value="COMMA, SEMI, TYPECAST, LITERAL_IF, LITERAL_ELSE,
LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE"/>
</module> </module>
<module name="WhitespaceAround"> <module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/> <property name="allowEmptyConstructors" value="true"/>
@ -81,6 +120,15 @@
<property name="allowEmptyMethods" value="true"/> <property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/> <property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/> <property name="allowEmptyLoops" value="true"/>
<property name="ignoreEnhancedForColon" value="false"/>
<property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
<message key="ws.notFollowed" <message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded" <message key="ws.notPreceded"
@ -90,10 +138,13 @@
<module name="MultipleVariableDeclarations"/> <module name="MultipleVariableDeclarations"/>
<module name="ArrayTypeStyle"/> <module name="ArrayTypeStyle"/>
<module name="MissingSwitchDefault"/> <module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="UpperEll"/> <module name="UpperEll"/>
<module name="ModifierOrder"/> <module name="ModifierOrder"/>
<module name="EmptyLineSeparator"> <module name="EmptyLineSeparator">
<property name="tokens"
value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
<property name="allowNoEmptyLineBetweenFields" value="true"/> <property name="allowNoEmptyLineBetweenFields" value="true"/>
</module> </module>
<module name="SeparatorWrap"> <module name="SeparatorWrap">
@ -129,6 +180,8 @@
value="Package name ''{0}'' must match pattern ''{1}''."/> value="Package name ''{0}'' must match pattern ''{1}''."/>
</module> </module>
<module name="TypeName"> <module name="TypeName">
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
ANNOTATION_DEF, RECORD_DEF"/>
<message key="name.invalidPattern" <message key="name.invalidPattern"
value="Type name ''{0}'' must match pattern ''{1}''."/> value="Type name ''{0}'' must match pattern ''{1}''."/>
</module> </module>
@ -153,16 +206,25 @@
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
</module> </module>
<module name="LocalVariableName"> <module name="LocalVariableName">
<property name="tokens" value="VARIABLE_DEF"/>
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern" <message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/> value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module> </module>
<module name="PatternVariableName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Pattern variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName"> <module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern" <message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/> value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module> </module>
<module name="RecordTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Record type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MethodTypeParameterName"> <module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern" <message key="name.invalidPattern"
@ -194,22 +256,40 @@
</module> </module>
<module name="AbbreviationAsWordInName"> <module name="AbbreviationAsWordInName">
<property name="ignoreFinal" value="false"/> <property name="ignoreFinal" value="false"/>
<property name="allowedAbbreviationLength" value="1"/> <property name="allowedAbbreviationLength" value="0"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF,
PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF,
RECORD_COMPONENT_DEF"/>
</module> </module>
<module name="OverloadMethodsDeclarationOrder"/> <module name="OverloadMethodsDeclarationOrder"/>
<module name="VariableDeclarationUsageDistance"/> <module name="VariableDeclarationUsageDistance"/>
<module name="CustomImportOrder"> <module name="CustomImportOrder">
<property name="sortImportsInGroupAlphabetically" value="true"/> <property name="sortImportsInGroupAlphabetically" value="false"/>
<property name="separateLineBetweenGroups" value="true"/> <property name="separateLineBetweenGroups" value="true"/>
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/> <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
<property name="tokens" value="IMPORT, STATIC_IMPORT, PACKAGE_DEF"/>
</module>
<module name="UnusedImports"/>
<module name="MethodParamPad">
<property name="tokens"
value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF,
SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF"/>
</module> </module>
<module name="MethodParamPad"/>
<module name="NoWhitespaceBefore"> <module name="NoWhitespaceBefore">
<property name="tokens" <property name="tokens"
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/> value="COMMA, SEMI, POST_INC, POST_DEC, DOT,
LABELED_STAT, METHOD_REF"/>
<property name="allowLineBreaks" value="true"/> <property name="allowLineBreaks" value="true"/>
</module> </module>
<module name="ParenPad"/> <module name="ParenPad">
<property name="tokens"
value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,
EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,
METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,
RECORD_DEF"/>
</module>
<module name="OperatorWrap"> <module name="OperatorWrap">
<property name="option" value="NL"/> <property name="option" value="NL"/>
<property name="tokens" <property name="tokens"
@ -219,7 +299,8 @@
<module name="AnnotationLocation"> <module name="AnnotationLocation">
<property name="id" value="AnnotationLocationMostCases"/> <property name="id" value="AnnotationLocationMostCases"/>
<property name="tokens" <property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,
RECORD_DEF, COMPACT_CTOR_DEF"/>
</module> </module>
<module name="AnnotationLocation"> <module name="AnnotationLocation">
<property name="id" value="AnnotationLocationVariables"/> <property name="id" value="AnnotationLocationVariables"/>
@ -234,6 +315,7 @@
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
</module> </module>
<module name="JavadocParagraph"/> <module name="JavadocParagraph"/>
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
<module name="AtclauseOrder"> <module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/> <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
<property name="target" <property name="target"
@ -242,15 +324,16 @@
<module name="JavadocMethod"> <module name="JavadocMethod">
<property name="scope" value="public"/> <property name="scope" value="public"/>
<property name="allowMissingParamTags" value="true"/> <property name="allowMissingParamTags" value="true"/>
<property name="allowMissingThrowsTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/> <property name="allowMissingReturnTag" value="true"/>
<property name="allowedAnnotations" value="Override, Test"/> <property name="allowedAnnotations" value="Override, Test"/>
<property name="allowThrowsTagsForSubclasses" value="true"/> <property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
</module> </module>
<module name="MissingJavadocMethod"> <module name="MissingJavadocMethod">
<property name="scope" value="public"/> <property name="scope" value="public"/>
<property name="minLineCount" value="2"/> <property name="minLineCount" value="2"/>
<property name="allowedAnnotations" value="Override, Test"/> <property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,
COMPACT_CTOR_DEF"/>
</module> </module>
<module name="MethodName"> <module name="MethodName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/> <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
@ -263,6 +346,14 @@
<module name="EmptyCatchBlock"> <module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected"/> <property name="exceptionVariableName" value="expected"/>
</module> </module>
<module name="CommentsIndentation"/> <module name="CommentsIndentation">
<property name="tokens" value="SINGLE_LINE_COMMENT, BLOCK_COMMENT_BEGIN"/>
</module>
<!-- https://checkstyle.org/config_filters.html#SuppressionXpathFilter -->
<module name="SuppressionXpathFilter">
<property name="file" value="${org.checkstyle.google.suppressionxpathfilter.config}"
default="checkstyle-xpath-suppressions.xml" />
<property name="optional" value="true"/>
</module>
</module> </module>
</module> </module>

View file

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="." checks="RequireEmptyLineBeforeBlockTagGroup" />
<suppress files="." checks="AbbreviationAsWordInName" />
</suppressions>

View file

@ -1,2 +1,4 @@
rootProject.name = 'ServerUtils' rootProject.name = 'ServerUtils'
include 'Common', 'Bukkit', 'Bungee' include 'Common'
include 'Bukkit'
include 'Bungee'