aboutsummaryrefslogtreecommitdiff
path: root/src/server/world/cmd
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-03-22 17:45:35 +0000
committerFuwn <[email protected]>2021-03-22 17:45:35 +0000
commit13edb02ff4be35fa9a30e783d4a1e8bed323e0f2 (patch)
tree628865084867c3f2c5449f7682a6e833dd998004 /src/server/world/cmd
parentfix: Only send to one client not all for certain commands (diff)
downloadwhirl-13edb02ff4be35fa9a30e783d4a1e8bed323e0f2.tar.xz
whirl-13edb02ff4be35fa9a30e783d4a1e8bed323e0f2.zip
etc: ...
Diffstat (limited to 'src/server/world/cmd')
-rw-r--r--src/server/world/cmd/mod.rs1
-rw-r--r--src/server/world/cmd/room.rs27
2 files changed, 28 insertions, 0 deletions
diff --git a/src/server/world/cmd/mod.rs b/src/server/world/cmd/mod.rs
new file mode 100644
index 0000000..addf7a5
--- /dev/null
+++ b/src/server/world/cmd/mod.rs
@@ -0,0 +1 @@
+pub mod room;
diff --git a/src/server/world/cmd/room.rs b/src/server/world/cmd/room.rs
new file mode 100644
index 0000000..e41e30f
--- /dev/null
+++ b/src/server/world/cmd/room.rs
@@ -0,0 +1,27 @@
+pub fn create_room_id_redirect_command(room_name: &str, room_id: &i32) -> Vec<u8> {
+ let mut room_id_redirect = Vec::new();
+ // room_id_redirect.push(room_id_redirect.len() as u8 + 1); // Data length
+ room_id_redirect.push(0x01); // ?
+ room_id_redirect.push(0x1A); // Command type1
+ room_id_redirect.push(room_name.len() as u8); // UTF/ room name length
+ for i in room_name.bytes() { room_id_redirect.push(i); } // Push `room_name`
+ // for i in "<dimension-1>".bytes() { room_id_redirect.push(i); } // Push room number
+
+ // Room number
+ room_id_redirect.push(0x00);
+ room_id_redirect.push(*room_id as u8);
+
+ // IP
+ room_id_redirect.push(0x00);
+ room_id_redirect.push(0x00);
+ room_id_redirect.push(0x00);
+ room_id_redirect.push(0x00);
+
+ // Port
+ room_id_redirect.push(0x16);
+ room_id_redirect.push(0x29);
+
+ room_id_redirect.insert(0, room_id_redirect.len() as u8 + 1); // Data length
+
+ room_id_redirect
+}