- VSCode Python 설치
- Python 설치 환경변수 잡아주는거 체크 3번째 옵션에
pip install discord
pip install asyncio
Client Discord API와 상호작용하기 위한 기본 허브이자 모든 봇의 시작점
channels : 클라이언트가 현재 처리하고 있는 모든 서버의 모든 채널 guilds : 클라이언트가 현재 처리하고 있는 모든 서버 users : 모든 사용자
login(token) : 클라이언트 로그인, Discord에 웹소켓 연결 on(eventName, listener) : Client 클래스는 EventEmitter를 extends함 Discord에서 특정 이벤트 수행시 작동하는 코드 작성 가능 ClientEvents Client가 Discord에서 어떤 이벤트를 받아올 수 있는지 알수 있음
ready : client 가 ready 되었을 때 발생 messageCreate : 메시지가 보내질 때마다 발생 (봇이든 사용자든) interactionCreate : interaction이 만들어질 때마다 발생 guildCreate : 봇이 서버에 참가했을 때마다 발생 guildDelete : 봇이 서버에서 추방되었거나, 서버가 없어졌을 때마다 발생 guildMemberAdd : 사용자가 서버에 참가했을 때마다 발생 guildMemberRemove : 사용자가 서버를 떠나거나 추방당했을 때마다 발생 channelDelete : 채널이 삭제될 때마다 발생
interaction 이랑 message 이벤트는 DEPRECATED 되었음 Intents intents를 쉽게 계산할 수 있는 데이터 구조
FLAG : 웹소켓 intents의 사용가능한 속성 : GUILDS, GUILD_MESSAGES, GUILD_MEMBERS 등등 ...
코드에 Intents.FLAGS.속성을 추가했을 때, 오류가 발생한다면 Discord에서 Bot - Privileged Gateway Intents 에 체크를 안해줘서 발생했을 가능성이 높음 Guild 디스코드의 서버를 의미
id : 서버 id name : 서버 이름 channels : 서버에 속한 채널의 관리자 GuildChannelManager GuildChannel에 대한 API 메소드를 관리하고 해당 cache를 저장
cache Collection<string, (GuildChannel|ThreadChannel)> : 서버의 채널들에 대해 알고 싶으면 이 cache 변수를 사용해야 함 : GuildChannelManager.cache.forEach() 로 서버의 모든 채널 순회 가능
create(name, options) : 서버에 새로운 채널 생성, Promise 반환 : options 을 통해 채널의 타입, 설명, 부모 등을 정할 수 있음 GuildManager Guild에 대한 API 메소드를 관리하고 해당 cache를 저장
cache Collection<string, Guild/> : 서버의 채널들에 대해 알고 싶으면 이 cache 변수를 사용해야 함 : GuildManager.cache.forEach() 로 봇이 참여한 모든 서버 순회 가능 GuildChannel 아래 중 하나의 채널을 나타냄 TextChannel, VoiceChannel, CategoryChannel, NewsChannel, StoreChannel, StageChannel
id : 채널 id guildId : 채널이 속한 서버 id permissionOverwrites : 채널의 permissionOverwrites 관리자 PermissionOverwriteManager 채널의 권한에 대한 API 메소드를 관리하고 해당 cache를 저장
create(userOrRole, options, [overwriteOptions]) : 채널에 권한 생성, 이미 존재한다면 교체 : Promise 반환 delete(userOrRole, [reason]) : 채널의 권한 삭제 : Promise 반환 TextBasedChannels 아래가 TextBasedChannels에 해당 DMChannel, TextChannel, NewsChannel, ThreadChannel
send(options) : 채널에 메세지를 보냄 : Promise 반환 Massage 말 그대로 Discord의 메세지
author : 메세지 작성자 : author.id 로 작성자 id를 알 수 있고, author.bot 으로 작성자가 봇인지 아닌지 확인 가능함 content : 메세지의 내용 guildId : 메세지를 보낸 서버 id channelId : 메세지를 보낸 채널 id