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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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);
}
}
}
|