11package pro .cloudnode .smp .bankaccounts ;
22
33import 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 ;
74import org .bukkit .command .CommandExecutor ;
85import org .bukkit .command .CommandSender ;
96import org .bukkit .command .TabCompleter ;
107import org .jetbrains .annotations .NotNull ;
118import org .jetbrains .annotations .Nullable ;
9+ import pro .cloudnode .smp .bankaccounts .commands .result .CommandResult ;
10+ import pro .cloudnode .smp .bankaccounts .commands .result .Message ;
1211
1312import java .util .List ;
1413import java .util .Optional ;
1716import java .util .stream .Collectors ;
1817
1918public 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
0 commit comments