summaryrefslogtreecommitdiff
path: root/src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2025-10-11 04:55:51 +0100
committerdavidovski <david@davidovski.xyz>2025-10-11 04:55:51 +0100
commit10b327e9f6441a8863227ce3e075a5a587654065 (patch)
tree5e94ecc91290febacf5181d3596563a7a24bd010 /src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java
v0.3.1
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java')
-rw-r--r--src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java b/src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java
new file mode 100644
index 0000000..b172a1e
--- /dev/null
+++ b/src/main/java/net/uomc/mineshaft/resources/commands/MyResourcesCommand.java
@@ -0,0 +1,53 @@
+package net.uomc.mineshaft.resources.commands;
+
+import java.util.List;
+
+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 MyResourcesCommand extends ResourceCommand {
+
+ public MyResourcesCommand(ResourceManager resourceManager) {
+ super(resourceManager);
+ setCommandDetails(CommandDetails.from("items,inventory,inv,i", "Lists your current inventory of items", "inventory [@user]"));
+
+ }
+
+ @Override
+ public void execute(MessageReceivedEvent e, CustomBot op, String[] args) {
+ List<Resource> resources = getResourceManager().listResources();
+
+ Member member = PeelingUtils.getSingleMentionFromArgs(e);
+ boolean your = member.equals(e.getMember());
+ StringBuilder stringBuilder = new StringBuilder();
+ resources.stream().sorted((r1, r2) -> (int)(r1.get(member) - r2.get(member))).forEach(r -> {
+ long l = r.get(member);
+ if (l != 0) {
+ String v = r.prettyValue(l);
+ stringBuilder.append("**" + v + "** " + r.getName());
+ stringBuilder.append("\n");
+ }
+ });
+ String name = (your ? "Your" : member.getEffectiveName() + "'s");
+ if (stringBuilder.length() == 0)
+ stringBuilder.append(name + "inventory is empty");
+
+ op.sendMessage(e, name + " Inventory", stringBuilder.toString() + "\n*Total value: " + PeelingUtils.amountToString(calculateInventoryValue(member)) + "*");
+ }
+
+ public long calculateInventoryValue(Member member) {
+ return getResourceManager()
+ .getResources()
+ .stream()
+ .map(r -> r.get(member) * r.getValue())
+ .reduce((long) 0, (a, b) -> a + b);
+ }
+
+}