use of net.kodehawa.mantarobot.modules.events.PostLoadEvent in project MantaroBot by Mantaro.
the class MusicCmds method onPostLoad.
@Command
public static void onPostLoad(PostLoadEvent e) {
OptsCmd.registerOption("reactionmenus:toggle", event -> {
DBGuild dbg = MantaroData.db().getGuild(event.getGuild());
GuildData data = dbg.getData();
boolean t = data.isReactionMenus();
data.setReactionMenus(!t);
event.getChannel().sendMessage(EmoteReference.CORRECT + "**Set reaction menues to: `" + !t + "`**").queue();
dbg.save();
});
OptsCmd.registerOption("fairqueue:max", (event, args) -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
if (args.length == 0) {
event.getChannel().sendMessage(EmoteReference.ERROR + "You need to specify a positive integer.").queue();
return;
}
String much = args[0];
final int fq;
try {
fq = Integer.parseInt(much);
} catch (Exception ex) {
event.getChannel().sendMessage(EmoteReference.ERROR + "Not a valid number").queue();
return;
}
guildData.setMaxFairQueue(fq);
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "Set max fair queue size to " + fq).queue();
});
OptsCmd.registerOption("musicannounce:toggle", event -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
boolean t1 = guildData.isMusicAnnounce();
guildData.setMusicAnnounce(!t1);
event.getChannel().sendMessage(EmoteReference.CORRECT + "Set no music announce to " + "**" + !t1 + "**").queue();
dbGuild.save();
});
OptsCmd.registerOption("music:channel", (event, args) -> {
if (args.length == 0) {
OptsCmd.onHelp(event);
return;
}
String channelName = String.join(" ", args);
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
VoiceChannel channel = null;
try {
channel = event.getGuild().getVoiceChannelById(channelName);
} catch (Exception ignored) {
}
if (channel == null) {
try {
List<VoiceChannel> voiceChannels = event.getGuild().getVoiceChannels().stream().filter(voiceChannel -> voiceChannel.getName().contains(channelName)).collect(Collectors.toList());
if (voiceChannels.size() == 0) {
event.getChannel().sendMessage(EmoteReference.ERROR + "I couldn't found a voice channel matching that" + " name or id").queue();
return;
} else if (voiceChannels.size() == 1) {
channel = voiceChannels.get(0);
guildData.setMusicChannel(channel.getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.OK + "Music Channel set to: " + channel.getName()).queue();
} else {
DiscordUtils.selectList(event, voiceChannels, voiceChannel -> String.format("%s (ID: %s)", voiceChannel.getName(), voiceChannel.getId()), s -> OptsCmd.getOpts().baseEmbed(event, "Select the Channel:").setDescription(s).build(), voiceChannel -> {
guildData.setMusicChannel(voiceChannel.getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.OK + "Music Channel set to: " + voiceChannel.getName()).queue();
});
}
} catch (Exception ex) {
log.warn("Error while setting voice channel", ex);
event.getChannel().sendMessage("I couldn't set the voice channel " + EmoteReference.SAD + " - try again " + "in a few minutes " + "-> " + ex.getClass().getSimpleName()).queue();
}
}
});
OptsCmd.registerOption("music:queuelimit", (event, args) -> {
if (args.length == 0) {
OptsCmd.onHelp(event);
return;
}
boolean isNumber = args[0].matches("^[0-9]*$");
if (!isNumber) {
event.getChannel().sendMessage(EmoteReference.ERROR + "That's not a valid number!").queue();
return;
}
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
try {
int finalSize = Integer.parseInt(args[0]);
int applySize = finalSize >= 300 ? 300 : finalSize;
guildData.setMusicQueueSizeLimit((long) applySize);
dbGuild.save();
event.getChannel().sendMessage(String.format(EmoteReference.MEGA + "The queue limit on this server is now " + "**%d** songs.", applySize)).queue();
return;
} catch (NumberFormatException ex) {
event.getChannel().sendMessage(EmoteReference.ERROR + "You're trying to set too high of a number (which won't" + " be applied anyway), silly").queue();
}
});
OptsCmd.registerOption("music:clear", (event) -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
guildData.setMusicSongDurationLimit(null);
guildData.setMusicChannel(null);
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "I can play music on all channels now").queue();
});
}
use of net.kodehawa.mantarobot.modules.events.PostLoadEvent in project MantaroBot by Mantaro.
the class ModerationCmds method onPostLoad.
@Command
public static void onPostLoad(PostLoadEvent e) {
OptsCmd.registerOption("modlog:blacklist", event -> {
List<User> mentioned = event.getMessage().getMentionedUsers();
if (mentioned.isEmpty()) {
event.getChannel().sendMessage(EmoteReference.ERROR + "**You need to specify the users to locally blacklist from mod logs.**").queue();
return;
}
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
List<String> toBlackList = mentioned.stream().map(ISnowflake::getId).collect(Collectors.toList());
String blacklisted = mentioned.stream().map(user -> user.getName() + "#" + user.getDiscriminator()).collect(Collectors.joining(","));
guildData.getModlogBlacklistedPeople().addAll(toBlackList);
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "Locally blacklisted users from mod-log: **" + blacklisted + "**").queue();
});
OptsCmd.registerOption("modlog:whitelist", event -> {
List<User> mentioned = event.getMessage().getMentionedUsers();
if (mentioned.isEmpty()) {
event.getChannel().sendMessage(EmoteReference.ERROR + "**You need to specify the users to locally un-blacklist from mod logs.**").queue();
return;
}
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
List<String> toUnBlacklist = mentioned.stream().map(ISnowflake::getId).collect(Collectors.toList());
String unBlacklisted = mentioned.stream().map(user -> user.getName() + "#" + user.getDiscriminator()).collect(Collectors.joining(","));
guildData.getModlogBlacklistedPeople().removeAll(toUnBlacklist);
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + "Locally un-blacklisted users from mod-log: **" + unBlacklisted + "**").queue();
});
OptsCmd.registerOption("linkprotection:toggle", event -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
boolean toggler = guildData.isLinkProtection();
guildData.setLinkProtection(!toggler);
event.getChannel().sendMessage(EmoteReference.CORRECT + "Set link protection to " + "`" + !toggler + "`").queue();
dbGuild.save();
});
OptsCmd.registerOption("slowmode:toggle", event -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
boolean toggler = guildData.isSlowMode();
guildData.setSlowMode(!toggler);
event.getChannel().sendMessage(EmoteReference.CORRECT + "Set slowmode chat to " + "`" + !toggler + "`").queue();
dbGuild.save();
});
OptsCmd.registerOption("antispam:toggle", event -> {
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
boolean toggler = guildData.isAntiSpam();
guildData.setAntiSpam(!toggler);
event.getChannel().sendMessage(EmoteReference.CORRECT + "Set anti-spam chat mode to " + "`" + !toggler + "`").queue();
dbGuild.save();
});
OptsCmd.registerOption("linkprotection:channel:allow", (event, args) -> {
if (args.length == 0) {
OptsCmd.onHelp(event);
return;
}
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
String channelName = args[0];
List<TextChannel> textChannels = event.getGuild().getTextChannels().stream().filter(textChannel -> textChannel.getName().contains(channelName)).collect(Collectors.toList());
if (textChannels.isEmpty()) {
event.getChannel().sendMessage(EmoteReference.ERROR + "There were no channels matching your search.").queue();
}
if (textChannels.size() <= 1) {
guildData.getLinkProtectionAllowedChannels().add(textChannels.get(0).getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + textChannels.get(0).getAsMention() + " can now be used to post discord invites.").queue();
return;
}
DiscordUtils.selectList(event, textChannels, textChannel -> String.format("%s (ID: %s)", textChannel.getName(), textChannel.getId()), s -> OptsCmd.getOpts().baseEmbed(event, "Select the Channel:").setDescription(s).build(), textChannel -> {
guildData.getLinkProtectionAllowedChannels().add(textChannel.getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.OK + textChannel.getAsMention() + " can now be used to send discord invites.").queue();
});
});
OptsCmd.registerOption("linkprotection:channel:disallow", (event, args) -> {
if (args.length == 0) {
OptsCmd.onHelp(event);
return;
}
DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
GuildData guildData = dbGuild.getData();
String channelName = args[0];
List<TextChannel> textChannels = event.getGuild().getTextChannels().stream().filter(textChannel -> textChannel.getName().contains(channelName)).collect(Collectors.toList());
if (textChannels.isEmpty()) {
event.getChannel().sendMessage(EmoteReference.ERROR + "There were no channels matching your search.").queue();
}
if (textChannels.size() <= 1) {
guildData.getLinkProtectionAllowedChannels().remove(textChannels.get(0).getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.CORRECT + textChannels.get(0).getAsMention() + " cannot longer be used to post discord invites.").queue();
return;
}
DiscordUtils.selectList(event, textChannels, textChannel -> String.format("%s (ID: %s)", textChannel.getName(), textChannel.getId()), s -> OptsCmd.getOpts().baseEmbed(event, "Select the Channel:").setDescription(s).build(), textChannel -> {
guildData.getLinkProtectionAllowedChannels().remove(textChannel.getId());
dbGuild.save();
event.getChannel().sendMessage(EmoteReference.OK + textChannel.getAsMention() + " cannot longer be used to send discord invites.").queue();
});
});
}
Aggregations