Remove events
This commit is contained in:
parent
97ab8897c0
commit
7eefb6ef8e
59
src/bot.rs
59
src/bot.rs
@ -1,4 +1,4 @@
|
||||
use std::{collections::VecDeque, sync::Arc, time::Duration};
|
||||
use std::{sync::Arc, time::Duration};
|
||||
|
||||
use log::info;
|
||||
use tokio::runtime::Runtime;
|
||||
@ -14,21 +14,11 @@ use veloren_common_net::msg::PlayerInfo;
|
||||
|
||||
use crate::Config;
|
||||
|
||||
enum Event {
|
||||
Admin(String),
|
||||
Ban(String),
|
||||
Cheese,
|
||||
Invite(Uid),
|
||||
Kick(Uid),
|
||||
Unban(String),
|
||||
}
|
||||
|
||||
pub struct Bot {
|
||||
client: Client,
|
||||
clock: Clock,
|
||||
admin_list: Vec<Uuid>,
|
||||
ban_list: Vec<Uuid>,
|
||||
events: VecDeque<Event>,
|
||||
}
|
||||
|
||||
impl Bot {
|
||||
@ -48,7 +38,6 @@ impl Bot {
|
||||
clock,
|
||||
admin_list,
|
||||
ban_list,
|
||||
events: VecDeque::new(),
|
||||
})
|
||||
}
|
||||
|
||||
@ -86,10 +75,6 @@ impl Bot {
|
||||
}
|
||||
|
||||
pub fn tick(&mut self) -> Result<(), String> {
|
||||
while let Some(event) = self.events.pop_front() {
|
||||
self.handle_event(event)?;
|
||||
}
|
||||
|
||||
let veloren_events = self
|
||||
.client
|
||||
.tick(ControllerInputs::default(), self.clock.dt())
|
||||
@ -135,7 +120,7 @@ impl Bot {
|
||||
"admin" => {
|
||||
if self.admin_list.contains(&sender.uuid) || self.admin_list.is_empty() {
|
||||
for word in words {
|
||||
self.events.push_back(Event::Admin(word.to_string()));
|
||||
self.adminify_player(word)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -144,8 +129,8 @@ impl Bot {
|
||||
for word in words {
|
||||
let uid = self.find_uid(word)?;
|
||||
|
||||
self.events.push_back(Event::Kick(uid.clone()));
|
||||
self.events.push_back(Event::Ban(word.to_string()));
|
||||
self.client.kick_from_group(uid);
|
||||
self.ban_player(word)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -153,7 +138,8 @@ impl Bot {
|
||||
let uid = self.find_uid(&sender.player_alias)?;
|
||||
|
||||
if self.client.group_members().contains_key(&uid) {
|
||||
self.events.push_back(Event::Cheese);
|
||||
self.client
|
||||
.send_command("group".to_string(), vec!["I love cheese!".to_string()])
|
||||
}
|
||||
}
|
||||
"inv" => {
|
||||
@ -161,12 +147,12 @@ impl Bot {
|
||||
if content == "inv" {
|
||||
let uid = self.find_uid(&sender.player_alias)?;
|
||||
|
||||
self.events.push_back(Event::Invite(uid));
|
||||
self.client.send_invite(uid, InviteKind::Group);
|
||||
} else {
|
||||
for word in words {
|
||||
let uid = self.find_uid(word)?;
|
||||
|
||||
self.events.push_back(Event::Invite(uid));
|
||||
self.client.send_invite(uid, InviteKind::Group);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -176,14 +162,14 @@ impl Bot {
|
||||
for word in words {
|
||||
let uid = self.find_uid(word)?;
|
||||
|
||||
self.events.push_back(Event::Kick(uid));
|
||||
self.client.kick_from_group(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
"unban" => {
|
||||
if self.admin_list.contains(&sender.uuid) {
|
||||
for word in words {
|
||||
self.events.push_back(Event::Unban(word.to_string()));
|
||||
self.unban_player(word)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -193,31 +179,6 @@ impl Bot {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn handle_event(&mut self, event: Event) -> Result<(), String> {
|
||||
match event {
|
||||
Event::Admin(name) => {
|
||||
self.adminify_player(&name)?;
|
||||
}
|
||||
Event::Ban(name) => {
|
||||
self.ban_player(&name)?;
|
||||
}
|
||||
Event::Cheese => self
|
||||
.client
|
||||
.send_command("group".to_string(), vec!["I love cheese!".to_string()]),
|
||||
Event::Invite(uid) => {
|
||||
self.client.send_invite(uid, InviteKind::Group);
|
||||
}
|
||||
Event::Kick(uid) => {
|
||||
self.client.kick_from_group(uid);
|
||||
}
|
||||
Event::Unban(name) => {
|
||||
self.unban_player(&name)?;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn adminify_player(&mut self, name: &str) -> Result<(), String> {
|
||||
info!("Adminifying {name}");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user