You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.5 KiB
Java
133 lines
4.5 KiB
Java
package su.cif.infernote.commands.owner;
|
|
|
|
import com.jagrosh.jdautilities.command.CommandEvent;
|
|
import su.cif.infernote.Bot;
|
|
import su.cif.infernote.commands.OwnerCommand;
|
|
import net.dv8tion.jda.api.entities.Activity;
|
|
|
|
public class SetgameCmd extends OwnerCommand
|
|
{
|
|
public SetgameCmd(Bot bot)
|
|
{
|
|
this.name = "setgame";
|
|
this.help = "sets the game the bot is playing";
|
|
this.arguments = "[action] [game]";
|
|
this.aliases = bot.getConfig().getAliases(this.name);
|
|
this.guildOnly = false;
|
|
this.children = new OwnerCommand[]{
|
|
new SetlistenCmd(),
|
|
new SetstreamCmd(),
|
|
new SetwatchCmd()
|
|
};
|
|
}
|
|
|
|
@Override
|
|
protected void execute(CommandEvent event)
|
|
{
|
|
String title = event.getArgs().toLowerCase().startsWith("playing") ? event.getArgs().substring(7).trim() : event.getArgs();
|
|
try
|
|
{
|
|
event.getJDA().getPresence().setActivity(title.isEmpty() ? null : Activity.playing(title));
|
|
event.reply(event.getClient().getSuccess()+" **"+event.getSelfUser().getName()
|
|
+"** is "+(title.isEmpty() ? "no longer playing anything." : "now playing `"+title+"`"));
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
event.reply(event.getClient().getError()+" The game could not be set!");
|
|
}
|
|
}
|
|
|
|
private class SetstreamCmd extends OwnerCommand
|
|
{
|
|
private SetstreamCmd()
|
|
{
|
|
this.name = "stream";
|
|
this.aliases = new String[]{"twitch","streaming"};
|
|
this.help = "sets the game the bot is playing to a stream";
|
|
this.arguments = "<username> <game>";
|
|
this.guildOnly = false;
|
|
}
|
|
|
|
@Override
|
|
protected void execute(CommandEvent event)
|
|
{
|
|
String[] parts = event.getArgs().split("\\s+", 2);
|
|
if(parts.length<2)
|
|
{
|
|
event.replyError("Please include a twitch username and the name of the game to 'stream'");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
event.getJDA().getPresence().setActivity(Activity.streaming(parts[1], "https://twitch.tv/"+parts[0]));
|
|
event.replySuccess("**"+event.getSelfUser().getName()
|
|
+"** is now streaming `"+parts[1]+"`");
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
event.reply(event.getClient().getError()+" The game could not be set!");
|
|
}
|
|
}
|
|
}
|
|
|
|
private class SetlistenCmd extends OwnerCommand
|
|
{
|
|
private SetlistenCmd()
|
|
{
|
|
this.name = "listen";
|
|
this.aliases = new String[]{"listening"};
|
|
this.help = "sets the game the bot is listening to";
|
|
this.arguments = "<title>";
|
|
this.guildOnly = false;
|
|
}
|
|
|
|
@Override
|
|
protected void execute(CommandEvent event)
|
|
{
|
|
if(event.getArgs().isEmpty())
|
|
{
|
|
event.replyError("Please include a title to listen to!");
|
|
return;
|
|
}
|
|
String title = event.getArgs().toLowerCase().startsWith("to") ? event.getArgs().substring(2).trim() : event.getArgs();
|
|
try
|
|
{
|
|
event.getJDA().getPresence().setActivity(Activity.listening(title));
|
|
event.replySuccess("**"+event.getSelfUser().getName()+"** is now listening to `"+title+"`");
|
|
} catch(Exception e) {
|
|
event.reply(event.getClient().getError()+" The game could not be set!");
|
|
}
|
|
}
|
|
}
|
|
|
|
private class SetwatchCmd extends OwnerCommand
|
|
{
|
|
private SetwatchCmd()
|
|
{
|
|
this.name = "watch";
|
|
this.aliases = new String[]{"watching"};
|
|
this.help = "sets the game the bot is watching";
|
|
this.arguments = "<title>";
|
|
this.guildOnly = false;
|
|
}
|
|
|
|
@Override
|
|
protected void execute(CommandEvent event)
|
|
{
|
|
if(event.getArgs().isEmpty())
|
|
{
|
|
event.replyError("Please include a title to watch!");
|
|
return;
|
|
}
|
|
String title = event.getArgs();
|
|
try
|
|
{
|
|
event.getJDA().getPresence().setActivity(Activity.watching(title));
|
|
event.replySuccess("**"+event.getSelfUser().getName()+"** is now watching `"+title+"`");
|
|
} catch(Exception e) {
|
|
event.reply(event.getClient().getError()+" The game could not be set!");
|
|
}
|
|
}
|
|
}
|
|
}
|