Skip to content

Commit 1c40c6f

Browse files
committed
[chore] Use BaseClass for all files, rewritten PluginConfig, instantiate all previously-static classes
Could be unstable?
1 parent a6722db commit 1c40c6f

16 files changed

Lines changed: 256 additions & 204 deletions
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.dumbdogdiner.betterwhitelist_bungee;
2+
3+
import java.io.File;
4+
import java.io.InputStream;
5+
import java.util.concurrent.ExecutorService;
6+
import java.util.logging.Logger;
7+
8+
import com.dumbdogdiner.betterwhitelist_bungee.discord.WhitelistBot;
9+
import com.dumbdogdiner.betterwhitelist_bungee.utils.PluginConfig;
10+
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
11+
12+
import net.dv8tion.jda.api.JDA;
13+
import net.md_5.bungee.api.ProxyServer;
14+
import net.md_5.bungee.api.plugin.PluginDescription;
15+
import net.md_5.bungee.config.Configuration;
16+
17+
public interface BaseClass {
18+
default BetterWhitelistBungee getInstance() {
19+
return BetterWhitelistBungee.getInstance();
20+
}
21+
22+
default File getDataFolder() {
23+
return getInstance().getDataFolder();
24+
}
25+
26+
default PluginDescription getPluginDescription() {
27+
return getInstance().getDescription();
28+
}
29+
30+
default File getFile() {
31+
return getInstance().getFile();
32+
}
33+
34+
default Logger getLogger() {
35+
return getInstance().getLogger();
36+
}
37+
38+
default ProxyServer getProxy() {
39+
return getInstance().getProxy();
40+
}
41+
42+
default InputStream getResourceAsStream(String name) {
43+
return getInstance().getResourceAsStream(name);
44+
}
45+
46+
// Custom
47+
48+
default PluginConfig getPluginConfig() {
49+
return getInstance().getPluginConfig();
50+
}
51+
52+
default Configuration getConfig() {
53+
return getInstance().getPluginConfig().getConfig();
54+
}
55+
56+
default SQL getSQL() {
57+
return getInstance().getSQL();
58+
}
59+
60+
default WhitelistBot getBot() {
61+
return getInstance().getBot();
62+
}
63+
}

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/BetterWhitelistBungee.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.dumbdogdiner.betterwhitelist_bungee.bungee.commands.WhoisCommand;
66
import com.dumbdogdiner.betterwhitelist_bungee.discord.WhitelistBot;
77
import com.dumbdogdiner.betterwhitelist_bungee.bungee.listeners.PlayerEventListener;
8+
import com.dumbdogdiner.betterwhitelist_bungee.utils.PluginConfig;
89
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
910

1011
import net.dv8tion.jda.api.JDA;
@@ -23,21 +24,35 @@ public static BetterWhitelistBungee getInstance() {
2324
return instance;
2425
}
2526

27+
private PluginConfig config;
28+
private SQL sql;
29+
private WhitelistBot bot;
30+
31+
public PluginConfig getPluginConfig() {
32+
return config;
33+
}
34+
35+
public SQL getSQL() {
36+
return sql;
37+
}
38+
39+
public WhitelistBot getBot() {
40+
return bot;
41+
}
42+
2643
@Override
2744
public void onEnable() {
2845
instance = this;
46+
config = new PluginConfig();
47+
bot = new WhitelistBot();
48+
sql = new SQL();
2949

3050
PluginManager manager = getProxy().getPluginManager();
3151

3252
manager.registerListener(this, new PlayerEventListener());
3353
manager.registerCommand(this, new WhoisCommand());
3454
manager.registerCommand(this, new WhitelistCommand());
3555
manager.registerCommand(this, new UnwhitelistCommand());
36-
37-
WhitelistBot.getInstance().init();
38-
39-
SQL.init();
40-
SQL.checkTable();
4156
}
4257

4358
@Override
@@ -47,8 +62,8 @@ public void onDisable() {
4762
/* PluginConfig.saveConfig(); */
4863

4964
// Shut down the Discord bot gracefully.
50-
JDA jda = WhitelistBot.getJda();
51-
if (jda != null) WhitelistBot.getJda().shutdown();
65+
JDA jda = getBot().getJDA();
66+
if (jda != null) getBot().getJDA().shutdown();
5267

5368

5469
getLogger().info("Aarrff!! (see you again soon :3)");

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/bungee/commands/UnwhitelistCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.dumbdogdiner.betterwhitelist_bungee.bungee.commands;
22

3+
import com.dumbdogdiner.betterwhitelist_bungee.BaseClass;
34
import com.dumbdogdiner.betterwhitelist_bungee.utils.MojangUser;
4-
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
55
import com.dumbdogdiner.betterwhitelist_bungee.utils.UsernameValidator;
66

77
import net.md_5.bungee.api.ChatColor;
88
import net.md_5.bungee.api.CommandSender;
99
import net.md_5.bungee.api.chat.TextComponent;
1010
import net.md_5.bungee.api.plugin.Command;
1111

12-
public class UnwhitelistCommand extends Command {
12+
public class UnwhitelistCommand extends Command implements BaseClass {
1313

1414
public UnwhitelistCommand() {
1515
super("btw_unwhitelist", "betterwhitelist.admin.unwhitelist");
@@ -29,12 +29,12 @@ public void execute(CommandSender sender, String[] args) {
2929
return;
3030
}
3131

32-
if (SQL.getDiscordIDFromMinecraft(user.id) == null) {
32+
if (getSQL().getDiscordIDFromMinecraft(user.id) == null) {
3333
sender.sendMessage(new TextComponent(ChatColor.RED + "Player '" + args[0] + "' is not whitelisted."));
3434
return;
3535
}
3636

37-
if (SQL.removeEntryUsingUuid(user.id)) {
37+
if (getSQL().removeEntryUsingUuid(user.id)) {
3838
sender.sendMessage(new TextComponent(
3939
ChatColor.AQUA + "Removed user " + user.name + " ('" + user.id + "') from the whitelist."));
4040
} else {

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/bungee/commands/WhitelistCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.dumbdogdiner.betterwhitelist_bungee.bungee.commands;
22

3+
import com.dumbdogdiner.betterwhitelist_bungee.BaseClass;
34
import com.dumbdogdiner.betterwhitelist_bungee.utils.MojangUser;
4-
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
55
import com.dumbdogdiner.betterwhitelist_bungee.utils.UsernameValidator;
66

77
import net.md_5.bungee.api.ChatColor;
88
import net.md_5.bungee.api.CommandSender;
99
import net.md_5.bungee.api.chat.TextComponent;
1010
import net.md_5.bungee.api.plugin.Command;
1111

12-
public class WhitelistCommand extends Command {
12+
public class WhitelistCommand extends Command implements BaseClass {
1313

1414
public WhitelistCommand() {
1515
super("btw_whitelist", "betterwhitelist.admin.whitelist");
@@ -31,13 +31,13 @@ public void execute(CommandSender sender, String[] args) {
3131
return;
3232
}
3333

34-
if (SQL.getDiscordIDFromMinecraft(user.id) != null) {
34+
if (getSQL().getDiscordIDFromMinecraft(user.id) != null) {
3535
sender.sendMessage(new TextComponent(ChatColor.RED + "Player " + args[0]
3636
+ " is already whitelisted. Run 'unwhitelist <player_name>' to remove them."));
3737
return;
3838
}
3939

40-
if (SQL.addEntry(discordId, user.id)) {
40+
if (getSQL().addEntry(discordId, user.id)) {
4141
sender.sendMessage(new TextComponent(
4242
ChatColor.AQUA + "Mapped user " + user.name + " to Discord ID '" + discordId + "'."));
4343
} else {

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/bungee/commands/WhoisCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.dumbdogdiner.betterwhitelist_bungee.bungee.commands;
22

3+
import com.dumbdogdiner.betterwhitelist_bungee.BaseClass;
34
import com.dumbdogdiner.betterwhitelist_bungee.BetterWhitelistBungee;
4-
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
55

66
import net.md_5.bungee.api.ChatColor;
77
import net.md_5.bungee.api.CommandSender;
88
import net.md_5.bungee.api.chat.TextComponent;
99
import net.md_5.bungee.api.connection.ProxiedPlayer;
1010
import net.md_5.bungee.api.plugin.Command;
1111

12-
public class WhoisCommand extends Command {
12+
public class WhoisCommand extends Command implements BaseClass {
1313

1414
public WhoisCommand() {
1515
super("btw_whois", "betterwhitelist.read.whois");
@@ -33,10 +33,10 @@ public void execute(CommandSender sender, String[] args) {
3333
|| target.matches("[a-zA-Z0-9_]{1,16}")) {
3434
player = BetterWhitelistBungee.getInstance().getProxy().getPlayer(target);
3535
} else {
36-
playerUuid = SQL.getUuidFromDiscordId(target);
36+
playerUuid = getSQL().getUuidFromDiscordId(target);
3737
if (playerUuid != null) {
3838
player = BetterWhitelistBungee.getInstance().getProxy().getPlayer(playerUuid);
39-
discordId = SQL.getDiscordIDFromMinecraft(playerUuid);
39+
discordId = getSQL().getDiscordIDFromMinecraft(playerUuid);
4040
}
4141
}
4242

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/bungee/listeners/PlayerEventListener.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import java.util.List;
44

5+
import com.dumbdogdiner.betterwhitelist_bungee.BaseClass;
56
import com.dumbdogdiner.betterwhitelist_bungee.BetterWhitelistBungee;
67
import com.dumbdogdiner.betterwhitelist_bungee.utils.MojangUser;
7-
import com.dumbdogdiner.betterwhitelist_bungee.utils.PluginConfig;
8-
import com.dumbdogdiner.betterwhitelist_bungee.utils.SQL;
98
import com.dumbdogdiner.betterwhitelist_bungee.utils.UsernameValidator;
109

1110
import net.md_5.bungee.api.ChatColor;
@@ -17,20 +16,20 @@
1716
/**
1817
* Listen for player joins and check them against the SQL database.
1918
*/
20-
public class PlayerEventListener implements Listener {
19+
public class PlayerEventListener implements Listener, BaseClass {
2120
@EventHandler
2221
/**
2322
* Check whether players are allowed to log in.
2423
*/
2524
public void onPreLoginEvent(PreLoginEvent e) {
26-
if (PluginConfig.getConfig().getBoolean("disableUuidChecking")) {
25+
if (getConfig().getBoolean("disableUuidChecking")) {
2726
BetterWhitelistBungee.getInstance().getLogger()
2827
.info("Skipping handling new player connection - checking disabled.");
2928
return;
3029
}
3130

3231
// Can someone specify what type of data is in this list, thanks!
33-
List<?> playerOverrides = PluginConfig.getConfig().getList("overrides");
32+
List<?> playerOverrides = getConfig().getList("overrides");
3433
if (playerOverrides.contains(e.getConnection().getName())) {
3534
BetterWhitelistBungee.getInstance().getLogger()
3635
.info("Skipping handling new player connection - user is in overrides.");
@@ -45,7 +44,7 @@ public void onPreLoginEvent(PreLoginEvent e) {
4544

4645
BetterWhitelistBungee.getInstance().getLogger().info("Checking that UUID '" + user.id + "' is whitelisted...");
4746

48-
if (SQL.getDiscordIDFromMinecraft(user.id) == null) {
47+
if (getSQL().getDiscordIDFromMinecraft(user.id) == null) {
4948
e.setCancelled(true);
5049
e.setCancelReason(new TextComponent(ChatColor.RED + "You are not whitelisted on this network!"));
5150
}

src/main/java/com/dumbdogdiner/betterwhitelist_bungee/discord/WhitelistBot.java

Lines changed: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.dumbdogdiner.betterwhitelist_bungee.discord;
22

3-
import com.dumbdogdiner.betterwhitelist_bungee.BetterWhitelistBungee;
3+
import com.dumbdogdiner.betterwhitelist_bungee.BaseClass;
44
import com.dumbdogdiner.betterwhitelist_bungee.discord.commands.GetStatusCommand;
55
import com.dumbdogdiner.betterwhitelist_bungee.discord.commands.HelpCommand;
66
import com.dumbdogdiner.betterwhitelist_bungee.discord.commands.UnwhitelistCommand;
@@ -9,8 +9,6 @@
99
import com.dumbdogdiner.betterwhitelist_bungee.discord.listeners.GuildEventListener;
1010
import com.dumbdogdiner.betterwhitelist_bungee.discord.listeners.MessageListener;
1111
import com.dumbdogdiner.betterwhitelist_bungee.discord.listeners.ReadyListener;
12-
import com.dumbdogdiner.betterwhitelist_bungee.utils.PluginConfig;
13-
1412
import net.dv8tion.jda.api.AccountType;
1513
import net.dv8tion.jda.api.JDA;
1614
import net.dv8tion.jda.api.JDABuilder;
@@ -21,50 +19,24 @@
2119

2220
import java.util.EnumSet;
2321
import java.util.HashMap;
24-
import java.util.logging.Logger;
2522
import java.util.stream.Collectors;
2623

2724
/**
2825
* Discord bot for whitelisting users from DDD itself.
2926
*/
30-
public class WhitelistBot {
31-
32-
private static WhitelistBot instance;
33-
public static WhitelistBot getInstance() {
34-
if (instance == null) {
35-
instance = new WhitelistBot();
36-
}
37-
return instance;
38-
}
39-
40-
private WhitelistBot() { }
41-
42-
private static JDA jda = null;
43-
public static JDA getJda() {
44-
return jda;
45-
}
46-
47-
private static HashMap<String, Command> commands = new HashMap<>();
48-
public static HashMap<String, Command> getCommands() {
49-
return commands;
50-
}
27+
public class WhitelistBot implements BaseClass {
28+
29+
private JDA jda;
5130

52-
public static Logger getLogger() {
53-
return BetterWhitelistBungee.getInstance().getLogger();
54-
}
55-
56-
/**
57-
* Initialize the bot.
58-
*/
59-
public void init() {
60-
JDABuilder builder = new JDABuilder(AccountType.BOT)
61-
.setToken(PluginConfig.getConfig().getString("discord.token"));
62-
63-
configureMemory(builder);
31+
public WhitelistBot() {
32+
// constructor
33+
JDABuilder builder = new JDABuilder(AccountType.BOT).setToken(getConfig().getString("discord.token"));
34+
35+
configureMemory(builder);
6436

6537
// Register Events
6638
builder.addEventListeners(
67-
new ReadyListener(),
39+
new ReadyListener(),
6840
new GuildEventListener(),
6941
new MessageListener()
7042
);
@@ -84,7 +56,6 @@ public void init() {
8456
));
8557

8658
builder.setActivity(Activity.watching("the cutest fuzzballs \uD83E\uDDE1"));
87-
8859
try {
8960
getLogger().info("[discord] Attempting connection to Discord...");
9061
jda = builder.build();
@@ -93,13 +64,22 @@ public void init() {
9364
err.printStackTrace();
9465
}
9566
}
67+
68+
public JDA getJDA() {
69+
return jda;
70+
}
71+
72+
private HashMap<String, Command> commands = new HashMap<>();
73+
public HashMap<String, Command> getCommands() {
74+
return commands;
75+
}
9676

9777
/**
9878
* Configure flags for the JDABuilder. Saves memory :3
9979
* @param builder
10080
*/
10181

102-
private static void configureMemory(JDABuilder builder) {
82+
private void configureMemory(JDABuilder builder) {
10383
builder.setDisabledCacheFlags(
10484
EnumSet.of(CacheFlag.ACTIVITY, CacheFlag.VOICE_STATE, CacheFlag.EMOTE)
10585
);
@@ -109,7 +89,7 @@ private static void configureMemory(JDABuilder builder) {
10989
* Add commands to the bot.
11090
* @param commandsToAdd
11191
*/
112-
public static void addCommand(Command... commandsToAdd) {
92+
public void addCommand(Command... commandsToAdd) {
11393
for (Command cmd : commandsToAdd) {
11494
commands.put(cmd.getName(), cmd);
11595
}

0 commit comments

Comments
 (0)