Compare commits

..

No commits in common. "a8bb9bc8fd7ab7ab7dafb350317e8f5727eca185" and "5becb595dbe184dfefd974f671746d7cc9bfc2dc" have entirely different histories.

4 changed files with 16 additions and 32 deletions

View file

@ -1,3 +1 @@
BOT_TOKEN=YOUR-BOT-TOKEN
MEMBER_ROLE_ID=123
WELCOME_CHANNEL_ID=321
BOT_TOKEN=YOUR-BOT-TOKEN

View file

@ -8,6 +8,4 @@ serenity = "0.12"
tokio = { version = "1.21.2", features = ["macros", "rt-multi-thread"] }
tracing = "0.1.23"
tracing-subscriber = "0.3"
envy = "0.4"
serde = { version = "1.0", features = ["derive"] }
dotenv = "0.15"

View file

@ -1,8 +1,3 @@
use serde::Deserialize;
#[derive(Deserialize, Debug)]
pub struct Config {
pub bot_token: String,
pub member_role_id: u64,
pub welcome_channel_id: u64,
}

View file

@ -1,12 +1,12 @@
mod commands;
use dotenv::dotenv;
use std::env;
use serenity::async_trait;
use serenity::builder::{CreateInteractionResponse, CreateInteractionResponseMessage};
use serenity::model::application::Interaction;
use serenity::model::gateway::Ready;
use serenity::model::guild::Member;
use serenity::model::id::ChannelId;
use serenity::model::channel::Message;
use serenity::model::user::OnlineStatus;
use serenity::gateway::ActivityData;
@ -16,9 +16,7 @@ use tracing::{warn, error, info};
mod config;
use config::Config;
struct Handler {
config: Config
}
struct Handler;
#[async_trait]
impl EventHandler for Handler {
@ -81,16 +79,6 @@ impl EventHandler for Handler {
);
}
async fn guild_member_addition(&self, ctx: Context, new_member: Member) {
if let Err(why) = new_member.add_role(&ctx.http, self.config.member_role_id).await {
error!("Error adding role: {why:?}");
}
let channel = ChannelId::new(self.config.welcome_channel_id);
if let Err(why) = channel.say(ctx.http, format!("Hello, {}!", new_member.user.name)).await {
error!("Error sending message: {why:?}");
}
}
}
#[tokio::main]
@ -99,18 +87,23 @@ async fn main() {
dotenv().ok();
let config = match envy::from_env::<Config>() {
Ok(config) => config,
Err(error) => panic!("{:#?}", error)
let bot_token = env::var("BOT_TOKEN")
.expect("BOT_TOKEN не найден")
.parse()
.expect("Неверный формат BOT_TOKEN");
let config = Config {
bot_token: bot_token,
};
let intents = GatewayIntents::GUILD_MESSAGES
| GatewayIntents::DIRECT_MESSAGES
| GatewayIntents::MESSAGE_CONTENT
| GatewayIntents::GUILD_MEMBERS;
| GatewayIntents::MESSAGE_CONTENT;
let mut client = Client::builder(&config.bot_token, intents)
.event_handler(Handler { config })
let token = &config.bot_token;
let mut client = Client::builder(token, intents)
.event_handler(Handler)
.await
.expect("Error creating client");