|
1 | 1 | package pro.cloudnode.smp.bankaccounts.commands; |
2 | 2 |
|
3 | | -import net.kyori.adventure.text.Component; |
4 | | -import net.kyori.adventure.text.minimessage.MiniMessage; |
5 | 3 | import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; |
6 | 4 | import org.bukkit.Material; |
7 | 5 | import org.bukkit.OfflinePlayer; |
|
12 | 10 | import org.jetbrains.annotations.Nullable; |
13 | 11 | import pro.cloudnode.smp.bankaccounts.Account; |
14 | 12 | import pro.cloudnode.smp.bankaccounts.BankAccounts; |
| 13 | +import pro.cloudnode.smp.bankaccounts.BankConfig; |
15 | 14 | import pro.cloudnode.smp.bankaccounts.Command; |
16 | 15 | import pro.cloudnode.smp.bankaccounts.Permissions; |
17 | 16 | import pro.cloudnode.smp.bankaccounts.Transaction; |
@@ -211,7 +210,7 @@ else if (args.length == 3 && sender.hasPermission(Permissions.INSTRUMENT_CREATE_ |
211 | 210 | if (args.length == 0) return overview(sender); |
212 | 211 | final @NotNull String @NotNull [] argsSubset = Arrays.copyOfRange(args, 1, args.length); |
213 | 212 | return switch (args[0]) { |
214 | | - case "help" -> help(sender); |
| 213 | + case "help" -> help(sender, label); |
215 | 214 | case "bal", "balance", "account", "accounts" -> |
216 | 215 | balance(sender, Arrays.copyOfRange(args, 1, args.length), label); |
217 | 216 | case "reload" -> reload(sender); |
@@ -243,45 +242,44 @@ else if (args.length == 3 && sender.hasPermission(Permissions.INSTRUMENT_CREATE_ |
243 | 242 | /** |
244 | 243 | * Plugin help |
245 | 244 | */ |
246 | | - public static @NotNull Message help(final @NotNull CommandSender sender) { |
247 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<dark_gray>---</dark_gray>")); |
248 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<green>Available commands:")); |
249 | | - sender.sendMessage(Component.empty()); |
| 245 | + public static @NotNull CommandResult help(final @NotNull CommandSender sender, final @NotNull String label) { |
| 246 | + BankAccounts.getInstance().config().messagesHelpBankHeader().ifPresent(sender::sendMessage); |
250 | 247 | if (sender.hasPermission(Permissions.BALANCE_SELF)) |
251 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank balance ><green>/bank balance <gray>[account]</gray></green> <white>- Check your accounts</click>")); |
| 248 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.BALANCE, label + " balance", "[account]").ifPresent(sender::sendMessage); |
252 | 249 | if (sender.hasPermission(Permissions.BALANCE_OTHER)) |
253 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank balance --player ><green>/bank balance <gray>--player <player></gray></green> <white>- List another player's accounts</click>")); |
| 250 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.BALANCE, label + " balance", "--player <player>").ifPresent(sender::sendMessage); |
254 | 251 | if (sender.hasPermission(Permissions.TRANSFER_SELF) || sender.hasPermission(Permissions.TRANSFER_OTHER)) |
255 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank transfer ><green>/bank transfer <gray><from> <to> <amount> [description]</gray></green> <white>- Transfer money to another account</click>")); |
| 252 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.TRANSFER, label + " transfer", "<from> <to> <amount> [description]").ifPresent(sender::sendMessage); |
256 | 253 | if (sender.hasPermission(Permissions.HISTORY)) |
257 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank transactions ><green>/bank transactions <gray><account> [page=1]</gray></green> <white>- List transactions</click>")); |
| 254 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.HISTORY, label + " history", "<account> [page=1]").ifPresent(sender::sendMessage); |
258 | 255 | if (sender.hasPermission(Permissions.ACCOUNT_CREATE)) |
259 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank create ><green>/bank create <gray><PERSONAL|BUSINESS" + (sender.hasPermission(Permissions.ACCOUNT_CREATE_VAULT) ? "|VAULT" : "") + "></gray></green> <white>- Create a new account</click>")); |
| 256 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.CREATE, label + " create", "<PERSONAL|BUSINESS" + (sender.hasPermission(Permissions.ACCOUNT_CREATE_VAULT) ? "|VAULT" : "") + ">").ifPresent(sender::sendMessage); |
260 | 257 | if (sender.hasPermission(Permissions.ACCOUNT_CREATE_OTHER)) |
261 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank create ><green>/bank create <gray><PERSONAL|BUSINESS" + (sender.hasPermission(Permissions.ACCOUNT_CREATE_VAULT) ? "|VAULT" : "") + "> --player <player></gray></green> <white>- Create an account for another player</click>")); |
| 258 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.CREATE, label + " create", "<PERSONAL|BUSINESS" + (sender.hasPermission(Permissions.ACCOUNT_CREATE_VAULT) ? "|VAULT" : "") + "> --player <player>").ifPresent(sender::sendMessage); |
262 | 259 | if (sender.hasPermission(Permissions.FREEZE)) { |
263 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank freeze ><green>/bank freeze <gray><account></gray></green> <white>- Freeze an account</click>")); |
264 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank unfreeze ><green>/bank unfreeze <gray><account></gray></green> <white>- Unfreeze an account</click>")); |
| 260 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.FREEZE, label + " freeze", "<account>").ifPresent(sender::sendMessage); |
| 261 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.UNFREEZE, label + " unfreeze", "<account>").ifPresent(sender::sendMessage); |
265 | 262 | } |
266 | 263 | if (sender.hasPermission(Permissions.DELETE)) |
267 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank delete ><green>/bank delete <gray><account></gray></green> <white>- Delete an account</click>")); |
| 264 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.DELETE, label + " delete", "<account>").ifPresent(sender::sendMessage); |
268 | 265 | if (sender.hasPermission(Permissions.INSTRUMENT_CREATE)) |
269 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank instrument ><green>/bank instrument <gray><account>" + (sender.hasPermission(Permissions.INSTRUMENT_CREATE_OTHER) ? " [player]" : "") + "</gray></green> <white>- Create a new instrument</click>")); |
| 266 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.INSTRUMENT, label + " instrument", "<account>" + (sender.hasPermission(Permissions.INSTRUMENT_CREATE_OTHER) ? " [player]" : "")).ifPresent(sender::sendMessage); |
270 | 267 | if (sender.hasPermission(Permissions.WHOIS)) |
271 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank whois ><green>/bank whois <gray><account></gray></green> <white>- Get information about an account</click>")); |
| 268 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.WHOIS, label + " whois", "<account>").ifPresent(sender::sendMessage); |
272 | 269 | if (sender.hasPermission(Permissions.BALTOP)) |
273 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/baltop ><green>/baltop <gray>[personal|business|player] [page=1]</gray></green> <white>- Top balance leaderboard</click>")); |
| 270 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.BALTOP, "baltop", "[personal|business|player] [page=1]").ifPresent(sender::sendMessage); |
274 | 271 | if (sender.hasPermission(Permissions.POS_CREATE)) |
275 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/pos ><green>/pos <gray><account> <price> [description]</gray></green> <white>- Create a new point of sale</click>")); |
| 272 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.POS, "pos", "<account> <price> [description]").ifPresent(sender::sendMessage); |
276 | 273 | if (sender.hasPermission(Permissions.SET_BALANCE)) |
277 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank setbalance ><green>/bank setbalance <gray><account> <balance|Infinity></gray></green> <white>- Set an account's balance</click>")); |
| 274 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.SETBALANCE, label + " setbalance", "<account> <balance|Infinity>").ifPresent(sender::sendMessage); |
278 | 275 | if (sender.hasPermission(Permissions.SET_NAME)) |
279 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank setname ><green>/bank setname <gray><account> [name]</gray></green> <white>- Set an account's name</click>")); |
| 276 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.RENAME, label + " setname", "<account> [name]").ifPresent(sender::sendMessage); |
280 | 277 | if (sender.hasPermission(Permissions.RELOAD)) |
281 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/bank reload><green>/bank reload</green> <white>- Reload plugin configuration</click>")); |
| 278 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.RELOAD, label + " reload", "").ifPresent(sender::sendMessage); |
282 | 279 | if (Stream.of(Permissions.INVOICE_CREATE, Permissions.INVOICE_VIEW, Permissions.INVOICE_SEND, Permissions.TRANSFER_SELF, Permissions.TRANSFER_OTHER).anyMatch(sender::hasPermission)) |
283 | | - sender.sendMessage(MiniMessage.miniMessage().deserialize("<click:suggest_command:/invoice help><green>/invoice help</green> <white>- See invoicing commands</click>")); |
284 | | - return new Message(sender, "<dark_gray>---</dark_gray>"); |
| 280 | + BankAccounts.getInstance().config().messagesHelpBankCommands(BankConfig.HelpCommandsBank.INVOICES, "invoice help", "").ifPresent(sender::sendMessage); |
| 281 | + BankAccounts.getInstance().config().messagesHelpBankFooter().ifPresent(sender::sendMessage); |
| 282 | + return CommandResult.DO_NOTHING; |
285 | 283 | } |
286 | 284 |
|
287 | 285 | /** |
|
0 commit comments