diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index 7ea21a7..fb9d643 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.Config; +import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Message; @@ -18,14 +19,16 @@ public class CommandEvent extends MessageReceivedEvent { private CommandHandler commandHandler; private HelpCommand helpCommand; private MessageEditor messageEditor; + private EventWaiter eventWaiter; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter) { super(api, responseNumber, message); this.rethink = rethink; this.config = config; this.commandHandler = commandHandler; this.helpCommand = helpCommand; this.messageEditor = messageEditor; + this.eventWaiter = eventWaiter; } public Rethink getRethink() { @@ -47,4 +50,8 @@ public class CommandEvent extends MessageReceivedEvent { public MessageEditor getMessageEditor() { return messageEditor; } + + public EventWaiter getEventWaiter() { + return eventWaiter; + } } diff --git a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java index f2772e3..e4e806e 100644 --- a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java @@ -34,8 +34,8 @@ public class EqualsCommand implements Command { .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.second"), secondString, false) .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.result"), String.valueOf(firstString.equals(secondString)), false) .build()).queue(); - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index a84d9f3..c021568 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -48,8 +48,8 @@ public class FeedbackCommand implements Command { } catch (IOException e) { e.printStackTrace(); } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java index 9077d04..96ced02 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java @@ -21,7 +21,7 @@ public class ScreenShareCommand implements Command { try { if (vc.getIdLong() == Long.parseLong(args[0])) { event.getChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, + MessageEditor.MessageType.INFO, "commands.misc.screenshare.success.title", "") .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue(); return; @@ -56,7 +56,7 @@ public class ScreenShareCommand implements Command { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.id.error.title", "commands.misc.screenshare.number.error.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); } - }, event.getJDA(), event.getAuthor()); + }, event); } else if (vcs.size()==0) { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.channel.existing.error", "commands.misc.screenshare.channel.existing.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index f05e1c2..e9e2e36 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -53,7 +53,7 @@ public class RulesCommand implements Command { .build()).queue(); } } - }, event.getJDA(), event.getAuthor()); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } @@ -93,8 +93,8 @@ public class RulesCommand implements Command { "commands.moderation.rules.role.error.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.rules.error.message.title", @@ -165,7 +165,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); + }, event); } else { String aemote = event4.getMessage().getContentRaw(); event4.getChannel().sendMessage( @@ -210,9 +210,10 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); + }, event + ); } - }, event.getJDA(), event.getAuthor()); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java index eb860db..c2a0398 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -15,14 +15,14 @@ public class LeaveCommand implements Command { if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { event.getGuild().getAudioManager().closeAudioConnection(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.music.leave.success.title", + MessageEditor.MessageType.INFO, + "commands.music.leave.success.title", "commands.music.leave.success.description") .build()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.music.leave.error.tile", + MessageEditor.MessageType.WARNING, + "commands.music.leave.error.tile", "commands.music.leave.error.description") .build()).queue(); } @@ -30,7 +30,7 @@ public class LeaveCommand implements Command { @Override public String[] labels() { - return new String[]{"leave"}; + return new String[]{"leave", "quit"}; } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index c8e8dd3..9d7469f 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.general.HelpCommand; +import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -34,7 +35,7 @@ public class CommandHandler { if (args.length > 0 && args[0].equals("")) args = new String[0]; CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, - config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); + config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter()); if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { diff --git a/src/main/java/com/bbn/hadder/utils/EventWaiter.java b/src/main/java/com/bbn/hadder/utils/EventWaiter.java index bc9ad89..9b8e245 100644 --- a/src/main/java/com/bbn/hadder/utils/EventWaiter.java +++ b/src/main/java/com/bbn/hadder/utils/EventWaiter.java @@ -1,7 +1,6 @@ package com.bbn.hadder.utils; -import net.dv8tion.jda.api.JDA; -import net.dv8tion.jda.api.entities.User; +import com.bbn.hadder.commands.CommandEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -10,20 +9,20 @@ import java.util.function.Consumer; public class EventWaiter { - public void newOnMessageEventWaiter(Consumer onEvent, JDA jda, User user) { + public void newOnMessageEventWaiter(Consumer onEvent, CommandEvent event) { Object listener = new ListenerAdapter() { @Override public void onGuildMessageReceived(@Nonnull GuildMessageReceivedEvent event) { - if (user==null) { + if (event.getAuthor() == null) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); - } else if (event.getAuthor().getId().equals(user.getId())) { + } else if (event.getAuthor().getId().equals(event.getAuthor().getId())) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); } } }; - jda.getShardManager().addEventListener(listener); + event.getJDA().getShardManager().addEventListener(listener); } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 219fc21..2d22092 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -159,6 +159,11 @@ commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%.