Adding config

This commit is contained in:
2023-01-07 19:42:49 -05:00
parent 08b02617a6
commit 03329fb106
5 changed files with 124 additions and 12 deletions

11
pom.xml
View File

@@ -39,6 +39,17 @@
<artifactId>lavaplayer</artifactId> <artifactId>lavaplayer</artifactId>
<version>1.3.77</version> <version>1.3.77</version>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.0</version>
</dependency>
<!-- Logging --> <!-- Logging -->
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>

View File

@@ -0,0 +1,42 @@
package com.bensherriff.siren;
public class Config {
private String token;
private String owner;
private String prefix;
private int volume;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public int getVolume() {
return volume;
}
public void setVolume(int volume) {
this.volume = volume;
}
}

View File

@@ -0,0 +1,19 @@
package com.bensherriff.siren;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.io.InputStream;
public class ConfigManager {
private static final Logger LOGGER = LogManager.getLogger(ConfigManager.class);
private final ObjectMapper mapper = new ObjectMapper();
public Config load() throws IOException {
try(InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.json")) {
return mapper.readValue(inputStream, Config.class);
}
}
}

View File

@@ -14,26 +14,44 @@ import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.managers.AudioManager; import net.dv8tion.jda.api.managers.AudioManager;
import net.dv8tion.jda.api.requests.GatewayIntent;
import net.dv8tion.jda.api.utils.cache.CacheFlag;
import javax.security.auth.login.LoginException;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static net.dv8tion.jda.api.requests.GatewayIntent.GUILD_MESSAGES;
import static net.dv8tion.jda.api.requests.GatewayIntent.GUILD_VOICE_STATES;
public class MusicBot extends ListenerAdapter { public class MusicBot extends ListenerAdapter {
public static void main(String[] args) throws Exception { private final static GatewayIntent[] INTENTS = {
GatewayIntent.DIRECT_MESSAGES, GatewayIntent.GUILD_MESSAGES, GatewayIntent.GUILD_MESSAGE_REACTIONS,
GatewayIntent.GUILD_VOICE_STATES
};
private final AudioPlayerManager playerManager;
private final Map<Long, MusicManager> musicManagers;
private final Config config;
JDABuilder.create("OTMyMzAxMjQ4NTQ2MzYxMzQ2.YeQ_Mg.n4H8Cl3dQ1u5aFL1ZvTmfcGwpEY", GUILD_MESSAGES, GUILD_VOICE_STATES) public static void main(String[] args) throws Exception {
.addEventListeners(new MusicBot()) start();
}
private static void start() throws IOException, LoginException {
ConfigManager configManager = new ConfigManager();
Config config = configManager.load();
MusicBot musicBot = new MusicBot(config);
JDABuilder.create(config.getToken(), Arrays.asList(INTENTS))
.enableCache(CacheFlag.MEMBER_OVERRIDES, CacheFlag.VOICE_STATE)
.disableCache(CacheFlag.ACTIVITY, CacheFlag.CLIENT_STATUS, CacheFlag.EMOTE)
.addEventListeners(musicBot)
.setBulkDeleteSplittingEnabled(true)
.build(); .build();
} }
private final AudioPlayerManager playerManager; private MusicBot(Config config) {
private final Map<Long, MusicManager> musicManagers;
private MusicBot() {
this.musicManagers = new HashMap<>(); this.musicManagers = new HashMap<>();
this.config = config;
this.playerManager = new DefaultAudioPlayerManager(); this.playerManager = new DefaultAudioPlayerManager();
AudioSourceManagers.registerRemoteSources(playerManager); AudioSourceManagers.registerRemoteSources(playerManager);
@@ -66,7 +84,9 @@ public class MusicBot extends ListenerAdapter {
} else if ("!skip".equals(command[0])) { } else if ("!skip".equals(command[0])) {
skipTrack(channel); skipTrack(channel);
} else if ("!stop".equals(command[0])) { } else if ("!stop".equals(command[0])) {
stop(channel);
} else if ("!volume".equals(command[0])) {
changeVolume(channel, command[1]);
} }
super.onGuildMessageReceived(event); super.onGuildMessageReceived(event);
@@ -110,10 +130,16 @@ public class MusicBot extends ListenerAdapter {
private void play(Guild guild, MusicManager musicManager, AudioTrack track) { private void play(Guild guild, MusicManager musicManager, AudioTrack track) {
connectToFirstVoiceChannel(guild.getAudioManager()); connectToFirstVoiceChannel(guild.getAudioManager());
musicManager.scheduler.queue(track); musicManager.scheduler.queue(track);
} }
private void stop(TextChannel channel) {
MusicManager musicManager = getGuildAudioPlayer(channel.getGuild());
musicManager.player.stopTrack();
channel.getGuild().getAudioManager().closeAudioConnection();
channel.sendMessage("Stopping music").queue();
}
private void skipTrack(TextChannel channel) { private void skipTrack(TextChannel channel) {
MusicManager musicManager = getGuildAudioPlayer(channel.getGuild()); MusicManager musicManager = getGuildAudioPlayer(channel.getGuild());
musicManager.scheduler.nextTrack(); musicManager.scheduler.nextTrack();
@@ -121,6 +147,14 @@ public class MusicBot extends ListenerAdapter {
channel.sendMessage("Skipped to next track.").queue(); channel.sendMessage("Skipped to next track.").queue();
} }
private void changeVolume(TextChannel channel, String vol) {
MusicManager musicManager = getGuildAudioPlayer(channel.getGuild());
int volume = Integer.parseInt(vol);
config.setVolume(volume);
musicManager.player.setVolume(volume);
channel.sendMessage("Set volume to " + volume).queue();
}
private static void connectToFirstVoiceChannel(AudioManager audioManager) { private static void connectToFirstVoiceChannel(AudioManager audioManager) {
if (!audioManager.isConnected()) { if (!audioManager.isConnected()) {
for (VoiceChannel voiceChannel : audioManager.getGuild().getVoiceChannels()) { for (VoiceChannel voiceChannel : audioManager.getGuild().getVoiceChannels()) {

View File

@@ -0,0 +1,6 @@
{
"token": "OTMyMzAxMjQ4NTQ2MzYxMzQ2.YeQ_Mg.n4H8Cl3dQ1u5aFL1ZvTmfcGwpEY",
"owner": "250842261221277697",
"prefix": "!",
"volume": 50
}