Add kick-method for NetworkManager

This commit is contained in:
Sofia 2026-08-04 21:04:00 +03:00
parent 748c13935b
commit f6400640e3
2 changed files with 15 additions and 2 deletions

View File

@ -6,7 +6,7 @@ use std::{
use godot::{prelude::*, tools::get_autoload_by_name}; use godot::{prelude::*, tools::get_autoload_by_name};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use teanet::{Peer, PeerConfig, PeerMessage}; use teanet::{Peer, PeerConfig, PeerMessage, package::CloseReason};
use crate::{ use crate::{
announcer::Announcement, announcer::Announcement,
@ -306,6 +306,19 @@ impl NetworkManager {
} }
} }
pub fn kick(&mut self, socket_addr: &SocketAddr) {
if let Some(peer) = &mut self.peer {
match peer {
PeerKind::Client(peer, _) => {
peer.close();
}
PeerKind::Server(peer, _) => {
peer.close_connection(socket_addr, CloseReason::Kicked);
}
}
}
}
fn identifier() -> String { fn identifier() -> String {
format!("{}@{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) format!("{}@{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
} }

@ -1 +1 @@
Subproject commit bcc44fa10ed03f14e99aef8880b05d2c11cfa7a8 Subproject commit 8abcf7f0b733278b057672814e540bae2ec6eb1b