package Modules; import Controll.GuildController; import Controll.SuperModule; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.events.GenericEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import org.json.simple.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Welcome extends SuperModule { public static final String command = "welcome"; private final Logger logger = LoggerFactory.getLogger(Welcome.class); private String welcomeMessage; private long welcomeChannel; public Welcome(GuildController guildController, JSONObject config){ super(command, guildController, config); //long welcomeChannel, String welcomeMessage if (!getConfig().containsKey("welcomeMessage")){ getConfig().put("welcomeMessage", "Hi $USER"); safeConfig(getConfig()); } if (!getConfig().containsKey("welcomeChannel")){ getConfig().put("welcomeChannel", "123"); safeConfig(getConfig()); } //get welcome message this.welcomeMessage = config.get("welcomeMessage").toString(); this.welcomeChannel = Long.parseLong(config.get("welcomeChannel").toString()); } @Override public String getCommand() { return command; } @Override public String getDescription() { return "Welcomes new Members\n" + "`welcome SetWelcomeMessage MESSAGE` set Welcome message use `$USER` to mention the new user\n" + "`welcome SetWelcomeChannel #CHANNEL` set Channel where new members are welcomed"; } @Override public void execute(GenericEvent event) { /////////////////////////////////// // RESPONDE TO JOIN /////////////////////////////////// if (event instanceof GuildMemberJoinEvent){ logger.debug("Welcome triggered"); GuildMemberJoinEvent thisEvent = (GuildMemberJoinEvent) event; EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Welcome in " + thisEvent.getGuild().getName() + " !"); eb.setDescription(welcomeMessage.replaceAll("\\$USER", thisEvent.getUser().getName())); thisEvent.getGuild().getTextChannelById(welcomeChannel).sendMessage(eb.build()).queue(); /////////////////////////////////// // SETUP /////////////////////////////////// } else if (event instanceof GuildMessageReceivedEvent) { GuildMessageReceivedEvent thisEvent = (GuildMessageReceivedEvent) event; if (!isCommand(thisEvent.getMessage())) return; if(!checkForAdmin(thisEvent.getMember())) { //STUB } else if (checkForCommand(thisEvent.getMessage().getContentRaw(), "SetWelcomeMessage")) { getConfig().remove("welcomeMessage"); getConfig().put("welcomeMessage", thisEvent.getMessage().getContentRaw() .replaceAll("(?is:" + getGuildController().getPREFIX() + command + " SetWelcomeMessage )","")); safeConfig(getConfig()); thisEvent.getChannel().sendMessage("Set Welcomemessage to: `" + getConfig().get("welcomeMessage").toString() + "`").queue(); } else if (checkForCommand(thisEvent.getMessage().getContentRaw(), "SetWelcomeChannel")) { if (thisEvent.getMessage().getMentionedChannels().size() == 1){ getConfig().remove("welcomeChannel"); getConfig().put("welcomeChannel", thisEvent.getMessage().getMentionedChannels().get(0).getIdLong()); safeConfig(getConfig()); thisEvent.getChannel().sendMessage("Set Welcomechannel to: " + thisEvent.getGuild().getGuildChannelById(Long.parseLong(getConfig().get("welcomeChannel").toString())).getName()).queue(); } else { thisEvent.getChannel().sendMessage("please mention a specific channel!").queue(); } } } } @Override public String showSettings() { return "WELCOME-CHANNEL: `" + ((getGuildController().getJda().getGuildChannelById(welcomeChannel) == null) ? "none" : getGuildController().getJda().getGuildChannelById(welcomeChannel).getName()) + "`\n" + "WELCOME-MESSAGE: `" + welcomeMessage + "`"; } }