Skip to content

Commit 6e69fca

Browse files
authored
Merge pull request #5 from ADHDMC/abstract_saving_loading
Abstract saving loading
2 parents d28fe87 + 5c073bb commit 6e69fca

23 files changed

Lines changed: 549 additions & 206 deletions

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>adhdmc</groupId>
88
<artifactId>SimpleNicks</artifactId>
9-
<version>0.0.3</version>
9+
<version>0.0.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpleNicks</name>

src/main/java/adhdmc/simplenicks/LoginListener.java

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

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import adhdmc.simplenicks.commands.CommandHandler;
44
import adhdmc.simplenicks.commands.SubCommand;
55
import adhdmc.simplenicks.commands.subcommands.*;
6-
import adhdmc.simplenicks.config.Defaults;
6+
import adhdmc.simplenicks.config.Config;
77
import adhdmc.simplenicks.config.Locale;
8+
import adhdmc.simplenicks.listener.LoginListener;
9+
import adhdmc.simplenicks.util.NickHandler;
810
import net.kyori.adventure.text.minimessage.MiniMessage;
911
import org.bukkit.plugin.Plugin;
1012
import org.bukkit.plugin.java.JavaPlugin;
@@ -28,18 +30,17 @@ public final class SimpleNicks extends JavaPlugin {
2830

2931
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
3032
private static Plugin instance;
31-
private static Locale locale;
3233
private static final HashMap<String, SubCommand> subCommands = new HashMap<>();
3334

3435
@Override
3536
public void onEnable() {
3637
instance = this;
3738
registerSubCommands();
38-
locale = Locale.getInstance();
3939
this.saveDefaultConfig();
40-
Defaults.setConfigDefaults();
40+
Config.getInstance().setConfigDefaults();
4141
this.getCommand("nick").setExecutor(new CommandHandler());
4242
instance.getServer().getPluginManager().registerEvents(new LoginListener(), this);
43+
configReload();
4344
}
4445

4546
public static MiniMessage getMiniMessage() {
@@ -63,5 +64,14 @@ private void registerSubCommands() {
6364
subCommands.put("help", new Help());
6465
subCommands.put("set", new Set());
6566
subCommands.put("reload", new Reload());
67+
subCommands.put("save", new Save());
68+
subCommands.put("delete", new Delete());
69+
}
70+
71+
public static void configReload() {
72+
Locale.getInstance().reloadConfig();
73+
Locale.getInstance().loadLocaleMessages();
74+
Config.getInstance().reloadConfig();
75+
NickHandler.getInstance().loadSavingType();
6676
}
6777
}

src/main/java/adhdmc/simplenicks/commands/CommandHandler.java

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

33
import adhdmc.simplenicks.SimpleNicks;
4-
import adhdmc.simplenicks.util.Message;
4+
import adhdmc.simplenicks.util.SNMessage;
55
import net.kyori.adventure.text.minimessage.MiniMessage;
66
import org.bukkit.command.*;
77
import org.jetbrains.annotations.NotNull;
@@ -16,13 +16,13 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
1616
MiniMessage miniMessage = SimpleNicks.getMiniMessage();
1717
// Arguments Check
1818
if (args.length == 0) {
19-
sender.sendMessage(miniMessage.deserialize(Message.INVALID_COMMAND.getMessage())); // Invalid Arguments
19+
sender.sendMessage(miniMessage.deserialize(SNMessage.INVALID_COMMAND.getMessage())); // Invalid Arguments
2020
return true;
2121
}
2222
// Execute Command
2323
SubCommand subCommand = SimpleNicks.getSubCommands().getOrDefault(args[0].toLowerCase(Locale.ENGLISH), null);
2424
if (subCommand == null) {
25-
sender.sendMessage(miniMessage.deserialize(Message.INVALID_COMMAND.getMessage())); // Invalid SubCommand
25+
sender.sendMessage(miniMessage.deserialize(SNMessage.INVALID_COMMAND.getMessage())); // Invalid SubCommand
2626
return true;
2727
}
2828
subCommand.execute(sender, Arrays.copyOfRange(args, 1, args.length));

src/main/java/adhdmc/simplenicks/commands/SubCommand.java

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

3-
import adhdmc.simplenicks.util.SimpleNickPermission;
3+
import adhdmc.simplenicks.util.SNPerm;
44
import org.bukkit.command.CommandSender;
55

66
import java.util.List;
@@ -10,9 +10,9 @@ public abstract class SubCommand {
1010
private final String name;
1111
private final String description;
1212
private final String syntax;
13-
private final SimpleNickPermission permission;
13+
private final SNPerm permission;
1414

15-
public SubCommand(String name, String description, String syntax, SimpleNickPermission permission) {
15+
public SubCommand(String name, String description, String syntax, SNPerm permission) {
1616
this.name = name;
1717
this.description = description;
1818
this.syntax = syntax;
@@ -31,7 +31,7 @@ public String getSyntax() {
3131
return syntax;
3232
}
3333

34-
public SimpleNickPermission getSimpleNickPermission() {
34+
public SNPerm getSimpleNickPermission() {
3535
return permission;
3636
}
3737

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package adhdmc.simplenicks.commands.subcommands;
2+
3+
import adhdmc.simplenicks.SimpleNicks;
4+
import adhdmc.simplenicks.commands.SubCommand;
5+
import adhdmc.simplenicks.util.SNMessage;
6+
import adhdmc.simplenicks.util.NickHandler;
7+
import adhdmc.simplenicks.util.SNPerm;
8+
import net.kyori.adventure.text.minimessage.MiniMessage;
9+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
10+
import org.bukkit.command.CommandSender;
11+
import org.bukkit.entity.Player;
12+
13+
import java.util.ArrayList;
14+
import java.util.List;
15+
16+
public class Delete extends SubCommand {
17+
MiniMessage miniMessage = SimpleNicks.getMiniMessage();
18+
public Delete() {
19+
super("delete", "Deletes a given nickname.", "/nick delete <nickname>", SNPerm.NICK_DELETE);
20+
}
21+
22+
@Override
23+
public void execute(CommandSender sender, String[] args) {
24+
// Player Check
25+
if (!(sender instanceof Player player)) {
26+
sender.sendMessage(miniMessage.deserialize(SNMessage.CONSOLE_CANNOT_RUN.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Invalid Usage (Not a Player)
27+
return;
28+
}
29+
String nickname = NickHandler.getInstance().getNickname(player);
30+
if (!NickHandler.getInstance().deleteNickname(player, nickname)) {
31+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_DELETE_FAILURE.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
32+
}
33+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_DELETE_SUCCESS.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()), Placeholder.parsed("nickname", nickname)));
34+
}
35+
36+
@Override
37+
public List<String> getSubcommandArguments(CommandSender sender, String[] args) {
38+
if (!(sender instanceof Player player)) return new ArrayList<>();
39+
if (args.length == 1) return NickHandler.getInstance().getSavedNicknames(player);
40+
return new ArrayList<>();
41+
}
42+
}

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

Lines changed: 7 additions & 7 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.util.Message;
6-
import adhdmc.simplenicks.util.SimpleNickPermission;
5+
import adhdmc.simplenicks.util.SNMessage;
6+
import adhdmc.simplenicks.util.SNPerm;
77
import net.kyori.adventure.text.minimessage.MiniMessage;
88
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
99
import org.bukkit.command.CommandSender;
@@ -13,15 +13,15 @@
1313
public class Help extends SubCommand {
1414
MiniMessage miniMessage = SimpleNicks.getMiniMessage();
1515
public Help() {
16-
super("help", "Help command for SimpleNicks", "/nick help", SimpleNickPermission.NICK_COMMAND);
16+
super("help", "Help command for SimpleNicks", "/nick help", SNPerm.NICK_COMMAND);
1717
}
1818

1919
@Override
2020
public void execute(CommandSender sender, String[] args) {
21-
sender.sendMessage(miniMessage.deserialize(Message.HELP_BASE.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage())));
22-
sender.sendMessage(miniMessage.deserialize(Message.HELP_SET.getMessage()));
23-
sender.sendMessage(miniMessage.deserialize(Message.HELP_RESET.getMessage()));
24-
sender.sendMessage(miniMessage.deserialize(Message.HELP_MINIMESSAGE.getMessage()));
21+
sender.sendMessage(miniMessage.deserialize(SNMessage.HELP_BASE.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
22+
sender.sendMessage(miniMessage.deserialize(SNMessage.HELP_SET.getMessage()));
23+
sender.sendMessage(miniMessage.deserialize(SNMessage.HELP_RESET.getMessage()));
24+
sender.sendMessage(miniMessage.deserialize(SNMessage.HELP_MINIMESSAGE.getMessage()));
2525
}
2626

2727
@Override

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

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,28 @@
22

33
import adhdmc.simplenicks.SimpleNicks;
44
import adhdmc.simplenicks.commands.SubCommand;
5-
import adhdmc.simplenicks.config.Locale;
6-
import adhdmc.simplenicks.util.Message;
7-
import adhdmc.simplenicks.util.SimpleNickPermission;
8-
import net.kyori.adventure.text.format.TextColor;
5+
import adhdmc.simplenicks.util.SNMessage;
6+
import adhdmc.simplenicks.util.SNPerm;
97
import net.kyori.adventure.text.minimessage.MiniMessage;
108
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
119
import org.bukkit.command.CommandSender;
12-
import org.bukkit.entity.Player;
1310

1411
import java.util.List;
1512

1613
public class Reload extends SubCommand {
1714
MiniMessage miniMessage = SimpleNicks.getMiniMessage();
1815
public Reload() {
19-
super("reload", "Reloads SimpleNicks Config and Locale", "/nick reload", SimpleNickPermission.NICK_RELOAD);
16+
super("reload", "Reloads SimpleNicks Config and Locale", "/nick reload", SNPerm.NICK_RELOAD);
2017
}
2118

2219
@Override
2320
public void execute(CommandSender sender, String[] args) {
24-
if (!sender.hasPermission(SimpleNickPermission.NICK_RELOAD.getPermission())){
25-
sender.sendMessage(miniMessage.deserialize(Message.NO_PERMISSION.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage())));
21+
if (!sender.hasPermission(SNPerm.NICK_RELOAD.getPermission())){
22+
sender.sendMessage(miniMessage.deserialize(SNMessage.NO_PERMISSION.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
2623
return;
2724
}
28-
Locale.getInstance().reloadConfig();
29-
Locale.getInstance().loadLocaleMessages();
30-
SimpleNicks.getInstance().reloadConfig();
31-
sender.sendMessage(miniMessage.deserialize(Message.CONFIG_RELOADED.getMessage(), Placeholder.parsed("prefix", Message.PREFIX.getMessage())));
32-
if (SimpleNicks.getInstance().getConfig().getString("nickname-regex") == null || SimpleNicks.getInstance().getConfig().getString("nickname-regex").isEmpty()){
33-
SimpleNicks.getSimpleNicksLogger().severe(Message.BAD_REGEX.getMessage());
34-
if (sender instanceof Player player){
35-
player.sendMessage(miniMessage.deserialize(Message.BAD_REGEX.getMessage()).color(TextColor.color(202, 27, 27)));
36-
}
37-
}
25+
SimpleNicks.configReload();
26+
sender.sendMessage(miniMessage.deserialize(SNMessage.CONFIG_RELOADED.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
3827
}
3928

4029
@Override

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

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
import adhdmc.simplenicks.SimpleNicks;
44
import adhdmc.simplenicks.commands.SubCommand;
5-
import adhdmc.simplenicks.util.Message;
6-
import adhdmc.simplenicks.util.SimpleNickPermission;
5+
import adhdmc.simplenicks.util.SNMessage;
6+
import adhdmc.simplenicks.util.NickHandler;
7+
import adhdmc.simplenicks.util.SNPerm;
78
import net.kyori.adventure.text.minimessage.MiniMessage;
89
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
910
import org.bukkit.command.CommandSender;
1011
import org.bukkit.entity.Player;
11-
import org.bukkit.persistence.PersistentDataType;
1212

1313
import java.util.List;
1414

1515
public class Reset extends SubCommand {
1616
public Reset() {
17-
super("reset", "Resets a nickname", "/nick reset", SimpleNickPermission.NICK_RESET);
17+
super("reset", "Resets a nickname", "/nick reset", SNPerm.NICK_RESET);
1818
}
1919

2020
@Override
@@ -23,50 +23,48 @@ public void execute(CommandSender sender, String[] args) {
2323

2424
// Player Check
2525
if (!(sender instanceof Player)) {
26-
sender.sendMessage(miniMessage.deserialize(Message.CONSOLE_CANNOT_RUN.getMessage(),
27-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // Invalid Usage (Not a Player)
26+
sender.sendMessage(miniMessage.deserialize(SNMessage.CONSOLE_CANNOT_RUN.getMessage(),
27+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Invalid Usage (Not a Player)
2828
return;
2929
}
3030
// Arguments Check
3131
if (args.length > 1) {
32-
sender.sendMessage(miniMessage.deserialize(Message.TOO_MANY_ARGUMENTS.getMessage(),
33-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // Too Many Arguments
32+
sender.sendMessage(miniMessage.deserialize(SNMessage.TOO_MANY_ARGUMENTS.getMessage(),
33+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Too Many Arguments
3434
return;
3535
}
3636
// Admin Check
37-
if (args.length == 1 && !sender.hasPermission(SimpleNickPermission.NICK_RESET_OTHERS.getPermission())) {
38-
sender.sendMessage(miniMessage.deserialize(Message.NO_PERMISSION.getMessage(),
39-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // No Permission
37+
if (args.length == 1 && !sender.hasPermission(SNPerm.NICK_RESET_OTHERS.getPermission())) {
38+
sender.sendMessage(miniMessage.deserialize(SNMessage.NO_PERMISSION.getMessage(),
39+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // No Permission
4040
return;
4141
}
4242
// Valid Player Check
4343
Player player = (args.length == 0) ? (Player) sender : SimpleNicks.getInstance().getServer().getPlayer(args[0]);
4444
if (player == null) {
45-
sender.sendMessage(miniMessage.deserialize(Message.INVALID_PLAYER.getMessage(),
46-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // Invalid Player
45+
sender.sendMessage(miniMessage.deserialize(SNMessage.INVALID_PLAYER.getMessage(),
46+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Invalid Player
4747
return;
4848
}
49-
if (sender == player && !sender.hasPermission(SimpleNickPermission.NICK_RESET.getPermission())) {
50-
sender.sendMessage(miniMessage.deserialize(Message.TOO_MANY_ARGUMENTS.getMessage(),
51-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()))); // No Permission
49+
if (sender == player && !sender.hasPermission(SNPerm.NICK_RESET.getPermission())) {
50+
sender.sendMessage(miniMessage.deserialize(SNMessage.TOO_MANY_ARGUMENTS.getMessage(),
51+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // No Permission
5252
return;
5353
}
5454
// Set Nickname
5555
// Saved to player
56-
String playerPDCString = player.getPersistentDataContainer().get(Set.nickNameSave, PersistentDataType.STRING);
57-
if (playerPDCString != null)
58-
player.getPersistentDataContainer().remove(Set.nickNameSave); //held name for temp saving option
56+
NickHandler.getInstance().resetNickname(player);
5957
player.displayName(miniMessage.deserialize(player.getName()));
6058
if (player != sender) {
61-
sender.sendMessage(miniMessage.deserialize(Message.NICK_RESET_OTHER.getMessage(),
62-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()),
59+
sender.sendMessage(miniMessage.deserialize(SNMessage.NICK_RESET_OTHER.getMessage(),
60+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()),
6361
Placeholder.parsed("username", player.getName())));
64-
player.sendMessage(miniMessage.deserialize(Message.NICK_RESET_BY_OTHER.getMessage(),
65-
Placeholder.parsed("prefix", Message.PREFIX.getMessage()),
62+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_RESET_BY_OTHER.getMessage(),
63+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()),
6664
Placeholder.component("username", ((Player) sender).displayName())));
6765
} else {
68-
player.sendMessage(miniMessage.deserialize(Message.NICK_RESET_SELF.getMessage(),
69-
Placeholder.parsed("prefix", Message.PREFIX.getMessage())));
66+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_RESET_SELF.getMessage(),
67+
Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
7068
}
7169
}
7270

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package adhdmc.simplenicks.commands.subcommands;
2+
3+
import adhdmc.simplenicks.SimpleNicks;
4+
import adhdmc.simplenicks.commands.SubCommand;
5+
import adhdmc.simplenicks.config.Config;
6+
import adhdmc.simplenicks.util.SNMessage;
7+
import adhdmc.simplenicks.util.NickHandler;
8+
import adhdmc.simplenicks.util.SNPerm;
9+
import net.kyori.adventure.text.minimessage.MiniMessage;
10+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
11+
import org.bukkit.command.CommandSender;
12+
import org.bukkit.entity.Player;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
public class Save extends SubCommand {
18+
MiniMessage miniMessage = SimpleNicks.getMiniMessage();
19+
public Save() {
20+
super("save", "Saves the current or a provided nickname.", "/nick save [nickname]", SNPerm.NICK_SAVE);
21+
}
22+
23+
@Override
24+
public void execute(CommandSender sender, String[] args) {
25+
// Player Check
26+
if (!(sender instanceof Player player)) {
27+
sender.sendMessage(miniMessage.deserialize(SNMessage.CONSOLE_CANNOT_RUN.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Invalid Usage (Not a Player)
28+
return;
29+
}
30+
if (NickHandler.getInstance().getSavedNicknames(player).size() >= Config.getInstance().getMaxSaves()) {
31+
sender.sendMessage(miniMessage.deserialize(SNMessage.NICK_SAVE_FAILURE_TOO_MANY.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()))); // Invalid Usage (Not a Player)
32+
return;
33+
}
34+
String nickname = NickHandler.getInstance().getNickname(player);
35+
if (!NickHandler.getInstance().saveNickname(player, nickname)) {
36+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_SAVE_FAILURE.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage())));
37+
}
38+
player.sendMessage(miniMessage.deserialize(SNMessage.NICK_SAVE_SUCCESS.getMessage(), Placeholder.parsed("prefix", SNMessage.PREFIX.getMessage()), Placeholder.parsed("nickname", nickname)));
39+
}
40+
41+
@Override
42+
public List<String> getSubcommandArguments(CommandSender sender, String[] args) {
43+
return new ArrayList<>();
44+
}
45+
}

0 commit comments

Comments
 (0)