97 lines
3.2 KiB
Java
97 lines
3.2 KiB
Java
|
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()) + "`";
|
||
|
}
|
||
|
}
|