So I have an issue, I copied everything, works flawless, except one thing. When I type ::reward 1 100 it gives me 100 of that reward even if I didn't vote. Also, the same with ::reward 1 it'll just give me 1 of the item. I've tried changing things and analyzing the code but I cannot seem to figure it out nor prevent it from occurring. Genesis, or anyone for that matter, got any ideas? Below is the code I currently have.
Code:
if (command[0].startsWith("reward")) {
if (command.length == 1) {
player.getPacketSender().sendMessage("Please use [::reward id], [::reward id amount], or [::reward id all].");
return;
}
final String playerName = player.getUsername();
final String id = command[1];
final String amount = command.length == 3 ? command[2] : "1";
com.everythingrs.vote.Vote.service.execute(new Runnable() {
@Override
public void run() {
try {
com.everythingrs.vote.Vote[] reward = com.everythingrs.vote.Vote.reward("MY KEY HERE",
playerName, id, amount);
if (reward[0].message != null) {
player.getPacketSender().sendMessage(reward[0].message);
return;
}
player.getInventory().add(19670, reward[0].give_amount);
player.getPacketSender().sendMessage("<img=10><shad=0><col=bb43df>Thank you for voting and supporting (server name here)!");
System.out.println(player.getUsername()+" has just voted.");
Achievements.doProgress(player, VOTE_100_TIMES, amount);
voteCount++;
} catch (Exception e) {
player.getPacketSender().sendMessage("Api Services are currently offline. Please check back shortly");
e.printStackTrace();
}
}
});
}
I'm using Necrotic (RUSE) based source. Can someone explain what's wrong with the code? I've even tried doing just what Genesis put on here but it still has that bug. Help appreciated, thanks!