C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)

디스코드(Discord)는 게이머와 커뮤니티 멤버들 간에 음성 및 텍스트 통화를 할 수 있는 인기 있는 소통 플랫폼 중 하나입니다. 이 글에서는 C# .NET을 사용하여 나만의 Discord 봇을 만들고 관리하는 방법을 배우도록 하겠습니다.
이전 시간에 우리는 디스코드 봇을 만드는 방법을 배웠습니다.

이제 이 봇을 관리하는 프로그램을 만들것입니다. 최신 버전의 .NET 프레임워크인 .NET 7을 사용하여 고유한 Discord 봇을 만드는 과정을 안내합니다. 이 튜토리얼이 끝나면 Discord 서버에서 기본 봇을 실행할 수 있습니다.

필수 구성 요소

.NET 7을 사용하여 Discord 봇을 만들기 전에 다음 필수 구성 요소가 있는지 확인합니다.

  1. 디스코드 계정: 봇을 만들고 관리하려면 Discord 계정이 필요합니다.
  2. Visual Studio 또는 Visual Studio Code: 개발을 위해 이러한 코드 편집기 중 하나를 선택할 수 있습니다.
  3. .NET 7 SDK: 공식 .NET 웹 사이트에서 .NET 7 SDK를 다운로드하여 설치합니다.
  4. Discord 개발자 포털: Discord 개발자 포털(https://discord.com/developers/applications)에서 봇 애플리케이션을 만듭니다.
  5. 디스코드 서버: 봇을 초대할 수 있는 Discord 서버가 있어야 합니다.

자 시작해 보겠습니다.

.Net Discord 봇 개발

1 단계. 새 .NET 7 콘솔 응용 프로그램 만들기

저는 Visual Studio 2022 를 사용 했습니다. 다음 처럼 이름을 정하고 시작합니다.

C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)
C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)

프로젝트라 만들어졌으면 라이브러리를 다운로드 받아야 합니다.

Nuget Package로 라이브러리를 참조하도록 하겠습니다.

2 단계. NuGet 패키지 설치

C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)

Nuget 패키지 관리자에서 Discord.Net 을 설치해 줍니다.

이제 개발 환경 설정은 모두 끝났습니다.

3 단계. Discord 봇 초기화

본격적으로 코딩을 시작하도록 하겠습니다.

DiscordSocketClient? _client = new DiscordSocketClient();
_client.LoginAsync(TokenType.Bot, "--BOT TOKEN--");

위의 두줄이 봇초기화와 로그인 단계가 마무리 됩니다. 이렇게만 실행해도 디스코드 서버에서는 우리의 봇이 온라인으로 바뀌어 있습니다.
이때 “–BOT TOKEN–” 부분은 이전글에서 봇을 만들때 메모장에 복사해 두시라고 했던 그 봇 토큰입니다. 그 적어두었던 토큰을 대신 적어 두면 됩니다.

서버 화면에 어떻게 바뀌었는지 보겠습니다.

C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)

어떤가요 우리의 디스코드봇이 온라인으로 바뀌었죠.? 이제 단순한 채팅 기능을 넣겠습니다.

관리를 위한 기본 코드를 왕창 붙여 넣겠습니다.

4단계. 명령에 응답

using System;
using System.Threading.Tasks;
using Discord;
using Discord.WebSocket;

class Program
{
    private DiscordSocketClient? _client;

    static async Task Main(string[] args)
    {
        var program = new Program();
        await program.RunBotAsync();
    }

    public async Task RunBotAsync()
    {
        _client = new DiscordSocketClient();
        _client.MessageReceived += MessageReceivedAsync;

        await _client.LoginAsync(TokenType.Bot, "--BOT TOKEN--");
        await _client.StartAsync();

        await Task.Delay(-1);
    }

    private async Task MessageReceivedAsync(SocketMessage message)
    {
        if (message.Content == "하이")
        {
            await message.Channel.SendMessageAsync("안녕, Discord");
        }
    }

}

위의 코드가 단순한 전체 코드입니다.
아래 부분이 핵심 기능인데 메세지가 어떻게 나올지 예상 가능합니다.

    if (message.Content == "하이")
    {
        await message.Channel.SendMessageAsync("안녕, Discord");
    }

누군가 “하이” 를 치면 로봇은 “안녕, Discord” 를 돌려 주는 코드 입니다.

C# .NET으로 나만의 Discord 봇을 작성하는 방법 (2)

예상대로 화면에 잘 보여줍니다.

이부분을 AI API 와 연결하면 재미있는 디스코드봇이 만들어질 것 같습니다.

결론

축하합니다! .NET 7을 사용하여 기본 Discord 봇을 성공적으로 만들었습니다. 여기에서 더 많은 기능, 명령 및 이벤트 처리기를 추가하여 봇을 계속 확장하고 사용자 지정할 수 있습니다. Discord.Net 설명서에서 고급 기능과 모범 사례를 참조하십시오. .NET 7을 사용하여 Discord 봇 개발의 세계를 탐험해 보세요.

Leave a Comment