mirror of
https://github.com/Shimeo98/DiscordWhitelisterSpigot.git
synced 2025-02-08 00:11:25 +01:00
fix errors during startup and shutdown when fresh configs
version bump
This commit is contained in:
parent
9908407869
commit
e7c2b5be7b
4
pom.xml
4
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>uk.co.angrybee.joe</groupId>
|
||||
<artifactId>discord-whitelister</artifactId>
|
||||
<version>1.4.8</version>
|
||||
<version>1.4.9</version>
|
||||
|
||||
<name>discord-whitelister</name>
|
||||
<url>https://github.com/JoeShimell/DiscordWhitelisterSpigot</url>
|
||||
@ -49,7 +49,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.17-R0.1-SNAPSHOT</version>
|
||||
<version>1.17.1-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -25,12 +25,12 @@ import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class DiscordWhitelister extends JavaPlugin
|
||||
{
|
||||
public class DiscordWhitelister extends JavaPlugin {
|
||||
public static String botToken;
|
||||
|
||||
private static boolean configCreated = false;
|
||||
|
||||
public static boolean initialized = false;
|
||||
public static boolean useCustomMessages = false;
|
||||
public static boolean useIdForRoles = false;
|
||||
public static boolean useCustomPrefixes = false;
|
||||
@ -70,8 +70,7 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
public void onEnable() {
|
||||
thisPlugin = this;
|
||||
thisServer = thisPlugin.getServer();
|
||||
pluginLogger = thisPlugin.getLogger();
|
||||
@ -84,19 +83,20 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
int initSuccess = InitBot(true);
|
||||
|
||||
if(initSuccess == 0)
|
||||
{
|
||||
if (initSuccess == 0) {
|
||||
pluginLogger.info("Successfully initialized Discord client");
|
||||
}
|
||||
else if(initSuccess == 1)
|
||||
{
|
||||
initialized = true;
|
||||
} else if (initSuccess == 1) {
|
||||
pluginLogger.severe("Discord Client failed to initialize, please check if your config file is valid");
|
||||
initialized = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for leavers if enabled
|
||||
DiscordClient.ServerLeaveStartupCheck();
|
||||
DiscordClient.RequiredRoleStartupCheck();
|
||||
if (botEnabled) {
|
||||
DiscordClient.ServerLeaveStartupCheck();
|
||||
DiscordClient.RequiredRoleStartupCheck();
|
||||
}
|
||||
|
||||
this.getCommand("discordwhitelister").setExecutor(new CommandStatus());
|
||||
this.getCommand("discordwhitelisterabout").setExecutor(new CommandAbout());
|
||||
@ -104,33 +104,46 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
DiscordClient.javaDiscordAPI.shutdownNow();
|
||||
public void onDisable() {
|
||||
if (initialized ) {
|
||||
DiscordClient.javaDiscordAPI.shutdownNow();
|
||||
}
|
||||
}
|
||||
|
||||
public static JavaPlugin getPlugin()
|
||||
{
|
||||
public static JavaPlugin getPlugin() {
|
||||
return thisPlugin;
|
||||
}
|
||||
|
||||
public static FileConfiguration getCustomMessagesConfig() { return customMessagesConfig.getFileConfiguration(); }
|
||||
public static FileConfiguration getCustomMessagesConfig() {
|
||||
return customMessagesConfig.getFileConfiguration();
|
||||
}
|
||||
|
||||
public static Logger getPluginLogger() { return pluginLogger; }
|
||||
public static Logger getPluginLogger() {
|
||||
return pluginLogger;
|
||||
}
|
||||
|
||||
public static boolean getUseCustomPrefixes() { return useCustomPrefixes; }
|
||||
public static boolean getUseCustomPrefixes() {
|
||||
return useCustomPrefixes;
|
||||
}
|
||||
|
||||
public static void addVanishedPlayer() { vanishedPlayersCount++; }
|
||||
public static void addVanishedPlayer() {
|
||||
vanishedPlayersCount++;
|
||||
}
|
||||
|
||||
public static void removeVanishedPlayer() { vanishedPlayersCount--; }
|
||||
public static void removeVanishedPlayer() {
|
||||
vanishedPlayersCount--;
|
||||
}
|
||||
|
||||
public static int getOnlineUsers() { return thisPlugin.getServer().getOnlinePlayers().size() - vanishedPlayersCount; }
|
||||
public static int getOnlineUsers() {
|
||||
return thisPlugin.getServer().getOnlinePlayers().size() - vanishedPlayersCount;
|
||||
}
|
||||
|
||||
public static int getMaximumAllowedPlayers() { return thisPlugin.getServer().getMaxPlayers(); }
|
||||
public static int getMaximumAllowedPlayers() {
|
||||
return thisPlugin.getServer().getMaxPlayers();
|
||||
}
|
||||
|
||||
public static int InitBot(boolean firstInit)
|
||||
{
|
||||
if(firstInit)
|
||||
public static int InitBot(boolean firstInit) {
|
||||
if (firstInit)
|
||||
vanishedPlayersCount = 0;
|
||||
|
||||
ConfigSetup();
|
||||
@ -146,59 +159,47 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
removeMessageWaitTime = mainConfig.getFileConfiguration().getInt("seconds-to-remove-message-from-whitelist-channel");
|
||||
useOnWhitelistCommands = mainConfig.getFileConfiguration().getBoolean("use-on-whitelist-commands");
|
||||
|
||||
// Check for LuckPerms first
|
||||
if(mainConfig.getFileConfiguration().getBoolean("assign-perms-with-luck-perms"))
|
||||
{
|
||||
if(getPlugin().getServer().getPluginManager().getPlugin("LuckPerms") != null)
|
||||
{
|
||||
useLuckPerms = true;
|
||||
getPluginLogger().info("LuckPerms found!");
|
||||
}
|
||||
else
|
||||
{
|
||||
getPluginLogger().warning("LuckPerms was not found but is enabled in the config. Doing nothing...");
|
||||
useLuckPerms = false;
|
||||
}
|
||||
}
|
||||
if(mainConfig.getFileConfiguration().getBoolean("assign-perms-with-ultra-perms"))
|
||||
{
|
||||
if(getPlugin().getServer().getPluginManager().getPlugin("UltraPermissions") != null)
|
||||
{
|
||||
useUltraPerms = true;
|
||||
getPluginLogger().info("Ultra Permissions found!");
|
||||
}
|
||||
else
|
||||
{
|
||||
getPluginLogger().warning("Ultra Permissions was not found but is enabled in the config. Doing nothing...");
|
||||
useUltraPerms = false;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove in favour of split versions
|
||||
DiscordClient.customWhitelistAddPrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-add-prefix").toLowerCase();
|
||||
DiscordClient.customWhitelistRemovePrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-remove-prefix").toLowerCase();
|
||||
DiscordClient.customClearNamePrefix = customPrefixConfig.getFileConfiguration().getString("clear-name-prefix").toLowerCase();
|
||||
DiscordClient.customLimitedWhitelistClearPrefix = customPrefixConfig.getFileConfiguration().getString("limited-whitelist-clear-prefix").toLowerCase();
|
||||
DiscordClient.customClearBanPrefix = customPrefixConfig.getFileConfiguration().getString("clear-ban-prefix").toLowerCase();
|
||||
|
||||
// Split versions
|
||||
DiscordClient.customWhitelistAddPrefixSplit = customPrefixConfig.getFileConfiguration().getString("whitelist-add-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customWhitelistRemovePrefixSplit = customPrefixConfig.getFileConfiguration().getString("whitelist-remove-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customClearNamePrefixSplit = customPrefixConfig.getFileConfiguration().getString("clear-name-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customLimitedWhitelistClearPrefixSplit = customPrefixConfig.getFileConfiguration().getString("limited-whitelist-clear-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customClearBanPrefixSplit = customPrefixConfig.getFileConfiguration().getString("clear-ban-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customWhoIsPrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-whois-prefix").toLowerCase().trim().split(" ");
|
||||
|
||||
if(!botEnabled)
|
||||
{
|
||||
if (!botEnabled) {
|
||||
pluginLogger.info("Bot is disabled as per the config, doing nothing");
|
||||
}
|
||||
else if(configCreated)
|
||||
{
|
||||
pluginLogger.info("Config newly created, please paste your bot token into the config file, doing nothing until next server start");
|
||||
}
|
||||
else
|
||||
{
|
||||
} else if (configCreated || botToken.equals(MainConfig.default_token)) {
|
||||
pluginLogger.warning("Config newly created. Please paste your bot token into the config file, doing nothing until next server start");
|
||||
} else {
|
||||
// Check for LuckPerms first
|
||||
if (mainConfig.getFileConfiguration().getBoolean("assign-perms-with-luck-perms")) {
|
||||
if (getPlugin().getServer().getPluginManager().getPlugin("LuckPerms") != null) {
|
||||
useLuckPerms = true;
|
||||
getPluginLogger().info("LuckPerms found!");
|
||||
} else {
|
||||
getPluginLogger().warning("LuckPerms was not found but is enabled in the config. Doing nothing...");
|
||||
useLuckPerms = false;
|
||||
}
|
||||
}
|
||||
if (mainConfig.getFileConfiguration().getBoolean("assign-perms-with-ultra-perms")) {
|
||||
if (getPlugin().getServer().getPluginManager().getPlugin("UltraPermissions") != null) {
|
||||
useUltraPerms = true;
|
||||
getPluginLogger().info("Ultra Permissions found!");
|
||||
} else {
|
||||
getPluginLogger().warning("Ultra Permissions was not found but is enabled in the config. Doing nothing...");
|
||||
useUltraPerms = false;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove in favour of split versions
|
||||
DiscordClient.customWhitelistAddPrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-add-prefix").toLowerCase();
|
||||
DiscordClient.customWhitelistRemovePrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-remove-prefix").toLowerCase();
|
||||
DiscordClient.customClearNamePrefix = customPrefixConfig.getFileConfiguration().getString("clear-name-prefix").toLowerCase();
|
||||
DiscordClient.customLimitedWhitelistClearPrefix = customPrefixConfig.getFileConfiguration().getString("limited-whitelist-clear-prefix").toLowerCase();
|
||||
DiscordClient.customClearBanPrefix = customPrefixConfig.getFileConfiguration().getString("clear-ban-prefix").toLowerCase();
|
||||
|
||||
// Split versions
|
||||
DiscordClient.customWhitelistAddPrefixSplit = customPrefixConfig.getFileConfiguration().getString("whitelist-add-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customWhitelistRemovePrefixSplit = customPrefixConfig.getFileConfiguration().getString("whitelist-remove-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customClearNamePrefixSplit = customPrefixConfig.getFileConfiguration().getString("clear-name-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customLimitedWhitelistClearPrefixSplit = customPrefixConfig.getFileConfiguration().getString("limited-whitelist-clear-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customClearBanPrefixSplit = customPrefixConfig.getFileConfiguration().getString("clear-ban-prefix").toLowerCase().trim().split(" ");
|
||||
DiscordClient.customWhoIsPrefix = customPrefixConfig.getFileConfiguration().getString("whitelist-whois-prefix").toLowerCase().trim().split(" ");
|
||||
|
||||
|
||||
pluginLogger.info("Initializing Discord client...");
|
||||
|
||||
// TODO: below role section could be moved to DiscordClient class
|
||||
@ -206,40 +207,34 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
// set add & remove roles
|
||||
DiscordClient.allowedToAddRemoveRoles = new String[mainConfig.getFileConfiguration().getList("add-remove-roles").size()];
|
||||
for(int roles = 0; roles < DiscordClient.allowedToAddRemoveRoles.length; ++roles)
|
||||
{
|
||||
for (int roles = 0; roles < DiscordClient.allowedToAddRemoveRoles.length; ++roles) {
|
||||
DiscordClient.allowedToAddRemoveRoles[roles] = mainConfig.getFileConfiguration().getList("add-remove-roles").get(roles).toString();
|
||||
}
|
||||
|
||||
// set add roles
|
||||
DiscordClient.allowedToAddRoles = new String[mainConfig.getFileConfiguration().getList("add-roles").size()];
|
||||
for(int roles = 0; roles < DiscordClient.allowedToAddRoles.length; ++roles)
|
||||
{
|
||||
for (int roles = 0; roles < DiscordClient.allowedToAddRoles.length; ++roles) {
|
||||
DiscordClient.allowedToAddRoles[roles] = mainConfig.getFileConfiguration().getList("add-roles").get(roles).toString();
|
||||
}
|
||||
|
||||
// set limited add roles
|
||||
DiscordClient.allowedToAddLimitedRoles = new String[mainConfig.getFileConfiguration().getList("limited-add-roles").size()];
|
||||
for(int roles = 0; roles < DiscordClient.allowedToAddLimitedRoles.length; ++roles)
|
||||
{
|
||||
for (int roles = 0; roles < DiscordClient.allowedToAddLimitedRoles.length; ++roles) {
|
||||
DiscordClient.allowedToAddLimitedRoles[roles] = mainConfig.getFileConfiguration().getList("limited-add-roles").get(roles).toString();
|
||||
}
|
||||
|
||||
// Get banned roles
|
||||
if(useOnBanEvents)
|
||||
{
|
||||
if (useOnBanEvents) {
|
||||
List<String> tempBannedRoles = mainConfig.getFileConfiguration().getStringList("banned-roles");
|
||||
bannedRoles = new String[tempBannedRoles.size()];
|
||||
for(int i = 0; i < tempBannedRoles.size(); i++)
|
||||
{
|
||||
for (int i = 0; i < tempBannedRoles.size(); i++) {
|
||||
bannedRoles[i] = tempBannedRoles.get(i);
|
||||
}
|
||||
}
|
||||
|
||||
// Allowed to clear name roles
|
||||
DiscordClient.allowedToClearNamesRoles = new String[mainConfig.getFileConfiguration().getStringList("clear-command-roles").size()];
|
||||
for(int roles = 0; roles < DiscordClient.allowedToClearNamesRoles.length; roles++)
|
||||
{
|
||||
for (int roles = 0; roles < DiscordClient.allowedToClearNamesRoles.length; roles++) {
|
||||
DiscordClient.allowedToClearNamesRoles[roles] = mainConfig.getFileConfiguration().getStringList("clear-command-roles").get(roles);
|
||||
}
|
||||
|
||||
@ -254,15 +249,14 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
int initSuccess = DiscordClient.InitializeClient(botToken);
|
||||
|
||||
if(initSuccess == 1)
|
||||
if (initSuccess == 1)
|
||||
return 1;
|
||||
|
||||
|
||||
// No need for an if here statement anymore as this code will not run if the client has not been initialized
|
||||
// Only attempt to set player count if the bot successfully initialized
|
||||
if(mainConfig.getFileConfiguration().getBoolean("show-player-count"))
|
||||
{
|
||||
if(firstInit) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("show-player-count")) {
|
||||
if (firstInit) {
|
||||
// Register events if enabled
|
||||
thisServer.getPluginManager().registerEvents(new JoinLeaveEvents(), thisPlugin);
|
||||
//pluginLogger.info("Registered join/leave events!");
|
||||
@ -270,7 +264,7 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
thisServer.getPluginManager().registerEvents(new SuperVanishEvents(), thisPlugin);
|
||||
//pluginLogger.info("Registered SuperVanish events!");
|
||||
}
|
||||
if(vanishNoPacketPlugin != null) {
|
||||
if (vanishNoPacketPlugin != null) {
|
||||
thisServer.getPluginManager().registerEvents(new VanishNoPacketEvents(), thisPlugin);
|
||||
//pluginLogger.info("Registered VanishNoPacket events!");
|
||||
}
|
||||
@ -285,21 +279,20 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
}
|
||||
|
||||
// Register whitelist events if enabled
|
||||
if(useInGameAddRemoves)
|
||||
if (useInGameAddRemoves)
|
||||
thisServer.getPluginManager().registerEvents(new OnWhitelistEvents(), thisPlugin);
|
||||
|
||||
// Register ban events if enabled
|
||||
if(useOnBanEvents)
|
||||
if (useOnBanEvents)
|
||||
thisServer.getPluginManager().registerEvents(new OnBanEvent(), thisPlugin);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
public static void ConfigSetup()
|
||||
{
|
||||
public static void ConfigSetup() {
|
||||
mainConfig = new MainConfig();
|
||||
customPrefixConfig = new CustomPrefixConfig();
|
||||
customMessagesConfig = new CustomMessagesConfig();
|
||||
|
@ -39,8 +39,10 @@ public class CommandReload implements CommandExecutor
|
||||
{
|
||||
pluginLogger.info("Failed to re-initialize client");
|
||||
sender.sendMessage("[DW] Failed to reload Discord client (Reason: Failed to re-initialize client)");
|
||||
DiscordWhitelister.initialized = false;
|
||||
return false;
|
||||
}
|
||||
DiscordWhitelister.initialized = true;
|
||||
|
||||
if(!DiscordWhitelister.botEnabled)
|
||||
{
|
||||
|
@ -9,8 +9,10 @@ import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
|
||||
// discord-whitelister.yml
|
||||
public class MainConfig extends Config {
|
||||
public static String default_token = "Discord bot token goes here, you can find it here: https://discordapp.com/developers/applications/";
|
||||
public MainConfig() {
|
||||
fileName = "discord-whitelister.yml";
|
||||
file = new File(DiscordWhitelister.getPlugin().getDataFolder(), fileName);
|
||||
@ -32,7 +34,7 @@ public class MainConfig extends Config {
|
||||
|
||||
if (!file.exists()) {
|
||||
CreateConfig();
|
||||
DiscordWhitelister.getPluginLogger().info("Configuration file created at: " + file.getPath() +
|
||||
DiscordWhitelister.getPluginLogger().warning("Configuration file created at: " + file.getPath() +
|
||||
", please edit this else the plugin will not work!");
|
||||
}
|
||||
LoadConfigFile();
|
||||
@ -45,7 +47,7 @@ public class MainConfig extends Config {
|
||||
CheckEntry("bot-enabled", true);
|
||||
|
||||
CheckEntry("discord-bot-token",
|
||||
"Discord bot token goes here, you can find it here: https://discordapp.com/developers/applications/");
|
||||
default_token);
|
||||
|
||||
CheckEntry("use-id-for-roles", false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user