Initial push of le bot

This commit is contained in:
Michał Gdula 2023-02-25 11:16:27 +00:00
parent 48a5a49ac6
commit 0b926d310e
5 changed files with 1626 additions and 0 deletions

View file

7
.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
# Ignore Editor files
.idea/
.vscode/
# Ignore build and environment files
/target/
**.env

1539
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

17
Cargo.toml Normal file
View file

@ -0,0 +1,17 @@
[package]
name = "lynxie"
version = "0.1.0"
authors = ["Fluffy Bean <@Fluffy Bean>"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Discord API wrapper, yoinked from robbb bot as I have no clue what I'm doing
serenity = { version = "0.11.5", default-features = false, features = ["collector", "builder", "cache", "chrono", "client", "gateway", "model", "http", "utils", "rustls_backend"]}
# Required for async applications
tokio = { version = "1.21", features = ["macros", "fs", "rt-multi-thread"]}
# Dot env for variables
dotenv = "0.15.0"

63
src/main.rs Normal file
View file

@ -0,0 +1,63 @@
use dotenv::dotenv;
use std::env;
use serenity::{
async_trait,
model::{channel::Message, gateway::Ready},
prelude::*,
};
// Will handle Pisscord events
struct Handler;
#[async_trait]
impl EventHandler for Handler {
// Create a handler for a new message event
async fn message(&self, ctx: Context, msg: Message) {
if msg.content == "ping" {
// Set Reply to "pong"
let reply: &str = "pong";
if let Err(why) = msg.channel_id.say(&ctx.http, reply).await {
// If an error occurs, display it
println!("Error sending message: {:?}", why);
}
}
if msg.content == "pale" {
// Set Reply to "We should ban this guy"
let reply: &str = "We should ban this guy";
if let Err(why) = msg.channel_id.say(&ctx.http, reply).await {
// If an error occurs, display it
println!("Error sending message: {:?}", why);
}
}
}
// Create a handler for when the bot is ready
async fn ready(&self, _: Context, ready: Ready) {
// Display that the bot is ready along with the username
println!("{} is ready Bitch!", ready.user.name);
}
}
#[tokio::main]
async fn main() {
// Load dotenv file and yoink the token
dotenv().ok();
let token = env::var("DISCORD_TOKEN").expect("No Env enviroment variable found!");
// Set the bots intents
let intents = GatewayIntents::GUILD_MESSAGES
| GatewayIntents::DIRECT_MESSAGES
| GatewayIntents::MESSAGE_CONTENT;
// Login to the Pisscord client as a bot
let mut client = Client::builder(token, intents).event_handler(Handler).await.expect("Error connecting to client, are you online???");
// We start a single shart
if let Err(why) = client.start().await {
println!("Clinet buggin out, heres why: {:?}", why);
}
}