blob: b172a1ed7baed87e90a196bcb18d3662e2e77866 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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);
}
}
|