From 6a77ea0c061424bbfb2d1ba95bf9142eb02e0bec Mon Sep 17 00:00:00 2001 From: thmsdy Date: Fri, 4 Jul 2025 21:32:39 -0500 Subject: [PATCH] Added local audio file playback --- src/main/java/com/fpghoti/biscuit/Main.java | 63 ++++---- .../fpghoti/biscuit/audio/AudioScheduler.java | 11 +- .../biscuit/audio/PlayCommandUtil.java | 86 ---------- .../biscuit/audio/queue/AudioQueue.java | 2 +- .../biscuit/audio/queue/QueuedTrack.java | 30 ++-- .../biscuit/audio/request/PlayRequest.java | 14 +- .../biscuit/audio/request/RequestType.java | 12 ++ .../request/file/FilePriorityRequest.java | 34 ++++ .../audio/request/file/FileRequest.java | 24 +++ .../audio/result/FileResultHandler.java | 70 ++++++++ .../biscuit/audio/result/ResultHandler.java | 6 +- .../biscuit/audio/result/SCResultHandler.java | 6 +- .../biscuit/audio/result/YTResultHandler.java | 6 +- .../fpghoti/biscuit/audio/util/AudioUtil.java | 47 ++++++ .../com/fpghoti/biscuit/captcha/Captcha.java | 4 +- .../biscuit/captcha/HandleCaptcha.java | 4 +- .../biscuit/commands/CommandManager.java | 8 +- .../biscuit/commands/base/CustomCommand.java | 6 +- .../commands/console/GuildSayCommand.java | 4 +- .../biscuit/commands/console/SayCommand.java | 4 +- .../biscuit/commands/discord/AddCommand.java | 4 +- .../commands/discord/ChanIDCommand.java | 4 +- .../commands/discord/DivideCommand.java | 4 +- .../commands/discord/GetConfigCommand.java | 4 +- .../commands/discord/GuildIDCommand.java | 4 +- .../biscuit/commands/discord/HelpCommand.java | 4 +- .../commands/discord/MakeInviteCommand.java | 4 +- .../commands/discord/MultiplyCommand.java | 4 +- .../commands/discord/NotSpammerCommand.java | 4 +- .../biscuit/commands/discord/PingCommand.java | 4 +- .../commands/discord/PowerCommand.java | 4 +- .../discord/RecentSpammersCommand.java | 4 +- .../commands/discord/SaveConfigCommand.java | 6 +- .../commands/discord/SoftMuteCommand.java | 4 +- .../commands/discord/SquareRootCommand.java | 4 +- .../commands/discord/SubtractCommand.java | 4 +- .../commands/discord/ToggleRoleCommand.java | 4 +- .../biscuit/commands/discord/UIDCommand.java | 4 +- .../commands/discord/UnSoftMuteCommand.java | 4 +- .../biscuit/commands/discord/WikiCommand.java | 4 +- .../commands/discord/music/ClearCommand.java | 4 +- .../discord/music/ClearUserSongsCommand.java | 4 +- .../discord/music/ForceSkipCommand.java | 4 +- .../discord/music/ForceSkipToCommand.java | 4 +- .../discord/music/LoopMusicCommand.java | 4 +- .../commands/discord/music/MoveToCommand.java | 4 +- .../discord/music/NowPlayingCommand.java | 4 +- .../commands/discord/music/PauseCommand.java | 4 +- .../commands/discord/music/PlayCommand.java | 151 ++++++++++++++++-- .../discord/music/PlayFirstCommand.java | 75 --------- .../commands/discord/music/QueueCommand.java | 4 +- .../commands/discord/music/RemoveCommand.java | 4 +- .../discord/music/ShuffleCommand.java | 4 +- .../discord/music/SkipAllCommand.java | 4 +- .../commands/discord/music/SkipCommand.java | 4 +- .../discord/music/TogglePauseCommand.java | 4 +- .../discord/music/UnpauseCommand.java | 4 +- .../commands/discord/music/VolumeCommand.java | 4 +- .../fpghoti/biscuit/config/BiscuitConfig.java | 6 +- .../biscuit/config/BiscuitProperties.java | 6 +- .../Biscuit.java => guild/BiscuitGuild.java} | 26 +-- .../GuildMessageStore.java} | 8 +- .../biscuit/listener/CommandListener.java | 6 +- .../biscuit/listener/GuildListener.java | 6 +- .../biscuit/listener/JoinListener.java | 6 +- .../biscuit/listener/LeaveListener.java | 4 +- .../listener/MessageDeleteListener.java | 4 +- .../biscuit/listener/MessageEditListener.java | 4 +- .../listener/MessageReceiveListener.java | 22 +-- .../biscuit/listener/NameListener.java | 4 +- .../biscuit/listener/NicknameListener.java | 4 +- .../biscuit/listener/ReactionListener.java | 10 +- .../fpghoti/biscuit/plugin/BiscuitPlugin.java | 4 +- .../com/fpghoti/biscuit/rest/MessageText.java | 10 +- .../fpghoti/biscuit/timer/BiscuitTimer.java | 4 +- .../biscuit/timer/task/ChatCountTimer.java | 4 +- .../biscuit/timer/task/DecrementTimer.java | 4 +- .../biscuit/timer/task/SoftMuteTimer.java | 4 +- .../com/fpghoti/biscuit/user/CaptchaUser.java | 14 +- .../com/fpghoti/biscuit/user/PreUser.java | 10 +- .../com/fpghoti/biscuit/util/ChatFilter.java | 12 +- .../com/fpghoti/biscuit/util/PermUtil.java | 18 +-- .../java/com/fpghoti/biscuit/util/Util.java | 10 +- 83 files changed, 597 insertions(+), 426 deletions(-) delete mode 100644 src/main/java/com/fpghoti/biscuit/audio/PlayCommandUtil.java create mode 100644 src/main/java/com/fpghoti/biscuit/audio/request/file/FilePriorityRequest.java create mode 100644 src/main/java/com/fpghoti/biscuit/audio/request/file/FileRequest.java create mode 100644 src/main/java/com/fpghoti/biscuit/audio/result/FileResultHandler.java create mode 100644 src/main/java/com/fpghoti/biscuit/audio/util/AudioUtil.java delete mode 100644 src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayFirstCommand.java rename src/main/java/com/fpghoti/biscuit/{biscuit/Biscuit.java => guild/BiscuitGuild.java} (89%) rename src/main/java/com/fpghoti/biscuit/{biscuit/BiscuitMessageStore.java => guild/GuildMessageStore.java} (91%) diff --git a/src/main/java/com/fpghoti/biscuit/Main.java b/src/main/java/com/fpghoti/biscuit/Main.java index b0dfd20..3d730f4 100644 --- a/src/main/java/com/fpghoti/biscuit/Main.java +++ b/src/main/java/com/fpghoti/biscuit/Main.java @@ -8,7 +8,6 @@ import java.util.Scanner; import org.fusesource.jansi.AnsiConsole; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.captcha.BCage; import com.fpghoti.biscuit.commands.CommandManager; import com.fpghoti.biscuit.commands.console.GuildSayCommand; @@ -43,7 +42,6 @@ import com.fpghoti.biscuit.commands.discord.music.MoveToCommand; import com.fpghoti.biscuit.commands.discord.music.NowPlayingCommand; import com.fpghoti.biscuit.commands.discord.music.PauseCommand; import com.fpghoti.biscuit.commands.discord.music.PlayCommand; -import com.fpghoti.biscuit.commands.discord.music.PlayFirstCommand; import com.fpghoti.biscuit.commands.discord.music.QueueCommand; import com.fpghoti.biscuit.commands.discord.music.RemoveCommand; import com.fpghoti.biscuit.commands.discord.music.ShuffleCommand; @@ -52,6 +50,7 @@ import com.fpghoti.biscuit.commands.discord.music.SkipCommand; import com.fpghoti.biscuit.commands.discord.music.TogglePauseCommand; import com.fpghoti.biscuit.commands.discord.music.UnpauseCommand; import com.fpghoti.biscuit.commands.discord.music.VolumeCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.listener.CommandListener; import com.fpghoti.biscuit.listener.DMListener; import com.fpghoti.biscuit.listener.GuildListener; @@ -71,7 +70,6 @@ import com.github.cage.Cage; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers; - import ch.qos.logback.core.rolling.RollingFileAppender; import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy; import dev.lavalink.youtube.YoutubeAudioSourceManager; @@ -93,14 +91,15 @@ public class Main { private static final BiscuitLogger log = new BiscuitLogger(); - private static ArrayList biscuits; - private static Biscuit mainBiscuit; + private static ArrayList biscuits; + private static BiscuitGuild mainBiscuit; public static Scanner sc; public static boolean ready = false; public static boolean isPlugin = false; public static boolean shutdownStarted = false; private static Cage cage; private static File pluginsDir; + public static File audioDir; private static PluginController pluginController; private static AudioPlayerManager playerManager; @@ -109,11 +108,14 @@ public class Main { public static void main(String[] args){ if(!isPlugin) { pluginsDir = new File("plugins"); + audioDir = new File("audio"); }else { pluginsDir = new File(PluginCore.plugin.getDataFolder(), "plugins"); + audioDir = new File(PluginCore.plugin.getDataFolder(), "audio"); } pluginsDir.mkdir(); - + audioDir.mkdir(); + final Properties properties = new Properties(); try { properties.load(Main.class.getClassLoader().getResourceAsStream("info.properties")); @@ -127,14 +129,18 @@ public class Main { log.info("Running version: " + BColor.MAGENTA_BOLD + version); playerManager = new DefaultAudioPlayerManager(); + AudioSourceManagers.registerLocalSource(playerManager); YoutubeAudioSourceManager ytSourceManager = new dev.lavalink.youtube.YoutubeAudioSourceManager(); + //LocalAudioSourceManager localSourceManager = new LocalAudioSourceManager(); playerManager.registerSourceManager(ytSourceManager); + //playerManager.registerSourceManager(localSourceManager); AudioSourceManagers.registerRemoteSources(playerManager, - com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.class); - - mainBiscuit = new Biscuit(null, null, log); - startJDA(); + com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.class); + + mainBiscuit = new BiscuitGuild(null, null, log); + startJDA(); + cage = new BCage(); jda.addEventListener(new GuildListener()); @@ -148,9 +154,9 @@ public class Main { jda.addEventListener(new RoleListener()); jda.addEventListener(new NicknameListener()); jda.addEventListener(new NameListener()); - biscuits = new ArrayList(); + biscuits = new ArrayList(); for(Guild g : jda.getGuilds()) { - Biscuit.loadGuild(g); + BiscuitGuild.loadGuild(g); } startCommandListener(); @@ -178,11 +184,10 @@ public class Main { CommandManager.addCommand(new SaveConfigCommand()); CommandManager.addCommand(new GuildIDCommand()); CommandManager.addCommand(new WikiCommand()); - + //Music Client - + CommandManager.addCommand(new PlayCommand()); - CommandManager.addCommand(new PlayFirstCommand()); CommandManager.addCommand(new ForceSkipCommand()); CommandManager.addCommand(new PauseCommand()); CommandManager.addCommand(new UnpauseCommand()); @@ -207,11 +212,11 @@ public class Main { CommandManager.addCommand(new ShutdownConsoleCommand()); //Plugins - + pluginController = new PluginController(); - pluginController.loadPlugins(); - pluginController.startPlugins(); - + pluginController.loadPlugins(); + pluginController.startPlugins(); + link = "https://discord.com/oauth2/authorize?&client_id=" + jda.getSelfUser().getId() + "&permissions=8&scope=bot"; log.info("Connection successful!"); log.info("Startup successful!"); @@ -245,7 +250,7 @@ public class Main { } } - public static Biscuit getMainBiscuit() { + public static BiscuitGuild getMainBiscuit() { return mainBiscuit; } @@ -261,25 +266,27 @@ public class Main { } } - public static ArrayList getBiscuits() { + public static ArrayList getBiscuits() { return biscuits; } public static AudioPlayerManager getPlayerManager() { return playerManager; } - + public static File getPluginDirectory() { return pluginsDir; } + + public static void shutdown() { if(!shutdownStarted) { shutdownStarted = true; mainBiscuit.log("Shutting down..."); pluginController.shutdownPlugins(); - ArrayList list = new ArrayList(biscuits); - for(Biscuit b : list) { + ArrayList list = new ArrayList(biscuits); + for(BiscuitGuild b : list) { b.remove(); } mainBiscuit.wipeCaptchaDir(); @@ -296,7 +303,7 @@ public class Main { public static JDA getJDA() { return jda; } - + public static Cage getCage() { return cage; } @@ -304,16 +311,16 @@ public class Main { public static BiscuitLogger getLogger() { return log; } - + public static PluginController getPluginController() { return pluginController; } - public static void registerBiscuit(Biscuit b) { + public static void registerBiscuit(BiscuitGuild b) { biscuits.add(b); } - public static void unregisterBiscuit(Biscuit b) { + public static void unregisterBiscuit(BiscuitGuild b) { biscuits.remove(b); } diff --git a/src/main/java/com/fpghoti/biscuit/audio/AudioScheduler.java b/src/main/java/com/fpghoti/biscuit/audio/AudioScheduler.java index ae5de78..f3ea4f1 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/AudioScheduler.java +++ b/src/main/java/com/fpghoti/biscuit/audio/AudioScheduler.java @@ -9,7 +9,7 @@ import com.fpghoti.biscuit.audio.request.RequestType; import com.fpghoti.biscuit.audio.request.youtube.YTImmediateRequest; import com.fpghoti.biscuit.audio.request.youtube.YTRequest; import com.fpghoti.biscuit.audio.result.YTResultHandler; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter; @@ -22,12 +22,12 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; public class AudioScheduler extends AudioEventAdapter { - private Biscuit biscuit; + private BiscuitGuild biscuit; private AudioQueue queue; private ArrayList skips; private boolean loop; - public AudioScheduler(Biscuit biscuit) { + public AudioScheduler(BiscuitGuild biscuit) { this.biscuit = biscuit; this.queue = new AudioQueue(); this.skips = new ArrayList(); @@ -119,6 +119,9 @@ public class AudioScheduler extends AudioEventAdapter { public void queue(RequestType type, AudioTrack track, String uid, TextChannel channel, Integer place) { if(queue.isEmpty() && biscuit.getAudioPlayer().getPlayingTrack() == null) { + if(place == null) { + place = 0; + } QueuedTrack qt = new QueuedTrack(biscuit, track, uid, channel, type); queue.sendQueueMessage(qt); queue.addPreviousTrack(qt); @@ -191,7 +194,7 @@ public class AudioScheduler extends AudioEventAdapter { queue.clear(); } - public Biscuit getBiscuit() { + public BiscuitGuild getBiscuitGuild() { return biscuit; } diff --git a/src/main/java/com/fpghoti/biscuit/audio/PlayCommandUtil.java b/src/main/java/com/fpghoti/biscuit/audio/PlayCommandUtil.java deleted file mode 100644 index a4d97b8..0000000 --- a/src/main/java/com/fpghoti/biscuit/audio/PlayCommandUtil.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.fpghoti.biscuit.audio; - -import com.fpghoti.biscuit.biscuit.Biscuit; -import com.fpghoti.biscuit.rest.MessageText; - -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; -import net.dv8tion.jda.api.managers.AudioManager; - -public class PlayCommandUtil { - - public static boolean connectToChannel(MessageReceivedEvent event) { - if(!event.isFromGuild()) { - return false; - } - Guild guild = event.getGuild(); - Biscuit biscuit = Biscuit.getBiscuit(guild); - TextChannel textChannel = event.getChannel().asTextChannel(); - - String vcname = ""; - if(!event.getMember().getVoiceState().inAudioChannel()) { - MessageText.send(textChannel, "You must be in a voice channel to do this!"); - return false; - } - vcname = event.getMember().getVoiceState().getChannel().getName(); - String[] musicChannels = biscuit.getProperties().getMusicChannels(); - if(musicChannels.length >= 1) { - boolean found = false; - for(String cname : musicChannels) { - if(event.getMember().getVoiceState().getChannel().getName().equalsIgnoreCase(cname)) { - found = true; - break; - } - } - if(found == false) { - MessageText.send(textChannel, "You are not in a channel that is authorized to use the music player."); - return false; - } - } - - if(biscuit.getAudioPlayer().getPlayingTrack() != null && guild.getAudioManager().isConnected() && !guild.getAudioManager().getConnectedChannel().getMembers().contains(event.getMember())) { - MessageText.send(textChannel, "Music is already playing in a voice channel. Connect to " - + "that channel, then queue your song."); - return false; - } - - VoiceChannel voiceChannel = guild.getVoiceChannelsByName(vcname, true).get(0); - AudioManager manager = guild.getAudioManager(); - - manager.setSendingHandler(new AudioHandler(biscuit.getAudioPlayer())); - manager.openAudioConnection(voiceChannel); - return true; - } - - public static String getSearchPhrase(String[] args) { - return getSearchPhrase(args, 0); - } - - public static String getSearchPhrase(String[] args, int startArg) { - if(startArg >= args.length) { - return ""; - } - String searchPhrase = args[startArg]; - if(args.length > startArg + 1) { - for(int i = startArg + 1; i < args.length; i++) { - searchPhrase = searchPhrase + " " + args[i]; - } - } - return searchPhrase; - } - - public static String getID(MessageReceivedEvent event) { - return getID(event.getMessage().getContentRaw().split(" ")[1]); - } - - public static String getID(String url) { - String[] s = url.split("="); - if(s.length > 1) { - return s[1].split("&")[0]; - } - return url; - } - -} diff --git a/src/main/java/com/fpghoti/biscuit/audio/queue/AudioQueue.java b/src/main/java/com/fpghoti/biscuit/audio/queue/AudioQueue.java index d05083a..eb7d909 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/queue/AudioQueue.java +++ b/src/main/java/com/fpghoti/biscuit/audio/queue/AudioQueue.java @@ -53,7 +53,7 @@ public class AudioQueue { QueuedTrack next = tracks.iterator().next(); tracks.remove(next); addPreviousTrack(next); - next.getBiscuit().getAudioPlayer().playTrack(next.getTrack()); + next.getBiscuitGuild().getAudioPlayer().playTrack(next.getTrack()); } public QueuedTrack getTrack(int index){ diff --git a/src/main/java/com/fpghoti/biscuit/audio/queue/QueuedTrack.java b/src/main/java/com/fpghoti/biscuit/audio/queue/QueuedTrack.java index d4634b9..c041937 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/queue/QueuedTrack.java +++ b/src/main/java/com/fpghoti/biscuit/audio/queue/QueuedTrack.java @@ -3,7 +3,7 @@ package com.fpghoti.biscuit.audio.queue; import java.awt.Color; import com.fpghoti.biscuit.audio.request.RequestType; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.util.Util; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; @@ -14,14 +14,14 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; public class QueuedTrack { - private Biscuit biscuit; + private BiscuitGuild biscuit; private AudioTrack track; private String userId; private TextChannel channel; private RequestType type; private boolean triedAlternative; - public QueuedTrack(Biscuit biscuit, AudioTrack track, String userId, TextChannel channel, RequestType type) { + public QueuedTrack(BiscuitGuild biscuit, AudioTrack track, String userId, TextChannel channel, RequestType type) { this.biscuit = biscuit; this.track = track; this.userId = userId; @@ -30,7 +30,7 @@ public class QueuedTrack { this.triedAlternative = false; } - public Biscuit getBiscuit() { + public BiscuitGuild getBiscuitGuild() { return biscuit; } @@ -56,31 +56,35 @@ public class QueuedTrack { public MessageEmbed getEmbedMessage(String prefix, boolean showRemaining) { EmbedBuilder embed = new EmbedBuilder(); - String title = track.getInfo().title; if(prefix != null && !prefix.equals("")) { title = prefix + " " + title; } - - embed.setTitle(title, track.getInfo().uri); + + String uri = track.getInfo().uri; + if(type.toString().toLowerCase().contains("file")) { + if(title.contains("Unknown title") && Util.getLast(title, " ").equals("title")) { + title = title.replace("Unknown title", Util.getLast(uri,"\\\\")); + } + embed.setTitle(title); + }else { + embed.setTitle(title, uri); + } + embed.setColor(Color.CYAN); long duration = track.getDuration(); //Duration seems to change after track begins playing - //This is to make the embeds more consistant with each other + //This is to make the embeds more consistent with each other if(showRemaining) { duration+=1000; } - String desc = "Type: " + type.toString() + "\nAuthor: " + track.getInfo().author + "\nLength: " + Util.getTime(duration); - if(showRemaining) { desc = desc + "\nTime Remaining: " + Util.getTime(track.getDuration() - track.getPosition()); } - embed.setDescription(desc); - String name = biscuit.getGuild().getSelfMember().getEffectiveName(); String avatar = biscuit.getGuild().getSelfMember().getUser().getEffectiveAvatarUrl(); @@ -89,13 +93,11 @@ public class QueuedTrack { name = m.getEffectiveName(); avatar = m.getUser().getEffectiveAvatarUrl(); } - embed.setAuthor(name, null, avatar); if(type.toString().toLowerCase().contains("youtube")) { embed.setThumbnail("https://img.youtube.com/vi/" + track.getIdentifier() + "/mqdefault.jpg"); } - return embed.build(); } diff --git a/src/main/java/com/fpghoti/biscuit/audio/request/PlayRequest.java b/src/main/java/com/fpghoti/biscuit/audio/request/PlayRequest.java index 213c4ec..857aa9b 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/request/PlayRequest.java +++ b/src/main/java/com/fpghoti/biscuit/audio/request/PlayRequest.java @@ -1,11 +1,13 @@ package com.fpghoti.biscuit.audio.request; +import com.fpghoti.biscuit.audio.request.file.FilePriorityRequest; +import com.fpghoti.biscuit.audio.request.file.FileRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCPriorityRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; import com.fpghoti.biscuit.audio.request.youtube.YTImmediateRequest; import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest; import com.fpghoti.biscuit.audio.request.youtube.YTRequest; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -47,13 +49,17 @@ public abstract class PlayRequest { return new SCRequest(message, searchPhrase); case SOUNDCLOUD_PRIORITY: return new SCPriorityRequest(message, searchPhrase, insertSlot); + case FILE: + return new FileRequest(message, searchPhrase); + case FILE_PRIORITY: + return new FilePriorityRequest(message, searchPhrase, insertSlot); default: return null; } } private TextChannel channel; - private Biscuit biscuit; + private BiscuitGuild biscuit; private String authorId; private String identifier; @@ -65,14 +71,14 @@ public abstract class PlayRequest { this.channel = channel; this.authorId = authorId; this.identifier = identifier; - this.biscuit = Biscuit.getBiscuit(channel.getGuild()); + this.biscuit = BiscuitGuild.getBiscuitGuild(channel.getGuild()); } public TextChannel getRequestChannel() { return channel; } - public Biscuit getBiscuit() { + public BiscuitGuild getBiscuitGuild() { return biscuit; } diff --git a/src/main/java/com/fpghoti/biscuit/audio/request/RequestType.java b/src/main/java/com/fpghoti/biscuit/audio/request/RequestType.java index 846b439..6ad5a76 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/request/RequestType.java +++ b/src/main/java/com/fpghoti/biscuit/audio/request/RequestType.java @@ -31,6 +31,18 @@ public enum RequestType { public String toString() { return "Soundcloud - Priority"; } + }, + FILE{ + @Override + public String toString() { + return "File"; + } + }, + FILE_PRIORITY{ + @Override + public String toString() { + return "File - Priority"; + } }; } diff --git a/src/main/java/com/fpghoti/biscuit/audio/request/file/FilePriorityRequest.java b/src/main/java/com/fpghoti/biscuit/audio/request/file/FilePriorityRequest.java new file mode 100644 index 0000000..25476a9 --- /dev/null +++ b/src/main/java/com/fpghoti/biscuit/audio/request/file/FilePriorityRequest.java @@ -0,0 +1,34 @@ +package com.fpghoti.biscuit.audio.request.file; + +import com.fpghoti.biscuit.audio.request.RequestType; + +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; + +public class FilePriorityRequest extends FileRequest{ + + int insertSlot; + + public FilePriorityRequest(Message message, String identifier, int insertSlot) { + this(message.getChannel().asTextChannel(), message.getAuthor().getId(), identifier, insertSlot); + } + + public FilePriorityRequest(TextChannel channel, String authorId, String identifier, int insertSlot) { + super(channel, authorId, identifier); + this.insertSlot = insertSlot; + } + + public int getSlot() { + return insertSlot; + } + + public void setSlot(int slotNumber) { + insertSlot = slotNumber; + } + + @Override + public RequestType getType() { + return RequestType.FILE_PRIORITY; + } + +} diff --git a/src/main/java/com/fpghoti/biscuit/audio/request/file/FileRequest.java b/src/main/java/com/fpghoti/biscuit/audio/request/file/FileRequest.java new file mode 100644 index 0000000..1c4efcb --- /dev/null +++ b/src/main/java/com/fpghoti/biscuit/audio/request/file/FileRequest.java @@ -0,0 +1,24 @@ +package com.fpghoti.biscuit.audio.request.file; + +import com.fpghoti.biscuit.audio.request.PlayRequest; +import com.fpghoti.biscuit.audio.request.RequestType; + +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; + +public class FileRequest extends PlayRequest{ + + public FileRequest(Message message, String identifier) { + this(message.getChannel().asTextChannel(), message.getAuthor().getId(), identifier); + } + + public FileRequest(TextChannel channel, String authorId, String identifier) { + super(channel, authorId, identifier); + } + + @Override + public RequestType getType() { + return RequestType.FILE; + } + +} diff --git a/src/main/java/com/fpghoti/biscuit/audio/result/FileResultHandler.java b/src/main/java/com/fpghoti/biscuit/audio/result/FileResultHandler.java new file mode 100644 index 0000000..8d92987 --- /dev/null +++ b/src/main/java/com/fpghoti/biscuit/audio/result/FileResultHandler.java @@ -0,0 +1,70 @@ +package com.fpghoti.biscuit.audio.result; + +import com.fpghoti.biscuit.audio.AudioScheduler; +import com.fpghoti.biscuit.audio.request.PlayRequest; +import com.fpghoti.biscuit.audio.request.file.FilePriorityRequest; +import com.fpghoti.biscuit.audio.request.file.FileRequest; +import com.fpghoti.biscuit.guild.BiscuitGuild; +import com.fpghoti.biscuit.rest.MessageText; +import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; +import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; + +public class FileResultHandler extends ResultHandler { + + private BiscuitGuild biscuit; + private FileRequest request; + + public FileResultHandler(FileRequest request) { + this.request = request; + this.biscuit = request.getBiscuitGuild(); + } + + public PlayRequest getRequest() { + return request; + } + + public void handleTrack(AudioTrack track) { + AudioScheduler sched = biscuit.getAudioScheduler(); + + switch(request.getType()) { + + case FILE: + sched.queue(request.getType(), track, request.getAuthorId(), request.getRequestChannel()); + break; + + case FILE_PRIORITY: + FilePriorityRequest prq = (FilePriorityRequest) request; + sched.queue(request.getType(), track, request.getAuthorId(), request.getRequestChannel(), prq.getSlot()); + break; + + default: + biscuit.error("File result handler received an incompatible request."); + break; + + } + } + + @Override + public void trackLoaded(AudioTrack track) { + handleTrack(track); + } + + @Override + public void playlistLoaded(AudioPlaylist playlist) { + AudioTrack track = playlist.getTracks().get(0); + handleTrack(track); + } + + @Override + public void noMatches() { + MessageText.send(request.getRequestChannel(), "File not found."); + } + + @Override + public void loadFailed(FriendlyException exception) { + exception.printStackTrace(); + MessageText.send(request.getRequestChannel(), "An error was encountered while attempting to load audio."); + } + +} diff --git a/src/main/java/com/fpghoti/biscuit/audio/result/ResultHandler.java b/src/main/java/com/fpghoti/biscuit/audio/result/ResultHandler.java index 09da43e..292c905 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/result/ResultHandler.java +++ b/src/main/java/com/fpghoti/biscuit/audio/result/ResultHandler.java @@ -1,7 +1,7 @@ package com.fpghoti.biscuit.audio.result; import com.fpghoti.biscuit.audio.request.PlayRequest; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; @@ -10,7 +10,7 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack; public abstract class ResultHandler implements AudioLoadResultHandler { - private Biscuit biscuit; + private BiscuitGuild biscuit; private PlayRequest request; public PlayRequest getRequest() { @@ -36,7 +36,7 @@ public abstract class ResultHandler implements AudioLoadResultHandler { MessageText.send(request.getRequestChannel(), "An error was encountered while attempting to load audio."); } - public Biscuit getBiscuit() { + public BiscuitGuild getBiscuitGuild() { return biscuit; } diff --git a/src/main/java/com/fpghoti/biscuit/audio/result/SCResultHandler.java b/src/main/java/com/fpghoti/biscuit/audio/result/SCResultHandler.java index 5727541..73d848f 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/result/SCResultHandler.java +++ b/src/main/java/com/fpghoti/biscuit/audio/result/SCResultHandler.java @@ -5,7 +5,7 @@ import com.fpghoti.biscuit.audio.AudioScheduler; import com.fpghoti.biscuit.audio.request.PlayRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCPriorityRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; @@ -13,12 +13,12 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack; public class SCResultHandler extends ResultHandler { - private Biscuit biscuit; + private BiscuitGuild biscuit; private SCRequest request; public SCResultHandler(SCRequest request) { this.request = request; - this.biscuit = request.getBiscuit(); + this.biscuit = request.getBiscuitGuild(); } public PlayRequest getRequest() { diff --git a/src/main/java/com/fpghoti/biscuit/audio/result/YTResultHandler.java b/src/main/java/com/fpghoti/biscuit/audio/result/YTResultHandler.java index f27dc62..49dd1fa 100644 --- a/src/main/java/com/fpghoti/biscuit/audio/result/YTResultHandler.java +++ b/src/main/java/com/fpghoti/biscuit/audio/result/YTResultHandler.java @@ -5,7 +5,7 @@ import com.fpghoti.biscuit.audio.AudioScheduler; import com.fpghoti.biscuit.audio.request.PlayRequest; import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest; import com.fpghoti.biscuit.audio.request.youtube.YTRequest; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; @@ -13,12 +13,12 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack; public class YTResultHandler extends ResultHandler { - private Biscuit biscuit; + private BiscuitGuild biscuit; private YTRequest request; public YTResultHandler(YTRequest request) { this.request = request; - this.biscuit = request.getBiscuit(); + this.biscuit = request.getBiscuitGuild(); } public PlayRequest getRequest() { diff --git a/src/main/java/com/fpghoti/biscuit/audio/util/AudioUtil.java b/src/main/java/com/fpghoti/biscuit/audio/util/AudioUtil.java new file mode 100644 index 0000000..c91d5fe --- /dev/null +++ b/src/main/java/com/fpghoti/biscuit/audio/util/AudioUtil.java @@ -0,0 +1,47 @@ +package com.fpghoti.biscuit.audio.util; + +import java.io.File; +import java.util.ArrayList; + +import com.fpghoti.biscuit.Main; +import com.fpghoti.biscuit.util.Util; + +public class AudioUtil { + + public static ArrayList getAudioFiles(){ + return getAudioFiles(Main.audioDir); + } + + public static ArrayList getAudioFiles(File a){ + ArrayList audios = new ArrayList(); + File[] files = a.listFiles(); + for(int i = 0; i < files.length; i++) { + File f = files[i]; + if(!f.isDirectory()) { + String name = f.getName(); + String filetype = Util.getLast(name, "\\."); + String[] types = {"mp3", "wav", "flac", "mp4", "m4a", "ogg", "webm"}; + for(String s : types) { + if(s.equalsIgnoreCase(filetype)) { + audios.add(f); + } + } + } + } + return audios; + } + + public static File getAudioFile(String name) { + return getAudioFile(getAudioFiles(), name); + } + + public static File getAudioFile(ArrayList playlist, String name) { + for(File f : playlist) { + if(f.getName().equalsIgnoreCase(name)) { + return f; + } + } + return null; + } + +} diff --git a/src/main/java/com/fpghoti/biscuit/captcha/Captcha.java b/src/main/java/com/fpghoti/biscuit/captcha/Captcha.java index e3b4bdf..cbb4344 100644 --- a/src/main/java/com/fpghoti/biscuit/captcha/Captcha.java +++ b/src/main/java/com/fpghoti/biscuit/captcha/Captcha.java @@ -8,7 +8,7 @@ import java.io.OutputStream; import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.PluginCore; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.user.CaptchaUser; @@ -170,7 +170,7 @@ public class Captcha { //mark the PreUser as "done" p.setDone(); - Biscuit biscuit = p.getBiscuit(); + BiscuitGuild biscuit = p.getBiscuitGuild(); if(biscuit == null) { Main.getMainBiscuit().error("CAPTCHA ERROR: Null Biscuit"); diff --git a/src/main/java/com/fpghoti/biscuit/captcha/HandleCaptcha.java b/src/main/java/com/fpghoti/biscuit/captcha/HandleCaptcha.java index 5d5550c..23dc29e 100644 --- a/src/main/java/com/fpghoti/biscuit/captcha/HandleCaptcha.java +++ b/src/main/java/com/fpghoti/biscuit/captcha/HandleCaptcha.java @@ -1,7 +1,7 @@ package com.fpghoti.biscuit.captcha; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.user.CaptchaUser; import com.fpghoti.biscuit.util.PermUtil; @@ -35,7 +35,7 @@ public class HandleCaptcha { } public static Boolean isCaptchaChannel(TextChannel c) { - Biscuit biscuit = Biscuit.getBiscuit(c.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(c.getGuild()); Boolean a = true; for(String s: biscuit.getProperties().getCaptchaChannels()) { if(c.getName().equalsIgnoreCase(s)) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/CommandManager.java b/src/main/java/com/fpghoti/biscuit/commands/CommandManager.java index 64ad4fc..d8a34f4 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/CommandManager.java +++ b/src/main/java/com/fpghoti/biscuit/commands/CommandManager.java @@ -4,11 +4,11 @@ import java.util.ArrayList; import java.util.List; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ConsoleCommand; import com.fpghoti.biscuit.commands.base.CustomCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -20,7 +20,7 @@ public class CommandManager { private static List commands = new ArrayList(); public static void parse(String message, MessageReceivedEvent event){ - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); ArrayList split = new ArrayList(); String fixed = message.replaceFirst(b.getProperties().getCommandSignifier(), ""); String[] splitMsg = fixed.split(" "); @@ -40,10 +40,10 @@ public class CommandManager { } public static boolean dispatch(MessageReceivedEvent event, String label, String[] args) { - Biscuit b = Main.getMainBiscuit(); + BiscuitGuild b = Main.getMainBiscuit(); boolean isMain = true; if(event != null) { - b = Biscuit.getBiscuit(event.getGuild()); + b = BiscuitGuild.getBiscuitGuild(event.getGuild()); isMain = false; if(Util.contains(b.getProperties().disabledCommands(), label)) { return false; diff --git a/src/main/java/com/fpghoti/biscuit/commands/base/CustomCommand.java b/src/main/java/com/fpghoti/biscuit/commands/base/CustomCommand.java index 91fedfd..d1d6835 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/base/CustomCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/base/CustomCommand.java @@ -1,9 +1,9 @@ package com.fpghoti.biscuit.commands.base; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.BaseCommand; import com.fpghoti.biscuit.commands.CommandType; +import com.fpghoti.biscuit.guild.BiscuitGuild; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -15,9 +15,9 @@ public class CustomCommand extends BaseCommand { } private String name; - private Biscuit biscuit; + private BiscuitGuild biscuit; - public CustomCommand(String name, Biscuit biscuit) { + public CustomCommand(String name, BiscuitGuild biscuit) { this.name = name; this.biscuit = biscuit; } diff --git a/src/main/java/com/fpghoti/biscuit/commands/console/GuildSayCommand.java b/src/main/java/com/fpghoti/biscuit/commands/console/GuildSayCommand.java index 8046de2..4a0a194 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/console/GuildSayCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/console/GuildSayCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.console; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ConsoleCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.entities.Guild; @@ -24,7 +24,7 @@ public class GuildSayCommand extends ConsoleCommand{ public void execute(String[] args) { if(args.length > 0) { String guildcode = args[0]; - Biscuit b = Biscuit.getBiscuit(guildcode); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(guildcode); if(b == null) { Main.getMainBiscuit().log("INVALID GUILD! TRY: guildsay "); return; diff --git a/src/main/java/com/fpghoti/biscuit/commands/console/SayCommand.java b/src/main/java/com/fpghoti/biscuit/commands/console/SayCommand.java index 5a077fa..c4aecae 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/console/SayCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/console/SayCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.console; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ConsoleCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.entities.Guild; @@ -24,7 +24,7 @@ public class SayCommand extends ConsoleCommand{ } public void execute(String[] args) { - Biscuit b = Main.getMainBiscuit(); + BiscuitGuild b = Main.getMainBiscuit(); if(args.length > 0) { String target = args[0]; String message = ""; diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/AddCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/AddCommand.java index 4fe5959..549ede2 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/AddCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/AddCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class AddCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -add"); if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/ChanIDCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/ChanIDCommand.java index 3b6d548..c45c846 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/ChanIDCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/ChanIDCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -20,7 +20,7 @@ public class ChanIDCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -chanid"); String id = event.getChannel().getId(); MessageText.send(event.getChannel().asTextChannel(), id); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/DivideCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/DivideCommand.java index 96244fb..430dadf 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/DivideCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/DivideCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class DivideCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -divide"); if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/GetConfigCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/GetConfigCommand.java index 8b76416..c960a80 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/GetConfigCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/GetConfigCommand.java @@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord; import java.io.File; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -25,7 +25,7 @@ public class GetConfigCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -getconfig"); if(PermUtil.isAdmin(event.getMember())) { File config = b.getConfig().getFile(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/GuildIDCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/GuildIDCommand.java index 62b508b..c123178 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/GuildIDCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/GuildIDCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -22,7 +22,7 @@ public class GuildIDCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -guildid"); if(PermUtil.isMod(event.getMember())) { MessageText.send(event.getChannel().asTextChannel(), event.getGuild().getId()); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/HelpCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/HelpCommand.java index 07769cc..71822d3 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/HelpCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/HelpCommand.java @@ -4,12 +4,12 @@ import java.util.ArrayList; import java.util.List; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.BaseCommand; import com.fpghoti.biscuit.commands.CommandManager; import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.CustomCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -29,7 +29,7 @@ public class HelpCommand extends ClientCommand { @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); int pg = 1; if (args.length > 0) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/MakeInviteCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/MakeInviteCommand.java index a6aa522..1b25b82 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/MakeInviteCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/MakeInviteCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -30,7 +30,7 @@ public class MakeInviteCommand extends ClientCommand{ doubAge = Double.parseDouble(args[1]) * 3600; } int maxAge = (int)Math.round(doubAge); - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -makeinvite " + args[0]); if((PermUtil.isAdmin(event.getMember()))) { Guild g = event.getGuild(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/MultiplyCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/MultiplyCommand.java index 467f390..e92de0e 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/MultiplyCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/MultiplyCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class MultiplyCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -multiply"); if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/NotSpammerCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/NotSpammerCommand.java index 9e3af8f..15934f9 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/NotSpammerCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/NotSpammerCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -23,7 +23,7 @@ public class NotSpammerCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -notspammer " + args[0]); for(Member m : event.getMessage().getMentions().getMembers()){ User u = m.getUser(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/PingCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/PingCommand.java index 81242c8..5c9f3d9 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/PingCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/PingCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -20,7 +20,7 @@ public class PingCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -ping"); MessageText.send(event.getChannel().asTextChannel(), "Pong!"); } diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/PowerCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/PowerCommand.java index ca30b37..d58ef9f 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/PowerCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/PowerCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class PowerCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -power"); if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/RecentSpammersCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/RecentSpammersCommand.java index 8025194..b683c71 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/RecentSpammersCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/RecentSpammersCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -20,7 +20,7 @@ public class RecentSpammersCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -recentspammers"); String msg = b.getMessageStore().getSpammerList(); MessageText.send(event.getChannel().asTextChannel(), msg); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/SaveConfigCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/SaveConfigCommand.java index f60af56..8cfc83e 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/SaveConfigCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/SaveConfigCommand.java @@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord; import java.util.List; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -25,7 +25,7 @@ public class SaveConfigCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -saveconfig"); List attch = event.getMessage().getAttachments(); if(PermUtil.isAdmin(event.getMember())) { @@ -34,7 +34,7 @@ public class SaveConfigCommand extends ClientCommand{ for(Attachment a : attch) { b.getConfig().replaceConfig(a, event.getChannel().asTextChannel()); b.remove(); - b = Biscuit.loadGuild(event.getGuild()); + b = BiscuitGuild.loadGuild(event.getGuild()); } }else { MessageText.sendTimed(event.getChannel().asTextChannel(), event.getAuthor().getAsMention() + " Too many attachments added! " diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/SoftMuteCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/SoftMuteCommand.java index fd4d0d1..331281c 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/SoftMuteCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/SoftMuteCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -23,7 +23,7 @@ public class SoftMuteCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -softmute " + args[0]); for(Member m : event.getMessage().getMentions().getMembers()){ User u = m.getUser(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/SquareRootCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/SquareRootCommand.java index 5c46ebb..4f8c816 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/SquareRootCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/SquareRootCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class SquareRootCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -squareroot"); if(args[0] != null && Util.isDeciDigit(args[0])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/SubtractCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/SubtractCommand.java index 327715f..aefaef8 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/SubtractCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/SubtractCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class SubtractCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -subtract"); if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { double num = Double.parseDouble(args[0]); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/ToggleRoleCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/ToggleRoleCommand.java index 41cd24e..af54bae 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/ToggleRoleCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/ToggleRoleCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -25,7 +25,7 @@ public class ToggleRoleCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(!event.getAuthor().isBot()) { b.log(event.getAuthor().getName() + " issued a command: -togglerole " + args[0]); boolean foundEmote = false; diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/UIDCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/UIDCommand.java index 30f1038..cbc4882 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/UIDCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/UIDCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -23,7 +23,7 @@ public class UIDCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -uid " + args[0]); for(Member m : event.getMessage().getMentions().getMembers()){ User u = m.getUser(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/UnSoftMuteCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/UnSoftMuteCommand.java index 0696d40..a06cbad 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/UnSoftMuteCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/UnSoftMuteCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -23,7 +23,7 @@ public class UnSoftMuteCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -unsoftmute " + args[0]); for(Member m : event.getMessage().getMentions().getMembers()){ User u = m.getUser(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/WikiCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/WikiCommand.java index ba4ef07..0a340ca 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/WikiCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/WikiCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.ClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class WikiCommand extends ClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -wiki"); if(PermUtil.isMod(event.getMember())) { MessageText.send(event.getChannel().asTextChannel(), "https://git.fpghoti.com/thmsdy/Biscuit/wiki"); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearCommand.java index 41178e0..12280f7 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class ClearCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -clear"); if(PermUtil.hasMusicControl(event.getMember())) { MessageText.send(event.getChannel().asTextChannel(), "Cleared all upcoming songs from the queue."); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearUserSongsCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearUserSongsCommand.java index 37e89da..77a2342 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearUserSongsCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ClearUserSongsCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -23,7 +23,7 @@ public class ClearUserSongsCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -clearusersongs " + args[0]); if(PermUtil.hasMusicControl(event.getMember())) { for(Member m : event.getMessage().getMentions().getMembers()) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipCommand.java index c880535..3025c74 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class ForceSkipCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -forceskip"); if(PermUtil.hasMusicControl(event.getMember())) { MessageText.send(event.getChannel().asTextChannel(), "Force skipping current song."); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipToCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipToCommand.java index 41c1605..43ad1e7 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipToCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ForceSkipToCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -23,7 +23,7 @@ public class ForceSkipToCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -forceskipto " + args[0]); if(PermUtil.hasMusicControl(event.getMember())) { if(Util.isDigit(args[0])) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/LoopMusicCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/LoopMusicCommand.java index 2c67b4c..5fe79dd 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/LoopMusicCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/LoopMusicCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class LoopMusicCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -loopmusic"); if(PermUtil.hasMusicControl(event.getMember())) { if(!b.getAudioScheduler().isLooping()) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/MoveToCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/MoveToCommand.java index 5b6aceb..e5f7b8b 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/MoveToCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/MoveToCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class MoveToCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -moveto " + args[0] + " " + args[1]); if(PermUtil.hasMusicControl(event.getMember())) { if(Util.isDigit(args[0]) && Util.isDigit(args[1])) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/NowPlayingCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/NowPlayingCommand.java index 74c8af2..805961e 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/NowPlayingCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/NowPlayingCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -21,7 +21,7 @@ public class NowPlayingCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -nowplaying"); if(b.getAudioScheduler().getQueue().getLastTrack() != null ) { MessageEmbed next = b.getAudioScheduler().getQueue().getLastTrack().getEmbedMessage("Now Playing:", true); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PauseCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/PauseCommand.java index 9b01300..8f6d531 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PauseCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/PauseCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class PauseCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -pause"); if(PermUtil.hasMusicControl(event.getMember())) { if(!b.getAudioPlayer().isPaused()) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayCommand.java index e8b86cf..12f1ee6 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayCommand.java @@ -1,19 +1,29 @@ package com.fpghoti.biscuit.commands.discord.music; +import java.io.File; + import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.audio.PlayCommandUtil; +import com.fpghoti.biscuit.audio.AudioHandler; import com.fpghoti.biscuit.audio.request.PlayRequest; import com.fpghoti.biscuit.audio.request.RequestType; +import com.fpghoti.biscuit.audio.request.file.FileRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; import com.fpghoti.biscuit.audio.request.youtube.YTRequest; +import com.fpghoti.biscuit.audio.result.FileResultHandler; import com.fpghoti.biscuit.audio.result.ResultHandler; import com.fpghoti.biscuit.audio.result.SCResultHandler; import com.fpghoti.biscuit.audio.result.YTResultHandler; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.audio.util.AudioUtil; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; +import com.fpghoti.biscuit.rest.MessageText; +import com.fpghoti.biscuit.util.PermUtil; import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.managers.AudioManager; public class PlayCommand extends MusicClientCommand{ @@ -29,37 +39,148 @@ public class PlayCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { Guild guild = event.getGuild(); - Biscuit b = Biscuit.getBiscuit(guild); - + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(guild); + int searchArg = 0; + + boolean playFirst = false; boolean scSearch = false; - - if(args[0].equalsIgnoreCase("-sc")) { - scSearch = true; - searchArg = 1; + boolean isFile = false; + + if(args[0].equalsIgnoreCase("-first")) { + searchArg += 1; + if(!PermUtil.hasMusicControl(event.getMember())) { + MessageText.send(event.getChannel().asTextChannel(), "You do not have permission to do this!"); + return; + } + playFirst = true; } - String searchPhrase = PlayCommandUtil.getSearchPhrase(args, searchArg); + if(args[searchArg].equalsIgnoreCase("-sc")) { + scSearch = true; + searchArg += 1; + }else if (args[searchArg].equalsIgnoreCase("-file") || args[searchArg].equalsIgnoreCase("-fileid") || args[searchArg].equalsIgnoreCase("-fid")) { + isFile = true; + searchArg += 1; + } + + String searchPhrase = getSearchPhrase(args, searchArg); b.log(event.getAuthor().getName() + " issued a command: -play " + searchPhrase); - boolean connected = PlayCommandUtil.connectToChannel(event); + boolean connected = connectToChannel(event); if(!connected) { return; } - + PlayRequest request; ResultHandler handler; - + if(scSearch) { - request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD, event.getMessage(), searchPhrase); + if(playFirst) { + request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD_PRIORITY, event.getMessage(), searchPhrase, 1); + } else { + request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD, event.getMessage(), searchPhrase); + } handler = new SCResultHandler((SCRequest)request); + }else if(isFile) { + File file = AudioUtil.getAudioFile(searchPhrase); + if(file == null) { + MessageText.send(event.getChannel().asTextChannel(), "Unable to locate file."); + if(b.getAudioScheduler().getQueue().isEmpty()) { + b.getGuild().getAudioManager().closeAudioConnection(); + } + return; + } + String filename = file.getPath(); + if(playFirst) { + request = PlayRequest.createPlayRequest(RequestType.FILE_PRIORITY, event.getMessage(), filename, 1); + }else { + request = PlayRequest.createPlayRequest(RequestType.FILE, event.getMessage(), filename); + } + + handler = new FileResultHandler((FileRequest)request); + + Main.getPlayerManager().loadItemOrdered(guild, filename, handler); + return; }else { - request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase); + if(playFirst) { + request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase, 1); + }else { + request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase); + } handler = new YTResultHandler((YTRequest)request); } + + Main.getPlayerManager().loadItemOrdered(guild, getID(event), handler); + } + + public static boolean connectToChannel(MessageReceivedEvent event) { + if(!event.isFromGuild()) { + return false; + } + Guild guild = event.getGuild(); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(guild); + TextChannel textChannel = event.getChannel().asTextChannel(); - Main.getPlayerManager().loadItemOrdered(guild, PlayCommandUtil.getID(event), handler); + String vcname = ""; + if(!event.getMember().getVoiceState().inAudioChannel()) { + MessageText.send(textChannel, "You must be in a voice channel to do this!"); + return false; + } + vcname = event.getMember().getVoiceState().getChannel().getName(); + String[] musicChannels = biscuit.getProperties().getMusicChannels(); + if(musicChannels.length >= 1) { + boolean found = false; + for(String cname : musicChannels) { + if(event.getMember().getVoiceState().getChannel().getName().equalsIgnoreCase(cname)) { + found = true; + break; + } + } + if(found == false) { + MessageText.send(textChannel, "You are not in a channel that is authorized to use the music player."); + return false; + } + } + + if(biscuit.getAudioPlayer().getPlayingTrack() != null && guild.getAudioManager().isConnected() && !guild.getAudioManager().getConnectedChannel().getMembers().contains(event.getMember())) { + MessageText.send(textChannel, "Music is already playing in a voice channel. Connect to " + + "that channel, then queue your song."); + return false; + } + + VoiceChannel voiceChannel = guild.getVoiceChannelsByName(vcname, true).get(0); + AudioManager manager = guild.getAudioManager(); + + manager.setSendingHandler(new AudioHandler(biscuit.getAudioPlayer())); + manager.openAudioConnection(voiceChannel); + return true; + } + + private String getSearchPhrase(String[] args, int startArg) { + if(startArg >= args.length) { + return ""; + } + String searchPhrase = args[startArg]; + if(args.length > startArg + 1) { + for(int i = startArg + 1; i < args.length; i++) { + searchPhrase = searchPhrase + " " + args[i]; + } + } + return searchPhrase; + } + + private String getID(MessageReceivedEvent event) { + return getID(event.getMessage().getContentRaw().split(" ")[1]); + } + + private String getID(String url) { + String[] s = url.split("="); + if(s.length > 1) { + return s[1].split("&")[0]; + } + return url; } } diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayFirstCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayFirstCommand.java deleted file mode 100644 index 4c5d5b1..0000000 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/PlayFirstCommand.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.fpghoti.biscuit.commands.discord.music; - -import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.audio.PlayCommandUtil; -import com.fpghoti.biscuit.audio.request.PlayRequest; -import com.fpghoti.biscuit.audio.request.RequestType; -import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; -import com.fpghoti.biscuit.audio.request.youtube.YTRequest; -import com.fpghoti.biscuit.audio.result.ResultHandler; -import com.fpghoti.biscuit.audio.result.SCResultHandler; -import com.fpghoti.biscuit.audio.result.YTResultHandler; -import com.fpghoti.biscuit.biscuit.Biscuit; -import com.fpghoti.biscuit.commands.base.MusicClientCommand; -import com.fpghoti.biscuit.rest.MessageText; -import com.fpghoti.biscuit.util.PermUtil; - -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -//import net.dv8tion.jda.api.entities.TextChannel; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; - -public class PlayFirstCommand extends MusicClientCommand{ - - public PlayFirstCommand() { - name = "Play First"; - description = "Places specified song at the front of the queue."; - usage = Main.getMainBiscuit().getProperties().getCommandSignifier() + "playfirst "; - minArgs = 1; - maxArgs = 2000; - identifiers.add("playfirst"); - } - - @Override - public void execute(String[] args, MessageReceivedEvent event) { - Guild guild = event.getGuild(); - Biscuit b = Biscuit.getBiscuit(guild); - TextChannel tchannel = event.getChannel().asTextChannel(); - - int searchArg = 0; - boolean scSearch = false; - - if(args[0].equalsIgnoreCase("-sc")) { - scSearch = true; - searchArg = 1; - } - - String searchPhrase = PlayCommandUtil.getSearchPhrase(args, searchArg); - - b.log(event.getAuthor().getName() + " issued a command: -playfirst " + searchPhrase); - - if(!PermUtil.hasMusicControl(event.getMember())) { - MessageText.send(tchannel, "You do not have permission to do this!"); - return; - } - - boolean connected = PlayCommandUtil.connectToChannel(event); - if(!connected) { - return; - } - - PlayRequest request; - ResultHandler handler; - - if(scSearch) { - request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD_PRIORITY, event.getMessage(), searchPhrase, 1); - handler = new SCResultHandler((SCRequest)request); - }else { - request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase, 1); - handler = new YTResultHandler((YTRequest)request); - } - - Main.getPlayerManager().loadItemOrdered(guild, PlayCommandUtil.getID(event), handler); - } - -} \ No newline at end of file diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/QueueCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/QueueCommand.java index 014cf40..c01ab70 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/QueueCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/QueueCommand.java @@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.audio.queue.AudioQueue; import com.fpghoti.biscuit.audio.queue.QueuedTrack; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.Util; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; @@ -26,7 +26,7 @@ public class QueueCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); biscuit.log(event.getAuthor().getName() + " issued a command: -queue"); int pg = 1; if (args.length > 0) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/RemoveCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/RemoveCommand.java index 8e88f10..80005ad 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/RemoveCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/RemoveCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -22,7 +22,7 @@ public class RemoveCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -remove " + args[0]); if(PermUtil.hasMusicControl(event.getMember())) { if(Util.isDigit(args[0])) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ShuffleCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ShuffleCommand.java index 27bc5d9..9f02b1d 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/ShuffleCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/ShuffleCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -20,7 +20,7 @@ public class ShuffleCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -shuffle"); if(b.getAudioScheduler().getQueue().getLastTrack() != null ) { b.getAudioScheduler().getQueue().shuffleUserTracks(event.getAuthor().getId()); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipAllCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipAllCommand.java index 38fe57a..b4fb695 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipAllCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipAllCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -21,7 +21,7 @@ public class SkipAllCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -skipall"); if(PermUtil.hasMusicControl(event.getMember())) { MessageText.send(event.getChannel().asTextChannel(), "Force skipping all songs."); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipCommand.java index 58aac3d..78d2621 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/SkipCommand.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.audio.AudioScheduler; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import net.dv8tion.jda.api.entities.Guild; @@ -29,7 +29,7 @@ public class SkipCommand extends MusicClientCommand{ public void execute(String[] args, MessageReceivedEvent event) { Guild guild = event.getGuild(); - Biscuit biscuit = Biscuit.getBiscuit(guild); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(guild); biscuit.log(event.getAuthor().getName() + " issued a command: -skip"); TextChannel cmdChannel = event.getChannel().asTextChannel(); diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/TogglePauseCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/TogglePauseCommand.java index 8aaf563..ff9086d 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/TogglePauseCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/TogglePauseCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -22,7 +22,7 @@ public class TogglePauseCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -togglepause"); if(PermUtil.hasMusicControl(event.getMember())) { if(b.getAudioPlayer().isPaused()) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/UnpauseCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/UnpauseCommand.java index 9c8f3ce..6910518 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/UnpauseCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/UnpauseCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; @@ -22,7 +22,7 @@ public class UnpauseCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); b.log(event.getAuthor().getName() + " issued a command: -unpause"); if(PermUtil.hasMusicControl(event.getMember())) { if(b.getAudioPlayer().isPaused()) { diff --git a/src/main/java/com/fpghoti/biscuit/commands/discord/music/VolumeCommand.java b/src/main/java/com/fpghoti/biscuit/commands/discord/music/VolumeCommand.java index 65f65e5..0c06a57 100644 --- a/src/main/java/com/fpghoti/biscuit/commands/discord/music/VolumeCommand.java +++ b/src/main/java/com/fpghoti/biscuit/commands/discord/music/VolumeCommand.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.commands.discord.music; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.base.MusicClientCommand; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -23,7 +23,7 @@ public class VolumeCommand extends MusicClientCommand{ @Override public void execute(String[] args, MessageReceivedEvent event) { - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(args.length < 1) { b.log(event.getAuthor().getName() + " issued a command: -volume"); diff --git a/src/main/java/com/fpghoti/biscuit/config/BiscuitConfig.java b/src/main/java/com/fpghoti/biscuit/config/BiscuitConfig.java index 5d949c5..c6ccda9 100644 --- a/src/main/java/com/fpghoti/biscuit/config/BiscuitConfig.java +++ b/src/main/java/com/fpghoti/biscuit/config/BiscuitConfig.java @@ -14,7 +14,7 @@ import org.apache.commons.configuration2.PropertiesConfiguration; import org.apache.commons.configuration2.PropertiesConfigurationLayout; import org.apache.commons.configuration2.ex.ConfigurationException; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.rest.MessageText; import com.jcabi.aspects.Async; @@ -24,9 +24,9 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; public class BiscuitConfig { - private Biscuit biscuit; + private BiscuitGuild biscuit; - public BiscuitConfig(Biscuit b) { + public BiscuitConfig(BiscuitGuild b) { this.biscuit = b; } diff --git a/src/main/java/com/fpghoti/biscuit/config/BiscuitProperties.java b/src/main/java/com/fpghoti/biscuit/config/BiscuitProperties.java index afb8830..c96a5f2 100644 --- a/src/main/java/com/fpghoti/biscuit/config/BiscuitProperties.java +++ b/src/main/java/com/fpghoti/biscuit/config/BiscuitProperties.java @@ -1,14 +1,14 @@ package com.fpghoti.biscuit.config; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.util.Util; public class BiscuitProperties { - Biscuit biscuit; + BiscuitGuild biscuit; - public BiscuitProperties(Biscuit b) { + public BiscuitProperties(BiscuitGuild b) { this.biscuit = b; } diff --git a/src/main/java/com/fpghoti/biscuit/biscuit/Biscuit.java b/src/main/java/com/fpghoti/biscuit/guild/BiscuitGuild.java similarity index 89% rename from src/main/java/com/fpghoti/biscuit/biscuit/Biscuit.java rename to src/main/java/com/fpghoti/biscuit/guild/BiscuitGuild.java index 02b223b..b5129d7 100644 --- a/src/main/java/com/fpghoti/biscuit/biscuit/Biscuit.java +++ b/src/main/java/com/fpghoti/biscuit/guild/BiscuitGuild.java @@ -1,4 +1,4 @@ -package com.fpghoti.biscuit.biscuit; +package com.fpghoti.biscuit.guild; import java.io.File; import java.util.ArrayList; @@ -34,10 +34,10 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.User; -public class Biscuit { +public class BiscuitGuild { - public static Biscuit getBiscuit(Guild g) { - for(Biscuit b : Main.getBiscuits()) { + public static BiscuitGuild getBiscuitGuild(Guild g) { + for(BiscuitGuild b : Main.getBiscuits()) { if(b.getGuild().getId().equals(g.getId())) { return b; } @@ -45,8 +45,8 @@ public class Biscuit { return null; } - public static Biscuit getBiscuit(String guildcode) { - for(Biscuit b : Main.getBiscuits()) { + public static BiscuitGuild getBiscuitGuild(String guildcode) { + for(BiscuitGuild b : Main.getBiscuits()) { if(b.getProperties().getGuildCode().equalsIgnoreCase(guildcode)) { return b; } @@ -58,7 +58,7 @@ public class Biscuit { ArrayList pres = new ArrayList(); for(Guild g : Main.getJDA().getGuilds()) { if(g.isMember(u)){ - Biscuit b = getBiscuit(g); + BiscuitGuild b = getBiscuitGuild(g); if(b.preUserExists(u)) { pres.add(b.getPreUser(u)); } @@ -67,8 +67,8 @@ public class Biscuit { return pres; } - public static Biscuit loadGuild(Guild g) { - Biscuit biscuit = new Biscuit(Main.getJDA(), g, Main.getLogger()); + public static BiscuitGuild loadGuild(Guild g) { + BiscuitGuild biscuit = new BiscuitGuild(Main.getJDA(), g, Main.getLogger()); biscuit.addTimer(new ChatCountTimer(biscuit)); biscuit.addTimer(new SoftMuteTimer(biscuit)); biscuit.addTimer(new DecrementTimer(biscuit)); @@ -88,19 +88,19 @@ public class Biscuit { private HashMap inviteUses; private BiscuitConfig config; private BiscuitProperties properties; - private BiscuitMessageStore messageStore; + private GuildMessageStore messageStore; private AudioPlayer player; private AudioScheduler scheduler; private CopyOnWriteArrayList users = new CopyOnWriteArrayList(); private HashMap rolequeue; - public Biscuit(JDA jda, Guild guild, BiscuitLogger log) { + public BiscuitGuild(JDA jda, Guild guild, BiscuitLogger log) { this.jda = jda; this.guild = guild; this.logger = log; this.isMain = guild == null; - this.messageStore = new BiscuitMessageStore(this); + this.messageStore = new GuildMessageStore(this); this.config = new BiscuitConfig(this); config.generateConfig(); this.properties = new BiscuitProperties(this); @@ -141,7 +141,7 @@ public class Biscuit { return properties; } - public BiscuitMessageStore getMessageStore() { + public GuildMessageStore getMessageStore() { return messageStore; } diff --git a/src/main/java/com/fpghoti/biscuit/biscuit/BiscuitMessageStore.java b/src/main/java/com/fpghoti/biscuit/guild/GuildMessageStore.java similarity index 91% rename from src/main/java/com/fpghoti/biscuit/biscuit/BiscuitMessageStore.java rename to src/main/java/com/fpghoti/biscuit/guild/GuildMessageStore.java index a9f6428..b70fcce 100644 --- a/src/main/java/com/fpghoti/biscuit/biscuit/BiscuitMessageStore.java +++ b/src/main/java/com/fpghoti/biscuit/guild/GuildMessageStore.java @@ -1,13 +1,13 @@ -package com.fpghoti.biscuit.biscuit; +package com.fpghoti.biscuit.guild; import java.util.ArrayList; import java.util.HashMap; import net.dv8tion.jda.api.entities.User; -public class BiscuitMessageStore { +public class GuildMessageStore { - Biscuit biscuit; + BiscuitGuild biscuit; private HashMap messageCounts = new HashMap<>(); private HashMap messagesTenSeconds = new HashMap<>(); private HashMap messagesTwoMin = new HashMap<>(); @@ -16,7 +16,7 @@ public class BiscuitMessageStore { private ArrayList spamWarned = new ArrayList(); private ArrayList softmuted = new ArrayList(); - public BiscuitMessageStore(Biscuit b) { + public GuildMessageStore(BiscuitGuild b) { this.biscuit = b; } diff --git a/src/main/java/com/fpghoti/biscuit/listener/CommandListener.java b/src/main/java/com/fpghoti/biscuit/listener/CommandListener.java index 129b20d..b8ceb3f 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/CommandListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/CommandListener.java @@ -2,8 +2,8 @@ package com.fpghoti.biscuit.listener; import java.util.Scanner; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.commands.CommandManager; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BiscuitLogger; import com.fpghoti.biscuit.util.PermUtil; @@ -26,7 +26,7 @@ public class CommandListener extends ListenerAdapter implements Runnable { if(!event.isFromGuild()) { return; } - Biscuit b = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(PermUtil.isAdmin(event.getMember()) || !b.getProperties().restrictCmdChannels() || (b.getProperties().restrictCmdChannels() && isBotChannel(event.getChannel().asTextChannel()))) { if(!event.getAuthor().isBot() && event.getMessage().getContentDisplay().startsWith(b.getProperties().getCommandSignifier()) && event.getMessage().getAuthor().getId() != event.getJDA().getSelfUser().getId()){ CommandManager.parse(event.getMessage().getContentRaw().toLowerCase(), event); @@ -35,7 +35,7 @@ public class CommandListener extends ListenerAdapter implements Runnable { } private boolean isBotChannel(TextChannel c) { - Biscuit b = Biscuit.getBiscuit(c.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild()); for(String s : b.getProperties().getCmdChannels()) { if(s.equals(c.getName())) { return true; diff --git a/src/main/java/com/fpghoti/biscuit/listener/GuildListener.java b/src/main/java/com/fpghoti/biscuit/listener/GuildListener.java index 6871aab..01be68e 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/GuildListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/GuildListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import net.dv8tion.jda.api.entities.Guild; @@ -35,7 +35,7 @@ public class GuildListener extends ListenerAdapter { private void loadGuild(GenericGuildEvent event) { Guild g = event.getGuild(); - Biscuit biscuit = Biscuit.loadGuild(g); + BiscuitGuild biscuit = BiscuitGuild.loadGuild(g); biscuit.log(BColor.CYAN_BOLD + "---- Joined new Guild! ----"); biscuit.log(BColor.CYAN_BOLD + "Name: " + BColor.WHITE + g.getName()); biscuit.log(BColor.CYAN_BOLD + "Id: " + BColor.WHITE + g.getId()); @@ -44,7 +44,7 @@ public class GuildListener extends ListenerAdapter { private void unloadGuild(GenericGuildEvent event) { Guild g = event.getGuild(); - Biscuit biscuit = Biscuit.getBiscuit(g); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(g); biscuit.remove(); } diff --git a/src/main/java/com/fpghoti/biscuit/listener/JoinListener.java b/src/main/java/com/fpghoti/biscuit/listener/JoinListener.java index 21068d8..e0ffefc 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/JoinListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/JoinListener.java @@ -2,7 +2,7 @@ package com.fpghoti.biscuit.listener; import java.util.HashMap; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.user.CaptchaUser; import com.fpghoti.biscuit.user.PreUser; @@ -19,7 +19,7 @@ public class JoinListener extends ListenerAdapter { @Override public void onGuildMemberJoin(GuildMemberJoinEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); User user = event.getMember().getUser(); biscuit.log(BColor.YELLOW_BOLD + "USER JOINED: " + user.getName() + " " + user.getAsMention()); biscuit.eventLog("**User Joined:** ``" + user.getName() + "`` " + user.getAsMention()); @@ -54,7 +54,7 @@ public class JoinListener extends ListenerAdapter { } @Async - private void logUserInvite(final User user, final Biscuit b){ + private void logUserInvite(final User user, final BiscuitGuild b){ Guild g = b.getGuild(); g.retrieveInvites().queue(invs -> { String usedInv = "Other"; diff --git a/src/main/java/com/fpghoti/biscuit/listener/LeaveListener.java b/src/main/java/com/fpghoti/biscuit/listener/LeaveListener.java index 0a4cec8..47b45a1 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/LeaveListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/LeaveListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.user.PreUser; @@ -12,7 +12,7 @@ public class LeaveListener extends ListenerAdapter { @Override public void onGuildMemberRemove(GuildMemberRemoveEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); User user = event.getMember().getUser(); PreUser u = biscuit.getPreUser(user); int time = 1; diff --git a/src/main/java/com/fpghoti/biscuit/listener/MessageDeleteListener.java b/src/main/java/com/fpghoti/biscuit/listener/MessageDeleteListener.java index 798b3f1..8e634be 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/MessageDeleteListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/MessageDeleteListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.util.Util; @@ -11,7 +11,7 @@ public class MessageDeleteListener extends ListenerAdapter { @Override public void onMessageDelete(MessageDeleteEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(Util.isLoggable(event.getChannel().asTextChannel())) { biscuit.log("[" + BColor.MAGENTA + "#" + event.getChannel().getName() + BColor.RESET + "] " + BColor.MAGENTA_BOLD + "Message " + event.getMessageId() + " was deleted."); } diff --git a/src/main/java/com/fpghoti/biscuit/listener/MessageEditListener.java b/src/main/java/com/fpghoti/biscuit/listener/MessageEditListener.java index d7d077b..7333224 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/MessageEditListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/MessageEditListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.util.Util; @@ -11,7 +11,7 @@ public class MessageEditListener extends ListenerAdapter { @Override public void onMessageUpdate(MessageUpdateEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(Util.isLoggable(event.getChannel().asTextChannel()) && (!event.getAuthor().getName().equalsIgnoreCase("jbot") && !event.getAuthor().isBot())) { biscuit.log("[" + BColor.CYAN_BOLD + "MSG EDIT" + BColor.RESET + "] " + BColor.CYAN + "ID: " + BColor.RESET + event.getMessageId() + BColor.CYAN + " User: " + BColor.RESET + event.getAuthor().getAsMention()); diff --git a/src/main/java/com/fpghoti/biscuit/listener/MessageReceiveListener.java b/src/main/java/com/fpghoti/biscuit/listener/MessageReceiveListener.java index 6cc11a5..acb0931 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/MessageReceiveListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/MessageReceiveListener.java @@ -1,8 +1,8 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; -import com.fpghoti.biscuit.biscuit.BiscuitMessageStore; import com.fpghoti.biscuit.captcha.HandleCaptcha; +import com.fpghoti.biscuit.guild.BiscuitGuild; +import com.fpghoti.biscuit.guild.GuildMessageStore; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.util.ChatFilter; @@ -24,7 +24,7 @@ public class MessageReceiveListener extends ListenerAdapter{ if(!event.isFromGuild()) { return; } - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(event.getAuthor().isBot()) { logBot(event, biscuit); return; @@ -48,7 +48,7 @@ public class MessageReceiveListener extends ListenerAdapter{ } - private void logBot(MessageReceivedEvent event, Biscuit biscuit) { + private void logBot(MessageReceivedEvent event, BiscuitGuild biscuit) { if(Util.isLoggable(event.getChannel().asTextChannel())) { if(biscuit.getProperties().logChat()) { biscuit.log("[" + BColor.BLACK_BOLD + "BOT" + BColor.RESET + "] [" + BColor.RED + "#" + event.getChannel().getName() + BColor.RESET + "] " @@ -57,7 +57,7 @@ public class MessageReceiveListener extends ListenerAdapter{ } } - private void logUser(MessageReceivedEvent event, Biscuit biscuit) { + private void logUser(MessageReceivedEvent event, BiscuitGuild biscuit) { if(Util.isLoggable(event.getChannel().asTextChannel())) { if(biscuit.getProperties().logChat()) { biscuit.log("[" + BColor.CYAN_BOLD + "MSG" + BColor.RESET + "] " + BColor.GREEN + "ID: " + BColor.RESET + @@ -90,9 +90,9 @@ public class MessageReceiveListener extends ListenerAdapter{ return false; } - private boolean handleSpammer(MessageReceivedEvent event, Biscuit biscuit) { + private boolean handleSpammer(MessageReceivedEvent event, BiscuitGuild biscuit) { //TODO make numbers configurable - BiscuitMessageStore store = biscuit.getMessageStore(); + GuildMessageStore store = biscuit.getMessageStore(); String mention = event.getAuthor().getAsMention(); if(store.isSpammer(event.getAuthor())){ //User is a spammer but has not sent a message during @@ -112,9 +112,9 @@ public class MessageReceiveListener extends ListenerAdapter{ return false; } - private boolean handleSoftmuted(MessageReceivedEvent event, Biscuit biscuit) { + private boolean handleSoftmuted(MessageReceivedEvent event, BiscuitGuild biscuit) { //TODO make numbers configurable - BiscuitMessageStore store = biscuit.getMessageStore(); + GuildMessageStore store = biscuit.getMessageStore(); String mention = event.getAuthor().getAsMention(); if(store.isSoftmuted(event.getAuthor())){ //User is softmuted but has not sent a message during @@ -134,8 +134,8 @@ public class MessageReceiveListener extends ListenerAdapter{ return false; } - private void checkNewSpammer(MessageReceivedEvent event, Biscuit biscuit) { - BiscuitMessageStore store = biscuit.getMessageStore(); + private void checkNewSpammer(MessageReceivedEvent event, BiscuitGuild biscuit) { + GuildMessageStore store = biscuit.getMessageStore(); String mention = event.getAuthor().getAsMention(); if(!store.hasMessageCount(event.getAuthor())) { diff --git a/src/main/java/com/fpghoti/biscuit/listener/NameListener.java b/src/main/java/com/fpghoti/biscuit/listener/NameListener.java index 3a8f981..d6aa37b 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/NameListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/NameListener.java @@ -1,7 +1,7 @@ package com.fpghoti.biscuit.listener; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import net.dv8tion.jda.api.entities.Guild; @@ -17,7 +17,7 @@ public class NameListener extends ListenerAdapter { Main.getMainBiscuit().log(BColor.CYAN_BOLD + "User " + user.getName() + " " + user.getAsMention() + " changed username from " + event.getOldName() + " to " + event.getNewName() + "."); for(Guild guild : user.getMutualGuilds()) { - Biscuit biscuit = Biscuit.getBiscuit(guild); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(guild); biscuit.eventLog("**Username changed:** ``" + user.getName() + "`` " + user.getAsMention() + " - From ``" + event.getOldName() + "`` to ``" + event.getNewName() + "``"); } diff --git a/src/main/java/com/fpghoti/biscuit/listener/NicknameListener.java b/src/main/java/com/fpghoti/biscuit/listener/NicknameListener.java index 724c195..e59c24f 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/NicknameListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/NicknameListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import net.dv8tion.jda.api.entities.User; @@ -11,7 +11,7 @@ public class NicknameListener extends ListenerAdapter { @Override public void onGuildMemberUpdateNickname(GuildMemberUpdateNicknameEvent event) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); User user = event.getMember().getUser(); String oldNick = "None"; String newNick = "None"; diff --git a/src/main/java/com/fpghoti/biscuit/listener/ReactionListener.java b/src/main/java/com/fpghoti/biscuit/listener/ReactionListener.java index a5229a8..e00c71c 100644 --- a/src/main/java/com/fpghoti/biscuit/listener/ReactionListener.java +++ b/src/main/java/com/fpghoti/biscuit/listener/ReactionListener.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.listener; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.Util; @@ -17,7 +17,7 @@ public class ReactionListener extends ListenerAdapter{ @Override public void onMessageReactionAdd(MessageReactionAddEvent event){ - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(event.getGuild() == null) { return; } @@ -28,7 +28,7 @@ public class ReactionListener extends ListenerAdapter{ @Override public void onMessageReactionRemove(MessageReactionRemoveEvent event){ - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); if(event.getGuild() == null) { return; } @@ -38,7 +38,7 @@ public class ReactionListener extends ListenerAdapter{ } private void handleMessageRole(GenericMessageReactionEvent event, boolean remove) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); event.getChannel().asTextChannel().retrieveMessageById(event.getMessageId()).queue((message) -> { String msg = message.getContentDisplay(); for(String rolename : biscuit.getProperties().getToggleRoles()) { @@ -57,7 +57,7 @@ public class ReactionListener extends ListenerAdapter{ } private void toggleRole(Role role, GenericMessageReactionEvent event, boolean remove) { - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); Guild guild = event.getGuild(); if(role == null) { return; diff --git a/src/main/java/com/fpghoti/biscuit/plugin/BiscuitPlugin.java b/src/main/java/com/fpghoti/biscuit/plugin/BiscuitPlugin.java index 9749a86..49201fa 100644 --- a/src/main/java/com/fpghoti/biscuit/plugin/BiscuitPlugin.java +++ b/src/main/java/com/fpghoti/biscuit/plugin/BiscuitPlugin.java @@ -6,7 +6,7 @@ import org.pf4j.Plugin; import org.pf4j.PluginWrapper; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BiscuitLogger; import com.github.cage.Cage; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; @@ -47,7 +47,7 @@ public abstract class BiscuitPlugin extends Plugin { return this; } - public ArrayList getBiscuits() { + public ArrayList getBiscuits() { return Main.getBiscuits(); } diff --git a/src/main/java/com/fpghoti/biscuit/rest/MessageText.java b/src/main/java/com/fpghoti/biscuit/rest/MessageText.java index 7099383..0b9b9dc 100644 --- a/src/main/java/com/fpghoti/biscuit/rest/MessageText.java +++ b/src/main/java/com/fpghoti/biscuit/rest/MessageText.java @@ -3,7 +3,7 @@ package com.fpghoti.biscuit.rest; import java.util.concurrent.TimeUnit; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.PrivateChannel; @@ -17,7 +17,7 @@ public class MessageText { Main.getMainBiscuit().error("Message could not be sent to null channel: " + message); return; } - final Biscuit b = Biscuit.getBiscuit(c.getGuild()); + final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild()); c.sendMessage(message).submit().whenComplete((msg, error) -> { if(error != null) { b.warn("Message did not send: " + message); @@ -44,7 +44,7 @@ public class MessageText { Main.getMainBiscuit().error("Message embed could not be sent to null channel: " + message); return; } - final Biscuit b = Biscuit.getBiscuit(c.getGuild()); + final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild()); c.sendMessageEmbeds(message).submit().whenComplete((msg, error) -> { if(error != null) { b.warn("Message embed did not send: " + message); @@ -58,7 +58,7 @@ public class MessageText { Main.getMainBiscuit().error("Timed message could not be sent to null channel - Time: " + seconds + " Text: " + message); return; } - final Biscuit b = Biscuit.getBiscuit(c.getGuild()); + final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild()); c.sendMessage(message).submit() .whenComplete((msg, error) -> { if(error != null) { @@ -79,7 +79,7 @@ public class MessageText { Main.getMainBiscuit().error("Timed message embed could not be sent to null channel - Time: " + seconds + " Text: " + message); return; } - final Biscuit b = Biscuit.getBiscuit(c.getGuild()); + final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild()); c.sendMessageEmbeds(message).submit() .whenComplete((msg, error) -> { if(error != null) { diff --git a/src/main/java/com/fpghoti/biscuit/timer/BiscuitTimer.java b/src/main/java/com/fpghoti/biscuit/timer/BiscuitTimer.java index a01b8dc..6c66ebb 100644 --- a/src/main/java/com/fpghoti/biscuit/timer/BiscuitTimer.java +++ b/src/main/java/com/fpghoti/biscuit/timer/BiscuitTimer.java @@ -2,14 +2,14 @@ package com.fpghoti.biscuit.timer; import java.util.TimerTask; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; public abstract class BiscuitTimer extends TimerTask{ protected Long delay; protected Long period; - protected Biscuit biscuit; + protected BiscuitGuild biscuit; public long getDelay() { if(delay != null) { diff --git a/src/main/java/com/fpghoti/biscuit/timer/task/ChatCountTimer.java b/src/main/java/com/fpghoti/biscuit/timer/task/ChatCountTimer.java index 72a5536..76f1031 100644 --- a/src/main/java/com/fpghoti/biscuit/timer/task/ChatCountTimer.java +++ b/src/main/java/com/fpghoti/biscuit/timer/task/ChatCountTimer.java @@ -1,11 +1,11 @@ package com.fpghoti.biscuit.timer.task; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.timer.BiscuitTimer; public class ChatCountTimer extends BiscuitTimer { - public ChatCountTimer(Biscuit b){ + public ChatCountTimer(BiscuitGuild b){ biscuit = b; delay = (long) 0; period = (long) 10*1000; diff --git a/src/main/java/com/fpghoti/biscuit/timer/task/DecrementTimer.java b/src/main/java/com/fpghoti/biscuit/timer/task/DecrementTimer.java index 2ca84ed..fb3dc63 100644 --- a/src/main/java/com/fpghoti/biscuit/timer/task/DecrementTimer.java +++ b/src/main/java/com/fpghoti/biscuit/timer/task/DecrementTimer.java @@ -1,13 +1,13 @@ package com.fpghoti.biscuit.timer.task; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.timer.BiscuitTimer; import com.fpghoti.biscuit.user.PreUser; public class DecrementTimer extends BiscuitTimer{ - public DecrementTimer(Biscuit b){ + public DecrementTimer(BiscuitGuild b){ biscuit = b; delay = (long) 0; period = (long) 60*1000; diff --git a/src/main/java/com/fpghoti/biscuit/timer/task/SoftMuteTimer.java b/src/main/java/com/fpghoti/biscuit/timer/task/SoftMuteTimer.java index a5c5a5d..898548f 100644 --- a/src/main/java/com/fpghoti/biscuit/timer/task/SoftMuteTimer.java +++ b/src/main/java/com/fpghoti/biscuit/timer/task/SoftMuteTimer.java @@ -1,11 +1,11 @@ package com.fpghoti.biscuit.timer.task; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.timer.BiscuitTimer; public class SoftMuteTimer extends BiscuitTimer{ - public SoftMuteTimer(Biscuit b){ + public SoftMuteTimer(BiscuitGuild b){ biscuit = b; delay = (long) 0; period = (long) 120*1000; diff --git a/src/main/java/com/fpghoti/biscuit/user/CaptchaUser.java b/src/main/java/com/fpghoti/biscuit/user/CaptchaUser.java index 0c3018b..6baa98f 100644 --- a/src/main/java/com/fpghoti/biscuit/user/CaptchaUser.java +++ b/src/main/java/com/fpghoti/biscuit/user/CaptchaUser.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import java.util.Iterator; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.captcha.Captcha; +import com.fpghoti.biscuit.guild.BiscuitGuild; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; @@ -118,14 +118,14 @@ public class CaptchaUser implements Iterable{ return false; } for(PreUser u : preUsers) { - if(u.getBiscuit().getGuild().getId().equals(g.getId())) { + if(u.getBiscuitGuild().getGuild().getId().equals(g.getId())) { return true; } } return false; } - public boolean contains(Biscuit b) { + public boolean contains(BiscuitGuild b) { return contains(b.getGuild()); } @@ -167,10 +167,10 @@ public class CaptchaUser implements Iterable{ } public void add(PreUser u) { - if(u.getBiscuit() == null || u.getBiscuit().getGuild() == null) { + if(u.getBiscuitGuild() == null || u.getBiscuitGuild().getGuild() == null) { return; } - if(contains(u.getBiscuit())) { + if(contains(u.getBiscuitGuild())) { return; } preUsers.add(u); @@ -190,14 +190,14 @@ public class CaptchaUser implements Iterable{ return null; } for(PreUser u : preUsers) { - if(u.getBiscuit().getGuild().getId().equals(g.getId())) { + if(u.getBiscuitGuild().getGuild().getId().equals(g.getId())) { return u; } } return null; } - public PreUser get(Biscuit b) { + public PreUser get(BiscuitGuild b) { return get(b.getGuild()); } diff --git a/src/main/java/com/fpghoti/biscuit/user/PreUser.java b/src/main/java/com/fpghoti/biscuit/user/PreUser.java index bda6f8c..17a9ebc 100644 --- a/src/main/java/com/fpghoti/biscuit/user/PreUser.java +++ b/src/main/java/com/fpghoti/biscuit/user/PreUser.java @@ -1,7 +1,7 @@ package com.fpghoti.biscuit.user; import com.fpghoti.biscuit.Main; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.util.PermUtil; import net.dv8tion.jda.api.entities.Member; @@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.User; public class PreUser { - public static PreUser getPreUser(CaptchaUser capUser, Biscuit biscuit) { + public static PreUser getPreUser(CaptchaUser capUser, BiscuitGuild biscuit) { if(capUser == null) { Main.getMainBiscuit().error("Cannot get PreUser (Invalid Captcha User)."); return null; @@ -31,9 +31,9 @@ public class PreUser { private int timeLeft; private boolean done; private boolean test; - private Biscuit biscuit; + private BiscuitGuild biscuit; - private PreUser(CaptchaUser capUser, Biscuit biscuit, boolean test) { + private PreUser(CaptchaUser capUser, BiscuitGuild biscuit, boolean test) { this.test = test; this.capUser = capUser; this.user = capUser.getUser(); @@ -45,7 +45,7 @@ public class PreUser { } } - public Biscuit getBiscuit() { + public BiscuitGuild getBiscuitGuild() { return biscuit; } diff --git a/src/main/java/com/fpghoti/biscuit/util/ChatFilter.java b/src/main/java/com/fpghoti/biscuit/util/ChatFilter.java index 22abefe..ac8074e 100644 --- a/src/main/java/com/fpghoti/biscuit/util/ChatFilter.java +++ b/src/main/java/com/fpghoti/biscuit/util/ChatFilter.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.util; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.fpghoti.biscuit.logging.BColor; import com.vdurmont.emoji.EmojiParser; @@ -19,7 +19,7 @@ public class ChatFilter { if(!event.isFromGuild()) { return false; } - Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild()); String msg = event.getMessage().getContentDisplay(); //Message removal priority occurs in this order @@ -73,7 +73,7 @@ public class ChatFilter { return false; } - public static boolean filter(Biscuit biscuit, String sentence){ + public static boolean filter(BiscuitGuild biscuit, String sentence){ for(String s : sentence.split(" ")){ if(filterWord(biscuit, s)){ return true; @@ -82,7 +82,7 @@ public class ChatFilter { return false; } - public static boolean filterWord(Biscuit biscuit, String word) { + public static boolean filterWord(BiscuitGuild biscuit, String word) { String[] match = findMatchPair(biscuit, word); if(match != null) { return true; @@ -90,7 +90,7 @@ public class ChatFilter { return false; } - public static String findMatch(Biscuit biscuit, String word) { + public static String findMatch(BiscuitGuild biscuit, String word) { String[] match = findMatchPair(biscuit, word); if(match == null || match[0] == null) { return null; @@ -98,7 +98,7 @@ public class ChatFilter { return match[0]; } - public static String[] findMatchPair(Biscuit biscuit, String word) { + public static String[] findMatchPair(BiscuitGuild biscuit, String word) { String cleaned = ""; word = word.toLowerCase(); if(word.length() >= 2 && word.charAt(word.length() -1) == '!'){ diff --git a/src/main/java/com/fpghoti/biscuit/util/PermUtil.java b/src/main/java/com/fpghoti/biscuit/util/PermUtil.java index 2ad2596..f2536e1 100644 --- a/src/main/java/com/fpghoti/biscuit/util/PermUtil.java +++ b/src/main/java/com/fpghoti/biscuit/util/PermUtil.java @@ -1,6 +1,6 @@ package com.fpghoti.biscuit.util; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import com.jcabi.aspects.Async; import net.dv8tion.jda.api.Permission; @@ -10,7 +10,7 @@ import net.dv8tion.jda.api.entities.Role; public class PermUtil { public static boolean isAdmin(Member member){ - Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild()); if(member.hasPermission(Permission.ADMINISTRATOR)){ return true; }else{ @@ -24,7 +24,7 @@ public class PermUtil { } public static boolean isMod(Member member){ - Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild()); if(isAdmin(member)){ return true; }else{ @@ -39,7 +39,7 @@ public class PermUtil { } public static boolean hasMusicControl(Member member){ - Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild()); if(isAdmin(member) || isMod(member)){ return true; }else{ @@ -74,7 +74,7 @@ public class PermUtil { } public static boolean isBooster(Member member) { - Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild()); if(isAdmin(member)) { return true; } @@ -87,12 +87,12 @@ public class PermUtil { } public static boolean isBoosterExclusive(Role r) { - Biscuit biscuit = Biscuit.getBiscuit(r.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(r.getGuild()); return Util.containsIgnoreCase(biscuit.getProperties().getBoostExclusiveRoles(),r.getName()); } public static boolean hasDefaultRole(Member m) { - Biscuit biscuit = Biscuit.getBiscuit(m.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(m.getGuild()); for(Role r : biscuit.getGuild().getRoles()) { if(r.getName().equalsIgnoreCase(biscuit.getProperties().getDefaultRole())){ return hasRole(m,r); @@ -102,7 +102,7 @@ public class PermUtil { } public static boolean hasRewardRole(Member m) { - Biscuit biscuit = Biscuit.getBiscuit(m.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(m.getGuild()); for(Role r : biscuit.getGuild().getRoles()) { if(r.getName().equalsIgnoreCase(biscuit.getProperties().getCaptchaReward())){ return hasRole(m,r); @@ -114,7 +114,7 @@ public class PermUtil { @Async public static void clearUndeservedRoles(Member m) { boolean booster = isBooster(m); - Biscuit b = Biscuit.getBiscuit(m.getGuild()); + BiscuitGuild b = BiscuitGuild.getBiscuitGuild(m.getGuild()); for(Role r : m.getRoles()) { if(!booster && isBoosterExclusive(r)) { m.getGuild().removeRoleFromMember(m,r).queue(); diff --git a/src/main/java/com/fpghoti/biscuit/util/Util.java b/src/main/java/com/fpghoti/biscuit/util/Util.java index 59c1227..c2854ac 100644 --- a/src/main/java/com/fpghoti/biscuit/util/Util.java +++ b/src/main/java/com/fpghoti/biscuit/util/Util.java @@ -2,7 +2,7 @@ package com.fpghoti.biscuit.util; import java.util.Random; -import com.fpghoti.biscuit.biscuit.Biscuit; +import com.fpghoti.biscuit.guild.BiscuitGuild; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -16,7 +16,7 @@ public class Util { } public static Boolean isLoggable(TextChannel c) { - Biscuit biscuit = Biscuit.getBiscuit(c.getGuild()); + BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(c.getGuild()); Boolean a = true; for(String s: biscuit.getProperties().getDontLogChannels()) { if(c.getName().equalsIgnoreCase(s)) { @@ -77,5 +77,11 @@ public class Util { } return String.format("%02d:%02d:%02d", hour, minute, second - 1); } + + public static String getLast(String toSplit, String splitBy) { + String[] s = toSplit.split(splitBy); + String last = s[s.length - 1]; + return last; + } }