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); } }