use of net.dv8tion.jda.core.entities.Guild in project MantaroBot by Mantaro.
the class AudioCmdUtils method embedForQueue.
public static void embedForQueue(int page, GuildMessageReceivedEvent event, GuildMusicManager musicManager) {
String toSend = AudioUtils.getQueueList(musicManager.getTrackScheduler().getQueue());
Guild guild = event.getGuild();
String nowPlaying = musicManager.getTrackScheduler().getAudioPlayer().getPlayingTrack() != null ? "**[" + musicManager.getTrackScheduler().getAudioPlayer().getPlayingTrack().getInfo().title + "](" + musicManager.getTrackScheduler().getAudioPlayer().getPlayingTrack().getInfo().uri + ")** (" + Utils.getDurationMinutes(musicManager.getTrackScheduler().getAudioPlayer().getPlayingTrack().getInfo().length) + ")" : "Nothing or title/duration not found";
if (toSend.isEmpty()) {
event.getChannel().sendMessage(new EmbedBuilder().setAuthor("Queue for server " + guild.getName(), null, guild.getIconUrl()).setColor(Color.CYAN).setDescription("Nothing here, just dust. Why don't you queue some songs?\n" + "If you think there are songs here but they don't appear, try using `~>queue 1`.\n\n" + "**If there is a song playing and you didn't add more songs, then there is actually just dust here. You can queue more songs as you desire!**").addField("Currently playing", nowPlaying, false).setThumbnail("http://www.clipartbest.com/cliparts/jix/6zx/jix6zx4dT.png").build()).queue();
return;
}
String[] lines = NEWLINE_PATTERN.split(toSend);
if (!guild.getSelfMember().hasPermission(event.getChannel(), Permission.MESSAGE_ADD_REACTION)) {
String line = null;
StringBuilder sb = new StringBuilder();
int total;
{
int t = 0;
int c = 0;
for (String s : lines) {
if (s.length() + c + 1 > MessageEmbed.TEXT_MAX_LENGTH) {
t++;
c = 0;
}
c += s.length() + 1;
}
if (c > 0)
t++;
total = t;
}
int current = 0;
for (String s : lines) {
int l = s.length() + 1;
if (l > MessageEmbed.TEXT_MAX_LENGTH)
throw new IllegalArgumentException("Length for one of the pages is greater than the maximum");
if (sb.length() + l > MessageEmbed.TEXT_MAX_LENGTH) {
current++;
if (current == page) {
line = sb.toString();
break;
}
sb = new StringBuilder();
}
sb.append(s).append('\n');
}
if (sb.length() > 0 && current + 1 == page) {
line = sb.toString();
}
if (line == null || page > total) {
event.getChannel().sendMessage(new EmbedBuilder().setAuthor("Queue for server " + guild.getName(), null, guild.getIconUrl()).setColor(Color.CYAN).setDescription("Nothing here, just dust. Why don't you go back some pages?\n" + "If you think there are songs here but they don't appear, try using `~>queue 1`.").addField("Currently playing", nowPlaying, false).setThumbnail("http://www.clipartbest.com/cliparts/jix/6zx/jix6zx4dT.png").build()).queue();
} else {
long length = musicManager.getTrackScheduler().getQueue().stream().mapToLong(value -> value.getInfo().length).sum();
EmbedBuilder builder = new EmbedBuilder().setAuthor("Queue for server " + guild.getName(), null, guild.getIconUrl()).setColor(Color.CYAN);
VoiceChannel vch = guild.getSelfMember().getVoiceState().getChannel();
builder.addField("Currently playing", nowPlaying, false).setThumbnail("http://www.clipartbest.com/cliparts/jix/6zx/jix6zx4dT.png").addField("Total queue time", "`" + Utils.getReadableTime(length) + "`", true).addField("Total queue size", "`" + musicManager.getTrackScheduler().getQueue().size() + " songs`", true).addField("Repeat / Pause", "`" + (musicManager.getTrackScheduler().getRepeatMode() == null ? "false" : musicManager.getTrackScheduler().getRepeatMode()) + " / " + String.valueOf(musicManager.getTrackScheduler().getAudioPlayer().isPaused()) + "`", true).addField("Playing in", vch == null ? "No channel :<" : "`" + vch.getName() + "`", true).setFooter("Total pages: " + total + (total == 1 ? "" : " -> Use ~>queue <page> to change pages") + ". Currently in page " + page, guild.getIconUrl());
event.getChannel().sendMessage(builder.setDescription(line).build()).queue();
}
return;
}
DiscordUtils.list(event, 30, false, (p, total) -> {
long length = musicManager.getTrackScheduler().getQueue().stream().mapToLong(value -> value.getInfo().length).sum();
EmbedBuilder builder = new EmbedBuilder().setAuthor("Queue for server " + guild.getName(), null, guild.getIconUrl()).setColor(Color.CYAN);
VoiceChannel vch = guild.getSelfMember().getVoiceState().getChannel();
builder.addField("Currently playing", nowPlaying, false).setThumbnail("http://www.clipartbest.com/cliparts/jix/6zx/jix6zx4dT.png").addField("Total queue time", "`" + Utils.getReadableTime(length) + "`", true).addField("Total queue size", "`" + musicManager.getTrackScheduler().getQueue().size() + " songs`", true).addField("Repeat / Pause", "`" + (musicManager.getTrackScheduler().getRepeatMode() == null ? "false" : musicManager.getTrackScheduler().getRepeatMode()) + " / " + String.valueOf(musicManager.getTrackScheduler().getAudioPlayer().isPaused()) + "`", true).addField("Playing in", vch == null ? "No channel :<" : "`" + vch.getName() + "`", true).setFooter("Total pages: " + total + (total == 1 ? "" : " -> React to change pages") + ". Currently in page " + p, guild.getIconUrl());
return builder;
}, lines);
}
use of net.dv8tion.jda.core.entities.Guild in project FlareBot by FlareBot.
the class FlareBot method sendData.
private void sendData() {
Guild g = Getters.getOfficialGuild();
JSONObject data = new JSONObject().put("guilds", Getters.getGuildCache().size()).put("official_guild_users", g != null ? g.getMemberCache().size() : -1).put("text_channels", Getters.getTextChannelCache().size()).put("voice_channels", Getters.getVoiceChannelCache().size()).put("connected_voice_channels", Getters.getConnectedVoiceChannels()).put("active_voice_channels", Getters.getActiveVoiceChannels()).put("num_queued_songs", getMusicManager().getPlayers().stream().mapToInt(player -> player.getPlaylist().size()).sum()).put("ram", (((runtime.totalMemory() - runtime.freeMemory()) / 1024) / 1024) + "MB").put("uptime", getUptime()).put("http_requests", dataInterceptor.getRequests().intValue());
ApiRequester.requestAsync(ApiRoute.UPDATE_DATA, data);
}
use of net.dv8tion.jda.core.entities.Guild in project FlareBot by FlareBot.
the class Events method handleOfficialGuildStuff.
private boolean handleOfficialGuildStuff(GuildMessageReceivedEvent event, Command command) {
Guild guild = event.getGuild();
GuildWrapper wrapper = FlareBotManager.instance().getGuild(guild.getId());
if (event.getChannel().getIdLong() == 226785954537406464L && !event.getMember().hasPermission(Permission.MESSAGE_MANAGE)) {
event.getChannel().sendMessage("Heyo " + event.getAuthor().getAsMention() + " please use me in <#226786507065786380>!").queue();
return false;
}
return true;
}
use of net.dv8tion.jda.core.entities.Guild in project FlareBot by FlareBot.
the class VariableUtils method parseVariables.
/**
* This method is used to parse variables in a message, this means that we can allow users to pass things into
* their command messages, things like usernames, mentions and channel names to name a few.
*
* Variable list:
* <h2>User Variables</h2>
* `{user}` - User's name.
* `{username}` - User's name.
* `{nickname}` - User's nickname for a guild or their username if the guild is not passed or they're not a member.
* `{tag}` - User's name and discrim in tag format - Username#discrim.
* `{mention}` - User mention.
* `{user_id}` - User's ID.
*
* <hr />
*
* <h2>Guild Variables</h2>
* `{guild}` - Guild name.
* `{region}` - Guild region (Pretty name - Amsterdam, Amsterdam (VIP)).
* `{members}` - Total guild members.
* `{owner}` - Guild owner's name.
* `{owner_id}` - Guild owner's ID.
* `{owner_mention}` - Guild owner mention.
*
* <hr />
*
* <h2>Channel Variables</h2>
* `{channel}` - Channel name.
* `{channel_mention}` - Channel mention.
* `{topic}` - Channel topic.
* `{category}` - Category name or 'no category'.
*
* <hr />
*
* <h2>Utility Variables</h2>
* `{random}` - Random value from 1-10.
* `{random:y}` - Random value from 1 to Y.
* `{random:x,y}` - Random value from X to Y.
*
* @return The parsed message
*/
public static String parseVariables(@Nonnull String message, @Nullable GuildWrapper wrapper, @Nullable TextChannel channel, @Nullable User user, @Nullable String[] args) {
@Nullable Guild guild = null;
@Nullable Member member = null;
if (wrapper != null) {
guild = wrapper.getGuild();
if (user != null)
member = guild.getMember(user);
}
String parsed = message;
// User variables
if (user != null) {
parsed = parsed.replace("{user}", user.getName()).replace("{username}", user.getName()).replace("{nickname}", member == null ? user.getName() : member.getEffectiveName()).replace("{tag}", user.getName() + "#" + user.getDiscriminator()).replace("{mention}", user.getAsMention()).replace("{user_id}", user.getId());
}
// Guild variables
if (guild != null) {
parsed = parsed.replace("{guild}", guild.getName()).replace("{region}", guild.getRegion().getName()).replace("{members}", String.valueOf(guild.getMemberCache().size())).replace("{owner}", guild.getOwner().getEffectiveName()).replace("{owner_id}", guild.getOwner().getUser().getId()).replace("{owner_mention}", guild.getOwner().getUser().getAsMention());
}
// Channel variables
if (channel != null) {
parsed = parsed.replace("{channel}", channel.getName()).replace("{channel_mention}", channel.getAsMention()).replace("{topic}", channel.getTopic()).replace("{category}", (channel.getParent() != null ? channel.getParent().getName() : "no category"));
}
// Utility variables
Matcher matcher = random.matcher(parsed);
if (matcher.find()) {
int min = 1;
int max = 100;
if (matcher.groupCount() >= 2) {
min = (matcher.group(3) != null ? GeneralUtils.getInt(matcher.group(2), min) : min);
max = (matcher.group(3) != null ? GeneralUtils.getInt(matcher.group(3), max) : max);
}
parsed = matcher.replaceAll(String.valueOf(RandomUtils.getInt(min, max)));
}
String[] variableArgs = args;
if (args == null || args.length == 0)
variableArgs = new String[] {};
matcher = arguments.matcher(parsed);
while (matcher.find()) {
int argIndex = GeneralUtils.getPositiveInt(matcher.group(1), 0);
String arg = matcher.groupCount() == 2 && matcher.group(2) != null ? matcher.group(2) : "William";
if (variableArgs.length >= argIndex)
arg = variableArgs[argIndex - 1];
parsed = matcher.replaceAll(arg);
}
return parsed;
}
use of net.dv8tion.jda.core.entities.Guild in project FlareBot by FlareBot.
the class ModlogEvents method onEvent.
@Override
public void onEvent(Event event) {
if (!(event instanceof GenericGuildEvent) && !(event instanceof GenericRoleEvent) && !(event instanceof GenericTextChannelEvent) && !(event instanceof GenericVoiceChannelEvent) && !(event instanceof GenericMessageEvent))
return;
Guild g = null;
if (event instanceof GenericGuildEvent && ((GenericGuildEvent) event).getGuild() != null)
g = ((GenericGuildEvent) event).getGuild();
else if (event instanceof GenericRoleEvent && ((GenericRoleEvent) event).getGuild() != null)
g = ((GenericRoleEvent) event).getGuild();
else if (event instanceof GenericTextChannelEvent && ((GenericTextChannelEvent) event).getGuild() != null)
g = ((GenericTextChannelEvent) event).getGuild();
else if (event instanceof GenericVoiceChannelEvent && ((GenericVoiceChannelEvent) event).getGuild() != null)
g = ((GenericVoiceChannelEvent) event).getGuild();
else if (event instanceof GenericMessageEvent && ((GenericMessageEvent) event).getGuild() != null)
g = ((GenericMessageEvent) event).getGuild();
if (g == null)
return;
GuildWrapper guildWrapper = FlareBotManager.instance().getGuild(g.getId());
if (guildWrapper == null)
return;
// GUILD
if (event instanceof GuildBanEvent)
onGuildBan((GuildBanEvent) event, guildWrapper);
else if (event instanceof GuildMemberJoinEvent)
onGuildMemberJoin((GuildMemberJoinEvent) event, guildWrapper);
else if (event instanceof GuildMemberLeaveEvent)
onGuildMemberLeave((GuildMemberLeaveEvent) event, guildWrapper);
else if (event instanceof GuildVoiceJoinEvent)
onGuildVoiceJoin((GuildVoiceJoinEvent) event, guildWrapper);
else if (event instanceof GuildVoiceLeaveEvent)
onGuildVoiceLeave((GuildVoiceLeaveEvent) event, guildWrapper);
else // ROLES
if (event instanceof RoleCreateEvent)
onRoleCreate((RoleCreateEvent) event, guildWrapper);
else if (event instanceof RoleDeleteEvent)
onRoleDelete((RoleDeleteEvent) event, guildWrapper);
else if (event instanceof GenericRoleUpdateEvent)
onGenericRoleUpdate((GenericRoleUpdateEvent) event, guildWrapper);
else if (event instanceof GuildMemberRoleAddEvent)
onGuildMemberRoleAdd((GuildMemberRoleAddEvent) event, guildWrapper);
else if (event instanceof GuildMemberRoleRemoveEvent)
onGuildMemberRoleRemove((GuildMemberRoleRemoveEvent) event, guildWrapper);
else // CHANNEL
if (event instanceof TextChannelCreateEvent)
onTextChannelCreate((TextChannelCreateEvent) event, guildWrapper);
else if (event instanceof VoiceChannelCreateEvent)
onVoiceChannelCreate((VoiceChannelCreateEvent) event, guildWrapper);
else if (event instanceof TextChannelDeleteEvent)
onTextChannelDelete((TextChannelDeleteEvent) event, guildWrapper);
else if (event instanceof VoiceChannelDeleteEvent)
onVoiceChannelDelete((VoiceChannelDeleteEvent) event, guildWrapper);
else /*else if (event instanceof GuildMessageReceivedEvent)
onGuildMessageReceived((GuildMessageReceivedEvent) event, guildWrapper);*/
if (event instanceof MessageUpdateEvent)
onMessageUpdate((MessageUpdateEvent) event, guildWrapper);
else if (event instanceof MessageDeleteEvent)
onMessageDelete((MessageDeleteEvent) event, guildWrapper);
else // GUILD
if (event instanceof GuildUpdateExplicitContentLevelEvent)
onGuildUpdateExplicitContentLevel((GuildUpdateExplicitContentLevelEvent) event, guildWrapper);
else if (event instanceof GuildMemberNickChangeEvent)
onGuildMemberNickChange((GuildMemberNickChangeEvent) event, guildWrapper);
else if (event instanceof GenericGuildUpdateEvent)
onGenericGuildUpdate((GenericGuildUpdateEvent) event, guildWrapper);
else if (event instanceof GuildVoiceMoveEvent)
onGuildVoiceMove((GuildVoiceMoveEvent) event, guildWrapper);
}
Aggregations