diff options
| author | davidovski <david@davidovski.xyz> | 2025-10-11 04:55:51 +0100 |
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2025-10-11 04:55:51 +0100 |
| commit | 10b327e9f6441a8863227ce3e075a5a587654065 (patch) | |
| tree | 5e94ecc91290febacf5181d3596563a7a24bd010 /src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java | |
v0.3.1
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java b/src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java new file mode 100644 index 0000000..a98a452 --- /dev/null +++ b/src/main/java/net/uomc/mineshaft/resources/commands/GiveResourcesCommand.java @@ -0,0 +1,85 @@ +package net.uomc.mineshaft.resources.commands; + +import static java.lang.Math.abs; + +import java.util.Optional; + +import com.mouldycheerio.dbot.CustomBot; +import com.mouldycheerio.dbot.commands.CommandDetails; +import com.mouldycheerio.dbot.util.PeelingUtils; + +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.uomc.mineshaft.resources.Resource; +import net.uomc.mineshaft.resources.ResourceManager; + +public class GiveResourcesCommand extends ResourceCommand { + + private String usage; + + public GiveResourcesCommand(ResourceManager resourceManager) { + super(resourceManager); + setCommandDetails(CommandDetails.from("give,trade", "Give a user an item", "give [@user] [quantity] [item]")); + usage = "\n`" + getCommandDetails().getUsage() + "`"; + + } + + @Override + public void execute(MessageReceivedEvent e, CustomBot op, String[] args) { + if (args.length > 1) { + String usermention = args[0]; + String quantitystring = args[1]; + String resourcename = getResourceManager().getPrimaryResourceName(); + if (args.length > 2) { + resourcename = args[2]; + } + + boolean generate = false; + String ownerid = op.getConfig().getString("ownerid"); + if (ownerid.equals(e.getAuthor().getId())) { + if (args.length > 3) { + if (args[3].equals("generate")) { + generate = true; + } + } + } + Optional<Member> mentionToUser = PeelingUtils.mentionToMember(usermention, e.getGuild()); + if (mentionToUser.isPresent()) { + Member member = mentionToUser.get(); + try { + long quantity = Long.parseLong(quantitystring); + quantity = abs(quantity); + + Resource resource = getResourceManager().getResource(resourcename); + if (resource != null) { + + if (!generate && quantity > resource.get(e.getMember())) { + op.sendErrorMessage(e,":x: You do not have enough " + resource.getName() + "!"); + } else { + if (!generate) { + resource.increment(e.getMember(), -quantity); + } + resource.increment(member, quantity); + op.sendSuccessMessage(e, ":white_check_mark: You gave " + member.getAsMention() + " " + resource.prettyValue(quantity)); + } + } else { + op.sendErrorMessage(e, ":x: Please provide a valid resource!" + usage); + + } + + } catch (NumberFormatException ex) { + op.sendErrorMessage(e,":x: Please provide a valid quantity!" + usage); + + } + + } else { + op.sendErrorMessage(e, ":x: That user was not found!" + usage); + } + } else { + op.sendErrorMessage(e, ":x: Invalid usage!" + usage); + + } + } + +} |
