기존에 클라이언트분들이 서버 로그를 편하게 알 수 있도록 명령어를 치면 로그를 찍어주는 디스코드 봇을 만들었었는데, 이번에는 서버 상태에 따라 알림을 일방적으로 원하는 채널에 찍어줄 수 있게 구현을 해보았다.
import { Client, GatewayIntentBits } from 'discord.js';
import { config } from '../../config/config.js';
// 디스코드 클라이언트 생성
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
// 봇 토큰과 채널 ID 설정
const BOT_TOKEN = config.discord.token;
const CHANNEL_ID = config.discord.channelId;
// 디스코드 알림 함수
export const discordAlert = (message) => {
const channel = client.channels.cache.get(CHANNEL_ID);
if (channel) {
channel.send(message);
} else {
console.error('알림 채널을 찾을 수 없습니다.');
}
};
// 봇 로그인
client.login(BOT_TOKEN);
const channel = client.channels.cache.get(CHANNEL_ID);
여기서 채널 아이디를 얻는 방법은 디스코드 설정에서 개발자 모드를 켜야한다.
그리고 원하는 채널 오른쪽 마우스키를 누르고 채널 ID를 복사하면 된다.
채널 아이디와 토큰은 .env로 관리할 수 있도록 하자.
채널 아이디의 경우 봇의 권한이 없으면 보내지지 않기에 상관 없지만 혹시 모르니 ㅎㅎ..