디스코드(Discord)는 게이머와 커뮤니티 멤버들 간에 음성 및 텍스트 통화를 할 수 있는 인기 있는 소통 플랫폼 중 하나입니다. 이 글에서는 C# .NET을 사용하여 나만의 Discord 봇을 만들고 관리하는 방법을 배우도록 하겠습니다.
이전 시간에 우리는 디스코드 봇을 만드는 방법을 배웠습니다.
이제 이 봇을 관리하는 프로그램을 만들것입니다. 최신 버전의 .NET 프레임워크인 .NET 7을 사용하여 고유한 Discord 봇을 만드는 과정을 안내합니다. 이 튜토리얼이 끝나면 Discord 서버에서 기본 봇을 실행할 수 있습니다.
필수 구성 요소
.NET 7을 사용하여 Discord 봇을 만들기 전에 다음 필수 구성 요소가 있는지 확인합니다.
- 디스코드 계정: 봇을 만들고 관리하려면 Discord 계정이 필요합니다.
- Visual Studio 또는 Visual Studio Code: 개발을 위해 이러한 코드 편집기 중 하나를 선택할 수 있습니다.
- .NET 7 SDK: 공식 .NET 웹 사이트에서 .NET 7 SDK를 다운로드하여 설치합니다.
- Discord 개발자 포털: Discord 개발자 포털(https://discord.com/developers/applications)에서 봇 애플리케이션을 만듭니다.
- 디스코드 서버: 봇을 초대할 수 있는 Discord 서버가 있어야 합니다.
자 시작해 보겠습니다.
.Net Discord 봇 개발
1 단계. 새 .NET 7 콘솔 응용 프로그램 만들기
저는 Visual Studio 2022 를 사용 했습니다. 다음 처럼 이름을 정하고 시작합니다.
프로젝트라 만들어졌으면 라이브러리를 다운로드 받아야 합니다.
Nuget Package로 라이브러리를 참조하도록 하겠습니다.
2 단계. NuGet 패키지 설치
Nuget 패키지 관리자에서 Discord.Net 을 설치해 줍니다.
이제 개발 환경 설정은 모두 끝났습니다.
3 단계. Discord 봇 초기화
본격적으로 코딩을 시작하도록 하겠습니다.
DiscordSocketClient? _client = new DiscordSocketClient();
_client.LoginAsync(TokenType.Bot, "--BOT TOKEN--");
위의 두줄이 봇초기화와 로그인 단계가 마무리 됩니다. 이렇게만 실행해도 디스코드 서버에서는 우리의 봇이 온라인으로 바뀌어 있습니다.
이때 “–BOT TOKEN–” 부분은 이전글에서 봇을 만들때 메모장에 복사해 두시라고 했던 그 봇 토큰입니다. 그 적어두었던 토큰을 대신 적어 두면 됩니다.
서버 화면에 어떻게 바뀌었는지 보겠습니다.
어떤가요 우리의 디스코드봇이 온라인으로 바뀌었죠.? 이제 단순한 채팅 기능을 넣겠습니다.
관리를 위한 기본 코드를 왕창 붙여 넣겠습니다.
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” 를 돌려 주는 코드 입니다.
예상대로 화면에 잘 보여줍니다.
이부분을 AI API 와 연결하면 재미있는 디스코드봇이 만들어질 것 같습니다.
결론
축하합니다! .NET 7을 사용하여 기본 Discord 봇을 성공적으로 만들었습니다. 여기에서 더 많은 기능, 명령 및 이벤트 처리기를 추가하여 봇을 계속 확장하고 사용자 지정할 수 있습니다. Discord.Net 설명서에서 고급 기능과 모범 사례를 참조하십시오. .NET 7을 사용하여 Discord 봇 개발의 세계를 탐험해 보세요.