From 1f5ab8257b897736716d8cf77e2f1af70c052520 Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Thu, 2 Jan 2025 22:04:13 -0300 Subject: [PATCH] added start websocket function root of the extension to make universally started when the extension is called --- .hemtt/project.toml | 4 ++-- Cargo.lock | 2 +- Cargo.toml | 2 +- addons/main/functions/fn_init.sqf | 2 +- addons/main/initPlayerLocal.sqf | 35 +++++++------------------------ src/lib.rs | 5 ++--- src/websocket.rs | 10 --------- 7 files changed, 14 insertions(+), 46 deletions(-) diff --git a/.hemtt/project.toml b/.hemtt/project.toml index 9a4b886..a621932 100644 --- a/.hemtt/project.toml +++ b/.hemtt/project.toml @@ -6,8 +6,8 @@ prefix = "armatak" [version] build = 0 major = 0 -minor = 7 -patch = 5 +minor = 8 +patch = 1 git_hash = 0 diff --git a/Cargo.lock b/Cargo.lock index d11e681..79ba820 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,7 +83,7 @@ dependencies = [ [[package]] name = "armatak" -version = "0.7.5" +version = "0.8.1" dependencies = [ "arma-rs", "futures", diff --git a/Cargo.toml b/Cargo.toml index 6cb102e..fb72775 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "armatak" -version = "0.7.5" +version = "0.8.1" edition = "2021" [dependencies] diff --git a/addons/main/functions/fn_init.sqf b/addons/main/functions/fn_init.sqf index 7fbbd1d..213e91e 100644 --- a/addons/main/functions/fn_init.sqf +++ b/addons/main/functions/fn_init.sqf @@ -57,4 +57,4 @@ if (isServer && _activated) exitWith { }; }; -true; \ No newline at end of file +true; diff --git a/addons/main/initPlayerLocal.sqf b/addons/main/initPlayerLocal.sqf index f77d5e9..fa30d0a 100644 --- a/addons/main/initPlayerLocal.sqf +++ b/addons/main/initPlayerLocal.sqf @@ -1,39 +1,18 @@ if (!hasInterface) exitWith {}; -_initializedServer = "armatak" callExtension ["websocket:start",[]] select 0; _local_address = "armatak" callExtension ["local_ip", []] select 0; -player setVariable ["initializedSocket", _initializedServer]; player setVariable ["localAddress", _local_address]; -player addEventHandler ["Killed", { - "armatak" callExtension ["websocket:stop", []]; -}]; - -player addEventHandler ["Deleted", { - "armatak" callExtension ["websocket:stop", []]; -}]; - player addEventHandler ["Respawn", { params["_unit", "_corpse"]; - - _unit spawn { - "armatak" callExtension ["websocket:start", []]; - - [{ - if (alive _this) then { - "armatak" callExtension ["websocket:location",[player call armatak_fnc_extract_position]]; - }; - }, 1, []] call CBA_fnc_addPerFrameHandler; - }; + [{ + if (alive _this) then { + "armatak" callExtension ["websocket:location", [player call armatak_fnc_extract_position]]; + }; + }, 1, []] call CBA_fnc_addPerFrameHandler; }]; -addMissionEventHandler ["OnUserDisconnected", { - "armatak" callExtension ["websocket:stop", []]; -}]; - -onPlayerDisconnected "'armatak' callExtension ['websocket:stop',[]];"; - -[{ - "armatak" callExtension ["websocket:location",[player call armatak_fnc_extract_position]]; +[{ + "armatak" callExtension ["websocket:location", [player call armatak_fnc_extract_position]]; }, 1, []] call CBA_fnc_addPerFrameHandler; diff --git a/src/lib.rs b/src/lib.rs index 0e64e80..015fa2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,4 @@ use arma_rs::{arma, Extension, Group}; -mod commands; mod structs; mod tests; mod websocket; @@ -30,10 +29,10 @@ pub fn init() -> Extension { log4rs::init_config(config).unwrap(); + websocket::start(); + Extension::build() .group("websocket", Group::new() - .command("start", websocket::start) - .command("stop", websocket::stop) .command("message", websocket::message) .command("location", websocket::location) ) diff --git a/src/websocket.rs b/src/websocket.rs index 2cfd7a9..f5c8142 100644 --- a/src/websocket.rs +++ b/src/websocket.rs @@ -112,13 +112,3 @@ pub fn location(payload: LocationPayload) -> &'static str { } "sending location to all WebSocket clients" } - -pub fn stop() -> &'static str { - if let Some(ref server) = *WEBSOCKET_SERVER.lock().unwrap() { - server.stop(); - } else { - info!("WebSocket server is not running."); - } - - "Stopping WebSocket server" -}