Skip to content

Commit 15a79d4

Browse files
committed
committing
1 parent 4202454 commit 15a79d4

File tree

6 files changed

+146
-30
lines changed

6 files changed

+146
-30
lines changed

src/main/java/simplexity/simplenicks/SimpleNicks.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.bukkit.plugin.Plugin;
55
import org.bukkit.plugin.java.JavaPlugin;
66
import simplexity.simplenicks.commands.CommandHandler;
7+
import simplexity.simplenicks.commands.Reset;
78
import simplexity.simplenicks.commands.Set;
89
import simplexity.simplenicks.commands.SubCommand;
910
import simplexity.simplenicks.config.ConfigHandler;
@@ -65,7 +66,7 @@ public static Logger getSimpleNicksLogger() {
6566
}
6667

6768
private void registerSubCommands() {
68-
//subCommands.put("reset", new Reset());
69+
subCommands.put("reset", new Reset("reset", Constants.NICK_RESET, Constants.NICK_RESET_OTHERS, false));
6970
//subCommands.put("help", new Help());
7071
subCommands.put("set", new Set("set", Constants.NICK_COMMAND, Constants.NICK_OTHERS_RESTRICTIVE, false));
7172
//subCommands.put("save", new Save());

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,16 @@ private void commandOnSelf(CommandSender sender, String[] args) {
9191
@Override
9292
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
9393
tabComplete.clear();
94-
switch (args.length) {
95-
case 1 -> tabComplete.addAll(keyLoop(sender));
94+
int argsLength = args.length;
95+
switch (argsLength) {
96+
case 0, 1 -> {
97+
for (String key : SimpleNicks.getSubCommands().keySet()) {
98+
if (sender.hasPermission(SimpleNicks.getSubCommands().get(key).basicPermission) ||
99+
sender.hasPermission(SimpleNicks.getSubCommands().get(key).getAdminPermission())) {
100+
tabComplete.add(key);
101+
}
102+
}
103+
}
96104
case 2 -> {
97105
if (SimpleNicks.getSubCommands().containsKey(args[0].toLowerCase())) {
98106
SubCommand subCommand = SimpleNicks.getSubCommands().get(args[0].toLowerCase());
@@ -110,16 +118,4 @@ private void commandOnSelf(CommandSender sender, String[] args) {
110118
}
111119
return tabComplete;
112120
}
113-
114-
private List<String> keyLoop(CommandSender sender) {
115-
List<String> keyList = new ArrayList<>();
116-
for (String key : SimpleNicks.getSubCommands().keySet()) {
117-
if (!sender.hasPermission(SimpleNicks.getSubCommands().get(key).basicPermission) ||
118-
!sender.hasPermission(SimpleNicks.getSubCommands().get(key).getAdminPermission())) {
119-
continue;
120-
}
121-
keyList.add(key);
122-
}
123-
return keyList;
124-
}
125121
}
Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,41 @@
11
package simplexity.simplenicks.commands;
22

3-
public class Reset {
3+
import net.kyori.adventure.text.Component;
4+
import org.bukkit.command.CommandSender;
5+
import org.bukkit.entity.Player;
6+
import org.bukkit.permissions.Permission;
7+
import simplexity.simplenicks.config.LocaleHandler;
8+
import simplexity.simplenicks.util.NickHandler;
9+
10+
import java.util.ArrayList;
11+
12+
public class Reset extends SubCommand {
13+
14+
public Reset(String commandName, Permission basicPermission, Permission adminPermission, boolean consoleRunNoPlayer) {
15+
super(commandName, basicPermission, adminPermission, consoleRunNoPlayer);
16+
}
17+
18+
@Override
19+
public void executeOnOther(CommandSender sender, Player player, String[] args) {
20+
resetName(player);
21+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getResetOther(), player.getName()));
22+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getResetByOther(), player.getName()));
23+
}
24+
25+
@Override
26+
public void executeOnSelf(CommandSender sender, Player player, String[] args) {
27+
resetName(player);
28+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getResetSelf(), player.getName()));
29+
}
30+
31+
public void resetName(Player player) {
32+
String username = player.getName();
33+
player.displayName(Component.text(username));
34+
NickHandler.getInstance().resetNickname(player);
35+
}
36+
37+
@Override
38+
public ArrayList<String> tabComplete(CommandSender sender) {
39+
return null;
40+
}
441
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package simplexity.simplenicks.commands;
2+
3+
import org.bukkit.command.CommandSender;
4+
import org.bukkit.entity.Player;
5+
import org.bukkit.permissions.Permission;
6+
import simplexity.simplenicks.config.ConfigHandler;
7+
import simplexity.simplenicks.config.LocaleHandler;
8+
import simplexity.simplenicks.util.NickHandler;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
13+
public class Save extends SubCommand{
14+
public Save(String commandName, Permission basicPermission, Permission adminPermission, boolean consoleRunNoPlayer) {
15+
super(commandName, basicPermission, adminPermission, consoleRunNoPlayer);
16+
}
17+
18+
@Override
19+
public void executeOnOther(CommandSender sender, Player player, String[] args) {
20+
if (savePlayerNick(player)) {
21+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getSaveNick(), miniMessage.serialize(player.displayName())));
22+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getSaveNick(), miniMessage.serialize(player.displayName())));
23+
} else {
24+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getSaveFailure(), String.valueOf(ConfigHandler.getInstance().getMaxSaves())));
25+
}
26+
}
27+
28+
@Override
29+
public void executeOnSelf(CommandSender sender, Player player, String[] args) {
30+
if (savePlayerNick(player)) {
31+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getSaveNick(), miniMessage.serialize(player.displayName())));
32+
} else {
33+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getSaveFailure(), String.valueOf(ConfigHandler.getInstance().getMaxSaves())));
34+
}
35+
}
36+
37+
public boolean savePlayerNick(Player player) {
38+
String nameToSave = miniMessage.serialize(player.displayName());
39+
List<String> nameList = NickHandler.getInstance().getSavedNicknames(player);
40+
if (nameList.contains(nameToSave)) {
41+
return false;
42+
}
43+
if (nameList.size() >= ConfigHandler.getInstance().getMaxSaves()) {
44+
return false;
45+
}
46+
NickHandler.getInstance().saveNickname(player, nameToSave);
47+
return true;
48+
}
49+
50+
@Override
51+
public ArrayList<String> tabComplete(CommandSender sender) {
52+
return null;
53+
}
54+
}
Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,62 @@
11
package simplexity.simplenicks.commands;
22

33
import net.kyori.adventure.text.Component;
4+
import net.kyori.adventure.text.minimessage.MiniMessage;
45
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
6+
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
57
import org.bukkit.command.CommandSender;
68
import org.bukkit.entity.Player;
79
import org.bukkit.permissions.Permission;
10+
import simplexity.simplenicks.config.LocaleHandler;
811
import simplexity.simplenicks.util.NickHandler;
912
import simplexity.simplenicks.util.TagPermission;
1013

1114
import java.util.ArrayList;
1215

1316
public class Set extends SubCommand {
17+
MiniMessage serializer = MiniMessage.builder().tags(TagResolver.empty()).build();
1418

1519
public Set(String commandName, Permission basicPermission, Permission adminPermission, boolean consoleRunNoPlayer) {
1620
super(commandName, basicPermission, adminPermission, consoleRunNoPlayer);
1721
}
1822

1923
@Override
2024
public void executeOnOther(CommandSender sender, Player player, String[] args) {
21-
22-
25+
if (args.length < 3) {
26+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getNotEnoughArgs(), ""));
27+
return;
28+
}
29+
String nickname = args[2];
30+
if (setPlayerNick(player, nickname)){
31+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getChangedOther(), nickname));
32+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getChangedByOther(), nickname));
33+
} else {
34+
sender.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getInvalidTags(), nickname));
35+
}
2336
}
2437

2538
@Override
2639
public void executeOnSelf(CommandSender sender, Player player, String[] args) {
40+
if (args.length < 2) {
41+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getNotEnoughArgs(), ""));
42+
return;
43+
}
2744
String nickname = args[1];
45+
if (setPlayerNick(player, nickname)){
46+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getChangedSelf(), nickname));
47+
} else {
48+
player.sendMessage(parsedMessage(sender, player, LocaleHandler.getInstance().getInvalidTags(), nickname));
49+
}
50+
}
51+
52+
private boolean setPlayerNick(Player player, String nickname) {
2853
Component nickComponent = getNickComponent(player, nickname);
54+
if (nickComponent == null) {
55+
return false;
56+
}
2957
String nickToSave = miniMessage.serialize(nickComponent);
3058
NickHandler.getInstance().setNickname(player, nickToSave);
31-
player.sendMessage(miniMessage.deserialize("<green>Nickname set to: " + nickComponent));
32-
player.sendMessage(miniMessage.deserialize("<green>Nickname saved as: " + nickToSave));
33-
}
34-
35-
private void setPlayerNick(Player player, String nick, TagResolver resolver) {
36-
Component nameComponent = miniMessage.deserialize(nick, resolver);
37-
NickHandler.getInstance().setNickname(player, nick);
59+
return true;
3860
}
3961

4062
@Override
@@ -44,20 +66,24 @@ public ArrayList<String> tabComplete(CommandSender sender) {
4466

4567
private Component getNickComponent(Player player, String nick) {
4668
int i = 0;
69+
String strippedMessage = miniMessage.stripTags(nick);
4770
TagResolver.Builder resolverBuilder = TagResolver.builder();
71+
Component finalNick = null;
4872
for (TagPermission tagPermission : TagPermission.values()) {
4973
if (!player.hasPermission(tagPermission.getPermission())) {
5074
continue;
5175
}
5276
i++;
5377
resolverBuilder.resolver(tagPermission.getTagResolver());
78+
finalNick = serializer.deserialize(nick, tagPermission.getTagResolver());
5479
}
5580
if (i == 0) {
56-
String strippedMessage = miniMessage.stripTags(nick);
5781
return Component.text(strippedMessage);
5882
}
59-
return miniMessage.deserialize(nick, resolverBuilder.build());
83+
String plainNick = PlainTextComponentSerializer.plainText().serialize(finalNick);
84+
if (!plainNick.equals(strippedMessage)) {
85+
return null;
86+
}
87+
return finalNick;
6088
}
61-
62-
6389
}

src/main/java/simplexity/simplenicks/util/TagPermission.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
import net.kyori.adventure.text.minimessage.tag.standard.StandardTags;
66
import org.bukkit.command.CommandSender;
77

8+
import java.util.ArrayList;
9+
810
public enum TagPermission {
911
//Nickname Perms
10-
COLOR("simplenick.nick.color", StandardTags.color()),
12+
HEX_COLOR("simplenick.nick.color", StandardTags.color()),
1113
GRADIENT("simplenick.nick.gradient", StandardTags.gradient()),
1214
RAINBOW("simplenick.nick.rainbow", StandardTags.rainbow()),
1315
RESET("simplenick.nick.format.reset", StandardTags.reset()),

0 commit comments

Comments
 (0)