From dfaa2c1515665c9a4927fa3a0e6045421e0c135a Mon Sep 17 00:00:00 2001 From: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> Date: Fri, 11 Mar 2022 03:30:24 +0000 Subject: script api for server=>client stringcmds --- .../sh_server_to_client_stringcommands.gnut | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut (limited to 'Northstar.CustomServers/mod/scripts') diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut new file mode 100644 index 000000000..a51e528f6 --- /dev/null +++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut @@ -0,0 +1,52 @@ +#if CLIENT +global function ServerToClientStringCommands_Init + +global function AddServerToClientStringCommandCallback +global function NSClientCodeCallback_RecievedServerToClientStringCommand +#endif + +#if SERVER +global function ServerToClientStringCommand +#endif + +#if CLIENT +struct { + table< string, array< void functionref( array args ) > > callbacks +} file + +void function ServerToClientStringCommands_Init() +{ + getroottable().rawset( "NSClientCodeCallback_RecievedServerToClientStringCommand", NSClientCodeCallback_RecievedServerToClientStringCommand ) +} + +void function AddServerToClientStringCommandCallback( string command, void functionref( array args ) callback ) +{ + if ( !( command in file.callbacks ) ) + file.callbacks[ command ] <- [] + + file.callbacks[ command ].append( callback ) +} + +void function NSClientCodeCallback_RecievedServerToClientStringCommand( string cmd ) +{ + array args = split( cmd, " " ) + if ( args.len() == 0 ) + return + + string callbackName = args[ 0 ] + args.remove( 0 ) + + if ( callbackName in file.callbacks ) + { + foreach ( void functionref( array args ) callback in file.callbacks[ callbackName ] ) + callback( args ) + } +} +#endif + +#if SERVER +void function ServerToClientStringCommand( entity player, string command ) +{ + ClientCommand( player, "ns_script_servertoclientstringcommand " + command ) +} +#endif \ No newline at end of file -- cgit v1.2.3