package Modules; import Controll.GuildController; import Controll.SuperModule; import net.dv8tion.jda.api.events.GenericEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import org.json.simple.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.Color; import java.util.Random; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; /** * @author https://www.Hiajen.de */ public class Shuffle extends SuperModule{ public static final String command = "shufflerole"; private static final String desc = "changes color of shufflerole randomly\n" + "`shufflerole setRole @ROLE` Set role to shuffle"; private final Logger logger = LoggerFactory.getLogger(Shuffle.class); private long role; public Shuffle(GuildController guildController, JSONObject config){ super(command, guildController, config); if (!config.containsKey("role")){ getConfig().put("role", "123"); safeConfig(getConfig()); } // JDA api, long role, long guild this.role = Long.parseLong(getConfig().get("role").toString()); shuffleColor(); } private void shuffleColor(){ TimerTask repeatedTask = new TimerTask() { public void run() { //logger.debug("shuffle role color"); Random r = new Random(); getGuildController().getJda().getGuildById(getGuildController().getGUILD_ID()).getRoleById(role) .getManager().setColor(new Color(r.nextFloat(),r.nextFloat(),r.nextFloat())).queue(); } }; Timer timer = new Timer(); timer.schedule(repeatedTask, TimeUnit.SECONDS.toMillis(10), TimeUnit.SECONDS.toMillis(120)); } @Override public String getCommand() { return command; } @Override public String getDescription() { return desc; } @Override public void execute(GenericEvent event) { if (event instanceof GuildMessageReceivedEvent){ GuildMessageReceivedEvent thisEvent = (GuildMessageReceivedEvent) event; if (!isCommand(thisEvent.getMessage())) return; if (checkForCommand(thisEvent.getMessage().getContentRaw(), "setRole") && checkForAdmin(thisEvent.getMember())){ if (thisEvent.getMessage().getMentionedRoles().size() == 1){ getConfig().replace("role", thisEvent.getMessage().getMentionedRoles().get(0).getIdLong()); role = thisEvent.getMessage().getMentionedRoles().get(0).getIdLong(); thisEvent.getChannel().sendMessage("okay changed Role!").queue(); safeConfig(getConfig()); } else { thisEvent.getChannel().sendMessage("Please mention one Role!").queue(m -> m.delete().queueAfter(1, TimeUnit.MINUTES)); } } } } @Override public String showSettings() { return "ROLE: `" + ((getGuildController().getJda().getRoleById(role) == null) ? "none" : getGuildController().getJda().getRoleById(role).getName()) + "`"; } }