Implemented COmmandType and ReactionManager
This commit is contained in:
parent
b24462e55c
commit
e0d66b816d
@ -4,12 +4,27 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||||
import io.rixa.bot.commands.cmds.admin.ConfigCommand;
|
import io.rixa.bot.commands.cmds.admin.ConfigCommand;
|
||||||
import io.rixa.bot.commands.cmds.admin.PMCommand;
|
import io.rixa.bot.commands.cmds.admin.PMCommand;
|
||||||
import io.rixa.bot.commands.cmds.general.*;
|
import io.rixa.bot.commands.cmds.general.AdviceCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.FeaturesCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.HelpCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.InfoCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.LeaderboardsCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.MinecraftCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.ModulesCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.MusicCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.PingCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.QuoteCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.RankCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.RoleMemberList;
|
||||||
|
import io.rixa.bot.commands.cmds.general.ServerInfoCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.UrbanDictionaryCommand;
|
||||||
|
import io.rixa.bot.commands.cmds.general.YoutubeCommand;
|
||||||
import io.rixa.bot.commands.cmds.moderator.BanCommand;
|
import io.rixa.bot.commands.cmds.moderator.BanCommand;
|
||||||
import io.rixa.bot.commands.cmds.moderator.ClearCommand;
|
import io.rixa.bot.commands.cmds.moderator.ClearCommand;
|
||||||
import io.rixa.bot.commands.cmds.moderator.MuteCommand;
|
import io.rixa.bot.commands.cmds.moderator.MuteCommand;
|
||||||
import io.rixa.bot.commands.cmds.other.ShutdownCommand;
|
import io.rixa.bot.commands.cmds.other.ShutdownCommand;
|
||||||
import io.rixa.bot.commands.handler.CommandHandler;
|
import io.rixa.bot.commands.handler.CommandHandler;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.data.config.Configuration;
|
import io.rixa.bot.data.config.Configuration;
|
||||||
import io.rixa.bot.data.storage.DatabaseAdapter;
|
import io.rixa.bot.data.storage.DatabaseAdapter;
|
||||||
@ -23,6 +38,14 @@ import io.rixa.bot.guild.manager.GuildManager;
|
|||||||
import io.rixa.bot.user.RixaUser;
|
import io.rixa.bot.user.RixaUser;
|
||||||
import io.rixa.bot.user.manager.UserManager;
|
import io.rixa.bot.user.manager.UserManager;
|
||||||
import io.rixa.bot.utils.FileUtils;
|
import io.rixa.bot.utils.FileUtils;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import javax.security.auth.login.LoginException;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.dv8tion.jda.core.AccountType;
|
import net.dv8tion.jda.core.AccountType;
|
||||||
import net.dv8tion.jda.core.JDA;
|
import net.dv8tion.jda.core.JDA;
|
||||||
@ -31,148 +54,162 @@ import net.dv8tion.jda.core.OnlineStatus;
|
|||||||
import net.dv8tion.jda.core.entities.Game;
|
import net.dv8tion.jda.core.entities.Game;
|
||||||
import net.dv8tion.jda.core.entities.Game.GameType;
|
import net.dv8tion.jda.core.entities.Game.GameType;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.exceptions.RateLimitedException;
|
|
||||||
import net.dv8tion.jda.core.hooks.AnnotatedEventManager;
|
import net.dv8tion.jda.core.hooks.AnnotatedEventManager;
|
||||||
|
|
||||||
import javax.security.auth.login.LoginException;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
public class Rixa {
|
public class Rixa {
|
||||||
|
|
||||||
private static Rixa instance;
|
private static Rixa instance;
|
||||||
@Getter
|
private static long timeUp;
|
||||||
private CommandHandler commandHandler;
|
@Getter
|
||||||
@Getter
|
private CommandHandler commandHandler;
|
||||||
private Configuration configuration;
|
@Getter
|
||||||
@Getter
|
private Configuration configuration;
|
||||||
private ObjectMapper objectMapper;
|
@Getter
|
||||||
@Getter
|
private ObjectMapper objectMapper;
|
||||||
private List<JDA> shardList;
|
@Getter
|
||||||
@Getter
|
private List<JDA> shardList;
|
||||||
private File defaultPath;
|
@Getter
|
||||||
@Getter
|
private File defaultPath;
|
||||||
private Logger logger;
|
@Getter
|
||||||
private static long timeUp;
|
private Logger logger;
|
||||||
|
|
||||||
private Rixa() {
|
private Rixa() {
|
||||||
instance = this;
|
instance = this;
|
||||||
logger = Logger.getLogger(Rixa.class.getCanonicalName());
|
logger = Logger.getLogger(Rixa.class.getCanonicalName());
|
||||||
objectMapper = new ObjectMapper(new YAMLFactory());
|
objectMapper = new ObjectMapper(new YAMLFactory());
|
||||||
defaultPath = new File("Rixa/");
|
defaultPath = new File("Rixa/");
|
||||||
commandHandler = new CommandHandler();
|
commandHandler = new CommandHandler();
|
||||||
shardList = new ArrayList<>();
|
shardList = new ArrayList<>();
|
||||||
defaultPath.mkdirs();
|
defaultPath.mkdirs();
|
||||||
loadConfiguration();
|
loadConfiguration();
|
||||||
registerCommands();
|
registerCommands();
|
||||||
loadJDA();
|
loadJDA();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getTimeUp() {
|
public static Rixa getInstance() {
|
||||||
return timeUp;
|
return (instance == null) ? new Rixa() : instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadJDA() {
|
public long getTimeUp() {
|
||||||
JDABuilder jda = new JDABuilder(AccountType.BOT)
|
return timeUp;
|
||||||
.setToken(configuration.getToken())
|
}
|
||||||
.setGame(Game.of(GameType.WATCHING, configuration.getBotGame()))
|
|
||||||
.setEventManager(new AnnotatedEventManager())
|
|
||||||
.addEventListener(new ReadyListener(), new BotJoinListener(), new MessageListener(),
|
|
||||||
new UserListener())
|
|
||||||
.setAutoReconnect(true)
|
|
||||||
.setAudioEnabled(true)
|
|
||||||
.setEnableShutdownHook(false)
|
|
||||||
.setStatus(OnlineStatus.ONLINE);
|
|
||||||
for (int i = 0; i < configuration.getShards(); i++) {
|
|
||||||
try {
|
|
||||||
getLogger().info("Loading Shard #" + (i + 1) + "!");
|
|
||||||
getShardList().add(jda.useSharding(i, configuration.getShards()).buildBlocking());
|
|
||||||
getLogger().info("Shard #" + (i + 1) + " has been loaded");
|
|
||||||
Thread.sleep(5000);
|
|
||||||
} catch (InterruptedException | LoginException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread(() ->
|
|
||||||
getShardList().forEach(jdaInstance -> {
|
|
||||||
UserManager.getInstance().getUserMap().values().forEach(RixaUser::save);
|
|
||||||
jdaInstance.getGuilds().forEach((Guild guild) -> {
|
|
||||||
System.out.println("Saving " + guild.getName() + ": " + guild.getId());
|
|
||||||
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(guild);
|
|
||||||
rixaGuild.save();
|
|
||||||
});
|
|
||||||
jdaInstance.shutdown();
|
|
||||||
})));
|
|
||||||
timeUp = System.currentTimeMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void registerCommands() {
|
private void loadJDA() {
|
||||||
this.commandHandler.registerCommands(
|
JDABuilder jda = new JDABuilder(AccountType.BOT)
|
||||||
new AdviceCommand("advice", RixaPermission.NONE, "Receive advice from the great beyond..."),
|
.setToken(configuration.getToken())
|
||||||
new BanCommand("ban", RixaPermission.BAN_MEMBER, "Ban a player from your server."),
|
.setGame(Game.of(GameType.WATCHING, configuration.getBotGame()))
|
||||||
new ClearCommand("clear", RixaPermission.CLEAR_CHAT, "Clear Chat!", Arrays.asList("deleemessages", "cmessages")),
|
.setEventManager(new AnnotatedEventManager())
|
||||||
new ConfigCommand("config", RixaPermission.ACCESS_CONFIG, "Access the config menu"),
|
.addEventListener(new ReadyListener(), new BotJoinListener(), new MessageListener(),
|
||||||
new FeaturesCommand("features", RixaPermission.NONE, "List Rixa's official features!"),
|
new UserListener())
|
||||||
new HelpCommand("help", RixaPermission.NONE, "Review commands and its usages!"),
|
.setAutoReconnect(true)
|
||||||
new InfoCommand("info", RixaPermission.NONE, "Review information about a user or Rixa!"),
|
.setAudioEnabled(true)
|
||||||
new MinecraftCommand("minecraft", RixaPermission.NONE, "See minecraft server info", Collections.singletonList("mc")),
|
.setEnableShutdownHook(false)
|
||||||
new ModulesCommand("modules", RixaPermission.NONE, "List both enabled & disabled features of Rixa for this server!"),
|
.setStatus(OnlineStatus.ONLINE);
|
||||||
new MusicCommand("music", RixaPermission.NONE, "Listen to music right from discord!"),
|
for (int i = 0; i < configuration.getShards(); i++) {
|
||||||
new MuteCommand("mute", RixaPermission.MUTE, "Mute those pesky children!"),
|
try {
|
||||||
new PingCommand("ping", RixaPermission.NONE, "Check Rixa's ping!"),
|
getLogger().info("Loading Shard #" + (i + 1) + "!");
|
||||||
new PMCommand("pm", RixaPermission.PM_MESSAGE, "Private Message all users with a specific role!"),
|
getShardList().add(jda.useSharding(i, configuration.getShards()).buildBlocking());
|
||||||
new QuoteCommand("quote", RixaPermission.NONE, "Receive a quote from some of the greatest authors!"),
|
getLogger().info("Shard #" + (i + 1) + " has been loaded");
|
||||||
new RoleMemberList("listmembers", RixaPermission.NONE, "List all users with a specific role!"),
|
Thread.sleep(5000);
|
||||||
new ServerInfoCommand("serverinfo", RixaPermission.NONE, "Review information about the server!"),
|
} catch (InterruptedException | LoginException e) {
|
||||||
new ShutdownCommand("shutdown", RixaPermission.NONE, "Shutdown Rixa!"),
|
e.printStackTrace();
|
||||||
new UrbanDictionaryCommand("ud", RixaPermission.NONE, "Look up urban definitions!"),
|
}
|
||||||
new YoutubeCommand("youtube", RixaPermission.NONE, "Search for music on youtube!"),
|
|
||||||
new LeaderboardsCommand("leaderboards", RixaPermission.NONE, "Look at the levels leaderboards!"),
|
|
||||||
new RankCommand("rank", RixaPermission.NONE, "Check your rank!"));
|
|
||||||
}
|
}
|
||||||
|
Runtime.getRuntime().addShutdownHook(new Thread(() ->
|
||||||
|
getShardList().forEach(jdaInstance -> {
|
||||||
|
UserManager.getInstance().getUserMap().values().forEach(RixaUser::save);
|
||||||
|
jdaInstance.getGuilds().forEach((Guild guild) -> {
|
||||||
|
System.out.println("Saving " + guild.getName() + ": " + guild.getId());
|
||||||
|
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(guild);
|
||||||
|
rixaGuild.save();
|
||||||
|
});
|
||||||
|
jdaInstance.shutdown();
|
||||||
|
})));
|
||||||
|
timeUp = System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
private void loadConfiguration() {
|
private void registerCommands() {
|
||||||
try {
|
this.commandHandler.registerCommands(
|
||||||
if (FileUtils.saveResource("config.yml", false)) {
|
new AdviceCommand("advice", RixaPermission.NONE, "Receive advice from the great beyond...",
|
||||||
logger.info("Shutting down Rixa. Please edit configuration");
|
CommandType.USER),
|
||||||
System.exit(0);
|
new FeaturesCommand("features", RixaPermission.NONE, "List Rixa's official features!",
|
||||||
}
|
CommandType.USER),
|
||||||
File file = new File(defaultPath.getPath() + "/config.yml");
|
new HelpCommand("help", RixaPermission.NONE, "Review commands and its usages!",
|
||||||
configuration = objectMapper.readValue(file, Configuration.class);
|
CommandType.USER),
|
||||||
logger.info("Configuration successfully loaded.");
|
new InfoCommand("info", RixaPermission.NONE, "Review information about a user or Rixa!",
|
||||||
DatabaseAdapter.getInstance().check();
|
CommandType.USER),
|
||||||
Arrays.stream(DatabaseTables.values()).forEach(databaseTables -> {
|
new MinecraftCommand("minecraft", RixaPermission.NONE, "See minecraft server info",
|
||||||
System.out.println("Checking database table (creating if needed): " + databaseTables.toString());
|
CommandType.USER, Collections.singletonList("mc")),
|
||||||
DatabaseAdapter.getInstance().get().update(databaseTables.getQuery());
|
new ModulesCommand("modules", RixaPermission.NONE,
|
||||||
System.out.println("Done checking " + databaseTables.toString());
|
"List both enabled & disabled features of Rixa for this server!", CommandType.USER),
|
||||||
});
|
new MusicCommand("music", RixaPermission.NONE, "Listen to music right from discord!",
|
||||||
} catch (IOException e) {
|
CommandType.USER),
|
||||||
logger.severe("Could not properly load configuration file!.");
|
new PingCommand("ping", RixaPermission.NONE, "Check Rixa's ping!", CommandType.USER),
|
||||||
e.printStackTrace();
|
new ServerInfoCommand("serverinfo", RixaPermission.NONE,
|
||||||
}
|
"Review information about the server!", CommandType.USER),
|
||||||
}
|
new QuoteCommand("quote", RixaPermission.NONE,
|
||||||
|
"Receive a quote from some of the greatest authors!", CommandType.USER),
|
||||||
|
new RankCommand("rank", RixaPermission.NONE, "Check your rank!", CommandType.USER),
|
||||||
|
new LeaderboardsCommand("leaderboards", RixaPermission.NONE,
|
||||||
|
"Look at the levels leaderboards!", CommandType.USER),
|
||||||
|
new YoutubeCommand("youtube", RixaPermission.NONE, "Search for music on youtube!",
|
||||||
|
CommandType.USER),
|
||||||
|
new UrbanDictionaryCommand("ud", RixaPermission.NONE, "Look up urban definitions!",
|
||||||
|
CommandType.USER),
|
||||||
|
|
||||||
public Guild getGuildById(String id) {
|
new BanCommand("ban", RixaPermission.BAN_MEMBER, "Ban a player from your server.",
|
||||||
Guild guild = null;
|
CommandType.STAFF),
|
||||||
for (JDA jda : Rixa.getInstance().getShardList()) {
|
new ClearCommand("clear", RixaPermission.CLEAR_CHAT, "Clear Chat!", CommandType.STAFF,
|
||||||
if (jda.getGuilds().size() == 0 || jda.getGuildById(id) == null) continue;
|
Arrays.asList("deleemessages", "cmessages")),
|
||||||
guild = jda.getGuildById(id);
|
new ConfigCommand("config", RixaPermission.ACCESS_CONFIG, "Access the config menu",
|
||||||
break;
|
CommandType.STAFF),
|
||||||
}
|
new MuteCommand("mute", RixaPermission.MUTE, "Mute those pesky children!",
|
||||||
if (guild != null) return guild;
|
CommandType.STAFF),
|
||||||
throw new NullPointerException("Guild not found.");
|
new PMCommand("pm", RixaPermission.PM_MESSAGE,
|
||||||
}
|
"Private Message all users with a specific role!", CommandType.STAFF),
|
||||||
|
new RoleMemberList("listmembers", RixaPermission.NONE,
|
||||||
|
"List all users with a specific role!", CommandType.STAFF),
|
||||||
|
new ShutdownCommand("shutdown", RixaPermission.NONE, "Shutdown Rixa!", CommandType.OWNER));
|
||||||
|
}
|
||||||
|
|
||||||
public static Rixa getInstance() {
|
private void loadConfiguration() {
|
||||||
return (instance == null) ? new Rixa() : instance;
|
try {
|
||||||
|
if (FileUtils.saveResource("config.yml", false)) {
|
||||||
|
logger.info("Shutting down Rixa. Please edit configuration");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
File file = new File(defaultPath.getPath() + "/config.yml");
|
||||||
|
configuration = objectMapper.readValue(file, Configuration.class);
|
||||||
|
logger.info("Configuration successfully loaded.");
|
||||||
|
DatabaseAdapter.getInstance().check();
|
||||||
|
Arrays.stream(DatabaseTables.values()).forEach(databaseTables -> {
|
||||||
|
System.out
|
||||||
|
.println("Checking database table (creating if needed): " + databaseTables.toString());
|
||||||
|
DatabaseAdapter.getInstance().get().update(databaseTables.getQuery());
|
||||||
|
System.out.println("Done checking " + databaseTables.toString());
|
||||||
|
});
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.severe("Could not properly load configuration file!.");
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void close() {
|
public Guild getGuildById(String id) {
|
||||||
shardList.forEach(JDA::shutdown);
|
Guild guild = null;
|
||||||
|
for (JDA jda : Rixa.getInstance().getShardList()) {
|
||||||
|
if (jda.getGuilds().size() == 0 || jda.getGuildById(id) == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
guild = jda.getGuildById(id);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (guild != null) {
|
||||||
|
return guild;
|
||||||
|
}
|
||||||
|
throw new NullPointerException("Guild not found.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() {
|
||||||
|
shardList.forEach(JDA::shutdown);
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,42 +1,59 @@
|
|||||||
package io.rixa.bot.commands;
|
package io.rixa.bot.commands;
|
||||||
|
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public abstract class Command {
|
public abstract class Command {
|
||||||
|
|
||||||
@Getter @Setter private String command, description;
|
@Getter
|
||||||
@Getter @Setter private RixaPermission permission;
|
@Setter
|
||||||
@Getter @Setter private List<String> aliases;
|
private String command, description;
|
||||||
public Command(String command) {
|
@Getter
|
||||||
this(command, RixaPermission.NONE, "Undefined", Collections.emptyList());
|
@Setter
|
||||||
}
|
private RixaPermission permission;
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private List<String> aliases;
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private CommandType commandType;
|
||||||
|
|
||||||
public Command(String command, RixaPermission rixaPermission) {
|
public Command(String command) {
|
||||||
this(command, rixaPermission, "Undefined", Collections.emptyList());
|
this(command, RixaPermission.NONE, "Undefined", CommandType.USER, Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Command(String command, RixaPermission rixaPermission, String description) {
|
public Command(String command, RixaPermission rixaPermission) {
|
||||||
this(command, rixaPermission, description, Collections.emptyList());
|
this(command, rixaPermission, "Undefined", CommandType.USER, Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Command(String command, RixaPermission rixaPermission, String description, List<String> aliases) {
|
public Command(String command, RixaPermission rixaPermission, String description) {
|
||||||
setCommand(command);
|
this(command, rixaPermission, description, CommandType.USER, Collections.emptyList());
|
||||||
setPermission(rixaPermission);
|
}
|
||||||
setDescription(description);
|
|
||||||
setAliases(aliases);
|
|
||||||
}
|
|
||||||
|
|
||||||
// public abstract void execute(GuildMessageReceivedEvent event);
|
public Command(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
|
this(command, rixaPermission, description, commandType, Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void execute(String commandLabel, Guild guild, Member member, TextChannel channel, String[] args) throws IOException;
|
public Command(String command, RixaPermission rixaPermission, String description,
|
||||||
|
CommandType commandType, List<String> aliases) {
|
||||||
|
setCommand(command);
|
||||||
|
setPermission(rixaPermission);
|
||||||
|
setDescription(description);
|
||||||
|
setAliases(aliases);
|
||||||
|
this.commandType = commandType;
|
||||||
|
}
|
||||||
|
|
||||||
|
// public abstract void execute(GuildMessageReceivedEvent event);
|
||||||
|
|
||||||
|
public abstract void execute(String commandLabel, Guild guild, Member member, TextChannel channel,
|
||||||
|
String[] args) throws IOException;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.admin;
|
package io.rixa.bot.commands.cmds.admin;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -22,8 +23,8 @@ public class ConfigCommand extends Command {
|
|||||||
|
|
||||||
private Pagination pagination;
|
private Pagination pagination;
|
||||||
|
|
||||||
public ConfigCommand(String command, RixaPermission rixaPermission, String description) {
|
public ConfigCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
|
|
||||||
pagination = new Pagination(Arrays.asList(
|
pagination = new Pagination(Arrays.asList(
|
||||||
"%pconfig set greetings ; Set channel where greeting messages are announced!",
|
"%pconfig set greetings ; Set channel where greeting messages are announced!",
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.admin;
|
package io.rixa.bot.commands.cmds.admin;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.DiscordUtils;
|
import io.rixa.bot.utils.DiscordUtils;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
@ -14,10 +15,8 @@ import net.dv8tion.jda.core.requests.ErrorResponse;
|
|||||||
|
|
||||||
public class PMCommand extends Command {
|
public class PMCommand extends Command {
|
||||||
|
|
||||||
@Getter private RixaPermission rixaPermission;
|
public PMCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
public PMCommand(String command, RixaPermission rixaPermission, String description) {
|
super(command, rixaPermission, description, commandType);
|
||||||
super(command, rixaPermission, description);
|
|
||||||
this.rixaPermission = rixaPermission;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import io.rixa.bot.utils.WebUtil;
|
import io.rixa.bot.utils.WebUtil;
|
||||||
@ -14,8 +15,8 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class AdviceCommand extends Command {
|
public class AdviceCommand extends Command {
|
||||||
|
|
||||||
public AdviceCommand(String command, RixaPermission rixaPermission, String description) {
|
public AdviceCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -16,8 +17,8 @@ public class FeaturesCommand extends Command {
|
|||||||
"Role Management", "Fun Commands", "Custom Commands", "Games", "& more."
|
"Role Management", "Fun Commands", "Custom Commands", "Games", "& more."
|
||||||
};
|
};
|
||||||
|
|
||||||
public FeaturesCommand(String command, RixaPermission rixaPermission, String description) {
|
public FeaturesCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import net.dv8tion.jda.core.EmbedBuilder;
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
@ -14,8 +15,8 @@ import net.dv8tion.jda.core.exceptions.PermissionException;
|
|||||||
|
|
||||||
public class HelpCommand extends Command {
|
public class HelpCommand extends Command {
|
||||||
|
|
||||||
public HelpCommand(String command, RixaPermission rixaPermission, String description) {
|
public HelpCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,6 +2,7 @@ package io.rixa.bot.commands.cmds.general;
|
|||||||
|
|
||||||
import io.rixa.bot.Rixa;
|
import io.rixa.bot.Rixa;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.DiscordUtils;
|
import io.rixa.bot.utils.DiscordUtils;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
@ -20,8 +21,8 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
public class InfoCommand extends Command {
|
public class InfoCommand extends Command {
|
||||||
|
|
||||||
public InfoCommand(String command, RixaPermission rixaPermission, String description) {
|
public InfoCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -20,8 +21,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class LeaderboardsCommand extends Command {
|
public class LeaderboardsCommand extends Command {
|
||||||
|
|
||||||
public LeaderboardsCommand(String command, RixaPermission rixaPermission, String description) {
|
public LeaderboardsCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import io.rixa.bot.utils.WebUtil;
|
import io.rixa.bot.utils.WebUtil;
|
||||||
@ -16,8 +17,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class MinecraftCommand extends Command {
|
public class MinecraftCommand extends Command {
|
||||||
|
|
||||||
public MinecraftCommand(String command, RixaPermission rixaPermission, String description, List<String>aliases) {
|
public MinecraftCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType, List<String>aliases) {
|
||||||
super(command, rixaPermission, description, aliases);
|
super(command, rixaPermission, description, commandType, aliases);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -15,8 +16,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class ModulesCommand extends Command {
|
public class ModulesCommand extends Command {
|
||||||
|
|
||||||
public ModulesCommand(String command, RixaPermission rixaPermission, String description) {
|
public ModulesCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -17,6 +17,7 @@ import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
|
|||||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
||||||
import io.rixa.bot.apis.YoutubeSearch;
|
import io.rixa.bot.apis.YoutubeSearch;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -43,8 +44,8 @@ public class MusicCommand extends Command {
|
|||||||
private final int DEFAULT_VOLUME = 35;
|
private final int DEFAULT_VOLUME = 35;
|
||||||
private final AudioPlayerManager playerManager;
|
private final AudioPlayerManager playerManager;
|
||||||
|
|
||||||
public MusicCommand(String command, RixaPermission rixaPermission, String description) {
|
public MusicCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
this.playerManager = new DefaultAudioPlayerManager();
|
this.playerManager = new DefaultAudioPlayerManager();
|
||||||
this.playerManager.registerSourceManager(new YoutubeAudioSourceManager());
|
this.playerManager.registerSourceManager(new YoutubeAudioSourceManager());
|
||||||
this.playerManager.registerSourceManager(new SoundCloudAudioSourceManager());
|
this.playerManager.registerSourceManager(new SoundCloudAudioSourceManager());
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
@ -10,8 +11,8 @@ import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
|||||||
|
|
||||||
public class PingCommand extends Command {
|
public class PingCommand extends Command {
|
||||||
|
|
||||||
public PingCommand(String command, RixaPermission rixaPermission, String description) {
|
public PingCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import io.rixa.bot.utils.WebUtil;
|
import io.rixa.bot.utils.WebUtil;
|
||||||
@ -14,8 +15,8 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class QuoteCommand extends Command {
|
public class QuoteCommand extends Command {
|
||||||
|
|
||||||
public QuoteCommand(String command, RixaPermission rixaPermission, String description) {
|
public QuoteCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,32 +1,25 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.Rixa;
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.data.storage.DatabaseAdapter;
|
import io.rixa.bot.data.storage.DatabaseAdapter;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
import io.rixa.bot.guild.modules.module.LevelsModule;
|
|
||||||
import io.rixa.bot.pagination.ObjectPagination;
|
|
||||||
import io.rixa.bot.user.RixaUser;
|
import io.rixa.bot.user.RixaUser;
|
||||||
import io.rixa.bot.user.manager.UserManager;
|
import io.rixa.bot.user.manager.UserManager;
|
||||||
import io.rixa.bot.utils.DiscordUtils;
|
import io.rixa.bot.utils.DiscordUtils;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import net.dv8tion.jda.core.MessageBuilder;
|
import java.util.List;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
import net.dv8tion.jda.core.entities.User;
|
import net.dv8tion.jda.core.entities.User;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class RankCommand extends Command {
|
public class RankCommand extends Command {
|
||||||
|
|
||||||
public RankCommand(String command, RixaPermission rixaPermission, String description) {
|
public RankCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.DiscordUtils;
|
import io.rixa.bot.utils.DiscordUtils;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
@ -14,8 +15,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class RoleMemberList extends Command {
|
public class RoleMemberList extends Command {
|
||||||
|
|
||||||
public RoleMemberList(String command, RixaPermission rixaPermission, String description) {
|
public RoleMemberList(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.rixa.bot.commands.cmds.general;
|
package io.rixa.bot.commands.cmds.general;
|
||||||
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -15,8 +16,8 @@ import java.time.format.DateTimeFormatter;
|
|||||||
|
|
||||||
public class ServerInfoCommand extends Command {
|
public class ServerInfoCommand extends Command {
|
||||||
|
|
||||||
public ServerInfoCommand(String command, RixaPermission rixaPermission, String description) {
|
public ServerInfoCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,6 +2,7 @@ package io.rixa.bot.commands.cmds.general;
|
|||||||
|
|
||||||
import io.rixa.bot.apis.UrbanDictionary;
|
import io.rixa.bot.apis.UrbanDictionary;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import net.dv8tion.jda.core.MessageBuilder;
|
import net.dv8tion.jda.core.MessageBuilder;
|
||||||
@ -15,8 +16,8 @@ import java.net.URLEncoder;
|
|||||||
|
|
||||||
public class UrbanDictionaryCommand extends Command {
|
public class UrbanDictionaryCommand extends Command {
|
||||||
|
|
||||||
public UrbanDictionaryCommand(String command, RixaPermission rixaPermission, String description) {
|
public UrbanDictionaryCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,6 +2,7 @@ package io.rixa.bot.commands.cmds.general;
|
|||||||
|
|
||||||
import io.rixa.bot.apis.YoutubeSearch;
|
import io.rixa.bot.apis.YoutubeSearch;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
@ -12,8 +13,8 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class YoutubeCommand extends Command {
|
public class YoutubeCommand extends Command {
|
||||||
|
|
||||||
public YoutubeCommand(String command, RixaPermission rixaPermission, String description) {
|
public YoutubeCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,24 +1,21 @@
|
|||||||
package io.rixa.bot.commands.cmds.moderator;
|
package io.rixa.bot.commands.cmds.moderator;
|
||||||
|
|
||||||
import io.rixa.bot.Rixa;
|
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
import io.rixa.bot.utils.MessageFactory;
|
import io.rixa.bot.utils.MessageFactory;
|
||||||
import jdk.nashorn.internal.objects.annotations.Getter;
|
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class BanCommand extends Command {
|
public class BanCommand extends Command {
|
||||||
|
|
||||||
RixaPermission permission;
|
RixaPermission permission;
|
||||||
|
|
||||||
public BanCommand(String command, RixaPermission permission, String descriptopn) {
|
public BanCommand(String command, RixaPermission permission, String description, CommandType commandType) {
|
||||||
super(command, permission, descriptopn);
|
super(command, permission, description, commandType);
|
||||||
this.permission = permission;
|
this.permission = permission;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +26,7 @@ public class BanCommand extends Command {
|
|||||||
MessageFactory.create(
|
MessageFactory.create(
|
||||||
String.format("Incorrect Usage! Example: `%s%s @User`", rixaGuild.getSettings().getPrefix(),
|
String.format("Incorrect Usage! Example: `%s%s @User`", rixaGuild.getSettings().getPrefix(),
|
||||||
command)).setColor(member.getColor()).queue(channel);
|
command)).setColor(member.getColor()).queue(channel);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package io.rixa.bot.commands.cmds.moderator;
|
|||||||
|
|
||||||
import io.rixa.bot.Rixa;
|
import io.rixa.bot.Rixa;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -25,9 +26,9 @@ public class ClearCommand extends Command {
|
|||||||
@Getter
|
@Getter
|
||||||
private RixaPermission rixaPermission;
|
private RixaPermission rixaPermission;
|
||||||
|
|
||||||
public ClearCommand(String command, RixaPermission rixaPermission, String description,
|
public ClearCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType,
|
||||||
List<String> aliases) {
|
List<String> aliases) {
|
||||||
super(command, rixaPermission, description, aliases);
|
super(command, rixaPermission, description, commandType, aliases);
|
||||||
this.rixaPermission = rixaPermission;
|
this.rixaPermission = rixaPermission;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package io.rixa.bot.commands.cmds.moderator;
|
|||||||
import com.dumptruckman.taskmin.Task;
|
import com.dumptruckman.taskmin.Task;
|
||||||
import com.dumptruckman.taskmin.TaskManager;
|
import com.dumptruckman.taskmin.TaskManager;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -13,17 +14,15 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
|
import net.dv8tion.jda.core.entities.Role;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
import net.dv8tion.jda.core.entities.User;
|
import net.dv8tion.jda.core.entities.User;
|
||||||
|
|
||||||
public class MuteCommand extends Command {
|
public class MuteCommand extends Command {
|
||||||
|
|
||||||
private RixaPermission rixaPermission;
|
|
||||||
private TaskManager taskManager;
|
private TaskManager taskManager;
|
||||||
|
|
||||||
public MuteCommand(String command, RixaPermission rixaPermission, String description) {
|
public MuteCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
this.rixaPermission = rixaPermission;
|
|
||||||
this.taskManager = TaskManager.createBasicTaskManager();
|
this.taskManager = TaskManager.createBasicTaskManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,22 +30,34 @@ public class MuteCommand extends Command {
|
|||||||
public void execute(String commandLabel, Guild guild, Member member, TextChannel channel,
|
public void execute(String commandLabel, Guild guild, Member member, TextChannel channel,
|
||||||
String[] args) {
|
String[] args) {
|
||||||
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(guild);
|
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(guild);
|
||||||
|
if (args.length < 2) {
|
||||||
|
MessageFactory.create(String.format
|
||||||
|
("Incorrect Usage! Example: `%s%s <user> <timeFrame> [reason]`",
|
||||||
|
rixaGuild.getSettings().getPrefix(), commandLabel))
|
||||||
|
.setColor(member.getColor())
|
||||||
|
.queue(channel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
String argumentString = String.join(" ", args);
|
String argumentString = String.join(" ", args);
|
||||||
Object[] objArray = DiscordUtils.memberSearchArray(guild, argumentString, false);
|
Object[] objArray = DiscordUtils.memberSearchArray(guild, argumentString, false);
|
||||||
if (objArray.length == 0) {
|
if (objArray.length == 0) {
|
||||||
MessageFactory.create("Could not find member!").setColor(member.getColor()).queue(channel);
|
MessageFactory.create("Could not find member!").setColor(member.getColor()).queue(channel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Member targetMember = (Member) objArray[1];
|
|
||||||
String targetMemberName = String.valueOf(objArray[0]);
|
String targetMemberName = String.valueOf(objArray[0]);
|
||||||
|
Member targetMember = (Member) objArray[1];
|
||||||
if (targetMember == null) {
|
if (targetMember == null) {
|
||||||
MessageFactory.create("Could not find member!").setColor(member.getColor()).queue(channel);
|
MessageFactory.create("Could not find member!").setColor(member.getColor()).queue(channel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
argumentString = argumentString.replaceFirst(targetMemberName, "").trim();
|
argumentString = argumentString.replaceFirst(targetMemberName, "").trim();
|
||||||
args = argumentString.split(" ");
|
args = argumentString.split(" ");
|
||||||
if (args[0].length() == 0) {
|
if (args.length == 0) {
|
||||||
// Incorrect Usage
|
MessageFactory.create(String.format
|
||||||
|
("Incorrect Usage! Example: `%s%s <user> <timeFrame> [reason]`",
|
||||||
|
rixaGuild.getSettings().getPrefix(), commandLabel))
|
||||||
|
.setColor(member.getColor())
|
||||||
|
.queue(channel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String time = args[0].trim();
|
String time = args[0].trim();
|
||||||
@ -61,13 +72,16 @@ public class MuteCommand extends Command {
|
|||||||
|
|
||||||
long milliseconds = Utils.toMilliSec(time);
|
long milliseconds = Utils.toMilliSec(time);
|
||||||
String reason = argumentString;
|
String reason = argumentString;
|
||||||
guild.getController().addRolesToMember(targetMember, rixaGuild.getSettings().getMuteRole())
|
|
||||||
|
Role muteRole = rixaGuild.getSettings().getMuteRole() == null
|
||||||
|
? DiscordUtils.createMuteRole(guild) : rixaGuild.getSettings().getMuteRole();
|
||||||
|
guild.getController().addRolesToMember(targetMember, muteRole)
|
||||||
.queue(onSuccess -> MessageFactory.create(String.format(
|
.queue(onSuccess -> MessageFactory.create(String.format(
|
||||||
"Temporarily muted %s for %s\n Reason: %s",
|
"Temporarily muted %s for %s\n Reason: %s",
|
||||||
this.getUser(targetMember.getUser()),
|
this.getUser(targetMember.getUser()),
|
||||||
this.getTime(milliseconds),
|
this.getTime(milliseconds),
|
||||||
reason))
|
reason))
|
||||||
.setColor(member.getColor()).setTimestamp().queue(channel),
|
.setColor(member.getColor()).setTimestamp().queue(channel),
|
||||||
onFailure -> MessageFactory.create(
|
onFailure -> MessageFactory.create(
|
||||||
"Could not successfully mute user `" + targetMember.getUser().getName() + "#"
|
"Could not successfully mute user `" + targetMember.getUser().getName() + "#"
|
||||||
+ targetMember.getUser()
|
+ targetMember.getUser()
|
||||||
@ -89,7 +103,8 @@ public class MuteCommand extends Command {
|
|||||||
days = hours / 24;
|
days = hours / 24;
|
||||||
minutes = minutes % 60;
|
minutes = minutes % 60;
|
||||||
|
|
||||||
return(String.format("%s days, %s hours, %s minutes, %s seconds", days, hours, minutes, seconds));
|
return (String
|
||||||
|
.format("%s days, %s hours, %s minutes, %s seconds", days, hours, minutes, seconds));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getUser(User member) {
|
private String getUser(User member) {
|
||||||
|
@ -2,6 +2,7 @@ package io.rixa.bot.commands.cmds.other;
|
|||||||
|
|
||||||
import io.rixa.bot.Rixa;
|
import io.rixa.bot.Rixa;
|
||||||
import io.rixa.bot.commands.Command;
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.handler.CommandType;
|
||||||
import io.rixa.bot.commands.perms.RixaPermission;
|
import io.rixa.bot.commands.perms.RixaPermission;
|
||||||
import io.rixa.bot.guild.RixaGuild;
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
import io.rixa.bot.guild.manager.GuildManager;
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
@ -13,8 +14,8 @@ import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
|||||||
|
|
||||||
public class ShutdownCommand extends Command {
|
public class ShutdownCommand extends Command {
|
||||||
|
|
||||||
public ShutdownCommand(String command, RixaPermission rixaPermission, String description) {
|
public ShutdownCommand(String command, RixaPermission rixaPermission, String description, CommandType commandType) {
|
||||||
super(command, rixaPermission, description);
|
super(command, rixaPermission, description, commandType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
package io.rixa.bot.commands.exceptions;
|
||||||
|
|
||||||
|
public class ReactNotFoundException extends Exception {
|
||||||
|
|
||||||
|
public ReactNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -31,4 +31,8 @@ public class CommandHandler {
|
|||||||
}
|
}
|
||||||
throw new CommandNotFoundException("Could not find command");
|
throw new CommandNotFoundException("Could not find command");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Command> getAllCommands() {
|
||||||
|
return this.commandMap;
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package io.rixa.bot.commands.handler;
|
||||||
|
|
||||||
|
public enum CommandType {
|
||||||
|
|
||||||
|
STAFF,
|
||||||
|
USER,
|
||||||
|
OWNER;
|
||||||
|
}
|
@ -15,10 +15,16 @@ import java.io.IOException;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
import net.dv8tion.jda.core.hooks.SubscribeEvent;
|
import net.dv8tion.jda.core.hooks.SubscribeEvent;
|
||||||
|
|
||||||
public class MessageListener {
|
public class MessageListener {
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onReactionAdded(GuildMessageReactionAddEvent event) {
|
||||||
|
if (event.getUser().isBot()) return;
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onMessage(GuildMessageReceivedEvent event) {
|
public void onMessage(GuildMessageReceivedEvent event) {
|
||||||
if (event.getAuthor().isBot()) {
|
if (event.getAuthor().isBot()) {
|
||||||
@ -26,7 +32,8 @@ public class MessageListener {
|
|||||||
}
|
}
|
||||||
String message = event.getMessage().getContentRaw().trim();
|
String message = event.getMessage().getContentRaw().trim();
|
||||||
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(event.getGuild());
|
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(event.getGuild());
|
||||||
if (event.getMessage().getContentDisplay().startsWith("@" + event.getGuild().getSelfMember().getEffectiveName())) {
|
if (event.getMessage().getContentDisplay()
|
||||||
|
.startsWith("@" + event.getGuild().getSelfMember().getEffectiveName())) {
|
||||||
String chat = event.getMessage().getContentDisplay();
|
String chat = event.getMessage().getContentDisplay();
|
||||||
chatter(rixaGuild, event.getChannel(),
|
chatter(rixaGuild, event.getChannel(),
|
||||||
chat.replace("@" + event.getGuild().getSelfMember().getEffectiveName(), ""));
|
chat.replace("@" + event.getGuild().getSelfMember().getEffectiveName(), ""));
|
||||||
@ -62,7 +69,8 @@ public class MessageListener {
|
|||||||
//command.execute(event);
|
//command.execute(event);
|
||||||
event.getMessage().delete().queueAfter(3, TimeUnit.SECONDS);
|
event.getMessage().delete().queueAfter(3, TimeUnit.SECONDS);
|
||||||
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(event.getGuild());
|
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(event.getGuild());
|
||||||
if (command.getPermission() != null && command.getPermission() != RixaPermission.NONE &&
|
if (!event.getGuild().getOwner().getUser().getId().equalsIgnoreCase(event.getAuthor().getId())
|
||||||
|
&& command.getPermission() != null && command.getPermission() != RixaPermission.NONE &&
|
||||||
(!rixaGuild.hasPermission(event.getMember().getUser(), command.getPermission()))
|
(!rixaGuild.hasPermission(event.getMember().getUser(), command.getPermission()))
|
||||||
&& (!Rixa.getInstance().getConfiguration().isBotAdmin(event.getAuthor().getId()))) {
|
&& (!Rixa.getInstance().getConfiguration().isBotAdmin(event.getAuthor().getId()))) {
|
||||||
MessageFactory.create("Sorry! You do not have permission for this command!")
|
MessageFactory.create("Sorry! You do not have permission for this command!")
|
||||||
|
10
src/main/java/io/rixa/bot/reactions/React.java
Normal file
10
src/main/java/io/rixa/bot/reactions/React.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package io.rixa.bot.reactions;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
|
|
||||||
|
public interface React {
|
||||||
|
|
||||||
|
void onReact(GuildMessageReactionAddEvent event);
|
||||||
|
|
||||||
|
String getName();
|
||||||
|
}
|
37
src/main/java/io/rixa/bot/reactions/ReactManager.java
Normal file
37
src/main/java/io/rixa/bot/reactions/ReactManager.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package io.rixa.bot.reactions;
|
||||||
|
|
||||||
|
import io.rixa.bot.commands.Command;
|
||||||
|
import io.rixa.bot.commands.exceptions.CommandNotFoundException;
|
||||||
|
import io.rixa.bot.commands.exceptions.ReactNotFoundException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ReactManager {
|
||||||
|
|
||||||
|
private Map<String, React> reactMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
private void registerReact(React react) {
|
||||||
|
if (this.reactMap.containsKey(react.getName())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.reactMap.put(react.getName(), react);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerReact(React... reacts) {
|
||||||
|
for (React react : reacts) {
|
||||||
|
registerReact(react);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public React getReaction(String react) throws ReactNotFoundException {
|
||||||
|
if (reactMap.containsKey(react.toLowerCase())) {
|
||||||
|
return reactMap.get(react.toLowerCase());
|
||||||
|
}
|
||||||
|
throw new ReactNotFoundException("Could not find reaction");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, React> getAllReactions() {
|
||||||
|
return this.reactMap;
|
||||||
|
}
|
||||||
|
}
|
118
src/main/java/io/rixa/bot/reactions/react/HelpReaction.java
Normal file
118
src/main/java/io/rixa/bot/reactions/react/HelpReaction.java
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
package io.rixa.bot.reactions.react;
|
||||||
|
|
||||||
|
import io.rixa.bot.Rixa;
|
||||||
|
import io.rixa.bot.commands.handler.CommandHandler;
|
||||||
|
import io.rixa.bot.guild.RixaGuild;
|
||||||
|
import io.rixa.bot.guild.manager.GuildManager;
|
||||||
|
import io.rixa.bot.reactions.React;
|
||||||
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.core.entities.Message;
|
||||||
|
import net.dv8tion.jda.core.entities.MessageEmbed;
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
|
import net.dv8tion.jda.core.exceptions.ErrorResponseException;
|
||||||
|
import net.dv8tion.jda.core.hooks.SubscribeEvent;
|
||||||
|
|
||||||
|
public class HelpReaction implements React {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onReact(GuildMessageReactionAddEvent event) {
|
||||||
|
if (event.getUser().getId().equalsIgnoreCase(event.getJDA().getSelfUser().getId())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Message message = event.getChannel().getMessageById(event.getMessageId()).complete();
|
||||||
|
MessageEmbed messageEmbed = message.getEmbeds().get(0);
|
||||||
|
if (!messageEmbed.getTitle().contains(": ")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String title = messageEmbed.getTitle().split(": ")[1];
|
||||||
|
RixaGuild rixaGuild = GuildManager.getInstance().getGuild(event.getJDA().getGuildById(title));
|
||||||
|
if (rixaGuild == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String prefix = rixaGuild.getSettings().getPrefix();
|
||||||
|
EmbedBuilder embedBuilder;
|
||||||
|
try {
|
||||||
|
switch (event.getReaction().getReactionEmote().getName()) {
|
||||||
|
case "\uD83D\uDDD1":// waste bin
|
||||||
|
if (message.getAuthor().getId().equalsIgnoreCase(event.getJDA().getSelfUser().getId())) {
|
||||||
|
message.delete().complete();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "\u0031\u20E3":// one emoji
|
||||||
|
embedBuilder = new EmbedBuilder();
|
||||||
|
String stringBuilder = "\u2753" +
|
||||||
|
" **General Commands Help**" +
|
||||||
|
"\n" +
|
||||||
|
"Click a number below for information about other commands.";
|
||||||
|
embedBuilder.setTitle(String.format("Help: %s", title));
|
||||||
|
embedBuilder.setDescription(stringBuilder);
|
||||||
|
Rixa.getInstance().getCommandHandler().getAllCommands().values()
|
||||||
|
.forEach(cmd -> embedBuilder.addField(prefix + cmd.getCommand(),
|
||||||
|
cmd.getDescription(), false));
|
||||||
|
message.editMessage(embedBuilder.build()).queue();
|
||||||
|
break;
|
||||||
|
/*case "\u0032\u20E3": // two emoji
|
||||||
|
embedBuilder = new EmbedBuilder();
|
||||||
|
stringBuilder = "\u2753" +
|
||||||
|
" **Staff Commands Help**" +
|
||||||
|
"\n" +
|
||||||
|
"Click a number below for information about other commands.";
|
||||||
|
embedBuilder.setTitle(String.format("Help: %s", title));
|
||||||
|
embedBuilder.setDescription(stringBuilder);
|
||||||
|
Rixa.getInstance().getCommandHandler().getAllCommands().values().stream()
|
||||||
|
.filter(cmd -> cmd.getAnnotation().type() == CommandType.ADMIN
|
||||||
|
|| cmd.getAnnotation().type() == CommandType.MOD)
|
||||||
|
.forEach(cmd -> embedBuilder.addField(prefix + cmd.getAnnotation().mainCommand(),
|
||||||
|
cmd.getAnnotation().description(), false));
|
||||||
|
message.editMessage(embedBuilder.build()).queue();
|
||||||
|
break;*/
|
||||||
|
case "\u0033\u20E3": // three emoji
|
||||||
|
embedBuilder = new EmbedBuilder();
|
||||||
|
stringBuilder = "\u2753" +
|
||||||
|
" **Music Commands Help**" +
|
||||||
|
"\n" +
|
||||||
|
"Click a number below for information about other commands.";
|
||||||
|
embedBuilder.setTitle(String.format("Help: %s", title));
|
||||||
|
embedBuilder.setDescription(stringBuilder);
|
||||||
|
embedBuilder.addField(prefix + "music join [name]",
|
||||||
|
"Joins a voice channel that has the provided name", false)
|
||||||
|
.addField(prefix + "music join [id]",
|
||||||
|
"Joins a voice channel based on the provided id.", false)
|
||||||
|
.addField(prefix + "music leave",
|
||||||
|
"Leaves the voice channel that the bot is currently in.", false)
|
||||||
|
.addField(prefix + "music play",
|
||||||
|
"Plays songs from the current queue. Starts playing again if it was previously paused",
|
||||||
|
false)
|
||||||
|
.addField(prefix + "music play [url]",
|
||||||
|
"Adds a new song to the queue and starts playing if it wasn't playing already",
|
||||||
|
false)
|
||||||
|
.addField(prefix + "music playlist",
|
||||||
|
"Adds a playlist to the queue and starts playing if not already playing", false)
|
||||||
|
.addField(prefix + "music pause", "Pauses audio playback", false)
|
||||||
|
.addField(prefix + "music stop",
|
||||||
|
"Completely stops audio playback, skipping the current song.", false)
|
||||||
|
.addField(prefix + "music skip",
|
||||||
|
"Skips the current song, automatically starting the next", false)
|
||||||
|
.addField(prefix + "music nowplaying",
|
||||||
|
"Prints information about the currently playing song (title, current time)",
|
||||||
|
false)
|
||||||
|
.addField(prefix + "music np", "Alias for nowplaying", false)
|
||||||
|
.addField(prefix + "music list", "Lists the songs in the queue", false)
|
||||||
|
.addField(prefix + "music volume [vol]",
|
||||||
|
"Sets the volume of the MusicPlayer [10 - 100]", false)
|
||||||
|
.addField(prefix + "music restart",
|
||||||
|
"Restarts the current song or restarts the previous song if there is no current song playing.",
|
||||||
|
false)
|
||||||
|
.addField(prefix + "music repeat",
|
||||||
|
"Makes the player repeat the currently playing song", false)
|
||||||
|
.addField(prefix + "music reset",
|
||||||
|
"Completely resets the player, fixing all errors and clearing the queue.", false)
|
||||||
|
.addField(prefix + "music shuffle", "Shuffle current music queue.", false);
|
||||||
|
message.editMessage(embedBuilder.build()).queue();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (ErrorResponseException ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,12 @@
|
|||||||
package io.rixa.bot.utils;
|
package io.rixa.bot.utils;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import net.dv8tion.jda.core.Permission;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Member;
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
import net.dv8tion.jda.core.entities.Role;
|
import net.dv8tion.jda.core.entities.Role;
|
||||||
@ -127,4 +131,17 @@ public class DiscordUtils {
|
|||||||
}
|
}
|
||||||
return xp;
|
return xp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Role createMuteRole(Guild guild) {
|
||||||
|
Role role =
|
||||||
|
guild.getController().createRole().setName("Mute")
|
||||||
|
.setColor(Color.DARK_GRAY).setMentionable(false)
|
||||||
|
.complete();
|
||||||
|
guild.getTextChannels().forEach(textChannel ->
|
||||||
|
textChannel.createPermissionOverride(role).setPermissions(Arrays.asList(
|
||||||
|
Permission.MESSAGE_READ, Permission.MESSAGE_HISTORY),
|
||||||
|
Collections.singletonList(
|
||||||
|
Permission.MESSAGE_WRITE)).queue());
|
||||||
|
return role;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user