112 lines
4.4 KiB
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 + "`";
|
|
}
|
|
}
|