Skip to content

Commit b3c5be5

Browse files
committed
Tried to fix config, still isn't working lol
1 parent ca26e9a commit b3c5be5

8 files changed

Lines changed: 127 additions & 64 deletions

File tree

src/main/java/adhdmc/simplenicks/SimpleNicks.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
import adhdmc.simplenicks.commands.CommandHandler;
44
import adhdmc.simplenicks.commands.SubCommand;
55
import adhdmc.simplenicks.commands.subcommands.*;
6-
import adhdmc.simplenicks.config.ConfigUtils;
6+
import adhdmc.simplenicks.config.SimpleNicksConfig;
77
import adhdmc.simplenicks.config.Locale;
88
import net.kyori.adventure.text.minimessage.MiniMessage;
9-
import org.bukkit.configuration.file.FileConfiguration;
109
import org.bukkit.plugin.Plugin;
1110
import org.bukkit.plugin.java.JavaPlugin;
1211

@@ -30,14 +29,15 @@ public final class SimpleNicks extends JavaPlugin {
3029
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
3130
private static Plugin instance;
3231
private static Locale locale;
32+
private static SimpleNicksConfig simpleNicksConfig;
3333
private static final HashMap<String, SubCommand> subCommands = new HashMap<>();
3434

3535
@Override
3636
public void onEnable() {
3737
instance = this;
3838
registerSubCommands();
3939
locale = Locale.getInstance();
40-
ConfigUtils.loadConfigValues();
40+
simpleNicksConfig = SimpleNicksConfig.getInstance();
4141
this.getCommand("nick").setExecutor(new CommandHandler());
4242
instance.getServer().getPluginManager().registerEvents(new LoginListener(), this);
4343
}

src/main/java/adhdmc/simplenicks/commands/subcommands/Reload.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import adhdmc.simplenicks.SimpleNicks;
44
import adhdmc.simplenicks.commands.SubCommand;
5-
import adhdmc.simplenicks.config.ConfigUtils;
65
import adhdmc.simplenicks.config.Locale;
6+
import adhdmc.simplenicks.config.SimpleNicksConfig;
77
import adhdmc.simplenicks.util.Message;
88
import adhdmc.simplenicks.util.SimpleNickPermission;
99
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -26,10 +26,9 @@ public void execute(CommandSender sender, String[] args) {
2626
}
2727
Locale.getInstance().reloadConfig();
2828
Locale.getInstance().loadLocaleMessages();
29-
ConfigUtils.reloadConfigValues();
29+
SimpleNicksConfig.getInstance().reloadConfig();
30+
SimpleNicksConfig.getInstance().reloadConfigValues();
3031
sender.sendMessage(miniMessage.deserialize(Message.CONFIG_RELOADED.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage())));
31-
32-
3332
}
3433

3534
@Override

src/main/java/adhdmc/simplenicks/commands/subcommands/Set.java

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

33
import adhdmc.simplenicks.SimpleNicks;
44
import adhdmc.simplenicks.commands.SubCommand;
5-
import adhdmc.simplenicks.config.ConfigUtils;
5+
import adhdmc.simplenicks.config.SimpleNicksConfig;
66
import adhdmc.simplenicks.util.Message;
77
import adhdmc.simplenicks.util.SimpleNickPermission;
88
import net.kyori.adventure.text.Component;
@@ -21,8 +21,8 @@ public class Set extends SubCommand {
2121

2222
public static final NamespacedKey nickNameSave = new NamespacedKey(SimpleNicks.getInstance(), "nickname");
2323

24-
private final int MAX_NICKNAME_LENGTH = ConfigUtils.getMaxNicknameLength();// TODO: Change this temporary constant into a config option.
25-
private final String NICKNAME_REGEX = ConfigUtils.getNicknameRegex(); // TODO: Change this temporary constant into a config option.
24+
private final int MAX_NICKNAME_LENGTH = SimpleNicksConfig.getMaxNicknameLength();// TODO: Change this temporary constant into a config option.
25+
private final String NICKNAME_REGEX = SimpleNicksConfig.getNicknameRegex(); // TODO: Change this temporary constant into a config option.
2626

2727
public Set() {
2828
super("set", "sets a nickname", "/nick set", SimpleNickPermission.NICK_COMMAND);
@@ -61,11 +61,15 @@ public void execute(CommandSender sender, String[] args) {
6161
// TODO: Allow regex to be modifiable by config.
6262
// TODO: Check if the person has permissions to use the tags, perms & their connected tags are in ConfigDefaults - RhythmicSys
6363
if (!nicknameStripped.matches(NICKNAME_REGEX)) {
64-
sender.sendMessage(miniMessage.deserialize(Message.INVALID_NICK_REGEX.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // Non-Alphanumeric Nickname
64+
sender.sendMessage(miniMessage.deserialize(Message.INVALID_NICK_REGEX.getMessage(),
65+
Placeholder.parsed("prefix", Message.PREFIX.getMessage()),
66+
Placeholder.parsed("regex", NICKNAME_REGEX))); // Non-Alphanumeric Nickname
6567
return;
6668
}
6769
if (nicknameStripped.length() > MAX_NICKNAME_LENGTH) {
68-
sender.sendMessage(miniMessage.deserialize(Message.INVALID_NICK_TOO_LONG.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // Nickname Too Long
70+
sender.sendMessage(miniMessage.deserialize(Message.INVALID_NICK_TOO_LONG.getMessage(),
71+
Placeholder.parsed("prefix", Message.PREFIX.getMessage()),
72+
Placeholder.parsed("value", String.valueOf(MAX_NICKNAME_LENGTH)))); // Nickname Too Long
6973
return;
7074
}
7175
// Valid Player Check

src/main/java/adhdmc/simplenicks/config/ConfigUtils.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/main/java/adhdmc/simplenicks/config/Defaults.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public static void setLocaleDefaults() {
1313
locale.addDefault("no-permission", "<prefix><red>You do not have permission to run this command");
1414
locale.addDefault("console-cannot-run", "<prefix><red>This command cannot be run on the Console.");
1515
locale.addDefault("invalid-player", "<prefix><red>Invalid player specified");
16-
locale.addDefault("invalid-nick-regex", "<prefix><red>Not a valid nickname, must follow regex: ");
17-
locale.addDefault("invalid-nick-too-long", "<prefix><red>Nickname is too long, must be <=");
16+
locale.addDefault("invalid-nick-regex", "<prefix><red>Not a valid nickname, must follow regex: <regex>");
17+
locale.addDefault("invalid-nick-too-long", "<prefix><red>Nickname is too long, must be <= <value>");
1818
locale.addDefault("invalid-tags", "<prefix><red>You have used a color or formatting tag you do not have permission to use. Please try again");
1919
locale.addDefault("prefix", "<aqua>SimpleNicks <white>» ");
2020
locale.addDefault("help-base", "<prefix><green>--------");
@@ -29,7 +29,7 @@ public static void setLocaleDefaults() {
2929
}
3030

3131
public static void setConfigDefaults() {
32-
FileConfiguration config = SimpleNicks.getInstance().getConfig();
32+
FileConfiguration config = SimpleNicksConfig.getInstance().getSimpleNickConfig();
3333
config.addDefault("max-nickname-length", 30);
3434
config.addDefault("nickname-regex","[A-Za-z0-9_]+");
3535
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package adhdmc.simplenicks.config;
2+
3+
import adhdmc.simplenicks.SimpleNicks;
4+
import adhdmc.simplenicks.util.Message;
5+
import org.bukkit.configuration.file.FileConfiguration;
6+
import org.bukkit.configuration.file.YamlConfiguration;
7+
8+
import java.io.File;
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.io.InputStreamReader;
12+
13+
public class SimpleNicksConfig {
14+
private static SimpleNicksConfig instance;
15+
private final SimpleNicks pluginInstance;
16+
private final String configName = "config.yml";
17+
private YamlConfiguration simpleNickConfig = null;
18+
private File configFile = null;
19+
private static int MAX_NICKNAME_LENGTH = 30;
20+
private static String NICKNAME_REGEX = "[A-Za-z0-9_]+";
21+
22+
private SimpleNicksConfig() {
23+
this.pluginInstance = (SimpleNicks) SimpleNicks.getInstance();
24+
}
25+
26+
public static SimpleNicksConfig getInstance() {
27+
if (instance == null) {
28+
instance = new SimpleNicksConfig();
29+
instance.getSimpleNickConfig();
30+
Defaults.setConfigDefaults();
31+
instance.saveConfig();
32+
}
33+
return instance;
34+
}
35+
36+
public void reloadConfig() {
37+
if (this.configFile == null) {
38+
this.configFile = new File(this.pluginInstance.getDataFolder(), configName);
39+
}
40+
this.simpleNickConfig = YamlConfiguration.loadConfiguration(this.configFile);
41+
this.simpleNickConfig.options().copyDefaults(true);
42+
InputStream defaultStream = this.pluginInstance.getResource(configName);
43+
if (defaultStream != null) {
44+
YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defaultStream));
45+
this.simpleNickConfig.setDefaults(defaultConfig);
46+
}
47+
}
48+
49+
public YamlConfiguration getSimpleNickConfig() {
50+
if (this.simpleNickConfig == null) {
51+
reloadConfig();
52+
}
53+
return this.simpleNickConfig;
54+
}
55+
56+
public void saveConfig() {
57+
getSimpleNickConfig();
58+
if (this.simpleNickConfig == null || this.configFile == null) {
59+
return;
60+
}
61+
try {
62+
this.getSimpleNickConfig().save(this.configFile);
63+
} catch (IOException e) {
64+
pluginInstance.getLogger().severe("[saveConfig()] Could not save config to " + this.configFile);
65+
e.printStackTrace();
66+
}
67+
if (!this.configFile.exists()) {
68+
this.pluginInstance.saveResource(configName, false);
69+
}
70+
}
71+
72+
public static void reloadConfigValues(){
73+
setMaxNicknameLength(0);
74+
setNicknameRegex("");
75+
int configuredLength = SimpleNicks.getInstance().getConfig().getInt("max-nickname-length");
76+
String configuredREGEX = SimpleNicks.getInstance().getConfig().getString("nickname-regex");
77+
try{
78+
setMaxNicknameLength(configuredLength);
79+
}catch (IllegalArgumentException | NullPointerException e){
80+
SimpleNicks.getSimpleNicksLogger().warning("Configured max-nickname-length is invalid. Please check your config. Setting max length to 30");
81+
setMaxNicknameLength(30);
82+
}
83+
if (configuredREGEX == null || configuredREGEX.isEmpty()) {
84+
SimpleNicks.getSimpleNicksLogger().warning("You must provide a REGEX for valid nicknames, setting to default of [A-Za-z0-9_]+");
85+
setNicknameRegex("[A-Za-z0-9_]+");
86+
} else {
87+
setNicknameRegex(configuredREGEX);
88+
}
89+
}
90+
91+
public static void setMaxNicknameLength(int maxNicknameLength) {
92+
MAX_NICKNAME_LENGTH = maxNicknameLength;
93+
}
94+
95+
public static void setNicknameRegex(String nicknameRegex) {
96+
NICKNAME_REGEX = nicknameRegex;
97+
}
98+
99+
public static String getNicknameRegex() {
100+
return NICKNAME_REGEX;
101+
}
102+
103+
public static int getMaxNicknameLength() {
104+
return MAX_NICKNAME_LENGTH;
105+
}
106+
}
107+

src/main/java/adhdmc/simplenicks/util/Message.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package adhdmc.simplenicks.util;
22

3-
import adhdmc.simplenicks.config.ConfigUtils;
4-
53
public enum Message {
64
//errors
75
INVALID_COMMAND("<prefix><red>Invalid Command."),
@@ -11,8 +9,8 @@ public enum Message {
119
NO_PERMISSION("<prefix><red>You do not have permission to run this command"),
1210
CONSOLE_CANNOT_RUN("<prefix><red>This command cannot be run on the Console."),
1311
INVALID_PLAYER("<prefix><red>Invalid player specified"),
14-
INVALID_NICK_REGEX("<prefix><red>Not a valid nickname, must follow regex: " + ConfigUtils.getNicknameRegex()),
15-
INVALID_NICK_TOO_LONG("<prefix><red>Nickname is too long, must be <=" + ConfigUtils.getMaxNicknameLength()),
12+
INVALID_NICK_REGEX("<prefix><red>Not a valid nickname, must follow regex: <regex>"),
13+
INVALID_NICK_TOO_LONG("<prefix><red>Nickname is too long, must be <= <value>"),
1614
INVALID_TAGS("<prefix><red>You have used a color or formatting tag you do not have permission to use. Please try again"),
1715
//plugin messages
1816
PREFIX("<aqua>SimpleNicks <white>» "),

src/main/resources/config.yml

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)