mirror of
https://github.com/Shimeo98/DiscordWhitelisterSpigot.git
synced 2024-11-28 13:45:18 +01:00
Custom command prefix support & ability to hide the players' skin image on whitelist
This commit is contained in:
parent
1a155939ed
commit
1b3454300f
107
src/main/java/uk/co/angrybee/joe/Configs/CustomPrefixConfig.java
Normal file
107
src/main/java/uk/co/angrybee/joe/Configs/CustomPrefixConfig.java
Normal file
@ -0,0 +1,107 @@
|
||||
package uk.co.angrybee.joe.Configs;
|
||||
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import uk.co.angrybee.joe.DiscordWhitelister;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class CustomPrefixConfig
|
||||
{
|
||||
static File customPrefixesFile;
|
||||
static FileConfiguration customPrefixesConfig;
|
||||
|
||||
static boolean customPrefixesFileCreated = false;
|
||||
|
||||
public static String whitelistAddPrefix;
|
||||
public static String whitelistRemovePrefix;
|
||||
|
||||
public static void ConfigSetup()
|
||||
{
|
||||
customPrefixesFile = new File(DiscordWhitelister.getPlugin().getDataFolder(), "custom-prefixes.yml");
|
||||
customPrefixesConfig = new YamlConfiguration();
|
||||
|
||||
if(!customPrefixesFile.exists())
|
||||
{
|
||||
CreateConfig();
|
||||
}
|
||||
|
||||
LoadConfig();
|
||||
CheckEntries();
|
||||
SaveConfig();
|
||||
AssignStrings();
|
||||
}
|
||||
|
||||
private static void CreateConfig()
|
||||
{
|
||||
try
|
||||
{
|
||||
customPrefixesFile.createNewFile();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
DiscordWhitelister.getPluginLogger().info("Custom Prefixes file created at: " + customPrefixesFile.getPath());
|
||||
customPrefixesFileCreated = true;
|
||||
}
|
||||
|
||||
private static void LoadConfig()
|
||||
{
|
||||
try
|
||||
{
|
||||
customPrefixesConfig.load(customPrefixesFile);
|
||||
}
|
||||
catch (IOException | InvalidConfigurationException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void CheckEntries()
|
||||
{
|
||||
if(customPrefixesFile.exists())
|
||||
{
|
||||
if(customPrefixesConfig.getString("whitelist-add-prefix") == null)
|
||||
{
|
||||
customPrefixesConfig.set("whitelist-add-prefix", "!whitelist add");
|
||||
|
||||
if(!customPrefixesFileCreated)
|
||||
{
|
||||
DiscordWhitelister.getPluginLogger().warning("Entry 'whitelist-add-prefix' was not found, adding it to the config...");
|
||||
}
|
||||
}
|
||||
|
||||
if(customPrefixesConfig.getString("whitelist-remove-prefix") == null)
|
||||
{
|
||||
customPrefixesConfig.set("whitelist-remove-prefix", "!whitelist remove");
|
||||
|
||||
if(!customPrefixesFileCreated)
|
||||
{
|
||||
DiscordWhitelister.getPluginLogger().warning("Entry 'whitelist-remove-prefix' was not found, adding it to the config...");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void SaveConfig()
|
||||
{
|
||||
try
|
||||
{
|
||||
customPrefixesConfig.save(customPrefixesFile.getPath());
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void AssignStrings()
|
||||
{
|
||||
whitelistAddPrefix = customPrefixesConfig.getString("whitelist-add-prefix");
|
||||
whitelistRemovePrefix = customPrefixesConfig.getString("whitelist-remove-prefix");
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.events.guild.member.GuildMemberLeaveEvent;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.internal.requests.Route;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@ -16,6 +17,7 @@ import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
import uk.co.angrybee.joe.Configs.CustomPrefixConfig;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.security.auth.login.LoginException;
|
||||
@ -191,7 +193,8 @@ public class DiscordClient extends ListenerAdapter
|
||||
}
|
||||
|
||||
// Add Command
|
||||
if (messageContents.toLowerCase().startsWith("!whitelist add"))
|
||||
if (messageContents.toLowerCase().startsWith("!whitelist add") && !DiscordWhitelister.getUseCustomPrefixes()
|
||||
|| DiscordWhitelister.getUseCustomPrefixes() && messageContents.toLowerCase().startsWith(CustomPrefixConfig.whitelistAddPrefix))
|
||||
{
|
||||
// Permission check
|
||||
if (!(authorPermissions.isUserCanAddRemove() || authorPermissions.isUserCanAdd() || limitedWhitelistEnabled && authorPermissions.isUserHasLimitedAdd()))
|
||||
@ -253,7 +256,17 @@ public class DiscordClient extends ListenerAdapter
|
||||
if (authorPermissions.isUserCanAddRemove() || authorPermissions.isUserCanAdd() || limitedWhitelistEnabled && authorPermissions.isUserHasLimitedAdd())
|
||||
{
|
||||
messageContents = messageContents.toLowerCase();
|
||||
String messageContentsAfterCommand = messageContents.substring("!whitelist add".length() + 1); // get everything after !whitelist add[space]
|
||||
|
||||
String messageContentsAfterCommand = "";
|
||||
if(!DiscordWhitelister.getUseCustomPrefixes())
|
||||
{
|
||||
messageContentsAfterCommand = messageContents.substring("!whitelist add".length() + 1); // get everything after !whitelist add[space]
|
||||
}
|
||||
else
|
||||
{
|
||||
messageContentsAfterCommand = messageContents.substring(CustomPrefixConfig.whitelistAddPrefix.length() + 1); // get everything after whitelistAddPrefix[space]
|
||||
}
|
||||
|
||||
final String finalNameToAdd = messageContentsAfterCommand.replaceAll(" .*", ""); // The name is everything up to the first space
|
||||
|
||||
final char[] finalNameToWhitelistChar = finalNameToAdd.toCharArray();
|
||||
@ -515,7 +528,10 @@ public class DiscordClient extends ListenerAdapter
|
||||
this will run even if the message is never sent, but is a good trade off */
|
||||
EmbedBuilder embedBuilderWhitelistSuccess = new EmbedBuilder();
|
||||
embedBuilderWhitelistSuccess.setColor(new Color(46, 204, 113));
|
||||
embedBuilderWhitelistSuccess.setThumbnail("https://minotar.net/bust/" + playerUUID + "/100.png");
|
||||
if(DiscordWhitelister.showPlayerSkin)
|
||||
{
|
||||
embedBuilderWhitelistSuccess.setThumbnail("https://minotar.net/bust/" + playerUUID + "/100.png");
|
||||
}
|
||||
|
||||
if(!DiscordWhitelister.useCustomMessages)
|
||||
{
|
||||
@ -694,10 +710,22 @@ public class DiscordClient extends ListenerAdapter
|
||||
}
|
||||
}
|
||||
|
||||
if (messageContents.toLowerCase().startsWith("!whitelist remove")) {
|
||||
if (messageContents.toLowerCase().startsWith("!whitelist remove") && !DiscordWhitelister.getUseCustomPrefixes()
|
||||
|| DiscordWhitelister.getUseCustomPrefixes() && messageContents.toLowerCase().startsWith(CustomPrefixConfig.whitelistRemovePrefix))
|
||||
{
|
||||
if (authorPermissions.isUserCanAddRemove()) {
|
||||
messageContents = messageContents.toLowerCase();
|
||||
String messageContentsAfterCommand = messageContents.substring("!whitelist remove".length() + 1); // get everything after !whitelist add[space]
|
||||
|
||||
String messageContentsAfterCommand = "";
|
||||
if(!DiscordWhitelister.useCustomPrefixes)
|
||||
{
|
||||
messageContentsAfterCommand = messageContents.substring("!whitelist remove".length() + 1); // get everything after !whitelist remove[space]
|
||||
}
|
||||
else
|
||||
{
|
||||
messageContentsAfterCommand = messageContents.substring(CustomPrefixConfig.whitelistRemovePrefix.length() + 1); // get everything after whitelistRemovePrefix[space]
|
||||
}
|
||||
|
||||
final String finalNameToRemove = messageContentsAfterCommand.replaceAll(" .*", ""); // The name is everything up to the first space
|
||||
|
||||
if (finalNameToRemove.isEmpty()) {
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
import uk.co.angrybee.joe.Commands.CommandAbout;
|
||||
import uk.co.angrybee.joe.Commands.CommandReload;
|
||||
import uk.co.angrybee.joe.Commands.CommandStatus;
|
||||
import uk.co.angrybee.joe.Configs.CustomPrefixConfig;
|
||||
import uk.co.angrybee.joe.Events.JoinLeaveEvents;
|
||||
|
||||
import java.io.File;
|
||||
@ -23,11 +24,13 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
private static File removedListFile;
|
||||
private static File customMessagesFile;
|
||||
|
||||
|
||||
private static FileConfiguration whitelisterBotConfig;
|
||||
private static FileConfiguration userList;
|
||||
private static FileConfiguration removedList;
|
||||
private static FileConfiguration customMessagesConfig;
|
||||
|
||||
|
||||
// easy whitelist
|
||||
public static Plugin easyWhitelist;
|
||||
|
||||
@ -41,6 +44,8 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
public static boolean useEasyWhitelist = false;
|
||||
public static boolean useCustomMessages = false;
|
||||
public static boolean useIdForRoles = false;
|
||||
public static boolean useCustomPrefixes = false;
|
||||
public static boolean showPlayerSkin = true;
|
||||
|
||||
public static boolean botEnabled;
|
||||
|
||||
@ -101,7 +106,9 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
return removedListFile;
|
||||
}
|
||||
|
||||
public static FileConfiguration getCustomMessagesConfig() { return customMessagesConfig; }
|
||||
public static FileConfiguration getCustomMessagesConfig() { return customMessagesConfig; }
|
||||
|
||||
public static Logger getPluginLogger() { return pluginLogger; }
|
||||
|
||||
public static List<?> getRegisteredUsers(String userId) { return userList.getList(userId); }
|
||||
|
||||
@ -113,6 +120,8 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean getUseCustomPrefixes() { return useCustomPrefixes; }
|
||||
|
||||
public static void addRegisteredUser(String userId, String userToAdd) throws IOException {
|
||||
List <?> x = getRegisteredUsers(userId);
|
||||
List <String> newList = new ArrayList<>();
|
||||
@ -151,6 +160,7 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
botToken = getWhitelisterBotConfig().getString("discord-bot-token");
|
||||
botEnabled = getWhitelisterBotConfig().getBoolean("bot-enabled");
|
||||
showPlayerSkin = getWhitelisterBotConfig().getBoolean("show-player-skin-on-whitelist");
|
||||
|
||||
if(!botEnabled)
|
||||
{
|
||||
@ -206,6 +216,7 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
|
||||
// Custom messages check
|
||||
useCustomMessages = getWhitelisterBotConfig().getBoolean("use-custom-messages");
|
||||
useCustomPrefixes = getWhitelisterBotConfig().getBoolean("use-custom-prefixes");
|
||||
|
||||
int initSuccess = DiscordClient.InitializeClient(botToken);
|
||||
|
||||
@ -527,6 +538,26 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
}
|
||||
}
|
||||
|
||||
if(getWhitelisterBotConfig().get("use-custom-prefixes") == null)
|
||||
{
|
||||
getWhitelisterBotConfig().set("use-custom-prefixes", false);
|
||||
|
||||
if(!configCreated)
|
||||
{
|
||||
getPlugin().getLogger().warning("Entry 'use-custom-prefixes' was not found, adding it to the config...");
|
||||
}
|
||||
}
|
||||
|
||||
if(getWhitelisterBotConfig().get("show-player-skin-on-whitelist") == null)
|
||||
{
|
||||
getWhitelisterBotConfig().set("show-player-skin-on-whitelist", true);
|
||||
|
||||
if(!configCreated)
|
||||
{
|
||||
getPlugin().getLogger().warning("Entry 'show-player-skin-on-whitelist' was not found, adding it to the config...");
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
getWhitelisterBotConfig().save((whitelisterBotConfigFile.getPath()));
|
||||
@ -795,6 +826,8 @@ public class DiscordWhitelister extends JavaPlugin
|
||||
}
|
||||
}
|
||||
|
||||
CustomPrefixConfig.ConfigSetup();
|
||||
|
||||
if(userListCreated)
|
||||
{
|
||||
try
|
||||
|
Loading…
Reference in New Issue
Block a user