Node.js

디스코드 봇 만들기 - 사용자가 음성 채널에 들어갔을때

리콜 2024. 11. 14. 04:25

디스코드 봇을 심심해서 만드는데

사용자가 음성채널에 들어가는 이벤트에 대해서 처리 하고 싶었다. 

 

discord.js를 이요해서 구현 중이고

버전은 v 14.16.3 버전을 기준이다.

 

14버전부터 많은게 바뀌어서 자료가 별로 없는것 같다.. 

그래서 다 영어로 검색해야 해서 슬프다...

 

기본 설정은 다 해뒀고

음성 채널에  참가했을때 참가한 시간을 간단하게 시간을 측정해주는 건데

 

const { Events } = require("discord.js");

module.exports = {
    name: Events.VoiceStateUpdate,
    once: false,
    async execute(oldState, newState) {
        // 유저가 음성 채널에 들어갔을 때
        if (!oldState.channelId && newState.channelId) {
            // 시작 시간을 기록

            console.log(`사용자가 음성채널에 들어갔습니다: ${newState.member.user.tag}`);
        
        }

    }
};

 

를 하고 실행을 해도 로그가 나오지 않았다...

무반응

즉 음성채널 참가 이벤트가 실행되지 않았다.

그러다 오류를 계속 찾아도 안나왔는데

 

const client = new Client({ intents: [GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildVoiceStates //음성 상태 업데이트를 위한 인텐트 추가
] });

와 같이 음성 상태 없데이트에 관한 인텐트를 추가 해줘야 했다!!! ㅠㅠ

 

반응형