use of de.c0debase.bot.level.LevelUser in project c0debaseBot by Biospheere.
the class MessageReactionListener method onGenericGuildMessageReaction.
@Override
public void onGenericGuildMessageReaction(GenericGuildMessageReactionEvent event) {
super.onGenericGuildMessageReaction(event);
if (event.getUser().isBot()) {
return;
}
event.getChannel().getMessageById(event.getMessageId()).queue(success -> {
if (event.getReactionEmote().getName().equalsIgnoreCase("wastebasket") && success.getAuthor().isBot()) {
success.delete().queue();
return;
}
if (!success.getEmbeds().isEmpty() && success.getAuthor().isBot()) {
final String emote = getReaction(event.getReactionEmote());
if (emote == null) {
return;
}
MessageEmbed messageEmbed = success.getEmbeds().get(0);
if (messageEmbed.getFooter() != null && messageEmbed.getFooter().getText().contains("Seite")) {
CodebaseBot.getInstance().getLeaderboardPagination().updateList(CodebaseBot.getInstance().getLevelManager().getLevelUsersSorted());
String[] strings = messageEmbed.getFooter().getText().replace("Seite: (", "").replace(")", "").split("/");
int max = Integer.valueOf(strings[1]);
int current = Integer.valueOf(strings[0]);
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setColor(success.getGuild().getSelfMember().getColor());
embedBuilder.setTitle("Leaderboard: " + event.getGuild().getName());
if (max != current) {
if (emote.equalsIgnoreCase("arrow_right")) {
current++;
} else if (emote.equalsIgnoreCase("arrow_left") && current > 1) {
current--;
}
} else if (emote.equalsIgnoreCase("arrow_left") && current >= 1) {
current--;
}
embedBuilder.setFooter("Seite: (" + current + "/" + max + ")", success.getGuild().getIconUrl());
int count = 1;
for (LevelUser levelUser : CodebaseBot.getInstance().getLeaderboardPagination().getPage(current)) {
Member member = success.getGuild().getMemberById(Long.valueOf(levelUser.getId()));
if (member != null) {
embedBuilder.appendDescription("`" + (current == 1 ? count : +((current - 1) * 10 + count)) + ")` " + member.getEffectiveName() + "#" + member.getUser().getDiscriminator() + " (Lvl." + levelUser.getLevel() + ")\n");
count++;
}
}
success.editMessage(embedBuilder.build()).queue();
}
}
});
}
use of de.c0debase.bot.level.LevelUser in project c0debaseBot by Biospheere.
the class MessageReceiveListener method onMessageReceived.
@Override
public void onMessageReceived(MessageReceivedEvent event) {
super.onMessageReceived(event);
if (event.getAuthor().isBot()) {
return;
}
if (event.isFromType(ChannelType.PRIVATE)) {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setColor(Color.RED);
embedBuilder.appendDescription("Private Nachrichten sind deaktiviert");
event.getPrivateChannel().sendMessage(embedBuilder.build()).queue();
return;
}
if (event.getMessage().getContentRaw().startsWith("!clear")) {
CodebaseBot.getInstance().getCommandManager().execute(event.getMessage());
return;
}
if (event.getTextChannel().getName().equalsIgnoreCase("projekte")) {
event.getMessage().addReaction(EmojiManager.getForAlias("thumbsup").getUnicode()).queue();
event.getMessage().addReaction(EmojiManager.getForAlias("thumbsdown").getUnicode()).queue();
return;
}
if (event.getTextChannel().getName().equalsIgnoreCase("feedback")) {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setColor(Color.GREEN);
embedBuilder.setFooter("@" + event.getAuthor().getName() + "#" + event.getAuthor().getDiscriminator(), event.getAuthor().getEffectiveAvatarUrl());
embedBuilder.setTitle("Feedback");
embedBuilder.setDescription(event.getMessage().getContentDisplay());
event.getMessage().delete().queue();
event.getTextChannel().sendMessage(embedBuilder.build()).queue(success -> {
success.addReaction(EmojiManager.getForAlias("thumbsup").getUnicode()).queue();
success.addReaction(EmojiManager.getForAlias("thumbsdown").getUnicode()).queue();
});
return;
}
if (event.getMessage().getContentRaw().startsWith(event.getGuild().getSelfMember().getAsMention())) {
event.getTextChannel().sendMessage("hi").queue();
return;
}
if (event.getMessage().getTextChannel().getName().equalsIgnoreCase("bot") && event.getMessage().getContentRaw().startsWith("!")) {
CodebaseBot.getInstance().getCommandManager().execute(event.getMessage());
} else {
LevelUser levelUser = CodebaseBot.getInstance().getLevelManager().getLevelUser(event.getAuthor().getId());
float time = (System.currentTimeMillis() - levelUser.getLastMessage()) / 1000;
if (time >= 50.0f || levelUser.getLastMessage() == 0L) {
levelUser.setLastMessage(System.currentTimeMillis());
if (levelUser.addXP(50)) {
EmbedBuilder levelUpEmbed = new EmbedBuilder();
levelUpEmbed.appendDescription(event.getAuthor().getAsMention() + " has leveled up to level " + levelUser.getLevel());
event.getTextChannel().sendMessage(levelUpEmbed.build()).queue();
}
}
}
}
use of de.c0debase.bot.level.LevelUser in project c0debaseBot by Biospheere.
the class LeaderboardCommand method execute.
@Override
public void execute(String[] args, Message msg) {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setColor(msg.getGuild().getSelfMember().getColor());
embedBuilder.setTitle("Leaderboard: " + msg.getGuild().getName());
CodebaseBot.getInstance().getLeaderboardPagination().updateList(CodebaseBot.getInstance().getLevelManager().getLevelUsersSorted());
int count = 1;
for (LevelUser levelUser : CodebaseBot.getInstance().getLeaderboardPagination().getPage(1)) {
Member member = msg.getGuild().getMemberById(Long.valueOf(levelUser.getId()));
if (member != null) {
embedBuilder.appendDescription("`" + count + ")` " + StringUtils.replaceCharacter(member.getEffectiveName()) + "#" + member.getUser().getDiscriminator() + " (Lvl." + levelUser.getLevel() + ")\n");
}
count++;
}
embedBuilder.setFooter("Seite: (1/" + ((CodebaseBot.getInstance().getLevelManager().getLevelUsersSorted().size() / 10) + 1) + ")", msg.getGuild().getIconUrl());
msg.getTextChannel().sendMessage(embedBuilder.build()).queue((Message success) -> {
success.addReaction(EmojiManager.getForAlias("arrow_left").getUnicode()).queue();
success.addReaction(EmojiManager.getForAlias("arrow_right").getUnicode()).queue();
});
}
Aggregations