Added local audio file playback

This commit is contained in:
Ghoti 2025-07-04 21:32:39 -05:00
parent 991d50a945
commit 6a77ea0c06
83 changed files with 597 additions and 426 deletions

View File

@ -8,7 +8,6 @@ import java.util.Scanner;
import org.fusesource.jansi.AnsiConsole; import org.fusesource.jansi.AnsiConsole;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.captcha.BCage; import com.fpghoti.biscuit.captcha.BCage;
import com.fpghoti.biscuit.commands.CommandManager; import com.fpghoti.biscuit.commands.CommandManager;
import com.fpghoti.biscuit.commands.console.GuildSayCommand; 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.NowPlayingCommand;
import com.fpghoti.biscuit.commands.discord.music.PauseCommand; import com.fpghoti.biscuit.commands.discord.music.PauseCommand;
import com.fpghoti.biscuit.commands.discord.music.PlayCommand; 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.QueueCommand;
import com.fpghoti.biscuit.commands.discord.music.RemoveCommand; import com.fpghoti.biscuit.commands.discord.music.RemoveCommand;
import com.fpghoti.biscuit.commands.discord.music.ShuffleCommand; 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.TogglePauseCommand;
import com.fpghoti.biscuit.commands.discord.music.UnpauseCommand; import com.fpghoti.biscuit.commands.discord.music.UnpauseCommand;
import com.fpghoti.biscuit.commands.discord.music.VolumeCommand; 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.CommandListener;
import com.fpghoti.biscuit.listener.DMListener; import com.fpghoti.biscuit.listener.DMListener;
import com.fpghoti.biscuit.listener.GuildListener; 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.AudioPlayerManager;
import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager;
import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers; import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers;
import ch.qos.logback.core.rolling.RollingFileAppender; import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy; import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy;
import dev.lavalink.youtube.YoutubeAudioSourceManager; import dev.lavalink.youtube.YoutubeAudioSourceManager;
@ -93,14 +91,15 @@ public class Main {
private static final BiscuitLogger log = new BiscuitLogger(); private static final BiscuitLogger log = new BiscuitLogger();
private static ArrayList<Biscuit> biscuits; private static ArrayList<BiscuitGuild> biscuits;
private static Biscuit mainBiscuit; private static BiscuitGuild mainBiscuit;
public static Scanner sc; public static Scanner sc;
public static boolean ready = false; public static boolean ready = false;
public static boolean isPlugin = false; public static boolean isPlugin = false;
public static boolean shutdownStarted = false; public static boolean shutdownStarted = false;
private static Cage cage; private static Cage cage;
private static File pluginsDir; private static File pluginsDir;
public static File audioDir;
private static PluginController pluginController; private static PluginController pluginController;
private static AudioPlayerManager playerManager; private static AudioPlayerManager playerManager;
@ -109,10 +108,13 @@ public class Main {
public static void main(String[] args){ public static void main(String[] args){
if(!isPlugin) { if(!isPlugin) {
pluginsDir = new File("plugins"); pluginsDir = new File("plugins");
audioDir = new File("audio");
}else { }else {
pluginsDir = new File(PluginCore.plugin.getDataFolder(), "plugins"); pluginsDir = new File(PluginCore.plugin.getDataFolder(), "plugins");
audioDir = new File(PluginCore.plugin.getDataFolder(), "audio");
} }
pluginsDir.mkdir(); pluginsDir.mkdir();
audioDir.mkdir();
final Properties properties = new Properties(); final Properties properties = new Properties();
try { try {
@ -127,12 +129,16 @@ public class Main {
log.info("Running version: " + BColor.MAGENTA_BOLD + version); log.info("Running version: " + BColor.MAGENTA_BOLD + version);
playerManager = new DefaultAudioPlayerManager(); playerManager = new DefaultAudioPlayerManager();
AudioSourceManagers.registerLocalSource(playerManager);
YoutubeAudioSourceManager ytSourceManager = new dev.lavalink.youtube.YoutubeAudioSourceManager(); YoutubeAudioSourceManager ytSourceManager = new dev.lavalink.youtube.YoutubeAudioSourceManager();
//LocalAudioSourceManager localSourceManager = new LocalAudioSourceManager();
playerManager.registerSourceManager(ytSourceManager); playerManager.registerSourceManager(ytSourceManager);
//playerManager.registerSourceManager(localSourceManager);
AudioSourceManagers.registerRemoteSources(playerManager, AudioSourceManagers.registerRemoteSources(playerManager,
com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.class); com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.class);
mainBiscuit = new Biscuit(null, null, log);
mainBiscuit = new BiscuitGuild(null, null, log);
startJDA(); startJDA();
cage = new BCage(); cage = new BCage();
@ -148,9 +154,9 @@ public class Main {
jda.addEventListener(new RoleListener()); jda.addEventListener(new RoleListener());
jda.addEventListener(new NicknameListener()); jda.addEventListener(new NicknameListener());
jda.addEventListener(new NameListener()); jda.addEventListener(new NameListener());
biscuits = new ArrayList<Biscuit>(); biscuits = new ArrayList<BiscuitGuild>();
for(Guild g : jda.getGuilds()) { for(Guild g : jda.getGuilds()) {
Biscuit.loadGuild(g); BiscuitGuild.loadGuild(g);
} }
startCommandListener(); startCommandListener();
@ -182,7 +188,6 @@ public class Main {
//Music Client //Music Client
CommandManager.addCommand(new PlayCommand()); CommandManager.addCommand(new PlayCommand());
CommandManager.addCommand(new PlayFirstCommand());
CommandManager.addCommand(new ForceSkipCommand()); CommandManager.addCommand(new ForceSkipCommand());
CommandManager.addCommand(new PauseCommand()); CommandManager.addCommand(new PauseCommand());
CommandManager.addCommand(new UnpauseCommand()); CommandManager.addCommand(new UnpauseCommand());
@ -245,7 +250,7 @@ public class Main {
} }
} }
public static Biscuit getMainBiscuit() { public static BiscuitGuild getMainBiscuit() {
return mainBiscuit; return mainBiscuit;
} }
@ -261,7 +266,7 @@ public class Main {
} }
} }
public static ArrayList<Biscuit> getBiscuits() { public static ArrayList<BiscuitGuild> getBiscuits() {
return biscuits; return biscuits;
} }
@ -273,13 +278,15 @@ public class Main {
return pluginsDir; return pluginsDir;
} }
public static void shutdown() { public static void shutdown() {
if(!shutdownStarted) { if(!shutdownStarted) {
shutdownStarted = true; shutdownStarted = true;
mainBiscuit.log("Shutting down..."); mainBiscuit.log("Shutting down...");
pluginController.shutdownPlugins(); pluginController.shutdownPlugins();
ArrayList<Biscuit> list = new ArrayList<Biscuit>(biscuits); ArrayList<BiscuitGuild> list = new ArrayList<BiscuitGuild>(biscuits);
for(Biscuit b : list) { for(BiscuitGuild b : list) {
b.remove(); b.remove();
} }
mainBiscuit.wipeCaptchaDir(); mainBiscuit.wipeCaptchaDir();
@ -309,11 +316,11 @@ public class Main {
return pluginController; return pluginController;
} }
public static void registerBiscuit(Biscuit b) { public static void registerBiscuit(BiscuitGuild b) {
biscuits.add(b); biscuits.add(b);
} }
public static void unregisterBiscuit(Biscuit b) { public static void unregisterBiscuit(BiscuitGuild b) {
biscuits.remove(b); biscuits.remove(b);
} }

View File

@ -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.YTImmediateRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTRequest; import com.fpghoti.biscuit.audio.request.youtube.YTRequest;
import com.fpghoti.biscuit.audio.result.YTResultHandler; 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.fpghoti.biscuit.rest.MessageText;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
import com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter; 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 { public class AudioScheduler extends AudioEventAdapter {
private Biscuit biscuit; private BiscuitGuild biscuit;
private AudioQueue queue; private AudioQueue queue;
private ArrayList<String> skips; private ArrayList<String> skips;
private boolean loop; private boolean loop;
public AudioScheduler(Biscuit biscuit) { public AudioScheduler(BiscuitGuild biscuit) {
this.biscuit = biscuit; this.biscuit = biscuit;
this.queue = new AudioQueue(); this.queue = new AudioQueue();
this.skips = new ArrayList<String>(); this.skips = new ArrayList<String>();
@ -119,6 +119,9 @@ public class AudioScheduler extends AudioEventAdapter {
public void queue(RequestType type, AudioTrack track, String uid, TextChannel channel, Integer place) { public void queue(RequestType type, AudioTrack track, String uid, TextChannel channel, Integer place) {
if(queue.isEmpty() && biscuit.getAudioPlayer().getPlayingTrack() == null) { if(queue.isEmpty() && biscuit.getAudioPlayer().getPlayingTrack() == null) {
if(place == null) {
place = 0;
}
QueuedTrack qt = new QueuedTrack(biscuit, track, uid, channel, type); QueuedTrack qt = new QueuedTrack(biscuit, track, uid, channel, type);
queue.sendQueueMessage(qt); queue.sendQueueMessage(qt);
queue.addPreviousTrack(qt); queue.addPreviousTrack(qt);
@ -191,7 +194,7 @@ public class AudioScheduler extends AudioEventAdapter {
queue.clear(); queue.clear();
} }
public Biscuit getBiscuit() { public BiscuitGuild getBiscuitGuild() {
return biscuit; return biscuit;
} }

View File

@ -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;
}
}

View File

@ -53,7 +53,7 @@ public class AudioQueue {
QueuedTrack next = tracks.iterator().next(); QueuedTrack next = tracks.iterator().next();
tracks.remove(next); tracks.remove(next);
addPreviousTrack(next); addPreviousTrack(next);
next.getBiscuit().getAudioPlayer().playTrack(next.getTrack()); next.getBiscuitGuild().getAudioPlayer().playTrack(next.getTrack());
} }
public QueuedTrack getTrack(int index){ public QueuedTrack getTrack(int index){

View File

@ -3,7 +3,7 @@ package com.fpghoti.biscuit.audio.queue;
import java.awt.Color; import java.awt.Color;
import com.fpghoti.biscuit.audio.request.RequestType; 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.fpghoti.biscuit.util.Util;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
@ -14,14 +14,14 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
public class QueuedTrack { public class QueuedTrack {
private Biscuit biscuit; private BiscuitGuild biscuit;
private AudioTrack track; private AudioTrack track;
private String userId; private String userId;
private TextChannel channel; private TextChannel channel;
private RequestType type; private RequestType type;
private boolean triedAlternative; 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.biscuit = biscuit;
this.track = track; this.track = track;
this.userId = userId; this.userId = userId;
@ -30,7 +30,7 @@ public class QueuedTrack {
this.triedAlternative = false; this.triedAlternative = false;
} }
public Biscuit getBiscuit() { public BiscuitGuild getBiscuitGuild() {
return biscuit; return biscuit;
} }
@ -56,31 +56,35 @@ public class QueuedTrack {
public MessageEmbed getEmbedMessage(String prefix, boolean showRemaining) { public MessageEmbed getEmbedMessage(String prefix, boolean showRemaining) {
EmbedBuilder embed = new EmbedBuilder(); EmbedBuilder embed = new EmbedBuilder();
String title = track.getInfo().title; String title = track.getInfo().title;
if(prefix != null && !prefix.equals("")) { if(prefix != null && !prefix.equals("")) {
title = prefix + " " + title; 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); embed.setColor(Color.CYAN);
long duration = track.getDuration(); long duration = track.getDuration();
//Duration seems to change after track begins playing //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) { if(showRemaining) {
duration+=1000; duration+=1000;
} }
String desc = "Type: " + type.toString() + "\nAuthor: " + track.getInfo().author + "\nLength: " + Util.getTime(duration); String desc = "Type: " + type.toString() + "\nAuthor: " + track.getInfo().author + "\nLength: " + Util.getTime(duration);
if(showRemaining) { if(showRemaining) {
desc = desc + "\nTime Remaining: " + Util.getTime(track.getDuration() - track.getPosition()); desc = desc + "\nTime Remaining: " + Util.getTime(track.getDuration() - track.getPosition());
} }
embed.setDescription(desc); embed.setDescription(desc);
String name = biscuit.getGuild().getSelfMember().getEffectiveName(); String name = biscuit.getGuild().getSelfMember().getEffectiveName();
String avatar = biscuit.getGuild().getSelfMember().getUser().getEffectiveAvatarUrl(); String avatar = biscuit.getGuild().getSelfMember().getUser().getEffectiveAvatarUrl();
@ -89,13 +93,11 @@ public class QueuedTrack {
name = m.getEffectiveName(); name = m.getEffectiveName();
avatar = m.getUser().getEffectiveAvatarUrl(); avatar = m.getUser().getEffectiveAvatarUrl();
} }
embed.setAuthor(name, null, avatar); embed.setAuthor(name, null, avatar);
if(type.toString().toLowerCase().contains("youtube")) { if(type.toString().toLowerCase().contains("youtube")) {
embed.setThumbnail("https://img.youtube.com/vi/" + track.getIdentifier() + "/mqdefault.jpg"); embed.setThumbnail("https://img.youtube.com/vi/" + track.getIdentifier() + "/mqdefault.jpg");
} }
return embed.build(); return embed.build();
} }

View File

@ -1,11 +1,13 @@
package com.fpghoti.biscuit.audio.request; 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.SCPriorityRequest;
import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTImmediateRequest; import com.fpghoti.biscuit.audio.request.youtube.YTImmediateRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest; import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTRequest; 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.Message;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
@ -47,13 +49,17 @@ public abstract class PlayRequest {
return new SCRequest(message, searchPhrase); return new SCRequest(message, searchPhrase);
case SOUNDCLOUD_PRIORITY: case SOUNDCLOUD_PRIORITY:
return new SCPriorityRequest(message, searchPhrase, insertSlot); return new SCPriorityRequest(message, searchPhrase, insertSlot);
case FILE:
return new FileRequest(message, searchPhrase);
case FILE_PRIORITY:
return new FilePriorityRequest(message, searchPhrase, insertSlot);
default: default:
return null; return null;
} }
} }
private TextChannel channel; private TextChannel channel;
private Biscuit biscuit; private BiscuitGuild biscuit;
private String authorId; private String authorId;
private String identifier; private String identifier;
@ -65,14 +71,14 @@ public abstract class PlayRequest {
this.channel = channel; this.channel = channel;
this.authorId = authorId; this.authorId = authorId;
this.identifier = identifier; this.identifier = identifier;
this.biscuit = Biscuit.getBiscuit(channel.getGuild()); this.biscuit = BiscuitGuild.getBiscuitGuild(channel.getGuild());
} }
public TextChannel getRequestChannel() { public TextChannel getRequestChannel() {
return channel; return channel;
} }
public Biscuit getBiscuit() { public BiscuitGuild getBiscuitGuild() {
return biscuit; return biscuit;
} }

View File

@ -31,6 +31,18 @@ public enum RequestType {
public String toString() { public String toString() {
return "Soundcloud - Priority"; return "Soundcloud - Priority";
} }
},
FILE{
@Override
public String toString() {
return "File";
}
},
FILE_PRIORITY{
@Override
public String toString() {
return "File - Priority";
}
}; };
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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.");
}
}

View File

@ -1,7 +1,7 @@
package com.fpghoti.biscuit.audio.result; package com.fpghoti.biscuit.audio.result;
import com.fpghoti.biscuit.audio.request.PlayRequest; 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.fpghoti.biscuit.rest.MessageText;
import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler;
import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
@ -10,7 +10,7 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
public abstract class ResultHandler implements AudioLoadResultHandler { public abstract class ResultHandler implements AudioLoadResultHandler {
private Biscuit biscuit; private BiscuitGuild biscuit;
private PlayRequest request; private PlayRequest request;
public PlayRequest getRequest() { 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."); MessageText.send(request.getRequestChannel(), "An error was encountered while attempting to load audio.");
} }
public Biscuit getBiscuit() { public BiscuitGuild getBiscuitGuild() {
return biscuit; return biscuit;
} }

View File

@ -5,7 +5,7 @@ import com.fpghoti.biscuit.audio.AudioScheduler;
import com.fpghoti.biscuit.audio.request.PlayRequest; import com.fpghoti.biscuit.audio.request.PlayRequest;
import com.fpghoti.biscuit.audio.request.soundcloud.SCPriorityRequest; import com.fpghoti.biscuit.audio.request.soundcloud.SCPriorityRequest;
import com.fpghoti.biscuit.audio.request.soundcloud.SCRequest; 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.fpghoti.biscuit.rest.MessageText;
import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
@ -13,12 +13,12 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
public class SCResultHandler extends ResultHandler { public class SCResultHandler extends ResultHandler {
private Biscuit biscuit; private BiscuitGuild biscuit;
private SCRequest request; private SCRequest request;
public SCResultHandler(SCRequest request) { public SCResultHandler(SCRequest request) {
this.request = request; this.request = request;
this.biscuit = request.getBiscuit(); this.biscuit = request.getBiscuitGuild();
} }
public PlayRequest getRequest() { public PlayRequest getRequest() {

View File

@ -5,7 +5,7 @@ import com.fpghoti.biscuit.audio.AudioScheduler;
import com.fpghoti.biscuit.audio.request.PlayRequest; import com.fpghoti.biscuit.audio.request.PlayRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest; import com.fpghoti.biscuit.audio.request.youtube.YTPriorityRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTRequest; 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.fpghoti.biscuit.rest.MessageText;
import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
@ -13,12 +13,12 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
public class YTResultHandler extends ResultHandler { public class YTResultHandler extends ResultHandler {
private Biscuit biscuit; private BiscuitGuild biscuit;
private YTRequest request; private YTRequest request;
public YTResultHandler(YTRequest request) { public YTResultHandler(YTRequest request) {
this.request = request; this.request = request;
this.biscuit = request.getBiscuit(); this.biscuit = request.getBiscuitGuild();
} }
public PlayRequest getRequest() { public PlayRequest getRequest() {

View File

@ -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<File> getAudioFiles(){
return getAudioFiles(Main.audioDir);
}
public static ArrayList<File> getAudioFiles(File a){
ArrayList<File> audios = new ArrayList<File>();
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<File> playlist, String name) {
for(File f : playlist) {
if(f.getName().equalsIgnoreCase(name)) {
return f;
}
}
return null;
}
}

View File

@ -8,7 +8,7 @@ import java.io.OutputStream;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.PluginCore; 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.logging.BColor;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.user.CaptchaUser; import com.fpghoti.biscuit.user.CaptchaUser;
@ -170,7 +170,7 @@ public class Captcha {
//mark the PreUser as "done" //mark the PreUser as "done"
p.setDone(); p.setDone();
Biscuit biscuit = p.getBiscuit(); BiscuitGuild biscuit = p.getBiscuitGuild();
if(biscuit == null) { if(biscuit == null) {
Main.getMainBiscuit().error("CAPTCHA ERROR: Null Biscuit"); Main.getMainBiscuit().error("CAPTCHA ERROR: Null Biscuit");

View File

@ -1,7 +1,7 @@
package com.fpghoti.biscuit.captcha; package com.fpghoti.biscuit.captcha;
import com.fpghoti.biscuit.Main; 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.user.CaptchaUser;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -35,7 +35,7 @@ public class HandleCaptcha {
} }
public static Boolean isCaptchaChannel(TextChannel c) { public static Boolean isCaptchaChannel(TextChannel c) {
Biscuit biscuit = Biscuit.getBiscuit(c.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(c.getGuild());
Boolean a = true; Boolean a = true;
for(String s: biscuit.getProperties().getCaptchaChannels()) { for(String s: biscuit.getProperties().getCaptchaChannels()) {
if(c.getName().equalsIgnoreCase(s)) { if(c.getName().equalsIgnoreCase(s)) {

View File

@ -4,11 +4,11 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.commands.base.ConsoleCommand; import com.fpghoti.biscuit.commands.base.ConsoleCommand;
import com.fpghoti.biscuit.commands.base.CustomCommand; import com.fpghoti.biscuit.commands.base.CustomCommand;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -20,7 +20,7 @@ public class CommandManager {
private static List<BaseCommand> commands = new ArrayList<BaseCommand>(); private static List<BaseCommand> commands = new ArrayList<BaseCommand>();
public static void parse(String message, MessageReceivedEvent event){ public static void parse(String message, MessageReceivedEvent event){
Biscuit b = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild());
ArrayList<String> split = new ArrayList<String>(); ArrayList<String> split = new ArrayList<String>();
String fixed = message.replaceFirst(b.getProperties().getCommandSignifier(), ""); String fixed = message.replaceFirst(b.getProperties().getCommandSignifier(), "");
String[] splitMsg = fixed.split(" "); String[] splitMsg = fixed.split(" ");
@ -40,10 +40,10 @@ public class CommandManager {
} }
public static boolean dispatch(MessageReceivedEvent event, String label, String[] args) { public static boolean dispatch(MessageReceivedEvent event, String label, String[] args) {
Biscuit b = Main.getMainBiscuit(); BiscuitGuild b = Main.getMainBiscuit();
boolean isMain = true; boolean isMain = true;
if(event != null) { if(event != null) {
b = Biscuit.getBiscuit(event.getGuild()); b = BiscuitGuild.getBiscuitGuild(event.getGuild());
isMain = false; isMain = false;
if(Util.contains(b.getProperties().disabledCommands(), label)) { if(Util.contains(b.getProperties().disabledCommands(), label)) {
return false; return false;

View File

@ -1,9 +1,9 @@
package com.fpghoti.biscuit.commands.base; package com.fpghoti.biscuit.commands.base;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.BaseCommand; import com.fpghoti.biscuit.commands.BaseCommand;
import com.fpghoti.biscuit.commands.CommandType; import com.fpghoti.biscuit.commands.CommandType;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -15,9 +15,9 @@ public class CustomCommand extends BaseCommand {
} }
private String name; 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.name = name;
this.biscuit = biscuit; this.biscuit = biscuit;
} }

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.console; package com.fpghoti.biscuit.commands.console;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ConsoleCommand; import com.fpghoti.biscuit.commands.base.ConsoleCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -24,7 +24,7 @@ public class GuildSayCommand extends ConsoleCommand{
public void execute(String[] args) { public void execute(String[] args) {
if(args.length > 0) { if(args.length > 0) {
String guildcode = args[0]; String guildcode = args[0];
Biscuit b = Biscuit.getBiscuit(guildcode); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(guildcode);
if(b == null) { if(b == null) {
Main.getMainBiscuit().log("INVALID GUILD! TRY: guildsay <guild-code> <channel-name> <message>"); Main.getMainBiscuit().log("INVALID GUILD! TRY: guildsay <guild-code> <channel-name> <message>");
return; return;

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.console; package com.fpghoti.biscuit.commands.console;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ConsoleCommand; import com.fpghoti.biscuit.commands.base.ConsoleCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -24,7 +24,7 @@ public class SayCommand extends ConsoleCommand{
} }
public void execute(String[] args) { public void execute(String[] args) {
Biscuit b = Main.getMainBiscuit(); BiscuitGuild b = Main.getMainBiscuit();
if(args.length > 0) { if(args.length > 0) {
String target = args[0]; String target = args[0];
String message = ""; String message = "";

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class AddCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -add");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -20,7 +20,7 @@ public class ChanIDCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -chanid");
String id = event.getChannel().getId(); String id = event.getChannel().getId();
MessageText.send(event.getChannel().asTextChannel(), id); MessageText.send(event.getChannel().asTextChannel(), id);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class DivideCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -divide");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord;
import java.io.File; import java.io.File;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.logging.BColor;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -25,7 +25,7 @@ public class GetConfigCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -getconfig");
if(PermUtil.isAdmin(event.getMember())) { if(PermUtil.isAdmin(event.getMember())) {
File config = b.getConfig().getFile(); File config = b.getConfig().getFile();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -22,7 +22,7 @@ public class GuildIDCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -guildid");
if(PermUtil.isMod(event.getMember())) { if(PermUtil.isMod(event.getMember())) {
MessageText.send(event.getChannel().asTextChannel(), event.getGuild().getId()); MessageText.send(event.getChannel().asTextChannel(), event.getGuild().getId());

View File

@ -4,12 +4,12 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.BaseCommand; import com.fpghoti.biscuit.commands.BaseCommand;
import com.fpghoti.biscuit.commands.CommandManager; import com.fpghoti.biscuit.commands.CommandManager;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.commands.base.CustomCommand; import com.fpghoti.biscuit.commands.base.CustomCommand;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -29,7 +29,7 @@ public class HelpCommand extends ClientCommand {
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { public void execute(String[] args, MessageReceivedEvent event) {
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
int pg = 1; int pg = 1;
if (args.length > 0) { if (args.length > 0) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -30,7 +30,7 @@ public class MakeInviteCommand extends ClientCommand{
doubAge = Double.parseDouble(args[1]) * 3600; doubAge = Double.parseDouble(args[1]) * 3600;
} }
int maxAge = (int)Math.round(doubAge); 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]); b.log(event.getAuthor().getName() + " issued a command: -makeinvite " + args[0]);
if((PermUtil.isAdmin(event.getMember()))) { if((PermUtil.isAdmin(event.getMember()))) {
Guild g = event.getGuild(); Guild g = event.getGuild();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class MultiplyCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -multiply");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -23,7 +23,7 @@ public class NotSpammerCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -notspammer " + args[0]);
for(Member m : event.getMessage().getMentions().getMembers()){ for(Member m : event.getMessage().getMentions().getMembers()){
User u = m.getUser(); User u = m.getUser();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -20,7 +20,7 @@ public class PingCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -ping");
MessageText.send(event.getChannel().asTextChannel(), "Pong!"); MessageText.send(event.getChannel().asTextChannel(), "Pong!");
} }

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class PowerCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -power");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -20,7 +20,7 @@ public class RecentSpammersCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -recentspammers");
String msg = b.getMessageStore().getSpammerList(); String msg = b.getMessageStore().getSpammerList();
MessageText.send(event.getChannel().asTextChannel(), msg); MessageText.send(event.getChannel().asTextChannel(), msg);

View File

@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord;
import java.util.List; import java.util.List;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.logging.BColor;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -25,7 +25,7 @@ public class SaveConfigCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -saveconfig");
List<Attachment> attch = event.getMessage().getAttachments(); List<Attachment> attch = event.getMessage().getAttachments();
if(PermUtil.isAdmin(event.getMember())) { if(PermUtil.isAdmin(event.getMember())) {
@ -34,7 +34,7 @@ public class SaveConfigCommand extends ClientCommand{
for(Attachment a : attch) { for(Attachment a : attch) {
b.getConfig().replaceConfig(a, event.getChannel().asTextChannel()); b.getConfig().replaceConfig(a, event.getChannel().asTextChannel());
b.remove(); b.remove();
b = Biscuit.loadGuild(event.getGuild()); b = BiscuitGuild.loadGuild(event.getGuild());
} }
}else { }else {
MessageText.sendTimed(event.getChannel().asTextChannel(), event.getAuthor().getAsMention() + " Too many attachments added! " MessageText.sendTimed(event.getChannel().asTextChannel(), event.getAuthor().getAsMention() + " Too many attachments added! "

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -23,7 +23,7 @@ public class SoftMuteCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -softmute " + args[0]);
for(Member m : event.getMessage().getMentions().getMembers()){ for(Member m : event.getMessage().getMentions().getMembers()){
User u = m.getUser(); User u = m.getUser();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class SquareRootCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -squareroot");
if(args[0] != null && Util.isDeciDigit(args[0])) { if(args[0] != null && Util.isDeciDigit(args[0])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class SubtractCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -subtract");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) { if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]); double num = Double.parseDouble(args[0]);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -25,7 +25,7 @@ public class ToggleRoleCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(!event.getAuthor().isBot()) { if(!event.getAuthor().isBot()) {
b.log(event.getAuthor().getName() + " issued a command: -togglerole " + args[0]); b.log(event.getAuthor().getName() + " issued a command: -togglerole " + args[0]);
boolean foundEmote = false; boolean foundEmote = false;

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -23,7 +23,7 @@ public class UIDCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -uid " + args[0]);
for(Member m : event.getMessage().getMentions().getMembers()){ for(Member m : event.getMessage().getMentions().getMembers()){
User u = m.getUser(); User u = m.getUser();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -23,7 +23,7 @@ public class UnSoftMuteCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -unsoftmute " + args[0]);
for(Member m : event.getMessage().getMentions().getMembers()){ for(Member m : event.getMessage().getMentions().getMembers()){
User u = m.getUser(); User u = m.getUser();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord; package com.fpghoti.biscuit.commands.discord;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.ClientCommand; import com.fpghoti.biscuit.commands.base.ClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class WikiCommand extends ClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -wiki");
if(PermUtil.isMod(event.getMember())) { if(PermUtil.isMod(event.getMember())) {
MessageText.send(event.getChannel().asTextChannel(), "https://git.fpghoti.com/thmsdy/Biscuit/wiki"); MessageText.send(event.getChannel().asTextChannel(), "https://git.fpghoti.com/thmsdy/Biscuit/wiki");

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class ClearCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -clear");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
MessageText.send(event.getChannel().asTextChannel(), "Cleared all upcoming songs from the queue."); MessageText.send(event.getChannel().asTextChannel(), "Cleared all upcoming songs from the queue.");

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -23,7 +23,7 @@ public class ClearUserSongsCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -clearusersongs " + args[0]);
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
for(Member m : event.getMessage().getMentions().getMembers()) { for(Member m : event.getMessage().getMentions().getMembers()) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class ForceSkipCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -forceskip");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
MessageText.send(event.getChannel().asTextChannel(), "Force skipping current song."); MessageText.send(event.getChannel().asTextChannel(), "Force skipping current song.");

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -23,7 +23,7 @@ public class ForceSkipToCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -forceskipto " + args[0]);
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(Util.isDigit(args[0])) { if(Util.isDigit(args[0])) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class LoopMusicCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -loopmusic");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(!b.getAudioScheduler().isLooping()) { if(!b.getAudioScheduler().isLooping()) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class MoveToCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -moveto " + args[0] + " " + args[1]);
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(Util.isDigit(args[0]) && Util.isDigit(args[1])) { if(Util.isDigit(args[0]) && Util.isDigit(args[1])) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
@ -21,7 +21,7 @@ public class NowPlayingCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -nowplaying");
if(b.getAudioScheduler().getQueue().getLastTrack() != null ) { if(b.getAudioScheduler().getQueue().getLastTrack() != null ) {
MessageEmbed next = b.getAudioScheduler().getQueue().getLastTrack().getEmbedMessage("Now Playing:", true); MessageEmbed next = b.getAudioScheduler().getQueue().getLastTrack().getEmbedMessage("Now Playing:", true);

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class PauseCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -pause");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(!b.getAudioPlayer().isPaused()) { if(!b.getAudioPlayer().isPaused()) {

View File

@ -1,19 +1,29 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import java.io.File;
import com.fpghoti.biscuit.Main; 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.PlayRequest;
import com.fpghoti.biscuit.audio.request.RequestType; 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.soundcloud.SCRequest;
import com.fpghoti.biscuit.audio.request.youtube.YTRequest; 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.ResultHandler;
import com.fpghoti.biscuit.audio.result.SCResultHandler; import com.fpghoti.biscuit.audio.result.SCResultHandler;
import com.fpghoti.biscuit.audio.result.YTResultHandler; 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.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.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.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.managers.AudioManager;
public class PlayCommand extends MusicClientCommand{ public class PlayCommand extends MusicClientCommand{
@ -29,21 +39,36 @@ public class PlayCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { public void execute(String[] args, MessageReceivedEvent event) {
Guild guild = event.getGuild(); Guild guild = event.getGuild();
Biscuit b = Biscuit.getBiscuit(guild); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(guild);
int searchArg = 0; int searchArg = 0;
boolean scSearch = false;
if(args[0].equalsIgnoreCase("-sc")) { boolean playFirst = false;
scSearch = true; boolean scSearch = false;
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); b.log(event.getAuthor().getName() + " issued a command: -play " + searchPhrase);
boolean connected = PlayCommandUtil.connectToChannel(event); boolean connected = connectToChannel(event);
if(!connected) { if(!connected) {
return; return;
} }
@ -52,14 +77,110 @@ public class PlayCommand extends MusicClientCommand{
ResultHandler handler; ResultHandler handler;
if(scSearch) { if(scSearch) {
if(playFirst) {
request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD_PRIORITY, event.getMessage(), searchPhrase, 1);
} else {
request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD, event.getMessage(), searchPhrase); request = PlayRequest.createPlayRequest(RequestType.SOUNDCLOUD, event.getMessage(), searchPhrase);
}
handler = new SCResultHandler((SCRequest)request); 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 {
if(playFirst) {
request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase, 1);
}else { }else {
request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase); request = PlayRequest.createPlayRequest(event.getMessage(), searchPhrase);
}
handler = new YTResultHandler((YTRequest)request); handler = new YTResultHandler((YTRequest)request);
} }
Main.getPlayerManager().loadItemOrdered(guild, PlayCommandUtil.getID(event), handler); 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();
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;
} }
} }

View File

@ -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 <Link OR Search Phrase>";
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);
}
}

View File

@ -3,8 +3,8 @@ package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.audio.queue.AudioQueue; import com.fpghoti.biscuit.audio.queue.AudioQueue;
import com.fpghoti.biscuit.audio.queue.QueuedTrack; import com.fpghoti.biscuit.audio.queue.QueuedTrack;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
@ -26,7 +26,7 @@ public class QueueCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); biscuit.log(event.getAuthor().getName() + " issued a command: -queue");
int pg = 1; int pg = 1;
if (args.length > 0) { if (args.length > 0) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -22,7 +22,7 @@ public class RemoveCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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]); b.log(event.getAuthor().getName() + " issued a command: -remove " + args[0]);
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(Util.isDigit(args[0])) { if(Util.isDigit(args[0])) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -20,7 +20,7 @@ public class ShuffleCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -shuffle");
if(b.getAudioScheduler().getQueue().getLastTrack() != null ) { if(b.getAudioScheduler().getQueue().getLastTrack() != null ) {
b.getAudioScheduler().getQueue().shuffleUserTracks(event.getAuthor().getId()); b.getAudioScheduler().getQueue().shuffleUserTracks(event.getAuthor().getId());

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -21,7 +21,7 @@ public class SkipAllCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -skipall");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
MessageText.send(event.getChannel().asTextChannel(), "Force skipping all songs."); MessageText.send(event.getChannel().asTextChannel(), "Force skipping all songs.");

View File

@ -4,8 +4,8 @@ import java.util.ArrayList;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.audio.AudioScheduler; import com.fpghoti.biscuit.audio.AudioScheduler;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -29,7 +29,7 @@ public class SkipCommand extends MusicClientCommand{
public void execute(String[] args, MessageReceivedEvent event) { public void execute(String[] args, MessageReceivedEvent event) {
Guild guild = event.getGuild(); Guild guild = event.getGuild();
Biscuit biscuit = Biscuit.getBiscuit(guild); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(guild);
biscuit.log(event.getAuthor().getName() + " issued a command: -skip"); biscuit.log(event.getAuthor().getName() + " issued a command: -skip");
TextChannel cmdChannel = event.getChannel().asTextChannel(); TextChannel cmdChannel = event.getChannel().asTextChannel();

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -22,7 +22,7 @@ public class TogglePauseCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -togglepause");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(b.getAudioPlayer().isPaused()) { if(b.getAudioPlayer().isPaused()) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -22,7 +22,7 @@ public class UnpauseCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { 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"); b.log(event.getAuthor().getName() + " issued a command: -unpause");
if(PermUtil.hasMusicControl(event.getMember())) { if(PermUtil.hasMusicControl(event.getMember())) {
if(b.getAudioPlayer().isPaused()) { if(b.getAudioPlayer().isPaused()) {

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.commands.discord.music; package com.fpghoti.biscuit.commands.discord.music;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.base.MusicClientCommand; import com.fpghoti.biscuit.commands.base.MusicClientCommand;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -23,7 +23,7 @@ public class VolumeCommand extends MusicClientCommand{
@Override @Override
public void execute(String[] args, MessageReceivedEvent event) { public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(args.length < 1) { if(args.length < 1) {
b.log(event.getAuthor().getName() + " issued a command: -volume"); b.log(event.getAuthor().getName() + " issued a command: -volume");

View File

@ -14,7 +14,7 @@ import org.apache.commons.configuration2.PropertiesConfiguration;
import org.apache.commons.configuration2.PropertiesConfigurationLayout; import org.apache.commons.configuration2.PropertiesConfigurationLayout;
import org.apache.commons.configuration2.ex.ConfigurationException; 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.fpghoti.biscuit.rest.MessageText;
import com.jcabi.aspects.Async; import com.jcabi.aspects.Async;
@ -24,9 +24,9 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
public class BiscuitConfig { public class BiscuitConfig {
private Biscuit biscuit; private BiscuitGuild biscuit;
public BiscuitConfig(Biscuit b) { public BiscuitConfig(BiscuitGuild b) {
this.biscuit = b; this.biscuit = b;
} }

View File

@ -1,14 +1,14 @@
package com.fpghoti.biscuit.config; package com.fpghoti.biscuit.config;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
public class BiscuitProperties { public class BiscuitProperties {
Biscuit biscuit; BiscuitGuild biscuit;
public BiscuitProperties(Biscuit b) { public BiscuitProperties(BiscuitGuild b) {
this.biscuit = b; this.biscuit = b;
} }

View File

@ -1,4 +1,4 @@
package com.fpghoti.biscuit.biscuit; package com.fpghoti.biscuit.guild;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -34,10 +34,10 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
public class Biscuit { public class BiscuitGuild {
public static Biscuit getBiscuit(Guild g) { public static BiscuitGuild getBiscuitGuild(Guild g) {
for(Biscuit b : Main.getBiscuits()) { for(BiscuitGuild b : Main.getBiscuits()) {
if(b.getGuild().getId().equals(g.getId())) { if(b.getGuild().getId().equals(g.getId())) {
return b; return b;
} }
@ -45,8 +45,8 @@ public class Biscuit {
return null; return null;
} }
public static Biscuit getBiscuit(String guildcode) { public static BiscuitGuild getBiscuitGuild(String guildcode) {
for(Biscuit b : Main.getBiscuits()) { for(BiscuitGuild b : Main.getBiscuits()) {
if(b.getProperties().getGuildCode().equalsIgnoreCase(guildcode)) { if(b.getProperties().getGuildCode().equalsIgnoreCase(guildcode)) {
return b; return b;
} }
@ -58,7 +58,7 @@ public class Biscuit {
ArrayList<PreUser> pres = new ArrayList<PreUser>(); ArrayList<PreUser> pres = new ArrayList<PreUser>();
for(Guild g : Main.getJDA().getGuilds()) { for(Guild g : Main.getJDA().getGuilds()) {
if(g.isMember(u)){ if(g.isMember(u)){
Biscuit b = getBiscuit(g); BiscuitGuild b = getBiscuitGuild(g);
if(b.preUserExists(u)) { if(b.preUserExists(u)) {
pres.add(b.getPreUser(u)); pres.add(b.getPreUser(u));
} }
@ -67,8 +67,8 @@ public class Biscuit {
return pres; return pres;
} }
public static Biscuit loadGuild(Guild g) { public static BiscuitGuild loadGuild(Guild g) {
Biscuit biscuit = new Biscuit(Main.getJDA(), g, Main.getLogger()); BiscuitGuild biscuit = new BiscuitGuild(Main.getJDA(), g, Main.getLogger());
biscuit.addTimer(new ChatCountTimer(biscuit)); biscuit.addTimer(new ChatCountTimer(biscuit));
biscuit.addTimer(new SoftMuteTimer(biscuit)); biscuit.addTimer(new SoftMuteTimer(biscuit));
biscuit.addTimer(new DecrementTimer(biscuit)); biscuit.addTimer(new DecrementTimer(biscuit));
@ -88,19 +88,19 @@ public class Biscuit {
private HashMap<String, Integer> inviteUses; private HashMap<String, Integer> inviteUses;
private BiscuitConfig config; private BiscuitConfig config;
private BiscuitProperties properties; private BiscuitProperties properties;
private BiscuitMessageStore messageStore; private GuildMessageStore messageStore;
private AudioPlayer player; private AudioPlayer player;
private AudioScheduler scheduler; private AudioScheduler scheduler;
private CopyOnWriteArrayList<PreUser> users = new CopyOnWriteArrayList<PreUser>(); private CopyOnWriteArrayList<PreUser> users = new CopyOnWriteArrayList<PreUser>();
private HashMap<Member, Role> rolequeue; private HashMap<Member, Role> rolequeue;
public Biscuit(JDA jda, Guild guild, BiscuitLogger log) { public BiscuitGuild(JDA jda, Guild guild, BiscuitLogger log) {
this.jda = jda; this.jda = jda;
this.guild = guild; this.guild = guild;
this.logger = log; this.logger = log;
this.isMain = guild == null; this.isMain = guild == null;
this.messageStore = new BiscuitMessageStore(this); this.messageStore = new GuildMessageStore(this);
this.config = new BiscuitConfig(this); this.config = new BiscuitConfig(this);
config.generateConfig(); config.generateConfig();
this.properties = new BiscuitProperties(this); this.properties = new BiscuitProperties(this);
@ -141,7 +141,7 @@ public class Biscuit {
return properties; return properties;
} }
public BiscuitMessageStore getMessageStore() { public GuildMessageStore getMessageStore() {
return messageStore; return messageStore;
} }

View File

@ -1,13 +1,13 @@
package com.fpghoti.biscuit.biscuit; package com.fpghoti.biscuit.guild;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
public class BiscuitMessageStore { public class GuildMessageStore {
Biscuit biscuit; BiscuitGuild biscuit;
private HashMap<User, Integer> messageCounts = new HashMap<>(); private HashMap<User, Integer> messageCounts = new HashMap<>();
private HashMap<User, Integer> messagesTenSeconds = new HashMap<>(); private HashMap<User, Integer> messagesTenSeconds = new HashMap<>();
private HashMap<User, Integer> messagesTwoMin = new HashMap<>(); private HashMap<User, Integer> messagesTwoMin = new HashMap<>();
@ -16,7 +16,7 @@ public class BiscuitMessageStore {
private ArrayList<User> spamWarned = new ArrayList<User>(); private ArrayList<User> spamWarned = new ArrayList<User>();
private ArrayList<User> softmuted = new ArrayList<User>(); private ArrayList<User> softmuted = new ArrayList<User>();
public BiscuitMessageStore(Biscuit b) { public GuildMessageStore(BiscuitGuild b) {
this.biscuit = b; this.biscuit = b;
} }

View File

@ -2,8 +2,8 @@ package com.fpghoti.biscuit.listener;
import java.util.Scanner; import java.util.Scanner;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.commands.CommandManager; import com.fpghoti.biscuit.commands.CommandManager;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.logging.BiscuitLogger; import com.fpghoti.biscuit.logging.BiscuitLogger;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
@ -26,7 +26,7 @@ public class CommandListener extends ListenerAdapter implements Runnable {
if(!event.isFromGuild()) { if(!event.isFromGuild()) {
return; 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(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()){ 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); CommandManager.parse(event.getMessage().getContentRaw().toLowerCase(), event);
@ -35,7 +35,7 @@ public class CommandListener extends ListenerAdapter implements Runnable {
} }
private boolean isBotChannel(TextChannel c) { private boolean isBotChannel(TextChannel c) {
Biscuit b = Biscuit.getBiscuit(c.getGuild()); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild());
for(String s : b.getProperties().getCmdChannels()) { for(String s : b.getProperties().getCmdChannels()) {
if(s.equals(c.getName())) { if(s.equals(c.getName())) {
return true; return true;

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -35,7 +35,7 @@ public class GuildListener extends ListenerAdapter {
private void loadGuild(GenericGuildEvent event) { private void loadGuild(GenericGuildEvent event) {
Guild g = event.getGuild(); 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 + "---- Joined new Guild! ----");
biscuit.log(BColor.CYAN_BOLD + "Name: " + BColor.WHITE + g.getName()); biscuit.log(BColor.CYAN_BOLD + "Name: " + BColor.WHITE + g.getName());
biscuit.log(BColor.CYAN_BOLD + "Id: " + BColor.WHITE + g.getId()); biscuit.log(BColor.CYAN_BOLD + "Id: " + BColor.WHITE + g.getId());
@ -44,7 +44,7 @@ public class GuildListener extends ListenerAdapter {
private void unloadGuild(GenericGuildEvent event) { private void unloadGuild(GenericGuildEvent event) {
Guild g = event.getGuild(); Guild g = event.getGuild();
Biscuit biscuit = Biscuit.getBiscuit(g); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(g);
biscuit.remove(); biscuit.remove();
} }

View File

@ -2,7 +2,7 @@ package com.fpghoti.biscuit.listener;
import java.util.HashMap; 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.logging.BColor;
import com.fpghoti.biscuit.user.CaptchaUser; import com.fpghoti.biscuit.user.CaptchaUser;
import com.fpghoti.biscuit.user.PreUser; import com.fpghoti.biscuit.user.PreUser;
@ -19,7 +19,7 @@ public class JoinListener extends ListenerAdapter {
@Override @Override
public void onGuildMemberJoin(GuildMemberJoinEvent event) { public void onGuildMemberJoin(GuildMemberJoinEvent event) {
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
User user = event.getMember().getUser(); User user = event.getMember().getUser();
biscuit.log(BColor.YELLOW_BOLD + "USER JOINED: " + user.getName() + " " + user.getAsMention()); biscuit.log(BColor.YELLOW_BOLD + "USER JOINED: " + user.getName() + " " + user.getAsMention());
biscuit.eventLog("**User Joined:** ``" + user.getName() + "`` " + user.getAsMention()); biscuit.eventLog("**User Joined:** ``" + user.getName() + "`` " + user.getAsMention());
@ -54,7 +54,7 @@ public class JoinListener extends ListenerAdapter {
} }
@Async @Async
private void logUserInvite(final User user, final Biscuit b){ private void logUserInvite(final User user, final BiscuitGuild b){
Guild g = b.getGuild(); Guild g = b.getGuild();
g.retrieveInvites().queue(invs -> { g.retrieveInvites().queue(invs -> {
String usedInv = "Other"; String usedInv = "Other";

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import com.fpghoti.biscuit.user.PreUser; import com.fpghoti.biscuit.user.PreUser;
@ -12,7 +12,7 @@ public class LeaveListener extends ListenerAdapter {
@Override @Override
public void onGuildMemberRemove(GuildMemberRemoveEvent event) { public void onGuildMemberRemove(GuildMemberRemoveEvent event) {
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
User user = event.getMember().getUser(); User user = event.getMember().getUser();
PreUser u = biscuit.getPreUser(user); PreUser u = biscuit.getPreUser(user);
int time = 1; int time = 1;

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -11,7 +11,7 @@ public class MessageDeleteListener extends ListenerAdapter {
@Override @Override
public void onMessageDelete(MessageDeleteEvent event) { public void onMessageDelete(MessageDeleteEvent event) {
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(Util.isLoggable(event.getChannel().asTextChannel())) { if(Util.isLoggable(event.getChannel().asTextChannel())) {
biscuit.log("[" + BColor.MAGENTA + "#" + event.getChannel().getName() + BColor.RESET + "] " + BColor.MAGENTA_BOLD + "Message " + event.getMessageId() + " was deleted."); biscuit.log("[" + BColor.MAGENTA + "#" + event.getChannel().getName() + BColor.RESET + "] " + BColor.MAGENTA_BOLD + "Message " + event.getMessageId() + " was deleted.");
} }

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -11,7 +11,7 @@ public class MessageEditListener extends ListenerAdapter {
@Override @Override
public void onMessageUpdate(MessageUpdateEvent event) { 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())) { 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 + biscuit.log("[" + BColor.CYAN_BOLD + "MSG EDIT" + BColor.RESET + "] " + BColor.CYAN + "ID: " + BColor.RESET +
event.getMessageId() + BColor.CYAN + " User: " + BColor.RESET + event.getAuthor().getAsMention()); event.getMessageId() + BColor.CYAN + " User: " + BColor.RESET + event.getAuthor().getAsMention());

View File

@ -1,8 +1,8 @@
package com.fpghoti.biscuit.listener; 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.captcha.HandleCaptcha;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.guild.GuildMessageStore;
import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.logging.BColor;
import com.fpghoti.biscuit.rest.MessageText; import com.fpghoti.biscuit.rest.MessageText;
import com.fpghoti.biscuit.util.ChatFilter; import com.fpghoti.biscuit.util.ChatFilter;
@ -24,7 +24,7 @@ public class MessageReceiveListener extends ListenerAdapter{
if(!event.isFromGuild()) { if(!event.isFromGuild()) {
return; return;
} }
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(event.getAuthor().isBot()) { if(event.getAuthor().isBot()) {
logBot(event, biscuit); logBot(event, biscuit);
return; 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(Util.isLoggable(event.getChannel().asTextChannel())) {
if(biscuit.getProperties().logChat()) { if(biscuit.getProperties().logChat()) {
biscuit.log("[" + BColor.BLACK_BOLD + "BOT" + BColor.RESET + "] [" + BColor.RED + "#" + event.getChannel().getName() + BColor.RESET + "] " 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(Util.isLoggable(event.getChannel().asTextChannel())) {
if(biscuit.getProperties().logChat()) { if(biscuit.getProperties().logChat()) {
biscuit.log("[" + BColor.CYAN_BOLD + "MSG" + BColor.RESET + "] " + BColor.GREEN + "ID: " + BColor.RESET + biscuit.log("[" + BColor.CYAN_BOLD + "MSG" + BColor.RESET + "] " + BColor.GREEN + "ID: " + BColor.RESET +
@ -90,9 +90,9 @@ public class MessageReceiveListener extends ListenerAdapter{
return false; return false;
} }
private boolean handleSpammer(MessageReceivedEvent event, Biscuit biscuit) { private boolean handleSpammer(MessageReceivedEvent event, BiscuitGuild biscuit) {
//TODO make numbers configurable //TODO make numbers configurable
BiscuitMessageStore store = biscuit.getMessageStore(); GuildMessageStore store = biscuit.getMessageStore();
String mention = event.getAuthor().getAsMention(); String mention = event.getAuthor().getAsMention();
if(store.isSpammer(event.getAuthor())){ if(store.isSpammer(event.getAuthor())){
//User is a spammer but has not sent a message during //User is a spammer but has not sent a message during
@ -112,9 +112,9 @@ public class MessageReceiveListener extends ListenerAdapter{
return false; return false;
} }
private boolean handleSoftmuted(MessageReceivedEvent event, Biscuit biscuit) { private boolean handleSoftmuted(MessageReceivedEvent event, BiscuitGuild biscuit) {
//TODO make numbers configurable //TODO make numbers configurable
BiscuitMessageStore store = biscuit.getMessageStore(); GuildMessageStore store = biscuit.getMessageStore();
String mention = event.getAuthor().getAsMention(); String mention = event.getAuthor().getAsMention();
if(store.isSoftmuted(event.getAuthor())){ if(store.isSoftmuted(event.getAuthor())){
//User is softmuted but has not sent a message during //User is softmuted but has not sent a message during
@ -134,8 +134,8 @@ public class MessageReceiveListener extends ListenerAdapter{
return false; return false;
} }
private void checkNewSpammer(MessageReceivedEvent event, Biscuit biscuit) { private void checkNewSpammer(MessageReceivedEvent event, BiscuitGuild biscuit) {
BiscuitMessageStore store = biscuit.getMessageStore(); GuildMessageStore store = biscuit.getMessageStore();
String mention = event.getAuthor().getAsMention(); String mention = event.getAuthor().getAsMention();
if(!store.hasMessageCount(event.getAuthor())) { if(!store.hasMessageCount(event.getAuthor())) {

View File

@ -1,7 +1,7 @@
package com.fpghoti.biscuit.listener; package com.fpghoti.biscuit.listener;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.logging.BColor; import com.fpghoti.biscuit.logging.BColor;
import net.dv8tion.jda.api.entities.Guild; 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 " + Main.getMainBiscuit().log(BColor.CYAN_BOLD + "User " + user.getName() + " " + user.getAsMention() + " changed username from " +
event.getOldName() + " to " + event.getNewName() + "."); event.getOldName() + " to " + event.getNewName() + ".");
for(Guild guild : user.getMutualGuilds()) { for(Guild guild : user.getMutualGuilds()) {
Biscuit biscuit = Biscuit.getBiscuit(guild); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(guild);
biscuit.eventLog("**Username changed:** ``" + user.getName() + "`` " + user.getAsMention() + " - From ``" + biscuit.eventLog("**Username changed:** ``" + user.getName() + "`` " + user.getAsMention() + " - From ``" +
event.getOldName() + "`` to ``" + event.getNewName() + "``"); event.getOldName() + "`` to ``" + event.getNewName() + "``");
} }

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
@ -11,7 +11,7 @@ public class NicknameListener extends ListenerAdapter {
@Override @Override
public void onGuildMemberUpdateNickname(GuildMemberUpdateNicknameEvent event) { public void onGuildMemberUpdateNickname(GuildMemberUpdateNicknameEvent event) {
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
User user = event.getMember().getUser(); User user = event.getMember().getUser();
String oldNick = "None"; String oldNick = "None";
String newNick = "None"; String newNick = "None";

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.listener; 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.logging.BColor;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import com.fpghoti.biscuit.util.Util; import com.fpghoti.biscuit.util.Util;
@ -17,7 +17,7 @@ public class ReactionListener extends ListenerAdapter{
@Override @Override
public void onMessageReactionAdd(MessageReactionAddEvent event){ public void onMessageReactionAdd(MessageReactionAddEvent event){
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(event.getGuild() == null) { if(event.getGuild() == null) {
return; return;
} }
@ -28,7 +28,7 @@ public class ReactionListener extends ListenerAdapter{
@Override @Override
public void onMessageReactionRemove(MessageReactionRemoveEvent event){ public void onMessageReactionRemove(MessageReactionRemoveEvent event){
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
if(event.getGuild() == null) { if(event.getGuild() == null) {
return; return;
} }
@ -38,7 +38,7 @@ public class ReactionListener extends ListenerAdapter{
} }
private void handleMessageRole(GenericMessageReactionEvent event, boolean remove) { 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) -> { event.getChannel().asTextChannel().retrieveMessageById(event.getMessageId()).queue((message) -> {
String msg = message.getContentDisplay(); String msg = message.getContentDisplay();
for(String rolename : biscuit.getProperties().getToggleRoles()) { for(String rolename : biscuit.getProperties().getToggleRoles()) {
@ -57,7 +57,7 @@ public class ReactionListener extends ListenerAdapter{
} }
private void toggleRole(Role role, GenericMessageReactionEvent event, boolean remove) { 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(); Guild guild = event.getGuild();
if(role == null) { if(role == null) {
return; return;

View File

@ -6,7 +6,7 @@ import org.pf4j.Plugin;
import org.pf4j.PluginWrapper; import org.pf4j.PluginWrapper;
import com.fpghoti.biscuit.Main; 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.fpghoti.biscuit.logging.BiscuitLogger;
import com.github.cage.Cage; import com.github.cage.Cage;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
@ -47,7 +47,7 @@ public abstract class BiscuitPlugin extends Plugin {
return this; return this;
} }
public ArrayList<Biscuit> getBiscuits() { public ArrayList<BiscuitGuild> getBiscuits() {
return Main.getBiscuits(); return Main.getBiscuits();
} }

View File

@ -3,7 +3,7 @@ package com.fpghoti.biscuit.rest;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import com.fpghoti.biscuit.Main; 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.MessageEmbed;
import net.dv8tion.jda.api.entities.channel.concrete.PrivateChannel; 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); Main.getMainBiscuit().error("Message could not be sent to null channel: " + message);
return; return;
} }
final Biscuit b = Biscuit.getBiscuit(c.getGuild()); final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild());
c.sendMessage(message).submit().whenComplete((msg, error) -> { c.sendMessage(message).submit().whenComplete((msg, error) -> {
if(error != null) { if(error != null) {
b.warn("Message did not send: " + message); 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); Main.getMainBiscuit().error("Message embed could not be sent to null channel: " + message);
return; return;
} }
final Biscuit b = Biscuit.getBiscuit(c.getGuild()); final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild());
c.sendMessageEmbeds(message).submit().whenComplete((msg, error) -> { c.sendMessageEmbeds(message).submit().whenComplete((msg, error) -> {
if(error != null) { if(error != null) {
b.warn("Message embed did not send: " + message); 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); Main.getMainBiscuit().error("Timed message could not be sent to null channel - Time: " + seconds + " Text: " + message);
return; return;
} }
final Biscuit b = Biscuit.getBiscuit(c.getGuild()); final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild());
c.sendMessage(message).submit() c.sendMessage(message).submit()
.whenComplete((msg, error) -> { .whenComplete((msg, error) -> {
if(error != null) { 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); Main.getMainBiscuit().error("Timed message embed could not be sent to null channel - Time: " + seconds + " Text: " + message);
return; return;
} }
final Biscuit b = Biscuit.getBiscuit(c.getGuild()); final BiscuitGuild b = BiscuitGuild.getBiscuitGuild(c.getGuild());
c.sendMessageEmbeds(message).submit() c.sendMessageEmbeds(message).submit()
.whenComplete((msg, error) -> { .whenComplete((msg, error) -> {
if(error != null) { if(error != null) {

View File

@ -2,14 +2,14 @@ package com.fpghoti.biscuit.timer;
import java.util.TimerTask; import java.util.TimerTask;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
public abstract class BiscuitTimer extends TimerTask{ public abstract class BiscuitTimer extends TimerTask{
protected Long delay; protected Long delay;
protected Long period; protected Long period;
protected Biscuit biscuit; protected BiscuitGuild biscuit;
public long getDelay() { public long getDelay() {
if(delay != null) { if(delay != null) {

View File

@ -1,11 +1,11 @@
package com.fpghoti.biscuit.timer.task; package com.fpghoti.biscuit.timer.task;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.timer.BiscuitTimer; import com.fpghoti.biscuit.timer.BiscuitTimer;
public class ChatCountTimer extends BiscuitTimer { public class ChatCountTimer extends BiscuitTimer {
public ChatCountTimer(Biscuit b){ public ChatCountTimer(BiscuitGuild b){
biscuit = b; biscuit = b;
delay = (long) 0; delay = (long) 0;
period = (long) 10*1000; period = (long) 10*1000;

View File

@ -1,13 +1,13 @@
package com.fpghoti.biscuit.timer.task; package com.fpghoti.biscuit.timer.task;
import com.fpghoti.biscuit.Main; 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.timer.BiscuitTimer;
import com.fpghoti.biscuit.user.PreUser; import com.fpghoti.biscuit.user.PreUser;
public class DecrementTimer extends BiscuitTimer{ public class DecrementTimer extends BiscuitTimer{
public DecrementTimer(Biscuit b){ public DecrementTimer(BiscuitGuild b){
biscuit = b; biscuit = b;
delay = (long) 0; delay = (long) 0;
period = (long) 60*1000; period = (long) 60*1000;

View File

@ -1,11 +1,11 @@
package com.fpghoti.biscuit.timer.task; package com.fpghoti.biscuit.timer.task;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.timer.BiscuitTimer; import com.fpghoti.biscuit.timer.BiscuitTimer;
public class SoftMuteTimer extends BiscuitTimer{ public class SoftMuteTimer extends BiscuitTimer{
public SoftMuteTimer(Biscuit b){ public SoftMuteTimer(BiscuitGuild b){
biscuit = b; biscuit = b;
delay = (long) 0; delay = (long) 0;
period = (long) 120*1000; period = (long) 120*1000;

View File

@ -4,8 +4,8 @@ import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit;
import com.fpghoti.biscuit.captcha.Captcha; import com.fpghoti.biscuit.captcha.Captcha;
import com.fpghoti.biscuit.guild.BiscuitGuild;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -118,14 +118,14 @@ public class CaptchaUser implements Iterable<PreUser>{
return false; return false;
} }
for(PreUser u : preUsers) { for(PreUser u : preUsers) {
if(u.getBiscuit().getGuild().getId().equals(g.getId())) { if(u.getBiscuitGuild().getGuild().getId().equals(g.getId())) {
return true; return true;
} }
} }
return false; return false;
} }
public boolean contains(Biscuit b) { public boolean contains(BiscuitGuild b) {
return contains(b.getGuild()); return contains(b.getGuild());
} }
@ -167,10 +167,10 @@ public class CaptchaUser implements Iterable<PreUser>{
} }
public void add(PreUser u) { public void add(PreUser u) {
if(u.getBiscuit() == null || u.getBiscuit().getGuild() == null) { if(u.getBiscuitGuild() == null || u.getBiscuitGuild().getGuild() == null) {
return; return;
} }
if(contains(u.getBiscuit())) { if(contains(u.getBiscuitGuild())) {
return; return;
} }
preUsers.add(u); preUsers.add(u);
@ -190,14 +190,14 @@ public class CaptchaUser implements Iterable<PreUser>{
return null; return null;
} }
for(PreUser u : preUsers) { for(PreUser u : preUsers) {
if(u.getBiscuit().getGuild().getId().equals(g.getId())) { if(u.getBiscuitGuild().getGuild().getId().equals(g.getId())) {
return u; return u;
} }
} }
return null; return null;
} }
public PreUser get(Biscuit b) { public PreUser get(BiscuitGuild b) {
return get(b.getGuild()); return get(b.getGuild());
} }

View File

@ -1,7 +1,7 @@
package com.fpghoti.biscuit.user; package com.fpghoti.biscuit.user;
import com.fpghoti.biscuit.Main; import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.fpghoti.biscuit.util.PermUtil; import com.fpghoti.biscuit.util.PermUtil;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.User;
public class PreUser { public class PreUser {
public static PreUser getPreUser(CaptchaUser capUser, Biscuit biscuit) { public static PreUser getPreUser(CaptchaUser capUser, BiscuitGuild biscuit) {
if(capUser == null) { if(capUser == null) {
Main.getMainBiscuit().error("Cannot get PreUser (Invalid Captcha User)."); Main.getMainBiscuit().error("Cannot get PreUser (Invalid Captcha User).");
return null; return null;
@ -31,9 +31,9 @@ public class PreUser {
private int timeLeft; private int timeLeft;
private boolean done; private boolean done;
private boolean test; 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.test = test;
this.capUser = capUser; this.capUser = capUser;
this.user = capUser.getUser(); this.user = capUser.getUser();
@ -45,7 +45,7 @@ public class PreUser {
} }
} }
public Biscuit getBiscuit() { public BiscuitGuild getBiscuitGuild() {
return biscuit; return biscuit;
} }

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.util; 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.fpghoti.biscuit.logging.BColor;
import com.vdurmont.emoji.EmojiParser; import com.vdurmont.emoji.EmojiParser;
@ -19,7 +19,7 @@ public class ChatFilter {
if(!event.isFromGuild()) { if(!event.isFromGuild()) {
return false; return false;
} }
Biscuit biscuit = Biscuit.getBiscuit(event.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(event.getGuild());
String msg = event.getMessage().getContentDisplay(); String msg = event.getMessage().getContentDisplay();
//Message removal priority occurs in this order //Message removal priority occurs in this order
@ -73,7 +73,7 @@ public class ChatFilter {
return false; return false;
} }
public static boolean filter(Biscuit biscuit, String sentence){ public static boolean filter(BiscuitGuild biscuit, String sentence){
for(String s : sentence.split(" ")){ for(String s : sentence.split(" ")){
if(filterWord(biscuit, s)){ if(filterWord(biscuit, s)){
return true; return true;
@ -82,7 +82,7 @@ public class ChatFilter {
return false; return false;
} }
public static boolean filterWord(Biscuit biscuit, String word) { public static boolean filterWord(BiscuitGuild biscuit, String word) {
String[] match = findMatchPair(biscuit, word); String[] match = findMatchPair(biscuit, word);
if(match != null) { if(match != null) {
return true; return true;
@ -90,7 +90,7 @@ public class ChatFilter {
return false; return false;
} }
public static String findMatch(Biscuit biscuit, String word) { public static String findMatch(BiscuitGuild biscuit, String word) {
String[] match = findMatchPair(biscuit, word); String[] match = findMatchPair(biscuit, word);
if(match == null || match[0] == null) { if(match == null || match[0] == null) {
return null; return null;
@ -98,7 +98,7 @@ public class ChatFilter {
return match[0]; return match[0];
} }
public static String[] findMatchPair(Biscuit biscuit, String word) { public static String[] findMatchPair(BiscuitGuild biscuit, String word) {
String cleaned = ""; String cleaned = "";
word = word.toLowerCase(); word = word.toLowerCase();
if(word.length() >= 2 && word.charAt(word.length() -1) == '!'){ if(word.length() >= 2 && word.charAt(word.length() -1) == '!'){

View File

@ -1,6 +1,6 @@
package com.fpghoti.biscuit.util; package com.fpghoti.biscuit.util;
import com.fpghoti.biscuit.biscuit.Biscuit; import com.fpghoti.biscuit.guild.BiscuitGuild;
import com.jcabi.aspects.Async; import com.jcabi.aspects.Async;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
@ -10,7 +10,7 @@ import net.dv8tion.jda.api.entities.Role;
public class PermUtil { public class PermUtil {
public static boolean isAdmin(Member member){ public static boolean isAdmin(Member member){
Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild());
if(member.hasPermission(Permission.ADMINISTRATOR)){ if(member.hasPermission(Permission.ADMINISTRATOR)){
return true; return true;
}else{ }else{
@ -24,7 +24,7 @@ public class PermUtil {
} }
public static boolean isMod(Member member){ public static boolean isMod(Member member){
Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild());
if(isAdmin(member)){ if(isAdmin(member)){
return true; return true;
}else{ }else{
@ -39,7 +39,7 @@ public class PermUtil {
} }
public static boolean hasMusicControl(Member member){ public static boolean hasMusicControl(Member member){
Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild());
if(isAdmin(member) || isMod(member)){ if(isAdmin(member) || isMod(member)){
return true; return true;
}else{ }else{
@ -74,7 +74,7 @@ public class PermUtil {
} }
public static boolean isBooster(Member member) { public static boolean isBooster(Member member) {
Biscuit biscuit = Biscuit.getBiscuit(member.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(member.getGuild());
if(isAdmin(member)) { if(isAdmin(member)) {
return true; return true;
} }
@ -87,12 +87,12 @@ public class PermUtil {
} }
public static boolean isBoosterExclusive(Role r) { 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()); return Util.containsIgnoreCase(biscuit.getProperties().getBoostExclusiveRoles(),r.getName());
} }
public static boolean hasDefaultRole(Member m) { public static boolean hasDefaultRole(Member m) {
Biscuit biscuit = Biscuit.getBiscuit(m.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(m.getGuild());
for(Role r : biscuit.getGuild().getRoles()) { for(Role r : biscuit.getGuild().getRoles()) {
if(r.getName().equalsIgnoreCase(biscuit.getProperties().getDefaultRole())){ if(r.getName().equalsIgnoreCase(biscuit.getProperties().getDefaultRole())){
return hasRole(m,r); return hasRole(m,r);
@ -102,7 +102,7 @@ public class PermUtil {
} }
public static boolean hasRewardRole(Member m) { public static boolean hasRewardRole(Member m) {
Biscuit biscuit = Biscuit.getBiscuit(m.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(m.getGuild());
for(Role r : biscuit.getGuild().getRoles()) { for(Role r : biscuit.getGuild().getRoles()) {
if(r.getName().equalsIgnoreCase(biscuit.getProperties().getCaptchaReward())){ if(r.getName().equalsIgnoreCase(biscuit.getProperties().getCaptchaReward())){
return hasRole(m,r); return hasRole(m,r);
@ -114,7 +114,7 @@ public class PermUtil {
@Async @Async
public static void clearUndeservedRoles(Member m) { public static void clearUndeservedRoles(Member m) {
boolean booster = isBooster(m); boolean booster = isBooster(m);
Biscuit b = Biscuit.getBiscuit(m.getGuild()); BiscuitGuild b = BiscuitGuild.getBiscuitGuild(m.getGuild());
for(Role r : m.getRoles()) { for(Role r : m.getRoles()) {
if(!booster && isBoosterExclusive(r)) { if(!booster && isBoosterExclusive(r)) {
m.getGuild().removeRoleFromMember(m,r).queue(); m.getGuild().removeRoleFromMember(m,r).queue();

View File

@ -2,7 +2,7 @@ package com.fpghoti.biscuit.util;
import java.util.Random; 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; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
@ -16,7 +16,7 @@ public class Util {
} }
public static Boolean isLoggable(TextChannel c) { public static Boolean isLoggable(TextChannel c) {
Biscuit biscuit = Biscuit.getBiscuit(c.getGuild()); BiscuitGuild biscuit = BiscuitGuild.getBiscuitGuild(c.getGuild());
Boolean a = true; Boolean a = true;
for(String s: biscuit.getProperties().getDontLogChannels()) { for(String s: biscuit.getProperties().getDontLogChannels()) {
if(c.getName().equalsIgnoreCase(s)) { if(c.getName().equalsIgnoreCase(s)) {
@ -78,4 +78,10 @@ public class Util {
return String.format("%02d:%02d:%02d", hour, minute, second - 1); 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;
}
} }