v0.1.5 - Fixed docker files, updated commands
This commit is contained in:
50
Dockerfile
50
Dockerfile
@@ -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"]
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -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>
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
src/main/java/com/bensherriff/siren/commands/Command.java
Normal file
18
src/main/java/com/bensherriff/siren/commands/Command.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
@@ -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() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user