diff options
Diffstat (limited to 'Northstar.CustomServers/mod/scripts')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut | 52 |
1 files changed, 52 insertions, 0 deletions
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 00000000..a51e528f --- /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<string> args ) > > callbacks +} file + +void function ServerToClientStringCommands_Init() +{ + getroottable().rawset( "NSClientCodeCallback_RecievedServerToClientStringCommand", NSClientCodeCallback_RecievedServerToClientStringCommand ) +} + +void function AddServerToClientStringCommandCallback( string command, void functionref( array<string> args ) callback ) +{ + if ( !( command in file.callbacks ) ) + file.callbacks[ command ] <- [] + + file.callbacks[ command ].append( callback ) +} + +void function NSClientCodeCallback_RecievedServerToClientStringCommand( string cmd ) +{ + array<string> args = split( cmd, " " ) + if ( args.len() == 0 ) + return + + string callbackName = args[ 0 ] + args.remove( 0 ) + + if ( callbackName in file.callbacks ) + { + foreach ( void functionref( array<string> 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 |