diff --git a/Dockerfile b/Dockerfile index 78d6884..72529d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,57 +1,23 @@ -ARG JAVA_VERSION=17 -ARG MAVEN_VERSION=3.8.7 - -FROM alpine:3.16 as builder +FROM ubuntu:22.10 +ARG VERSION ARG JAVA_VERSION -RUN apk --no-cache add sudo bash \ - && apk --no-cache add openjdk${JAVA_VERSION} +RUN apt-get -y update \ + && apt-get -y install -y sudo bash curl \ + && apt-get -y install openjdk-${JAVA_VERSION}-jre-headless -########## -# BUILD 1 -########## -FROM builder AS build1 - -ARG MAVEN_VERSION -ARG JAVA_VERSION -ARG MAVEN_BASE_URL=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries -ARG USER_HOME_DIR="/root" - -RUN apk --no-cache add curl tar procps - -RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ - && echo "Downloading maven" \ - && curl -fsSL -o /tmp/apache-maven.tar.gz ${MAVEN_BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ - && echo "Unzipping maven" \ - && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ - && echo "Cleaning and setting links" \ - && rm -f /tmp/apache-maven.tar.gz \ - && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn - -ENV MAVEN_HOME /usr/share/maven -ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" ENV JAVA_VER ${JAVA_VERSION} ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk WORKDIR /app -COPY ./src ./src -COPY ./pom.xml ./pom.xml -RUN mvn -f ./pom.xml clean package -FROM builder as build2 +ADD https://repo.local.bensherriff.com/artifactory/libs-release/com/bensherriff/siren/${VERSION}/siren-${VERSION}.jar /usr/local/lib/ +RUN mv /usr/local/lib/siren-${VERSION}.jar /usr/local/lib/siren.jar -ARG JAVA_VERSION - -ENV JAVA_VER ${JAVA_VERSION} -ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk - -RUN ln -s /lib/libc.musl-aarch64.so.1 /lib/ld-linux-aarch64.so.1 - -WORKDIR /app -COPY --from=build1 /app/target/siren-*-All.jar /usr/local/lib/siren.jar #COPY ./start.sh ./start.sh #RUN chmod +x ./start.sh +#ENTRYPOINT ["tail", "-f", "/dev/null"] ENTRYPOINT ["java", "-jar", "/usr/local/lib/siren.jar"] #ENTRYPOINT ["/bin/sh", "-c", "./start.sh"] diff --git a/Makefile b/Makefile index a9d714e..ddaa989 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ SHELL := /bin/bash build: - docker build --tag siren . + docker-compose build test: docker run --rm -it siren:latest bash @@ -10,4 +10,8 @@ up: docker-compose up -d down: - docker-compose down \ No newline at end of file + docker-compose down + +exec: + docker exec -it siren bash + diff --git a/docker-compose.yml b/docker-compose.yml index 9a060cc..0616418 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,12 @@ services: siren: image: siren container_name: siren + build: + context: . + dockerfile: ./Dockerfile + args: + - JAVA_VERSION=17 + - VERSION=0.1.5 volumes: - ./data:/app restart: unless-stopped diff --git a/pom.xml b/pom.xml index 4dcc473..da35b95 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.bensherriff siren - 0.1.4 + 0.1.5 jar diff --git a/src/main/java/com/bensherriff/siren/MusicBot.java b/src/main/java/com/bensherriff/siren/MusicBot.java index 38983df..295f7a9 100644 --- a/src/main/java/com/bensherriff/siren/MusicBot.java +++ b/src/main/java/com/bensherriff/siren/MusicBot.java @@ -1,20 +1,16 @@ package com.bensherriff.siren; import com.bensherriff.siren.listener.Listener; -import com.bensherriff.siren.listener.SlashListener; import com.bensherriff.siren.listener.TextListener; import com.bensherriff.siren.settings.Settings; import com.bensherriff.siren.settings.SettingsManager; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; -import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; -import net.dv8tion.jda.api.managers.AudioManager; import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.utils.cache.CacheFlag; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import javax.security.auth.login.LoginException; import java.io.IOException; import java.util.Arrays; @@ -30,24 +26,29 @@ public class MusicBot { private final static CacheFlag[] DISABLED_FLAGS = { CacheFlag.ACTIVITY, CacheFlag.CLIENT_STATUS, CacheFlag.ONLINE_STATUS, CacheFlag.EMOJI, CacheFlag.STICKER, CacheFlag.SCHEDULED_EVENTS }; - public static Listener listener; - public static void main(String[] args) throws Exception { - start(); + public static void main(String[] args) { + try { + start(); + } catch (Exception ex) { + LOGGER.error(ex.getMessage()); + } } - private static void start() throws IOException, LoginException { + private static void start() throws IOException { SettingsManager settingsManager = new SettingsManager(); Settings settings = settingsManager.load(); -// listener = new TextListener(settings); - listener = new SlashListener(settings); + Listener textListener = new TextListener(settings); +// Listener slashListener = new SlashListener(settings); JDA jda = JDABuilder.create(settings.getToken(), Arrays.asList(INTENTS)) .enableCache(Arrays.asList(ENABLED_FLAGS)) .disableCache(Arrays.asList(DISABLED_FLAGS)) - .addEventListeners(listener) + .addEventListeners(textListener) +// .addEventListeners(slashListener) .setBulkDeleteSplittingEnabled(true) .build(); - listener.setJDA(jda); + textListener.setJDA(jda); +// slashListener.setJDA(jda); } } diff --git a/src/main/java/com/bensherriff/siren/commands/Command.java b/src/main/java/com/bensherriff/siren/commands/Command.java new file mode 100644 index 0000000..9aa9cba --- /dev/null +++ b/src/main/java/com/bensherriff/siren/commands/Command.java @@ -0,0 +1,18 @@ +package com.bensherriff.siren.commands; + +import com.bensherriff.siren.listener.Listener; + +public abstract class Command { + + protected final Listener listener; + protected String name; + + public Command(Listener listener) { + this.listener = listener; + } + public abstract void doCommand(); + + public String getName() { + return name; + } +} diff --git a/src/main/java/com/bensherriff/siren/listener/CommandEvent.java b/src/main/java/com/bensherriff/siren/commands/CommandEvent.java similarity index 98% rename from src/main/java/com/bensherriff/siren/listener/CommandEvent.java rename to src/main/java/com/bensherriff/siren/commands/CommandEvent.java index 1c58639..7c5d61c 100644 --- a/src/main/java/com/bensherriff/siren/listener/CommandEvent.java +++ b/src/main/java/com/bensherriff/siren/commands/CommandEvent.java @@ -1,4 +1,4 @@ -package com.bensherriff.siren.listener; +package com.bensherriff.siren.commands; import com.bensherriff.siren.audio.AudioHandler; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/com/bensherriff/siren/commands/PlayCommand.java b/src/main/java/com/bensherriff/siren/commands/PlayCommand.java new file mode 100644 index 0000000..6b3e2a7 --- /dev/null +++ b/src/main/java/com/bensherriff/siren/commands/PlayCommand.java @@ -0,0 +1,16 @@ +package com.bensherriff.siren.commands; + +import com.bensherriff.siren.listener.Listener; + +public class PlayCommand extends Command { + + public PlayCommand(Listener listener) { + super(listener); + this.name = "play"; + } + + @Override + public void doCommand() { + + } +} diff --git a/src/main/java/com/bensherriff/siren/listener/Listener.java b/src/main/java/com/bensherriff/siren/listener/Listener.java index 63f6981..6a50c45 100644 --- a/src/main/java/com/bensherriff/siren/listener/Listener.java +++ b/src/main/java/com/bensherriff/siren/listener/Listener.java @@ -2,15 +2,13 @@ package com.bensherriff.siren.listener; import com.bensherriff.siren.audio.AudioHandler; import com.bensherriff.siren.audio.PlayerManager; +import com.bensherriff.siren.commands.Command; +import com.bensherriff.siren.commands.PlayCommand; import com.bensherriff.siren.settings.Settings; -import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; -import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; -import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -19,9 +17,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.util.*; public abstract class Listener extends ListenerAdapter { protected static final Logger LOGGER = LogManager.getLogger(Listener.class); @@ -31,6 +27,8 @@ public abstract class Listener extends ListenerAdapter { protected final Settings settings; protected JDA jda; + Map commands = new HashMap<>(); + public Listener(Settings settings) { this.musicManagers = new HashMap<>(); this.settings = settings; diff --git a/src/main/java/com/bensherriff/siren/listener/SlashListener.java b/src/main/java/com/bensherriff/siren/listener/SlashListener.java index 11fcac0..b079eb3 100644 --- a/src/main/java/com/bensherriff/siren/listener/SlashListener.java +++ b/src/main/java/com/bensherriff/siren/listener/SlashListener.java @@ -7,7 +7,6 @@ import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.interactions.commands.OptionType; @@ -73,9 +72,7 @@ public class SlashListener extends Listener { resumeTrack(guild); event.getHook().sendMessage("Resumed track").queue(); } - default -> { - event.getHook().sendMessage("Invalid command").queue(); - } + default -> event.getHook().sendMessage("Invalid command").queue(); } super.onSlashCommandInteraction(event); } diff --git a/src/main/java/com/bensherriff/siren/listener/TextListener.java b/src/main/java/com/bensherriff/siren/listener/TextListener.java index 92e2077..98581c1 100644 --- a/src/main/java/com/bensherriff/siren/listener/TextListener.java +++ b/src/main/java/com/bensherriff/siren/listener/TextListener.java @@ -1,6 +1,7 @@ package com.bensherriff.siren.listener; import com.bensherriff.siren.audio.AudioHandler; +import com.bensherriff.siren.commands.CommandEvent; import com.bensherriff.siren.settings.Settings; import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;