- クライアントの作成: まず最初に、Discord APIに接続するためのクライアントを作成する必要があります。Rustでは、tokioやreqwestなどのライブラリを使用することが一般的です。以下は、tokioを使用してDiscord APIに接続する例です。
use serenity::prelude::*;
use serenity::model::gateway::GatewayIntents;
fn main() {
let mut client = Client::builder("your_bot_token")
.intents(GatewayIntents::all())
.event_handler(Handler)
.await
.expect("Error creating client");
if let Err(why) = client.start().await {
eprintln!("Client error: {:?}", why);
}
}
- イベントハンドリング: Discord APIでは、様々なイベント(メッセージの受信、ユーザーの参加など)をハンドリングすることができます。以下は、メッセージが送信されたときに特定の処理を行う例です。
use serenity::prelude::*;
use serenity::model::prelude::*;
use serenity::framework::standard::{
StandardFramework,
CommandResult,
macros::{command, group},
};
#[command]
async fn ping(ctx: &Context, msg: &Message) -> CommandResult {
msg.channel_id.say(&ctx.http, "Pong!").await?;
Ok(())
}
#[group]
#[commands(ping)]
struct General;
struct Handler;
#[serenity::async_trait]
impl EventHandler for Handler {
async fn message(&self, ctx: Context, msg: Message) {
if !msg.author.bot {
let _ = General::command(&ping)(&ctx, &msg).await;
}
}
}
fn main() {
let mut client = Client::builder("your_bot_token")
.event_handler(Handler)
.framework(StandardFramework::new()
.group(&GENERAL_GROUP))
.await
.expect("Error creating client");
if let Err(why) = client.start().await {
eprintln!("Client error: {:?}", why);
}
}
- コマンドの作成:
ユーザーからのコマンドを受け付けて処理するために、Rustでコマンドを作成することもできます。以下は、
!ping
コマンドに対する処理を行う例です。
use serenity::prelude::*;
use serenity::model::prelude::*;
use serenity::framework::standard::{
StandardFramework,
CommandResult,
macros::{command, group},
};
#[command]
async fn ping(ctx: &Context, msg: &Message) -> CommandResult {
msg.channel_id.say(&ctx.http, "Pong!").await?;
Ok(())
}
#[group]
#[commands(ping)]
struct General;
fn main() {
let mut client = Client::builder("your_bot_token")
.framework(StandardFramework::new()
.group(&GENERAL_GROUP))
.await
.expect("Error creating client");
if let Err(why) = client.start().await {
eprintln!("Client error: {:?}", why);
}
}
以上が、Discord APIを使用したRustでの開発の基本的なガイドです。この記事を参考にして、自分自身のボットやアプリケーションを作成してみてください。