Skip to content

Commit 57ec8d2

Browse files
committed
split command into multiple classes and start with database processor
1 parent 7101d91 commit 57ec8d2

19 files changed

+362
-214
lines changed

luckprefix-modern/src/main/java/de/eztxm/luckprefix/LuckPrefix.java

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

33
import de.eztxm.api.database.SQLConnection;
44
import de.eztxm.luckprefix.command.LuckPrefixCommand;
5+
import de.eztxm.luckprefix.database.Table;
56
import de.eztxm.luckprefix.listener.ChatListener;
67
import de.eztxm.luckprefix.listener.GroupListener;
78
import de.eztxm.luckprefix.listener.JoinListener;
@@ -38,22 +39,29 @@ public void onEnable() {
3839
prefix = "<#77ef77>LuckPrefix <dark_gray>| <gray>";
3940
databaseFile = ConfigUtil.addDatabaseDefault("database.yml");
4041
groupsFile = ConfigUtil.addGroupsDefault("groups.yml");
41-
connection = DatabaseManager.createDatabaseConnection();
42+
if (LuckPrefix.getInstance().getDatabaseFile().getValue("Database.Enabled").asBoolean()) {
43+
connection = DatabaseManager.createDatabaseConnection();
44+
databaseManager = new DatabaseManager(connection);
45+
databaseManager.getProcessor().createTable(Table.CREATE_GROUPS_TABLE);
46+
databaseManager.getProcessor().createTable(Table.CREATE_MESSAGES_TABLE);
47+
}
4248
adventure = BukkitAudiences.create(instance);
4349
luckPerms = LuckPermsProvider.get();
4450
registry = new Registry(instance);
4551
registry.registerCommand("luckprefix", new LuckPrefixCommand());
4652
registry.registerListener(new JoinListener());
4753
registry.registerListener(new QuitListener());
4854
registry.registerListener(new ChatListener());
49-
databaseManager = new DatabaseManager(connection);
5055
playerManager = new PlayerManager();
5156
groupManager = new GroupManager();
5257
groupListener = new GroupListener();
5358
groupListener.createGroup();
5459
groupListener.deleteGroup();
5560
groupManager.loadGroups();
5661
updateChecker = new UpdateChecker(getDescription().getVersion());
62+
if (!updateChecker.latestVersion()) {
63+
getLogger().warning("Newer version " + updateChecker.getLatestVersion() + " is available at https://modrinth.com/plugin/luckprefix");
64+
}
5765
}
5866

5967
@Override

luckprefix-modern/src/main/java/de/eztxm/luckprefix/command/LuckPrefixCommand.java

Lines changed: 8 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,27 @@
11
package de.eztxm.luckprefix.command;
22

33
import de.eztxm.luckprefix.LuckPrefix;
4-
import de.eztxm.luckprefix.util.ConfigManager;
5-
import de.eztxm.luckprefix.util.GroupManager;
6-
import de.eztxm.luckprefix.util.GroupType;
7-
import de.eztxm.luckprefix.util.TextUtil;
8-
import lombok.SneakyThrows;
4+
import de.eztxm.luckprefix.command.subcommand.GroupSubCommand;
5+
import de.eztxm.luckprefix.command.subcommand.ReloadConfigs;
6+
import de.eztxm.luckprefix.util.Text;
97
import net.kyori.adventure.audience.Audience;
10-
import net.kyori.adventure.text.minimessage.MiniMessage;
118
import net.luckperms.api.LuckPerms;
129
import net.luckperms.api.model.group.Group;
13-
import org.bukkit.Bukkit;
1410
import org.bukkit.ChatColor;
1511
import org.bukkit.command.Command;
1612
import org.bukkit.command.CommandSender;
1713
import org.bukkit.command.TabExecutor;
18-
import org.bukkit.configuration.file.FileConfiguration;
1914
import org.bukkit.entity.Player;
20-
import org.bukkit.scoreboard.Team;
2115
import org.jetbrains.annotations.NotNull;
2216
import org.jetbrains.annotations.Nullable;
2317

24-
import java.io.File;
2518
import java.util.ArrayList;
2619
import java.util.Collections;
2720
import java.util.List;
2821
import java.util.Set;
2922

3023
public class LuckPrefixCommand implements TabExecutor {
3124

32-
@SneakyThrows
3325
@Override
3426
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
3527
if (!(sender instanceof Player player)) {
@@ -38,11 +30,11 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
3830
}
3931
Audience adventurePlayer = LuckPrefix.getInstance().getAdventure().player(player);
4032
if (!player.hasPermission("luckprefix.command")) {
41-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>You don't have the permission to use this command.").miniMessage());
33+
adventurePlayer.sendMessage(new Text(LuckPrefix.getInstance().getPrefix() + "<#ff3333>You don't have the permission to use this command.").miniMessage());
4234
return false;
4335
}
4436
if (args.length < 1) {
45-
adventurePlayer.sendMessage(new TextUtil("""
37+
adventurePlayer.sendMessage(new Text("""
4638
<dark_gray><st>------------</st><#77ef77>LuckPrefix<dark_gray><st>------------</st>
4739
<dark_gray>» <gray>/luckprefix group <name> prefix - Shows the current prefix
4840
<dark_gray>» <gray>/luckprefix group <name> prefix set <string> - Set the current prefix
@@ -56,161 +48,16 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
5648
<dark_gray>» <gray>/luckprefix group <name> sortid set <string> - Set the current sortid
5749
<dark_gray>» <gray>/luckprefix group <name> namecolor - Shows the current namecolor
5850
<dark_gray>» <gray>/luckprefix group <name> namecolor set <string> - Set the current namecolor
51+
<dark_gray>» <gray>/luckprefix reloadconfigs - Reloads all configurations
5952
<dark_gray><st>------------</st><#77ef77>LuckPrefix<dark_gray><st>------------</st>""").miniMessage());
6053
return false;
6154
}
6255
switch (args[0]) {
6356
case "group" -> {
64-
if (args.length < 3) {
65-
adventurePlayer.sendMessage(new TextUtil("""
66-
<dark_gray><st>------------</st><#77ef77>LuckPrefix<dark_gray><st>------------</st>
67-
<dark_gray>» <gray>/luckprefix group <name> prefix - Shows the current prefix
68-
<dark_gray>» <gray>/luckprefix group <name> prefix set <string> - Set the current prefix
69-
<dark_gray>» <gray>/luckprefix group <name> suffix - Shows the current suffix
70-
<dark_gray>» <gray>/luckprefix group <name> suffix set <string> - Set the current suffix
71-
<dark_gray>» <gray>/luckprefix group <name> tabformat - Shows the current tabformat
72-
<dark_gray>» <gray>/luckprefix group <name> tabformat set <string> - Set the current tabformat
73-
<dark_gray>» <gray>/luckprefix group <name> chatformat - Shows the current chatformat
74-
<dark_gray>» <gray>/luckprefix group <name> chatformat set <string> - Set the current chatformat
75-
<dark_gray>» <gray>/luckprefix group <name> sortid - Shows the current sortid
76-
<dark_gray>» <gray>/luckprefix group <name> sortid set <string> - Set the current sortid
77-
<dark_gray>» <gray>/luckprefix group <name> namecolor - Shows the current namecolor
78-
<dark_gray>» <gray>/luckprefix group <name> namecolor set <string> - Set the current namecolor
79-
<dark_gray><st>------------</st><#77ef77>LuckPrefix<dark_gray><st>------------</st>""").miniMessage());
80-
return false;
81-
}
82-
ConfigManager groupsFile = LuckPrefix.getInstance().getGroupsFile();
83-
FileConfiguration groupsConfig = LuckPrefix.getInstance().getGroupsFile().getConfiguration();
84-
LuckPerms luckPerms = LuckPrefix.getInstance().getLuckPerms();
85-
Group group = luckPerms.getGroupManager().getGroup(args[1]);
86-
if (group == null) {
87-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>This group doesn't exist.").miniMessage());
88-
return false;
89-
}
90-
try {
91-
GroupType groupType = GroupType.valueOf(args[2].toUpperCase());
92-
switch (groupType) {
93-
case PREFIX -> {
94-
if (args.length > 4) {
95-
StringBuilder builder = new StringBuilder(args[4]);
96-
for (int i = 5; i < args.length - 1; i++) {
97-
builder.append(" ").append(args[i]);
98-
}
99-
groupsConfig.set(group.getName().toLowerCase() + ".Prefix", builder.toString());
100-
groupsFile.reloadConfig();
101-
return true;
102-
}
103-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".Prefix");
104-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix()
105-
+ "The prefix of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix).miniMessage());
106-
return true;
107-
}
108-
case SUFFIX -> {
109-
if (args.length > 4) {
110-
StringBuilder builder = new StringBuilder(args[4]);
111-
for (int i = 5; i < args.length - 1; i++) {
112-
builder.append(" ").append(args[i]);
113-
}
114-
groupsConfig.set(group.getName().toLowerCase() + ".Suffix", builder.toString());
115-
groupsFile.reloadConfig();
116-
return true;
117-
}
118-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".Suffix");
119-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix()
120-
+ "The suffix of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix).miniMessage());
121-
return true;
122-
}
123-
case CHATFORMAT -> {
124-
if (args.length > 4) {
125-
StringBuilder builder = new StringBuilder(args[4]);
126-
for (int i = 5; i < args.length - 1; i++) {
127-
builder.append(" ").append(args[i]);
128-
}
129-
groupsConfig.set(group.getName().toLowerCase() + ".Chatformat", builder.toString());
130-
groupsFile.reloadConfig();
131-
return true;
132-
}
133-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".Chatformat");
134-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix()
135-
+ "The chatformat of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix).miniMessage());
136-
return true;
137-
}
138-
case TABFORMAT -> {
139-
if (args.length > 4) {
140-
StringBuilder builder = new StringBuilder(args[4]);
141-
for (int i = 5; i < args.length - 1; i++) {
142-
builder.append(" ").append(args[i]);
143-
}
144-
groupsConfig.set(group.getName().toLowerCase() + ".Tabformat", builder.toString());
145-
groupsFile.reloadConfig();
146-
return true;
147-
}
148-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".Tabformat");
149-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix()
150-
+ "The tabformat of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix).miniMessage());
151-
return true;
152-
}
153-
case SORTID -> {
154-
if (args.length == 5) {
155-
try {
156-
int sortID = Integer.parseInt(args[4]);
157-
groupsConfig.set(group.getName().toLowerCase() + ".SortID", sortID);
158-
groupsFile.reloadConfig();
159-
return true;
160-
} catch (NumberFormatException e) {
161-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>This isn't a number.").miniMessage());
162-
}
163-
}
164-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".SortID");
165-
adventurePlayer.sendMessage(
166-
MiniMessage.miniMessage().deserialize(LuckPrefix.getInstance().getPrefix()
167-
+ "The sort-id of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix));
168-
return true;
169-
}
170-
case NAMECOLOR -> {
171-
if (args.length == 5) {
172-
try {
173-
ChatColor color = ChatColor.valueOf(args[4].toUpperCase());
174-
if (!color.isColor() || color.isFormat()) {
175-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>This isn't a color.").miniMessage());
176-
return false;
177-
}
178-
groupsConfig.set(group.getName().toLowerCase() + ".NameColor", color.name().toLowerCase());
179-
groupsFile.reloadConfig();
180-
return true;
181-
} catch (EnumConstantNotPresentException e) {
182-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>This isn't a number.").miniMessage());
183-
}
184-
}
185-
String prefix = groupsConfig.getString(group.getName().toLowerCase() + ".SortID");
186-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix()
187-
+ "The sort-id of the group <#33ffff>" + group.getName() + " <gray>is: " + prefix).miniMessage());
188-
return true;
189-
}
190-
}
191-
} catch (EnumConstantNotPresentException e) {
192-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "<#ff3333>This group type doesn't exist.").miniMessage());
193-
}
57+
return GroupSubCommand.execute(player, adventurePlayer, args);
19458
}
19559
case "reloadconfig" -> {
196-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "Reloading configurations...").miniMessage());
197-
LuckPrefix.getInstance().getConfig().load(new File("plugins/LuckPrefix/config.yml"));
198-
LuckPrefix.getInstance().getDatabaseFile().reloadConfig();
199-
LuckPrefix.getInstance().getGroupsFile().reloadConfig();
200-
GroupManager groupManager = LuckPrefix.getInstance().getGroupManager();
201-
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
202-
onlinePlayer.getScoreboard().getTeams().forEach(Team::unregister);
203-
if (!groupManager.getGroups().isEmpty()) {
204-
List<String> groups = new ArrayList<>(groupManager.getGroups());
205-
for (String group : groups) {
206-
groupManager.deleteGroup(group);
207-
}
208-
}
209-
onlinePlayer.setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
210-
groupManager.setupGroups(onlinePlayer);
211-
}
212-
adventurePlayer.sendMessage(new TextUtil(LuckPrefix.getInstance().getPrefix() + "Reloaded configurations.").miniMessage());
213-
return true;
60+
return ReloadConfigs.execute(adventurePlayer);
21461
}
21562
}
21663
return false;

0 commit comments

Comments
 (0)