dev.the_fireplace.grandeconomy.command.commands.PayCommand Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of GrandEconomy Show documentation
Show all versions of GrandEconomy Show documentation
A server-side economy mod/api for Minecraft.
package dev.the_fireplace.grandeconomy.command.commands;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.DoubleArgumentType;
import com.mojang.brigadier.context.CommandContext;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.brigadier.tree.CommandNode;
import dev.the_fireplace.grandeconomy.command.CommonTranslationKeys;
import dev.the_fireplace.grandeconomy.command.GeCommand;
import net.minecraft.class_2164;
import net.minecraft.class_2168;
import net.minecraft.class_2170;
import net.minecraft.class_2186;
import net.minecraft.class_3222;
public final class PayCommand extends GeCommand {
@Override
public CommandNode register(CommandDispatcher commandDispatcher) {
return commandDispatcher.register(class_2170.method_9247("pay")
.requires(requirements::player)
.then(class_2170.method_9244("player", class_2186.method_9305())
.then(class_2170.method_9244("amount", DoubleArgumentType.doubleArg(0))
.executes(this::execute)
)
)
);
}
private int execute(CommandContext command) throws class_2164, CommandSyntaxException {
class_3222 targetPlayer = class_2186.method_9315(command, "player");
double amount = command.getArgument("amount", Double.class);
if (amount < 0) {
return feedbackSender.throwFailure(command, "commands.grandeconomy.pay.negative");
}
if (currencyAPI.getBalance(targetPlayer.method_5667(), true) < amount) {
return feedbackSender.throwFailure(command, CommonTranslationKeys.INSUFFICIENT_CREDIT, currencyAPI.getCurrencyName(2));
}
boolean taken = currencyAPI.takeFromBalance(command.getSource().method_9207().method_5667(), amount, true);
if (taken) {
currencyAPI.addToBalance(targetPlayer.method_5667(), amount, true);
feedbackSender.basic(command, "commands.grandeconomy.pay.paid", currencyAPI.formatCurrency(amount), targetPlayer.method_5476());
feedbackSender.basic(targetPlayer, "commands.grandeconomy.pay.recieved", currencyAPI.formatCurrency(amount), command.getSource().method_9214());
return Command.SINGLE_SUCCESS;
} else {
return feedbackSender.throwFailure(command, CommonTranslationKeys.INSUFFICIENT_CREDIT, currencyAPI.getCurrencyName(2));
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy