From aee6735e395ce610d1674f0aa62f6da1072d4a22 Mon Sep 17 00:00:00 2001 From: Reperak Date: Sat, 27 Nov 2021 23:19:13 +0000 Subject: [PATCH] Use builder pattern for CommandMeta (#5) much cleaner --- .../ztereomusic/command/CommandMeta.java | 12 ++---------- .../ztereomusic/command/commands/Disconnect.java | 15 ++++++++++++++- .../ztereomusic/command/commands/Pause.java | 16 +++++++++++++++- .../ztereomusic/command/commands/Ping.java | 13 ++++++++++++- .../ztereomusic/command/commands/Play.java | 15 ++++++++++++++- .../ztereomusic/command/commands/Queue.java | 15 ++++++++++++++- .../ztereomusic/command/commands/Skip.java | 16 +++++++++++++++- 7 files changed, 86 insertions(+), 16 deletions(-) diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/CommandMeta.java b/src/main/java/codes/ztereohype/ztereomusic/command/CommandMeta.java index 49e6c32..ab9b78f 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/CommandMeta.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/CommandMeta.java @@ -1,9 +1,10 @@ package codes.ztereohype.ztereomusic.command; import codes.ztereohype.ztereomusic.command.permissions.VoiceChecks; +import lombok.Builder; import lombok.Getter; -@Getter +@Getter @Builder public class CommandMeta { private final String name; private final String description; @@ -11,13 +12,4 @@ public class CommandMeta { private final boolean isNsfw; private final boolean isHidden; private final VoiceChecks[] checks; - - public CommandMeta(String name, String description, String[] aliases, boolean isNsfw, boolean isHidden, VoiceChecks[] checks) { - this.name = name; - this.description = description; - this.aliases = aliases; - this.isNsfw = isNsfw; - this.isHidden = isHidden; - this.checks = checks; - } } diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Disconnect.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Disconnect.java index 78b2bde..962b22e 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Disconnect.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Disconnect.java @@ -11,7 +11,20 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.managers.AudioManager; public class Disconnect implements Command { - CommandMeta meta = new CommandMeta("disconnect", "A command to kick the bot from the vc.", new String[]{"fuckoff", "bye"}, false, false, new VoiceChecks[]{ VoiceChecks.BOT_CONNECTED, VoiceChecks.USER_CONNECTED, VoiceChecks.SAME_VC_IF_CONNECTED }); + private final CommandMeta meta; + + public Disconnect() { + this.meta = CommandMeta.builder() + .name("disconnect") + .description("A command to kick the bot from the vc.") + .aliases(new String[] { "fuckoff", "bye" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[] { VoiceChecks.BOT_CONNECTED, + VoiceChecks.USER_CONNECTED, + VoiceChecks.SAME_VC_IF_CONNECTED }) + .build(); + } @Override public CommandMeta getMeta() { diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Pause.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Pause.java index 9461d4a..150988f 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Pause.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Pause.java @@ -9,7 +9,21 @@ import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; public class Pause implements Command { - CommandMeta meta = new CommandMeta("pause", "Pause the playing music", new String[]{"resume"}, false, false, new VoiceChecks[]{ VoiceChecks.BOT_CONNECTED, VoiceChecks.BOT_PLAYING, VoiceChecks.USER_CONNECTED, VoiceChecks.SAME_VC_IF_CONNECTED }); + private final CommandMeta meta; + + public Pause() { + this.meta = CommandMeta.builder() + .name("pause") + .description("Pause the playing music") + .aliases(new String[] { "resume" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[] { VoiceChecks.BOT_CONNECTED, + VoiceChecks.BOT_PLAYING, + VoiceChecks.USER_CONNECTED, + VoiceChecks.SAME_VC_IF_CONNECTED }) + .build(); + } @Override public CommandMeta getMeta() { diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Ping.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Ping.java index 4c2873d..8a64c92 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Ping.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Ping.java @@ -6,7 +6,18 @@ import codes.ztereohype.ztereomusic.command.permissions.VoiceChecks; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; public class Ping implements Command { - CommandMeta meta = new CommandMeta("ping", "A command to get pinged", new String[]{"pong", "pog"}, false, false, new VoiceChecks[]{}); + private final CommandMeta meta; + + public Ping() { + this.meta = CommandMeta.builder() + .name("ping") + .description("A command to get pinged") + .aliases(new String[] { "pong", "pog" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[0]) + .build(); + } @Override public CommandMeta getMeta() { diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java index 2f66369..37962da 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java @@ -26,7 +26,20 @@ import java.util.regex.Pattern; public class Play implements Command { private static final Pattern URL_PATTERN = Pattern.compile("^(http|https)://([a-z]+\\.[a-z]+)+/\\S+$", Pattern.CASE_INSENSITIVE); - CommandMeta meta = new CommandMeta("play", "Play music!", new String[]{"p"}, false, false, new VoiceChecks[]{ VoiceChecks.USER_CONNECTED, VoiceChecks.SAME_VC_IF_CONNECTED }); + + private final CommandMeta meta; + + public Play() { + this.meta = CommandMeta.builder() + .name("play") + .description("Play music!") + .aliases(new String[] { "p" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[] { VoiceChecks.USER_CONNECTED, + VoiceChecks.SAME_VC_IF_CONNECTED }) + .build(); + } @Override public CommandMeta getMeta() { diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Queue.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Queue.java index af8def3..74cfa08 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Queue.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Queue.java @@ -16,7 +16,20 @@ import java.util.List; import java.util.Objects; public class Queue implements Command { - CommandMeta meta = new CommandMeta("queue", "See the queue", new String[]{"q"}, false, false, new VoiceChecks[]{ VoiceChecks.BOT_CONNECTED, VoiceChecks.USER_CONNECTED, VoiceChecks.SAME_VC_IF_CONNECTED }); + private final CommandMeta meta; + + public Queue() { + this.meta = CommandMeta.builder() + .name("queue") + .description("See the queue") + .aliases(new String[] { "q" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[] { VoiceChecks.BOT_CONNECTED, + VoiceChecks.USER_CONNECTED, + VoiceChecks.SAME_VC_IF_CONNECTED }) + .build(); + } @Override public CommandMeta getMeta() { diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Skip.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Skip.java index fea39b9..430f581 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Skip.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Skip.java @@ -13,7 +13,21 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.managers.AudioManager; public class Skip implements Command { - CommandMeta meta = new CommandMeta("skip", "Skip the current track!", new String[]{"next"}, false, false, new VoiceChecks[]{ VoiceChecks.BOT_CONNECTED, VoiceChecks.BOT_PLAYING, VoiceChecks.USER_CONNECTED, VoiceChecks.SAME_VC_IF_CONNECTED }); + private final CommandMeta meta; + + public Skip() { + this.meta = CommandMeta.builder() + .name("skip") + .description("Skip the current track!") + .aliases(new String[] { "next" }) + .isNsfw(false) + .isHidden(false) + .checks(new VoiceChecks[] { VoiceChecks.BOT_CONNECTED, + VoiceChecks.BOT_PLAYING, + VoiceChecks.USER_CONNECTED, + VoiceChecks.SAME_VC_IF_CONNECTED }) + .build(); + } @Override public CommandMeta getMeta() {