Remove ModCommand
This commit is contained in:
parent
ab72638a94
commit
ff626019b0
|
@ -1,111 +0,0 @@
|
|||
package moe.oko.Kiafumi.command.moderation;
|
||||
|
||||
import moe.oko.Kiafumi.Kiafumi;
|
||||
import moe.oko.Kiafumi.command.CommandClass;
|
||||
import moe.oko.Kiafumi.model.Server;
|
||||
import moe.oko.Kiafumi.util.CommandInfo;
|
||||
import moe.oko.Kiafumi.util.CommandType;
|
||||
import moe.oko.Kiafumi.util.EmbedUI;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static moe.oko.Kiafumi.Kiafumi.slashLog;
|
||||
|
||||
/**
|
||||
* For use on Guilds that tend to get TOS'd with ease. Also just basic server protection
|
||||
* @author Kay
|
||||
* (Requires Permission.ADMINISTRATOR to function properly)
|
||||
*/
|
||||
@Deprecated
|
||||
public class ModCommand extends CommandClass {
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Moderation";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void newCommand(String name, SlashCommandInteractionEvent e) {
|
||||
if(e.getGuild() == null) { return; }
|
||||
var server = Kiafumi.instance.getServerManager().getOrCreateServer(e.getGuild());
|
||||
switch (name) {
|
||||
case "mod":
|
||||
slashLog(e);
|
||||
e.deferReply(true).queue();
|
||||
if(server.isServerProtected()) {
|
||||
// Start check.
|
||||
if(server.getModRole() != null) {
|
||||
if(e.getMember().isOwner()) {
|
||||
e.getHook().sendMessage("*Owners cannot run this command.*").queue();
|
||||
return;
|
||||
}
|
||||
if(hasModRole(e.getMember(), server)) {
|
||||
if(isAdmin(e.getMember())) {
|
||||
// They already have the admin role... So we try removing our mod role in case thats it
|
||||
removeModRole(e.getMember());
|
||||
e.getHook().sendMessage("**Admin Mode Disabled.**").queue();
|
||||
} else {
|
||||
if(applyModRole(e.getMember())) {
|
||||
e.getHook().sendMessage("**Admin Mode Enabled.**").queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
e.getHook().sendMessage("*This server does not have a moderator role set.*").queue();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
e.getHook().sendMessage("*This server does not have protection enabled. This command will not function.*").queue();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAdmin(Member member) {
|
||||
return member.hasPermission(Permission.ADMINISTRATOR);
|
||||
}
|
||||
|
||||
public boolean hasModRole(Member member, Server server) {
|
||||
return member.getRoles().contains(Kiafumi.JDA.getRoleById(server.getModRole()));
|
||||
}
|
||||
|
||||
public boolean applyModRole(Member member) {
|
||||
if(member.getGuild().getRolesByName("senior citizen", true).get(0) != null) {
|
||||
member.getGuild().addRoleToMember(member, member.getGuild().getRolesByName("senior citizen", true).get(0)).queue();
|
||||
return true;
|
||||
} else {
|
||||
// Create, role doesn't exist
|
||||
member.getGuild().createRole()
|
||||
.setColor(EmbedUI.INFO)
|
||||
.setName("senior citizen")
|
||||
.setPermissions(Permission.ADMINISTRATOR)
|
||||
.setMentionable(false)
|
||||
.setHoisted(true)
|
||||
.complete();
|
||||
// should be created so rerun
|
||||
return applyModRole(member);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeModRole(Member member) {
|
||||
if(member.getGuild().getRolesByName("senior citizen", true).get(0) != null) {
|
||||
member.getGuild().removeRoleFromMember(member, member.getGuild().getRolesByName("senior citizen", true).get(0)).queue();
|
||||
} // Role must've been deleted otherwise, :thinking:
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CommandInfo> getSlashCommandInfo() {
|
||||
List<CommandInfo> cil = new ArrayList<>();
|
||||
cil.add(new CommandInfo("mod", "Toggles administrative permissions you.", CommandType.COMMAND));
|
||||
return cil;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue