From a845ce5452debc9f3bb7a674b4630e88d8382cc8 Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Mon, 14 Apr 2025 13:49:55 +0800 Subject: 修改两个Message的枚举值类型 修复了遗留的 Hash 错误 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/pads_player_commands.rs | 28 +++++++++++++++++++++++++++ core/src/pas_server_commands.rs | 36 +++++++++++++++++++++++++++++++++++ core/test/src/bin/console_client.rs | 38 +++++++++++++++++++++++++++++++++++++ core/test/src/bin/console_server.rs | 38 +++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 core/src/pads_player_commands.rs create mode 100644 core/src/pas_server_commands.rs create mode 100644 core/test/src/bin/console_client.rs create mode 100644 core/test/src/bin/console_server.rs (limited to 'core') diff --git a/core/src/pads_player_commands.rs b/core/src/pads_player_commands.rs new file mode 100644 index 0000000..276805f --- /dev/null +++ b/core/src/pads_player_commands.rs @@ -0,0 +1,28 @@ +use crate::pads_player::{PadClient, PlayerMessage}; + +impl PadClient { + + // TODO :: 可能需要返回是否成功 + pub fn send_message (&self, msg: PlayerMessage) { + + } + + /// 按下 + pub fn pressed (&self, btn_num: u8) { + self.send_message(PlayerMessage::ButtonPressed(btn_num)) + } + + /// 抬起 + pub fn released (&self, btn_num: u8) { + self.send_message(PlayerMessage::ButtonReleased(btn_num)) + } + + pub fn msg (&self, msg_str: String) { + self.send_message(PlayerMessage::Message(msg_str)) + } + + // TODO :: 可能需要返回信息 + pub fn cmd (&self, cmd_str: String) { + self.send_message(PlayerMessage::Command(cmd_str)) + } +} \ No newline at end of file diff --git a/core/src/pas_server_commands.rs b/core/src/pas_server_commands.rs new file mode 100644 index 0000000..8d15261 --- /dev/null +++ b/core/src/pas_server_commands.rs @@ -0,0 +1,36 @@ +use std::time::Duration; +use crate::pads_server::{PadServer, ServerMessage}; + +impl PadServer { + + // TODO :: 可能需要返回是否成功 + pub fn send_message (&self, player_index: i32, msg: ServerMessage) { + + } + + // TODO :: 可能需要返回是否成功 + pub fn kick (&self, player_index: i32, ban: bool) { + self.send_message(player_index, ServerMessage::Kick); + + // TODO :: 封禁模式启动 + if ban { + + } + } + + pub fn shock (&self, player_index: i32, duration: Duration, value: f64) { + self.send_message(player_index, ServerMessage::Shock(duration, value)); + } + + pub fn set_ignore_control (&self, player_index: i32, ignore: bool) { + + } + + pub fn set_ignore_message (&self, player_index: i32, ignore: bool) { + + } + + pub fn set_ignore_command (&self, player_index: i32, ignore: bool) { + + } +} \ No newline at end of file diff --git a/core/test/src/bin/console_client.rs b/core/test/src/bin/console_client.rs new file mode 100644 index 0000000..4118ba5 --- /dev/null +++ b/core/test/src/bin/console_client.rs @@ -0,0 +1,38 @@ +use there_is_nopads_core::pads_player::{PadClient, PadClientEvent}; +use there_is_nopads_core::pads_server::ServerMessage; + +fn main() { + let client = PadClient::default(); + +} + +struct Event; +impl PadClientEvent for Event { + fn joined_game() { + todo!() + } + + fn joined_game_failed() { + todo!() + } + + fn left_game() { + todo!() + } + + fn kicked() { + todo!() + } + + fn banned() { + todo!() + } + + fn disconnected() { + todo!() + } + + fn msg_received(msg: ServerMessage) { + todo!() + } +} \ No newline at end of file diff --git a/core/test/src/bin/console_server.rs b/core/test/src/bin/console_server.rs new file mode 100644 index 0000000..4536c74 --- /dev/null +++ b/core/test/src/bin/console_server.rs @@ -0,0 +1,38 @@ +use there_is_nopads_core::pads_player::{PlayerInfo, PlayerMessage}; +use there_is_nopads_core::pads_server::{PadServer, PadServerEvent}; + +fn main() { + let server = PadServer::default(); + server.start_listening(Event); +} + +struct Event; +impl PadServerEvent for Event { + fn server_start() { + todo!() + } + + fn server_shutdown() { + todo!() + } + + fn join_request_received(info: PlayerInfo) -> bool { + todo!() + } + + fn player_joined(info: PlayerInfo) { + todo!() + } + + fn player_left(info: PlayerInfo) { + todo!() + } + + fn player_disconnected(info: PlayerInfo) { + todo!() + } + + fn msg_received(info: PlayerInfo, msg: PlayerMessage) { + todo!() + } +} \ No newline at end of file -- cgit