117 lines
4.3 KiB
Java
117 lines
4.3 KiB
Java
package Modules;
|
|
|
|
import Controll.GuildController;
|
|
import Controll.SuperModule;
|
|
import net.dv8tion.jda.api.EmbedBuilder;
|
|
import net.dv8tion.jda.api.entities.Member;
|
|
import net.dv8tion.jda.api.events.GenericEvent;
|
|
import net.dv8tion.jda.api.events.guild.GenericGuildEvent;
|
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
|
import org.json.simple.JSONObject;
|
|
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.Timer;
|
|
import java.util.TimerTask;
|
|
|
|
public class Annoy extends SuperModule{
|
|
|
|
private String message;
|
|
|
|
public static final String COMMAND = "annoy";
|
|
|
|
public Annoy(GuildController guildController, JSONObject config){
|
|
super(COMMAND, guildController, config);
|
|
|
|
if (!config.containsKey("message")){
|
|
getConfig().put("message", "Hay, could you may self assign a role in $GUILD ?");
|
|
safeConfig(getConfig());
|
|
}
|
|
|
|
this.message = getConfig().get("message").toString();
|
|
keepPoking();
|
|
}
|
|
|
|
@Override
|
|
public String getCommand() {
|
|
return Annoy.COMMAND;
|
|
}
|
|
|
|
@Override
|
|
public String getDescription() {
|
|
return "annoy lazy people until they pick some roles :b\n" +
|
|
"`annoy setText` set Text people get annoyed with" +
|
|
"`$GUILD` and `$USER` gets replaced";
|
|
}
|
|
|
|
@Override
|
|
public void execute(GenericEvent genericEvent) {
|
|
|
|
if (!(genericEvent instanceof GenericGuildEvent))
|
|
return;
|
|
|
|
GenericGuildEvent event = (GenericGuildEvent) genericEvent;
|
|
|
|
if (event instanceof GuildMessageReceivedEvent){
|
|
GuildMessageReceivedEvent thisEvent = (GuildMessageReceivedEvent) event;
|
|
|
|
if (!isCommand(thisEvent.getMessage()))
|
|
return;
|
|
|
|
if (checkForCommand(thisEvent.getMessage().getContentRaw(), "setText")){
|
|
if (checkForAdmin(thisEvent.getMember())){
|
|
getConfig().replace("message",
|
|
thisEvent.getMessage().getContentRaw().replaceAll("(?is:^" + getGuildController().getPREFIX() + COMMAND + " setText )", ""));
|
|
safeConfig(getConfig());
|
|
|
|
thisEvent.getChannel().sendMessage("Set Annoy text to: `" +
|
|
thisEvent.getMessage().getContentRaw().replaceAll("(?is:^" + getGuildController().getPREFIX() + COMMAND + " setText )", "")
|
|
+ "`").queue();
|
|
} else {
|
|
thisEvent.getChannel().sendMessage("I am afraid, you are not allowed todo that!").queue();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String showSettings() {
|
|
return "MESSAGE: `" + message + "`";
|
|
}
|
|
|
|
private void keepPoking(){
|
|
|
|
TimerTask repeatedTask = new TimerTask() {
|
|
public void run() {
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.setTime(new Date());
|
|
int hour = cal.get(Calendar.HOUR_OF_DAY);
|
|
int minutes = cal.get(Calendar.MINUTE);
|
|
|
|
if(hour == 9 && minutes >= 30)
|
|
|
|
for(Member m : getGuildController().getJda().getGuildById(getGuildController().getGUILD_ID()).getMembers()){
|
|
if(m.getRoles().isEmpty()){
|
|
m.getUser().openPrivateChannel().queue(
|
|
privateChannel -> privateChannel.sendMessage(
|
|
new EmbedBuilder().setDescription(
|
|
message
|
|
.replaceAll("\\$GUILD", getGuildController().getJda().getGuildById(getGuildController().getGUILD_ID()).getName())
|
|
.replaceAll("\\$USER", m.getEffectiveName())
|
|
).setTimestamp(new Date().toInstant()).setImage(
|
|
getGuildController().getJda().getGuildById(getGuildController().getGUILD_ID()).getIconUrl()
|
|
).build()).queue()
|
|
);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
Timer timer = new Timer("AnnoyTimer");
|
|
long delay = 1000L;
|
|
long period = 1000L * 60L * 30L;
|
|
timer.scheduleAtFixedRate(repeatedTask, delay, period);
|
|
}
|
|
}
|