use of net.kodehawa.mantarobot.data.entities.Player in project MantaroBot by Mantaro.
the class MoneyCmds method daily.
@Command
public static void daily(CommandRegistry cr) {
RateLimiter rateLimiter = new RateLimiter(TimeUnit.HOURS, 24);
Random r = new Random();
cr.register("daily", new SimpleCommand(Category.CURRENCY) {
@Override
public void call(GuildMessageReceivedEvent event, String content, String[] args) {
String id = event.getAuthor().getId();
long money = 150L;
User mentionedUser = null;
try {
mentionedUser = event.getMessage().getMentionedUsers().get(0);
} catch (IndexOutOfBoundsException ignored) {
}
Player player;
if (!rateLimiter.process(id)) {
event.getChannel().sendMessage(EmoteReference.STOPWATCH + "Halt! You can only do this once every 24 hours.\n**You'll be able to use this command again in " + Utils.getVerboseTime(rateLimiter.tryAgainIn(id)) + ".**").queue();
return;
}
if (mentionedUser != null && !mentionedUser.getId().equals(event.getAuthor().getId())) {
money = money + r.nextInt(2);
player = MantaroData.db().getPlayer(event.getGuild().getMember(mentionedUser));
if (player.getInventory().containsItem(Items.COMPANION))
money = Math.round(money + (money * 0.10));
if (mentionedUser.getId().equals(player.getData().getMarriedWith()) && player.getData().getMarriedSince() != null && Long.parseLong(player.getData().anniversary()) - player.getData().getMarriedSince() > TimeUnit.DAYS.toMillis(1)) {
money = money + r.nextInt(20);
if (player.getInventory().containsItem(Items.RING_2)) {
money = money + r.nextInt(10);
}
}
player.addMoney(money);
player.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "I gave your **$" + money + "** daily credits to " + mentionedUser.getName()).queue();
return;
}
player = MantaroData.db().getPlayer(event.getMember());
player.addMoney(money);
player.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "You got **$" + money + "** daily credits.").queue();
}
@Override
public MessageEmbed help(GuildMessageReceivedEvent event) {
return helpEmbed(event, "Daily command").setDescription("**Gives you $150 credits per day (or between 150 and 180 if you transfer it to another person)**.").build();
}
});
}
Aggregations