Added persistent shuffle and repeat, began work on a rocket league command.
This commit is contained in:
parent
e1944c7447
commit
4ffd8c9a64
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<groupId>com.github.andrewlalis</groupId>
|
<groupId>com.github.andrewlalis</groupId>
|
||||||
<artifactId>HandieBot</artifactId>
|
<artifactId>HandieBot</artifactId>
|
||||||
<version>1.5.1</version>
|
<version>1.5.2</version>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
@ -17,7 +17,10 @@ import sx.blah.discord.handle.obj.Permissions;
|
||||||
import sx.blah.discord.util.DiscordException;
|
import sx.blah.discord.util.DiscordException;
|
||||||
import sx.blah.discord.util.RateLimitException;
|
import sx.blah.discord.util.RateLimitException;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,6 +43,9 @@ public class HandieBot {
|
||||||
System.exit(-1);
|
System.exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Variable to enable or disable GUI.
|
//Variable to enable or disable GUI.
|
||||||
private static boolean USE_GUI = true;
|
private static boolean USE_GUI = true;
|
||||||
|
|
||||||
|
@ -69,28 +75,6 @@ public class HandieBot {
|
||||||
//The cross-guild music player.
|
//The cross-guild music player.
|
||||||
public static MusicPlayer musicPlayer;
|
public static MusicPlayer musicPlayer;
|
||||||
|
|
||||||
//List of all permissions needed to operate this bot.
|
|
||||||
private static final int permissionsNumber;
|
|
||||||
static {
|
|
||||||
List<Permissions> requiredPermissions = new ArrayList<>();
|
|
||||||
requiredPermissions.add(Permissions.CHANGE_NICKNAME);
|
|
||||||
requiredPermissions.add(Permissions.ADD_REACTIONS);
|
|
||||||
requiredPermissions.add(Permissions.MANAGE_CHANNELS);
|
|
||||||
requiredPermissions.add(Permissions.EMBED_LINKS);
|
|
||||||
requiredPermissions.add(Permissions.ATTACH_FILES);
|
|
||||||
requiredPermissions.add(Permissions.MANAGE_EMOJIS);
|
|
||||||
requiredPermissions.add(Permissions.MANAGE_MESSAGES);
|
|
||||||
requiredPermissions.add(Permissions.MANAGE_PERMISSIONS);
|
|
||||||
requiredPermissions.add(Permissions.READ_MESSAGE_HISTORY);
|
|
||||||
requiredPermissions.add(Permissions.READ_MESSAGES);
|
|
||||||
requiredPermissions.add(Permissions.SEND_MESSAGES);
|
|
||||||
requiredPermissions.add(Permissions.VOICE_CONNECT);
|
|
||||||
requiredPermissions.add(Permissions.VOICE_MUTE_MEMBERS);
|
|
||||||
requiredPermissions.add(Permissions.VOICE_SPEAK);
|
|
||||||
requiredPermissions.add(Permissions.VOICE_USE_VAD);
|
|
||||||
permissionsNumber = Permissions.generatePermissionsNumber(EnumSet.copyOf(requiredPermissions));
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventSubscriber
|
@EventSubscriber
|
||||||
public void onMessageReceived(MessageReceivedEvent event) {
|
public void onMessageReceived(MessageReceivedEvent event) {
|
||||||
CommandHandler.handleCommand(event);
|
CommandHandler.handleCommand(event);
|
||||||
|
@ -163,11 +147,7 @@ public class HandieBot {
|
||||||
musicPlayer.quitAll();
|
musicPlayer.quitAll();
|
||||||
client.logout();
|
client.logout();
|
||||||
window.dispose();
|
window.dispose();
|
||||||
try {
|
FileUtil.saveSettings();
|
||||||
settings.store(new FileWriter(FileUtil.getDataDirectory()+"settings"), "Settings for HandieBot");
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package handiebot.command.commands.misc;
|
||||||
|
|
||||||
|
import handiebot.command.CommandContext;
|
||||||
|
import handiebot.command.types.ContextCommand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Andrew Lalis
|
||||||
|
* Command to fetch rocket league stats and display them in a nice way.
|
||||||
|
*/
|
||||||
|
public class RLCommand extends ContextCommand {
|
||||||
|
//TODO Finish this command, and register it with the list of commands.
|
||||||
|
public RLCommand() {
|
||||||
|
super("rl",
|
||||||
|
"<stats|rank> <steamID> [PLAYLIST]",
|
||||||
|
"Get Rocket League stats or specific competitive playlists.",
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandContext context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import handiebot.HandieBot;
|
||||||
import handiebot.command.CommandContext;
|
import handiebot.command.CommandContext;
|
||||||
import handiebot.command.Commands;
|
import handiebot.command.Commands;
|
||||||
import handiebot.command.types.ContextCommand;
|
import handiebot.command.types.ContextCommand;
|
||||||
|
import handiebot.utils.FileUtil;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
|
@ -28,6 +29,8 @@ public class RepeatCommand extends ContextCommand {
|
||||||
if (context.getArgs().length == 1 && Commands.hasPermission(context, 8)){
|
if (context.getArgs().length == 1 && Commands.hasPermission(context, 8)){
|
||||||
boolean shouldRepeat = (context.getArgs()[0].toLowerCase().equals("true"));
|
boolean shouldRepeat = (context.getArgs()[0].toLowerCase().equals("true"));
|
||||||
HandieBot.musicPlayer.setRepeat(context.getGuild(), shouldRepeat);
|
HandieBot.musicPlayer.setRepeat(context.getGuild(), shouldRepeat);
|
||||||
|
HandieBot.settings.setProperty(context.getGuild().getName()+"_repeat", Boolean.toString(shouldRepeat));
|
||||||
|
FileUtil.saveSettings();
|
||||||
} else {
|
} else {
|
||||||
sendMessage(MessageFormat.format(resourceBundle.getString("player.getRepeat"), HandieBot.musicPlayer.isRepeating(context.getGuild())), context.getChannel());
|
sendMessage(MessageFormat.format(resourceBundle.getString("player.getRepeat"), HandieBot.musicPlayer.isRepeating(context.getGuild())), context.getChannel());
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import handiebot.HandieBot;
|
||||||
import handiebot.command.CommandContext;
|
import handiebot.command.CommandContext;
|
||||||
import handiebot.command.Commands;
|
import handiebot.command.Commands;
|
||||||
import handiebot.command.types.ContextCommand;
|
import handiebot.command.types.ContextCommand;
|
||||||
|
import handiebot.utils.FileUtil;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
|
@ -26,8 +27,11 @@ public class ShuffleCommand extends ContextCommand {
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandContext context) {
|
public void execute(CommandContext context) {
|
||||||
if (context.getArgs().length == 1 && Commands.hasPermission(context, 8)){
|
if (context.getArgs().length == 1 && Commands.hasPermission(context, 8)){
|
||||||
boolean shouldShuffle = (context.getArgs()[0].toLowerCase().equals("true"));
|
boolean shouldShuffle = (context.getArgs()[0].equalsIgnoreCase("true"));
|
||||||
HandieBot.musicPlayer.setShuffle(context.getGuild(), shouldShuffle);
|
HandieBot.musicPlayer.setShuffle(context.getGuild(), shouldShuffle);
|
||||||
|
//Save the settings for this guild to the settings file.
|
||||||
|
HandieBot.settings.setProperty(context.getGuild().getName()+"_shuffle", Boolean.toString(shouldShuffle));
|
||||||
|
FileUtil.saveSettings();
|
||||||
} else {
|
} else {
|
||||||
sendMessage(MessageFormat.format(resourceBundle.getString("player.getShuffle"), HandieBot.musicPlayer.isShuffling(context.getGuild())), context.getChannel());
|
sendMessage(MessageFormat.format(resourceBundle.getString("player.getShuffle"), HandieBot.musicPlayer.isShuffling(context.getGuild())), context.getChannel());
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,8 +38,8 @@ public class TrackScheduler extends AudioEventAdapter {
|
||||||
|
|
||||||
private Playlist activePlaylist;
|
private Playlist activePlaylist;
|
||||||
|
|
||||||
private boolean repeat = true;
|
private boolean repeat;
|
||||||
private boolean shuffle = false;
|
private boolean shuffle;
|
||||||
|
|
||||||
private IGuild guild;
|
private IGuild guild;
|
||||||
|
|
||||||
|
@ -52,7 +52,8 @@ public class TrackScheduler extends AudioEventAdapter {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.guild = guild;
|
this.guild = guild;
|
||||||
this.activePlaylist = new Playlist("HandieBot Active Playlist");
|
this.activePlaylist = new Playlist("HandieBot Active Playlist");
|
||||||
//this.activePlaylist = new Playlist("HandieBot Active Playlist");
|
this.repeat = Boolean.parseBoolean(HandieBot.settings.getProperty(guild.getName()+"_repeat"));
|
||||||
|
this.shuffle = Boolean.parseBoolean(HandieBot.settings.getProperty(guild.getName()+"_shuffle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,17 +2,13 @@ package handiebot.utils;
|
||||||
|
|
||||||
import handiebot.view.BotLog;
|
import handiebot.view.BotLog;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static handiebot.HandieBot.log;
|
import static handiebot.HandieBot.*;
|
||||||
import static handiebot.HandieBot.resourceBundle;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andrew Lalis
|
* @author Andrew Lalis
|
||||||
|
@ -60,4 +56,12 @@ public class FileUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void saveSettings(){
|
||||||
|
try {
|
||||||
|
settings.store(new FileWriter(FileUtil.getDataDirectory()+"settings"), "Settings for HandieBot");
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue