Fixed downvote skipping, added usage of command tag.
This commit is contained in:
parent
fb430ebf5b
commit
e29c3d7701
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
|||
|
||||
<groupId>com.github.andrewlalis</groupId>
|
||||
<artifactId>HandieBot</artifactId>
|
||||
<version>1.3.0</version>
|
||||
<version>1.3.1</version>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
|
|
@ -50,22 +50,24 @@ public class Commands {
|
|||
for (Command cmd : commands) {
|
||||
if (cmd.getName().equals(command)){
|
||||
if (cmd instanceof StaticCommand){
|
||||
log.log(BotLog.TYPE.COMMAND, command+" has been issued.");
|
||||
((StaticCommand)cmd).execute();
|
||||
return;
|
||||
} else if (!cmd.canUserExecute(context.getUser(), context.getGuild())){
|
||||
log.log(BotLog.TYPE.ERROR, context.getGuild(), MessageFormat.format(resourceBundle.getString("commands.noPermission.log"), context.getUser().getName(), cmd.getName()));
|
||||
log.log(BotLog.TYPE.COMMAND, context.getGuild(), MessageFormat.format(resourceBundle.getString("commands.noPermission.log"), context.getUser().getName(), cmd.getName()));
|
||||
context.getChannel().sendMessage(MessageFormat.format(resourceBundle.getString("commands.noPermission.message"), command));
|
||||
return;
|
||||
} else if (cmd instanceof ContextCommand){
|
||||
log.log(BotLog.TYPE.COMMAND, context.getGuild(), context.getUser().getName()+" has issued the command: "+command);
|
||||
((ContextCommand)cmd).execute(context);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (context == null){
|
||||
log.log(BotLog.TYPE.ERROR, MessageFormat.format(resourceBundle.getString("commands.invalidCommand.noContext"), command));
|
||||
log.log(BotLog.TYPE.COMMAND, MessageFormat.format(resourceBundle.getString("commands.invalidCommand.noContext"), command));
|
||||
} else {
|
||||
log.log(BotLog.TYPE.ERROR, context.getGuild(), MessageFormat.format(resourceBundle.getString("commands.invalidCommand.context"), command, context.getUser().getName()));
|
||||
log.log(BotLog.TYPE.COMMAND, context.getGuild(), MessageFormat.format(resourceBundle.getString("commands.invalidCommand.context"), command, context.getUser().getName()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package handiebot.command;
|
||||
|
||||
import handiebot.HandieBot;
|
||||
import handiebot.view.BotLog;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.reaction.ReactionEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
import sx.blah.discord.handle.obj.IReaction;
|
||||
|
@ -8,12 +9,14 @@ import sx.blah.discord.handle.obj.IUser;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import static handiebot.HandieBot.log;
|
||||
|
||||
/**
|
||||
* @author Andrew Lalis
|
||||
* Class which handles user reactions to songs and performs necessary actions.
|
||||
*/
|
||||
public class ReactionHandler {
|
||||
|
||||
//TODO: Fix so only reactions on the most recent song count!
|
||||
public static final String thumbsUp = "\uD83D\uDC4D";
|
||||
public static final String thumbsDown = "\uD83D\uDC4E";
|
||||
|
||||
|
@ -38,7 +41,12 @@ public class ReactionHandler {
|
|||
* @param message The messages that received a reaction.
|
||||
*/
|
||||
private static void onDownvote(CommandContext context, IMessage message){
|
||||
//Filter out reactions to previous messages.
|
||||
if (!message.getContent().contains(HandieBot.musicPlayer.getMusicManager(context.getGuild()).scheduler.getPlayingTrack().getTitle())){
|
||||
return;
|
||||
}
|
||||
List<IUser> usersHere = HandieBot.musicPlayer.getVoiceChannel(context.getGuild()).getConnectedUsers();
|
||||
//Remove the bot from the list of users in the voice channel.
|
||||
usersHere.removeIf(user -> user.getLongID() == HandieBot.client.getOurUser().getLongID());
|
||||
int userCount = usersHere.size();
|
||||
int userDownvotes = 0;
|
||||
|
@ -48,8 +56,8 @@ public class ReactionHandler {
|
|||
userDownvotes++;
|
||||
}
|
||||
}
|
||||
System.out.println("Valid downvotes: "+userDownvotes+" out of "+userCount+" people present.");
|
||||
if (userDownvotes > (userCount/2)){
|
||||
log.log(BotLog.TYPE.MUSIC, context.getGuild(), "Users voted to skip the current song.");
|
||||
HandieBot.musicPlayer.skipTrack(context.getGuild());
|
||||
} else if (userDownvotes > 0) {
|
||||
context.getChannel().sendMessage((((userCount/2)+1) - userDownvotes)+" more people must downvote before the track is skipped.");
|
||||
|
|
|
@ -9,6 +9,7 @@ import handiebot.lavaplayer.playlist.UnloadedTrack;
|
|||
import handiebot.utils.DisappearingMessage;
|
||||
import handiebot.view.BotLog;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.util.RequestBuffer;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.MessageFormat;
|
||||
|
@ -159,7 +160,7 @@ public class PlaylistCommand extends ContextCommand {
|
|||
playlist.load();
|
||||
for (int i = 2; i < context.getArgs().length; i++){
|
||||
playlist.loadTrack(context.getArgs()[i]);
|
||||
context.getChannel().sendMessage(MessageFormat.format(resourceBundle.getString("commands.command.playlist.add.message"), playlist.getName()));
|
||||
RequestBuffer.request(() -> context.getChannel().sendMessage(MessageFormat.format(resourceBundle.getString("commands.command.playlist.add.message"), playlist.getName()))).get();
|
||||
}
|
||||
playlist.save();
|
||||
context.getChannel().sendMessage(playlist.toString());
|
||||
|
|
|
@ -159,7 +159,7 @@ public class Playlist {
|
|||
*/
|
||||
public void load(){
|
||||
String path = System.getProperty("user.home")+"/.handiebot/playlist/"+name.replace(" ", "_")+".txt";
|
||||
log.log(BotLog.TYPE.INFO, "Loading playlist from: "+path);
|
||||
log.log(BotLog.TYPE.MUSIC, "Loading playlist from: "+path);
|
||||
File playlistFile = new File(path);
|
||||
if (playlistFile.exists()){
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue