added start websocket function root of the extension to make universally started when the extension is called

This commit is contained in:
Valmo Trindade
2025-01-02 22:04:13 -03:00
parent 0129f6df69
commit 1f5ab8257b
7 changed files with 14 additions and 46 deletions

View File

@@ -6,8 +6,8 @@ prefix = "armatak"
[version]
build = 0
major = 0
minor = 7
patch = 5
minor = 8
patch = 1
git_hash = 0

2
Cargo.lock generated
View File

@@ -83,7 +83,7 @@ dependencies = [
[[package]]
name = "armatak"
version = "0.7.5"
version = "0.8.1"
dependencies = [
"arma-rs",
"futures",

View File

@@ -1,6 +1,6 @@
[package]
name = "armatak"
version = "0.7.5"
version = "0.8.1"
edition = "2021"
[dependencies]

View File

@@ -57,4 +57,4 @@ if (isServer && _activated) exitWith {
};
};
true;
true;

View File

@@ -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;

View File

@@ -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)
)

View File

@@ -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"
}