오늘은 평소 봇이나 온라인 크라임씬 환경에서 봐 왔던 기본 기능 사용 방법을 익혀 보았다.
1. EmbedBuilder

const { EmbedBuilder } = require('discord.js');
const embed = new EmbedBuilder()
.setColor(0x0099FF) // 왼쪽 세로 줄 색상
.setTitle('방토 가이드 0.1')
.setDescription('방울토마토는 어디까지 갈 수 있는가')
.addFields(
{ name: '케챱', value: '3000' },
{ name: '멋쟁이', value: '23235345756868789' }
)
.setFooter({ text: '사실 케챱은 되기 싫다네요' })
.setTimestamp();
기본적인 사용법이다.
필드에 버튼을 추가하는 등 응용이 가능했던 기억이 있음.
해당 기능이 필요해지면 그때 알아볼 예정.
2. ActionRowBuilder, ButtonBuilder

const { ActionRowBuilder, ButtonBuilder } = require('discord.js');
const buttons = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('name1')
.setLabel("name1")
.setStyle('Primary'),
new ButtonBuilder()
.setCustomId('name2')
.setLabel("name2")
.setStyle('Primary'),
new ButtonBuilder()
.setCustomId('name3')
.setLabel("name3")
.setStyle('Primary'),
new ButtonBuilder()
.setCustomId('name4')
.setLabel("name4")
.setStyle('Primary'),
new ButtonBuilder()
.setCustomId('name5')
.setLabel("name5")
.setStyle('Primary')
);
버튼은 원하는 만큼 Component 안에 추가해 주면 된다.
한 Component 안에 버튼 5개까지만 지원된다고 한다.
6개부터는 ActionRowBuilder를 하나 더 생성해서 그 안에 추가해야 한다.

이렇게 온라인 뽁뽁이도 만들 수 있다.
3. interactionCreate


client.on('interactionCreate', interaction => {
if (!interaction.isButton()) return;
const convertRcv2snd = {
'케챱될거야' : () => ('케챱뿌서짐'),
'name1' : () => ('name1 누름'),
'name2' : () => ('name2 누름')
};
const sendmsg = convertRcv2snd[interaction.customId];
interaction.reply(sendmsg());
});
customId로 key값을 지정해 주어야 어떤 버튼을 눌러도 똑같은 값이 나오는 참사가 벌어지지 않는다.
'디스코드 봇 만들기' 카테고리의 다른 글
디스코드 봇 만들기 - 1. 환경 설정 및 봇 생성 (0) | 2025.02.03 |
---|