use of de.kaktushose.levelbot.shop.data.items.Item in project Levelbot by Kaktushose.
the class AddItemCommand method generateEmbeds.
private void generateEmbeds(String mention) {
shopOverview = embedCache.getEmbed("shopOverview").injectValue("user", mention).toEmbedBuilder();
for (ItemCategory itemCategory : ItemCategory.values()) {
EmbedBuilder specificShop = embedCache.getEmbed("specificShop").toEmbedBuilder();
List<Item> items = levelService.getItemsByCategoryId(itemCategory.id);
for (int i = 0; i < items.size(); i++) {
Item item = items.get(i);
if (!item.isVisible()) {
continue;
}
specificShop.addField(String.format("%s: %s", EmoteType.getNumber(i + 1).unicode, item.getName()), String.format("Preis: %s :moneybag:\nDauer: %d Tage", item.getPrice(), TimeUnit.MILLISECONDS.toDays(item.getDuration())), false);
}
specificShops.put(itemCategory, specificShop);
}
}
use of de.kaktushose.levelbot.shop.data.items.Item in project Levelbot by Kaktushose.
the class RemoveItemCommand method onRemoveItem.
@Command(name = "Item entfernen", usage = "{prefix}remove <member>", desc = "Entfernt ein Item aus dem Besitz eines Benutzers", category = "Moderation")
public void onRemoveItem(CommandEvent event, Member member) {
List<Item> items = shopService.getItems(member.getIdLong());
AtomicInteger counter = new AtomicInteger(1);
List<String> emotes = new ArrayList<>();
EmbedBuilder builder = embedCache.getEmbed("removeItem").injectValue("user", member.getAsMention()).toEmbedBuilder();
items.forEach(item -> {
String emote = EmoteType.getNumber(counter.getAndIncrement()).unicode;
emotes.add(emote);
builder.addField(emote + ": " + item.getName(), "", false);
});
event.reply(builder, chooseMessage -> {
emotes.forEach(emote -> chooseMessage.addReaction(emote).queue());
ReactionWaiter reactionWaiter = new ReactionWaiter(chooseMessage, event.getMember(), emotes);
reactionWaiter.onEvent(reactionEvent -> {
Item forRemoval;
switch(reactionEvent.getEmote()) {
case NumberEmojis.ONE:
forRemoval = items.get(0);
break;
case NumberEmojis.TWO:
forRemoval = items.get(1);
break;
case NumberEmojis.THREE:
forRemoval = items.get(2);
break;
case NumberEmojis.FOUR:
forRemoval = items.get(3);
break;
case NumberEmojis.FIVE:
forRemoval = items.get(4);
break;
default:
return;
}
shopService.removeItem(member.getIdLong(), forRemoval.getItemId());
reactionWaiter.stopWaiting(false);
chooseMessage.delete().queue();
event.reply(embedCache.getEmbed("removeItemSuccess").injectValue("user", member.getAsMention()));
});
});
}
use of de.kaktushose.levelbot.shop.data.items.Item in project Levelbot by Kaktushose.
the class Levelbot method addItemRole.
public void addItemRole(long userId, int itemId) {
Item item = levelService.getItem(itemId);
if (item.getRoleId() == -1) {
return;
}
guild.addRoleToMember(userId, guild.getRoleById(item.getRoleId())).queue();
}
use of de.kaktushose.levelbot.shop.data.items.Item in project Levelbot by Kaktushose.
the class Levelbot method sendItemExpiredInformation.
public void sendItemExpiredInformation(long userId, int itemId, long buyTime) {
User user = jda.getUserById(userId);
Item item = levelService.getItem(itemId);
EmbedBuilder embed = embedCache.getEmbed("itemExpired").injectValue("item", item.getName()).injectValue("date", new SimpleDateFormat("dd.MM.yyyy HH:mm").format(new Date(buyTime))).toEmbedBuilder();
user.openPrivateChannel().flatMap(privateChannel -> privateChannel.sendMessageEmbeds(embed.build())).queue(null, new ErrorHandler().handle(ErrorResponse.CANNOT_SEND_TO_USER, exception -> {
TextChannel channel = getBotChannel();
channel.sendMessage(user.getAsMention()).and(channel.sendMessageEmbeds(embed.build())).queue();
}));
}
Aggregations