v0.1.5 - Fixed docker files, updated commands

This commit is contained in:
2023-01-26 17:28:33 -05:00
parent 2e3e44ad58
commit 4bde451db7
11 changed files with 76 additions and 69 deletions

View File

@@ -1,57 +1,23 @@
ARG JAVA_VERSION=17 FROM ubuntu:22.10
ARG MAVEN_VERSION=3.8.7
FROM alpine:3.16 as builder
ARG VERSION
ARG JAVA_VERSION ARG JAVA_VERSION
RUN apk --no-cache add sudo bash \ RUN apt-get -y update \
&& apk --no-cache add openjdk${JAVA_VERSION} && 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_VER ${JAVA_VERSION}
ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk
WORKDIR /app 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 #COPY ./start.sh ./start.sh
#RUN chmod +x ./start.sh #RUN chmod +x ./start.sh
#ENTRYPOINT ["tail", "-f", "/dev/null"]
ENTRYPOINT ["java", "-jar", "/usr/local/lib/siren.jar"] ENTRYPOINT ["java", "-jar", "/usr/local/lib/siren.jar"]
#ENTRYPOINT ["/bin/sh", "-c", "./start.sh"] #ENTRYPOINT ["/bin/sh", "-c", "./start.sh"]

View File

@@ -1,7 +1,7 @@
SHELL := /bin/bash SHELL := /bin/bash
build: build:
docker build --tag siren . docker-compose build
test: test:
docker run --rm -it siren:latest bash docker run --rm -it siren:latest bash
@@ -11,3 +11,7 @@ up:
down: down:
docker-compose down docker-compose down
exec:
docker exec -it siren bash

View File

@@ -4,6 +4,12 @@ services:
siren: siren:
image: siren image: siren
container_name: siren container_name: siren
build:
context: .
dockerfile: ./Dockerfile
args:
- JAVA_VERSION=17
- VERSION=0.1.5
volumes: volumes:
- ./data:/app - ./data:/app
restart: unless-stopped restart: unless-stopped

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.bensherriff</groupId> <groupId>com.bensherriff</groupId>
<artifactId>siren</artifactId> <artifactId>siren</artifactId>
<version>0.1.4</version> <version>0.1.5</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<repositories> <repositories>

View File

@@ -1,20 +1,16 @@
package com.bensherriff.siren; package com.bensherriff.siren;
import com.bensherriff.siren.listener.Listener; import com.bensherriff.siren.listener.Listener;
import com.bensherriff.siren.listener.SlashListener;
import com.bensherriff.siren.listener.TextListener; import com.bensherriff.siren.listener.TextListener;
import com.bensherriff.siren.settings.Settings; import com.bensherriff.siren.settings.Settings;
import com.bensherriff.siren.settings.SettingsManager; import com.bensherriff.siren.settings.SettingsManager;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder; 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.requests.GatewayIntent;
import net.dv8tion.jda.api.utils.cache.CacheFlag; import net.dv8tion.jda.api.utils.cache.CacheFlag;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import javax.security.auth.login.LoginException;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
@@ -30,24 +26,29 @@ public class MusicBot {
private final static CacheFlag[] DISABLED_FLAGS = { private final static CacheFlag[] DISABLED_FLAGS = {
CacheFlag.ACTIVITY, CacheFlag.CLIENT_STATUS, CacheFlag.ONLINE_STATUS, CacheFlag.EMOJI, CacheFlag.STICKER, CacheFlag.SCHEDULED_EVENTS 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 { public static void main(String[] args) {
start(); 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(); SettingsManager settingsManager = new SettingsManager();
Settings settings = settingsManager.load(); Settings settings = settingsManager.load();
// listener = new TextListener(settings); Listener textListener = new TextListener(settings);
listener = new SlashListener(settings); // Listener slashListener = new SlashListener(settings);
JDA jda = JDABuilder.create(settings.getToken(), Arrays.asList(INTENTS)) JDA jda = JDABuilder.create(settings.getToken(), Arrays.asList(INTENTS))
.enableCache(Arrays.asList(ENABLED_FLAGS)) .enableCache(Arrays.asList(ENABLED_FLAGS))
.disableCache(Arrays.asList(DISABLED_FLAGS)) .disableCache(Arrays.asList(DISABLED_FLAGS))
.addEventListeners(listener) .addEventListeners(textListener)
// .addEventListeners(slashListener)
.setBulkDeleteSplittingEnabled(true) .setBulkDeleteSplittingEnabled(true)
.build(); .build();
listener.setJDA(jda); textListener.setJDA(jda);
// slashListener.setJDA(jda);
} }
} }

View File

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

View File

@@ -1,4 +1,4 @@
package com.bensherriff.siren.listener; package com.bensherriff.siren.commands;
import com.bensherriff.siren.audio.AudioHandler; import com.bensherriff.siren.audio.AudioHandler;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;

View File

@@ -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() {
}
}

View File

@@ -2,15 +2,13 @@ package com.bensherriff.siren.listener;
import com.bensherriff.siren.audio.AudioHandler; import com.bensherriff.siren.audio.AudioHandler;
import com.bensherriff.siren.audio.PlayerManager; 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.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 com.sedmelluq.discord.lavaplayer.track.AudioTrack;
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;
import net.dv8tion.jda.api.entities.Member; 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.entities.channel.concrete.VoiceChannel;
import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.events.session.ReadyEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; 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.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.HashMap; import java.util.*;
import java.util.Map;
import java.util.Objects;
public abstract class Listener extends ListenerAdapter { public abstract class Listener extends ListenerAdapter {
protected static final Logger LOGGER = LogManager.getLogger(Listener.class); protected static final Logger LOGGER = LogManager.getLogger(Listener.class);
@@ -31,6 +27,8 @@ public abstract class Listener extends ListenerAdapter {
protected final Settings settings; protected final Settings settings;
protected JDA jda; protected JDA jda;
Map<String, Command> commands = new HashMap<>();
public Listener(Settings settings) { public Listener(Settings settings) {
this.musicManagers = new HashMap<>(); this.musicManagers = new HashMap<>();
this.settings = settings; this.settings = settings;

View File

@@ -7,7 +7,6 @@ import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
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.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.events.session.ReadyEvent;
import net.dv8tion.jda.api.interactions.commands.OptionType; import net.dv8tion.jda.api.interactions.commands.OptionType;
@@ -73,9 +72,7 @@ public class SlashListener extends Listener {
resumeTrack(guild); resumeTrack(guild);
event.getHook().sendMessage("Resumed track").queue(); event.getHook().sendMessage("Resumed track").queue();
} }
default -> { default -> event.getHook().sendMessage("Invalid command").queue();
event.getHook().sendMessage("Invalid command").queue();
}
} }
super.onSlashCommandInteraction(event); super.onSlashCommandInteraction(event);
} }

View File

@@ -1,6 +1,7 @@
package com.bensherriff.siren.listener; package com.bensherriff.siren.listener;
import com.bensherriff.siren.audio.AudioHandler; import com.bensherriff.siren.audio.AudioHandler;
import com.bensherriff.siren.commands.CommandEvent;
import com.bensherriff.siren.settings.Settings; import com.bensherriff.siren.settings.Settings;
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;