refactor: make the discord channel in config based on channel id instead of channel name so we can rename the channels from tonyboom to jorkboom for example, without having to modify the config
This commit is contained in:
@@ -153,7 +153,7 @@ public class Configuration {
|
||||
public int port;
|
||||
public String username;
|
||||
public String serverName;
|
||||
public String discordChannel;
|
||||
public String discordChannelId;
|
||||
public String ircChannel;
|
||||
public boolean hidden = false;
|
||||
public boolean useCore = true;
|
||||
|
||||
@@ -208,7 +208,7 @@ public class Main {
|
||||
for (final Bot bot : copiedList) {
|
||||
try {
|
||||
if (discordEnabled) {
|
||||
final String channelId = Main.discord.findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
|
||||
final MessageCreateAction messageAction = Main.discord.sendMessageInstantly(stoppingMessage, channelId, false);
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ public class ConsoleCommand extends Command {
|
||||
throw new CommandException(Component.translatable("commands.generic.error.discord_disabled"));
|
||||
}
|
||||
|
||||
final String channelId = Main.discord.findChannelId(context.bot.options.discordChannel);
|
||||
final String channelId = context.bot.options.discordChannelId;
|
||||
|
||||
if (channelId == null) return null;
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ public class GuildMessageEventHandler extends ListenerAdapter {
|
||||
if (event.getAuthor().getId().equals(jda.getSelfUser().getId())) return;
|
||||
|
||||
for (final Bot bot : Main.bots) {
|
||||
final String channelId = Main.discord.findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
|
||||
if (channelId == null || !event.getChannel().getId().equals(channelId)) continue;
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public class SlashCommandHandler extends ListenerAdapter {
|
||||
boolean found = false;
|
||||
|
||||
for (final Bot bot : Main.bots) {
|
||||
final String channelId = Main.discord.findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
|
||||
if (channelId == null || !event.getChannel().getId().equals(channelId)) continue;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package me.chayapak1.chomens_bot.plugins;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||
import me.chayapak1.chomens_bot.Bot;
|
||||
import me.chayapak1.chomens_bot.Configuration;
|
||||
import me.chayapak1.chomens_bot.Main;
|
||||
@@ -15,7 +16,6 @@ import me.chayapak1.chomens_bot.util.LoggerUtilities;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.JDABuilder;
|
||||
import net.dv8tion.jda.api.entities.Activity;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.requests.GatewayIntent;
|
||||
@@ -26,11 +26,8 @@ import net.kyori.adventure.text.event.HoverEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.geysermc.mcprotocollib.network.event.session.ConnectedEvent;
|
||||
import org.geysermc.mcprotocollib.network.event.session.DisconnectedEvent;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
@@ -94,7 +91,7 @@ public class DiscordPlugin {
|
||||
Main.EXECUTOR.scheduleAtFixedRate(this::onDiscordTick, 0, 50, TimeUnit.MILLISECONDS);
|
||||
|
||||
for (final Bot bot : Main.bots) {
|
||||
final String channelId = findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
|
||||
if (channelId == null) continue;
|
||||
|
||||
@@ -166,20 +163,8 @@ public class DiscordPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
public @Nullable String findChannelId (final String channelName) {
|
||||
if (channelName == null) return null;
|
||||
|
||||
final Guild guild = jda.getGuildById(serverId);
|
||||
if (guild == null) return null;
|
||||
|
||||
final List<TextChannel> channels = guild.getTextChannelsByName(channelName, true);
|
||||
if (channels.isEmpty()) return null;
|
||||
|
||||
return channels.getFirst().getId();
|
||||
}
|
||||
|
||||
// based from HBot (and modified quite a bit)
|
||||
private final Map<String, LogData> logData = new ConcurrentHashMap<>();
|
||||
private final Map<String, LogData> logData = new Object2ObjectOpenHashMap<>();
|
||||
|
||||
public void sendMessage (final String message, final String channelId) {
|
||||
final LogData data = logData.get(channelId);
|
||||
@@ -230,7 +215,7 @@ public class DiscordPlugin {
|
||||
|
||||
public void onDiscordTick () {
|
||||
for (final Bot bot : Main.bots) {
|
||||
final String channelId = findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
|
||||
if (channelId == null) continue;
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ public class GrepLogPlugin {
|
||||
|
||||
if (matches == 0) throw new CommandException(Component.translatable("commands.greplog.error.no_matches_found"));
|
||||
|
||||
final String channelId = Main.discord.findChannelId(bot.options.discordChannel);
|
||||
final String channelId = bot.options.discordChannelId;
|
||||
if (channelId == null) return;
|
||||
|
||||
final TextChannel logChannel = Main.discord.jda.getTextChannelById(channelId);
|
||||
|
||||
Reference in New Issue
Block a user