MissingIdentifier/src/main/java/Modules/Welcome.java

112 lines
4.4 KiB
Java

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 + "`";
}
}