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> | ||||
|     <artifactId>HandieBot</artifactId> | ||||
|     <version>1.5.1</version> | ||||
|     <version>1.5.2</version> | ||||
|     <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|  |  | |||
|  | @ -17,7 +17,10 @@ import sx.blah.discord.handle.obj.Permissions; | |||
| import sx.blah.discord.util.DiscordException; | ||||
| 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.*; | ||||
| 
 | ||||
| /** | ||||
|  | @ -40,6 +43,9 @@ public class HandieBot { | |||
|             System.exit(-1); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     //Variable to enable or disable GUI. | ||||
|     private static boolean USE_GUI = true; | ||||
| 
 | ||||
|  | @ -69,28 +75,6 @@ public class HandieBot { | |||
|     //The cross-guild music player. | ||||
|     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 | ||||
|     public void onMessageReceived(MessageReceivedEvent event) { | ||||
|         CommandHandler.handleCommand(event); | ||||
|  | @ -163,11 +147,7 @@ public class HandieBot { | |||
|         musicPlayer.quitAll(); | ||||
|         client.logout(); | ||||
|         window.dispose(); | ||||
|         try { | ||||
|             settings.store(new FileWriter(FileUtil.getDataDirectory()+"settings"), "Settings for HandieBot"); | ||||
|         } catch (IOException e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|         FileUtil.saveSettings(); | ||||
|         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.Commands; | ||||
| import handiebot.command.types.ContextCommand; | ||||
| import handiebot.utils.FileUtil; | ||||
| 
 | ||||
| import java.text.MessageFormat; | ||||
| 
 | ||||
|  | @ -28,6 +29,8 @@ public class RepeatCommand extends ContextCommand { | |||
|         if (context.getArgs().length == 1 && Commands.hasPermission(context, 8)){ | ||||
|             boolean shouldRepeat = (context.getArgs()[0].toLowerCase().equals("true")); | ||||
|             HandieBot.musicPlayer.setRepeat(context.getGuild(), shouldRepeat); | ||||
|             HandieBot.settings.setProperty(context.getGuild().getName()+"_repeat", Boolean.toString(shouldRepeat)); | ||||
|             FileUtil.saveSettings(); | ||||
|         } else { | ||||
|             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.Commands; | ||||
| import handiebot.command.types.ContextCommand; | ||||
| import handiebot.utils.FileUtil; | ||||
| 
 | ||||
| import java.text.MessageFormat; | ||||
| 
 | ||||
|  | @ -26,8 +27,11 @@ public class ShuffleCommand extends ContextCommand { | |||
|     @Override | ||||
|     public void execute(CommandContext context) { | ||||
|         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); | ||||
|             //Save the settings for this guild to the settings file. | ||||
|             HandieBot.settings.setProperty(context.getGuild().getName()+"_shuffle", Boolean.toString(shouldShuffle)); | ||||
|             FileUtil.saveSettings(); | ||||
|         } else { | ||||
|             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 boolean repeat = true; | ||||
|     private boolean shuffle = false; | ||||
|     private boolean repeat; | ||||
|     private boolean shuffle; | ||||
| 
 | ||||
|     private IGuild guild; | ||||
| 
 | ||||
|  | @ -52,7 +52,8 @@ public class TrackScheduler extends AudioEventAdapter { | |||
|         this.player = player; | ||||
|         this.guild = guild; | ||||
|         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 java.io.File; | ||||
| import java.io.FileNotFoundException; | ||||
| import java.io.IOException; | ||||
| import java.io.PrintWriter; | ||||
| import java.io.*; | ||||
| import java.nio.file.Files; | ||||
| import java.text.MessageFormat; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import static handiebot.HandieBot.log; | ||||
| import static handiebot.HandieBot.resourceBundle; | ||||
| import static handiebot.HandieBot.*; | ||||
| 
 | ||||
| /** | ||||
|  * @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