diff --git a/build.gradle.kts b/build.gradle.kts index 2d80697..c59cf67 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,7 @@ plugins { group = "de.oliver" description = "Economy plugin" -version = "1.0.2" +version = "1.0.3" val mcVersion = "1.20.1" repositories { diff --git a/src/main/java/de/oliver/fancyeconomy/FancyEconomy.java b/src/main/java/de/oliver/fancyeconomy/FancyEconomy.java index 23dea29..83fb659 100644 --- a/src/main/java/de/oliver/fancyeconomy/FancyEconomy.java +++ b/src/main/java/de/oliver/fancyeconomy/FancyEconomy.java @@ -128,6 +128,7 @@ public void onEnable() { lang.addDefaultLang("reloaded-config", "Successfully reloaded the config"); lang.addDefaultLang("currency-list", "List of all currencies:"); + lang.addDefaultLang("add-receiver", "Received {amount}"); lang.load(); database = config.getDatabase(); @@ -167,6 +168,7 @@ private void registerCommands() { CommandAPI.registerCommand(BalanceCMD.class); CommandAPI.registerCommand(WithdrawCMD.class); CommandAPI.registerCommand(BalanceTopCMD.class); + CommandAPI.registerCommand(AddCMD.class); ArgumentSuggestions allPlayersSuggestion = ArgumentSuggestions.strings(commandSenderSuggestionInfo -> CurrencyPlayerManager.getAllPlayerNames()); diff --git a/src/main/java/de/oliver/fancyeconomy/commands/AddCMD.java b/src/main/java/de/oliver/fancyeconomy/commands/AddCMD.java new file mode 100644 index 0000000..854ab97 --- /dev/null +++ b/src/main/java/de/oliver/fancyeconomy/commands/AddCMD.java @@ -0,0 +1,76 @@ +package de.oliver.fancyeconomy.commands; + +import de.oliver.fancyeconomy.FancyEconomy; +import de.oliver.fancyeconomy.currencies.Currency; +import de.oliver.fancyeconomy.currencies.CurrencyPlayer; +import de.oliver.fancyeconomy.currencies.CurrencyPlayerManager; +import de.oliver.fancyeconomy.currencies.CurrencyRegistry; +import de.oliver.fancylib.MessageHelper; +import de.oliver.fancylib.UUIDFetcher; +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.Permission; +import dev.jorel.commandapi.annotations.arguments.ADoubleArgument; +import dev.jorel.commandapi.annotations.arguments.AStringArgument; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.UUID; + +@Command("add") +@Permission("fancyeconomy.add") +public class AddCMD { + + @Default + public static void info(CommandSender player) { + MessageHelper.info(player, " --- FancyEconomy Info ---"); + MessageHelper.info(player, "/add - add money to a certain player"); + } + + @Default + public static void add( + CommandSender player, + @AStringArgument String targetName, + @ADoubleArgument(min = 0.1) double amount + ) { + Player targetPlayer = Bukkit.getPlayer(targetName); + if (targetPlayer != null) { + targetName = targetPlayer.getName(); + } + + UUID uuid = targetPlayer != null ? targetPlayer.getUniqueId() : UUIDFetcher.getUUID(targetName); + + if (uuid == null) { + MessageHelper.error(player, FancyEconomy.getInstance().getLang().get( + "player-not-found", + "player", targetName + )); + return; + } + + Currency currency = CurrencyRegistry.getDefaultCurrency(); + + CurrencyPlayer to = CurrencyPlayerManager.getPlayer(uuid); + + if (targetPlayer != null) { + to.setUsername(targetPlayer.getName()); + } + + to.addBalance(currency, amount); + + MessageHelper.success(player, FancyEconomy.getInstance().getLang().get( + "add-success", + "amount", currency.format(amount), + "player", to.getUsername() + )); + + if (targetPlayer != null) { + MessageHelper.info(targetPlayer, FancyEconomy.getInstance().getLang().get( + "add-receiver", + "amount", currency.format(amount) + )); + } + } + +}