디스코드 봇 만들기

디스코드 봇 만들기 - 2. 라이브러리 기본 기능 (1)

raryscape 2025. 2. 4. 22:06

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

 

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값을 지정해 주어야 어떤 버튼을 눌러도 똑같은 값이 나오는 참사가 벌어지지 않는다.