Segregated kick function
parent
29b0ee97bb
commit
c04a0cf43c
28
src/bot.rs
28
src/bot.rs
|
@ -8,11 +8,11 @@ pub mod bot {
|
|||
event_handler::Ctx,
|
||||
room::{Joined, Room, RoomMember},
|
||||
ruma::{
|
||||
UserId, ServerName, RoomId,
|
||||
events::room::message::{OriginalSyncRoomMessageEvent,
|
||||
RoomMessageEventContent}, OwnedEventId,
|
||||
},
|
||||
UserId, ServerName, RoomId, OwnedEventId,
|
||||
events::room::message::{OriginalSyncRoomMessageEvent, RoomMessageEventContent},
|
||||
}
|
||||
};
|
||||
|
||||
use sled;
|
||||
use crate::utils::utils::*;
|
||||
use crate::config_reader::config_reader::BotUserInfo;
|
||||
|
@ -148,7 +148,7 @@ pub mod bot {
|
|||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async fn delete_message_from_room(&self, event_id: &OwnedEventId, member: &RoomMember, reason: &str) {
|
||||
let result = self.joined_room.redact(event_id, Some(reason), None).await;
|
||||
|
@ -164,10 +164,7 @@ pub mod bot {
|
|||
let member_id: &str = member.user_id().as_str();
|
||||
let mut current_reputation = dbg!(self.database_handle.get(member_id).unwrap().unwrap().first().unwrap().to_owned());
|
||||
if current_reputation == 0 {
|
||||
if let Some(_) = self.joined_room.kick_user(member.user_id(), Some("Reputation lower than zero")).await.ok() {
|
||||
dbg!(self.database_handle.remove(member_id).unwrap());
|
||||
self.send_message(&format!("Member {} has been kicked.", member_id)).await;
|
||||
};
|
||||
self.kick_user(member, "Reputation too low!").await;
|
||||
return Ok(())
|
||||
}
|
||||
else {
|
||||
|
@ -177,6 +174,19 @@ pub mod bot {
|
|||
return Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
async fn kick_user(&self, member: &RoomMember, reason: &str) {
|
||||
let member_id: &str = member.user_id().as_str();
|
||||
if member.power_level() <= 50 { // Won't kick mods and admins
|
||||
if let Some(_) = self.joined_room.kick_user(member.user_id(), Some(reason)).await.ok() {
|
||||
dbg!(self.database_handle.remove(member_id).unwrap());
|
||||
self.send_message(&format!("Member {} has been kicked.", member_id)).await;
|
||||
};
|
||||
}
|
||||
else {
|
||||
self.send_message("Cannot kick moderators and admins").await;
|
||||
}
|
||||
}
|
||||
|
||||
async fn send_message(&self, message: &str) {
|
||||
debug!("Send message ({:?}): {}", &self.joined_room, message);
|
||||
|
|
Loading…
Reference in New Issue