Skip to content

Commit 3887bce

Browse files
authored
Use CommandResult as return value instead of boolean (#151)
2 parents 034b2ee + d7c67a2 commit 3887bce

File tree

7 files changed

+272
-247
lines changed

7 files changed

+272
-247
lines changed

src/main/java/pro/cloudnode/smp/bankaccounts/Command.java

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package pro.cloudnode.smp.bankaccounts;
22

33
import net.kyori.adventure.audience.Audience;
4-
import net.kyori.adventure.text.Component;
5-
import net.kyori.adventure.text.minimessage.MiniMessage;
6-
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
74
import org.bukkit.command.CommandExecutor;
85
import org.bukkit.command.CommandSender;
96
import org.bukkit.command.TabCompleter;
107
import org.jetbrains.annotations.NotNull;
118
import org.jetbrains.annotations.Nullable;
9+
import pro.cloudnode.smp.bankaccounts.commands.result.CommandResult;
10+
import pro.cloudnode.smp.bankaccounts.commands.result.Message;
1211

1312
import java.util.List;
1413
import java.util.Optional;
@@ -17,31 +16,6 @@
1716
import java.util.stream.Collectors;
1817

1918
public abstract class Command implements CommandExecutor, TabCompleter {
20-
/**
21-
* Send message to sender.
22-
*
23-
* @param audience Message recipient
24-
* @param message Message to send.
25-
* @return Always true.
26-
*/
27-
public static boolean sendMessage(final @NotNull Audience audience, final @NotNull Component message) {
28-
audience.sendMessage(message);
29-
return true;
30-
}
31-
32-
/**
33-
* Send message to sender.
34-
*
35-
* @param audience Message recipient
36-
* @param message Message to send.
37-
* @param placeholders Placeholders to replace.
38-
* @return Always true.
39-
*/
40-
public static boolean sendMessage(final @NotNull Audience audience, final @NotNull String message, final @NotNull TagResolver @NotNull ... placeholders) {
41-
sendMessage(audience, MiniMessage.miniMessage().deserialize(message, placeholders));
42-
return true;
43-
}
44-
4519
/**
4620
* Send command usage to sender.
4721
*
@@ -50,8 +24,8 @@ public static boolean sendMessage(final @NotNull Audience audience, final @NotNu
5024
* @param arguments Command arguments.
5125
* @return Always true.
5226
*/
53-
protected static boolean sendUsage(final @NotNull Audience audience, final @NotNull String label, final @NotNull String arguments) {
54-
return sendMessage(audience, BankAccounts.getInstance().config().messagesCommandUsage(label, arguments));
27+
protected static @NotNull Message sendUsage(final @NotNull Audience audience, final @NotNull String label, final @NotNull String arguments) {
28+
return new Message(audience, BankAccounts.getInstance().config().messagesCommandUsage(label, arguments));
5529
}
5630

5731
/**
@@ -61,7 +35,7 @@ protected static boolean sendUsage(final @NotNull Audience audience, final @NotN
6135
* @param label Command label
6236
* @param args Command arguments
6337
*/
64-
protected abstract boolean execute(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args);
38+
protected abstract @NotNull CommandResult execute(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args);
6539

6640
/**
6741
* Tab complete
@@ -73,9 +47,9 @@ protected static boolean sendUsage(final @NotNull Audience audience, final @NotN
7347

7448
@Override
7549
public final boolean onCommand(final @NotNull CommandSender sender, final @NotNull org.bukkit.command.Command command, final @NotNull String label, final @NotNull String @NotNull [] args) {
76-
BankAccounts.getInstance().getServer().getScheduler().runTaskAsynchronously(BankAccounts.getInstance(), () -> {
77-
final boolean ignored = execute(sender, label, args);
78-
});
50+
BankAccounts.getInstance().getServer().getScheduler().runTaskAsynchronously(BankAccounts.getInstance(),
51+
() -> execute(sender, label, args).send()
52+
);
7953
return true;
8054
}
8155

src/main/java/pro/cloudnode/smp/bankaccounts/commands/BaltopCommand.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import pro.cloudnode.smp.bankaccounts.BankAccounts;
88
import pro.cloudnode.smp.bankaccounts.Command;
99
import pro.cloudnode.smp.bankaccounts.Permissions;
10+
import pro.cloudnode.smp.bankaccounts.commands.result.CommandResult;
11+
import pro.cloudnode.smp.bankaccounts.commands.result.Message;
1012

1113
import java.math.BigDecimal;
1214
import java.sql.Connection;
@@ -22,7 +24,7 @@
2224

2325
public final class BaltopCommand extends Command {
2426
@Override
25-
public boolean execute(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args) {
27+
public @NotNull CommandResult execute(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args) {
2628
return run(sender, label, args, new String[0]);
2729
}
2830

@@ -35,8 +37,8 @@ public boolean execute(final @NotNull CommandSender sender, final @NotNull Strin
3537
return suggestions;
3638
}
3739

38-
public static boolean run(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args, final @NotNull String @NotNull [] labelArgs) {
39-
if (!sender.hasPermission(Permissions.BALTOP)) return sendMessage(sender, BankAccounts.getInstance().config().messagesErrorsNoPermission());
40+
public static @NotNull CommandResult run(final @NotNull CommandSender sender, final @NotNull String label, final @NotNull String @NotNull [] args, final @NotNull String @NotNull [] labelArgs) {
41+
if (!sender.hasPermission(Permissions.BALTOP)) return new Message(sender, BankAccounts.getInstance().config().messagesErrorsNoPermission());
4042
final @NotNull Optional<@NotNull String> type = args.length > 0 && (args[0].equalsIgnoreCase("personal") || args[0].equalsIgnoreCase("business") || args[0].equalsIgnoreCase("player")) ? Optional.of(args[0]) : Optional.empty();
4143
int page = (int) Math.min(1e9, (args.length == 1 && type.isEmpty() && isInteger(args[0])) ? Integer.parseInt(args[0]) : ((args.length > 1 && isInteger(args[1])) ? Integer.parseInt(args[1]) : 1));
4244
if (page < 1) page = 1;
@@ -49,19 +51,19 @@ public static boolean run(final @NotNull CommandSender sender, final @NotNull St
4951
if (accountType != null || type.isEmpty()) {
5052
final @NotNull String category = accountType != null ? BankAccounts.getInstance().config().messagesTypes(accountType) : "All";
5153
final @NotNull Account @NotNull [] accounts = Account.getTopBalance(perPage, page, accountType);
52-
sendMessage(sender, BankAccounts.getInstance().config().messagesBaltopHeader(category, page, cmdPrev, cmdNext));
54+
sender.sendMessage(BankAccounts.getInstance().config().messagesBaltopHeader(category, page, cmdPrev, cmdNext));
5355
for (int i = 0; i < accounts.length; ++i) {
5456
final @NotNull Account account = accounts[i];
55-
sendMessage(sender, BankAccounts.getInstance().config().messagesBaltopEntry(account, (page - 1) * perPage + i + 1));
57+
sender.sendMessage(BankAccounts.getInstance().config().messagesBaltopEntry(account, (page - 1) * perPage + i + 1));
5658
}
5759
}
5860
else {
59-
sendMessage(sender, BankAccounts.getInstance().config().messagesBaltopHeader("Players", page, cmdPrev, cmdNext));
61+
sender.sendMessage(BankAccounts.getInstance().config().messagesBaltopHeader("Players", page, cmdPrev, cmdNext));
6062
final @NotNull BaltopPlayer @NotNull [] players = BaltopPlayer.get(perPage, page);
6163
for (int i = 0; i < players.length; ++i)
62-
sendMessage(sender, BankAccounts.getInstance().config().messagesBaltopEntryPlayer(players[i], (page - 1) * perPage + i + 1));
64+
sender.sendMessage(BankAccounts.getInstance().config().messagesBaltopEntryPlayer(players[i], (page - 1) * perPage + i + 1));
6365
}
64-
return true;
66+
return CommandResult.DO_NOTHING;
6567
}
6668

6769
public static boolean isInteger(final @NotNull String string) {

0 commit comments

Comments
 (0)