diff --git a/bot/src/classes/GuildPlayer.ts b/bot/src/classes/GuildPlayer.ts index 4b92c5b..1bd7067 100644 --- a/bot/src/classes/GuildPlayer.ts +++ b/bot/src/classes/GuildPlayer.ts @@ -32,7 +32,7 @@ export class GuildPlayer { ) { this.player.setGlobalVolume(50); this.player.on("start", (_data: TrackStartEvent) => { - Redis.publishState("player_update", { + Redis?.publishState("player_update", { guildId: this.guild.id, }); }); @@ -189,7 +189,7 @@ export class GuildPlayer { if (!this.isPlaying) return; if (!this.nowTrack) return; this.player.seekTo(num); - Redis.publishState("player_update", { guildId: this.guild.id }); + Redis?.publishState("player_update", { guildId: this.guild.id }); } private async autoPlay() { @@ -244,8 +244,8 @@ export class GuildPlayer { } public async setMsg(update: { player: boolean; queue: boolean; } = { player: true, queue: true }) { - if (update.player) Redis.publishState("player_update", { guildId: this.guild.id }); - if (update.queue) Redis.publishState("queue_update", { guildId: this.guild.id }); + if (update.player) Redis?.publishState("player_update", { guildId: this.guild.id }); + if (update.queue) Redis?.publishState("queue_update", { guildId: this.guild.id }); const { channel, msg, check } = await checkTextChannelAndMsg(this.guild, this.textChannel, this.msg); if (!check) return; this.textChannel = channel; diff --git a/bot/src/classes/RedisClient.ts b/bot/src/classes/RedisClient.ts index cc5b421..b290a61 100644 --- a/bot/src/classes/RedisClient.ts +++ b/bot/src/classes/RedisClient.ts @@ -23,7 +23,12 @@ type SubAction = "queue_set" | "queue_remove"; -export class RedisClient { +export const RedisClient = () => { + if (Config.redis.state) return new RedisClientClass(); + return null; +} + +class RedisClientClass { public pub: Redis = new Redis({ host: Config.redis.host, port: Config.redis.port }); public sub: Redis = new Redis({ host: Config.redis.host, port: Config.redis.port }); diff --git a/bot/src/events/clientReady.ts b/bot/src/events/clientReady.ts index 56e9d58..ddf1b69 100644 --- a/bot/src/events/clientReady.ts +++ b/bot/src/events/clientReady.ts @@ -14,9 +14,11 @@ export const clientReady = async () => { reloadMsg(); - const guildIds = client.guilds.cache.map(guild => guild.id); - Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); - Logger.info(`[Redis Pub] bot-guilds 설정 완료: [${guildIds.join(",")}]`); + if (Redis) { + const guildIds = client.guilds.cache.map(guild => guild.id); + Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); + Logger.info(`[Redis Pub] bot-guilds 설정 완료: [${guildIds.join(",")}]`); + } if (!Config.dev) return; try { diff --git a/bot/src/events/guildCreate.ts b/bot/src/events/guildCreate.ts index deafc5e..aca1769 100644 --- a/bot/src/events/guildCreate.ts +++ b/bot/src/events/guildCreate.ts @@ -2,7 +2,9 @@ import { client, Redis } from "../index"; import { Logger } from "../utils/Logger"; export const guildCreate = async () => { - const guildIds = client.guilds.cache.map(guild => guild.id); - Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); - Logger.info(`[Redis Pub] bot-guilds 수정 완료: [${guildIds.join(",")}]`); + if (Redis) { + const guildIds = client.guilds.cache.map(guild => guild.id); + Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); + Logger.info(`[Redis Pub] bot-guilds 수정 완료: [${guildIds.join(",")}]`); + } } \ No newline at end of file diff --git a/bot/src/events/guildDelete.ts b/bot/src/events/guildDelete.ts index 9f0fe1c..9e85513 100644 --- a/bot/src/events/guildDelete.ts +++ b/bot/src/events/guildDelete.ts @@ -2,7 +2,9 @@ import { client, Redis } from "../index"; import { Logger } from "../utils/Logger"; export const guildDelete = async () => { - const guildIds = client.guilds.cache.map(guild => guild.id); - Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); - Logger.info(`[Redis Pub] bot-guilds 수정 완료: [${guildIds.join(",")}]`); + if (Redis) { + const guildIds = client.guilds.cache.map(guild => guild.id); + Redis.pub.set("bot-guilds", JSON.stringify(guildIds)); + Logger.info(`[Redis Pub] bot-guilds 수정 완료: [${guildIds.join(",")}]`); + } } \ No newline at end of file diff --git a/bot/src/index.ts b/bot/src/index.ts index 0ec9f77..9ddb356 100644 --- a/bot/src/index.ts +++ b/bot/src/index.ts @@ -21,7 +21,7 @@ process.on('SIGTERM', () => { export const client = new BotClient(); export const lavalinkManager = new LavalinkManager(client); export const handler = new Handler(); -export const Redis = new RedisClient(); +export const Redis = RedisClient(); for (const eventName of Object.keys(onEvents) as (keyof typeof onEvents)[]) { client.onEvent(eventName, onEvents[eventName]); diff --git a/bot/src/utils/Config.ts b/bot/src/utils/Config.ts index f509e0b..c098904 100644 --- a/bot/src/utils/Config.ts +++ b/bot/src/utils/Config.ts @@ -70,6 +70,7 @@ export const Config = { }, _redis: { + state: process.env.REDIS?.trim()?.toLocaleLowerCase() === "true", host: process.env.REDIS_HOST?.trim(), port: process.env.REDIS_PORT?.trim(), }, @@ -79,6 +80,7 @@ export const Config = { const port = Number(this._redis.port!); if (isNaN(port)) throw new TypeError("REDIS_PORT must be a number"); return { + state: this._redis.state, host: this._redis.host, port: port, };