diff --git a/addons/source-python/packages/source-python/core/command/__init__.py b/addons/source-python/packages/source-python/core/command/__init__.py index c26541901..0edc4047f 100644 --- a/addons/source-python/packages/source-python/core/command/__init__.py +++ b/addons/source-python/packages/source-python/core/command/__init__.py @@ -17,6 +17,7 @@ # Source.Python Imports # Commands +from commands.typed import TypedClientCommand from commands.typed import TypedServerCommand # Core from core import core_logger @@ -99,18 +100,21 @@ def print_credits(self): # >> sp # ============================================================================= @core_command.server_sub_command(['delay']) +@core_command.client_sub_command(['delay'], 'sp.delay') def _sp_delay(command_info, delay:float, command, *args): """Execute a command after a given delay.""" Delay(delay, queue_command_string, (command + ' ' + ' '.join(args), )) @core_command.server_sub_command(['credits']) +@core_command.client_sub_command(['credits'], 'sp.credits') def _sp_credits(command_info): """List all credits for Source.Python.""" core_command.print_credits() @core_command.server_sub_command(['help']) +@core_command.client_sub_command(['help'], 'sp.help') def _sp_help(command_info, command=None, *server_sub_commands): """Print all sp sub-commands or help for a specific command.""" if command is None: @@ -131,6 +135,7 @@ def _sp_help(command_info, command=None, *server_sub_commands): @core_command.server_sub_command(['info']) +@core_command.client_sub_command(['info'], 'sp.info') def print_info(info): """Print information about OS, SP and installed plugins.""" result = '\nDate : {}'.format(datetime.utcnow()) @@ -162,6 +167,7 @@ def print_info(info): @core_command.server_sub_command(['update']) +@core_command.client_sub_command(['update'], 'sp.update') def update_sp(info): """Update Source.Python to the latest version. A restart of the server is required. @@ -169,12 +175,14 @@ def update_sp(info): if not is_unversioned() and VERSION >= get_last_successful_build_number(): core_command_logger.log_message('No new version available.') return - + do_full_update() - + # ============================================================================= # >> DESCRIPTION # ============================================================================= TypedServerCommand.parser.set_node_description( 'sp', 'Source.Python main command.') +TypedClientCommand.parser.set_node_description( + 'sp', 'Source.Python main command.') diff --git a/addons/source-python/packages/source-python/core/command/auth.py b/addons/source-python/packages/source-python/core/command/auth.py index e8523760e..caa2c36ad 100644 --- a/addons/source-python/packages/source-python/core/command/auth.py +++ b/addons/source-python/packages/source-python/core/command/auth.py @@ -10,6 +10,7 @@ from auth.manager import auth_manager # Commands from commands.typed import filter_str +from commands.typed import TypedClientCommand from commands.typed import TypedServerCommand # Core from core.command import core_command @@ -28,6 +29,9 @@ # >> sp auth backend # ============================================================================= @core_command.server_sub_command(['auth', 'backend', 'set']) +@core_command.client_sub_command( + ['auth', 'backend', 'set'], 'sp.auth.backend.set' +) def _sp_auth_load(command_info, backend): """Set the active backend.""" try: @@ -36,9 +40,13 @@ def _sp_auth_load(command_info, backend): logger.log_message('Backend "{}" does not exist.'.format(backend)) else: logger.log_message( - 'Backend "{}" has been loaded sucessfully!'.format(backend)) + 'Backend "{}" has been loaded successfully!'.format(backend)) + @core_command.server_sub_command(['auth', 'backend', 'list']) +@core_command.client_sub_command( + ['auth', 'backend', 'list'], 'sp.auth.backend.list' +) def _sp_auth_list(command_info): """List all available backends and marks the active backend.""" if not auth_manager: @@ -58,6 +66,9 @@ def _sp_auth_list(command_info): # >> sp auth permission player # ============================================================================= @core_command.server_sub_command(['auth', 'permission', 'player', 'add']) +@core_command.client_sub_command( + ['auth', 'permission', 'player', 'add'], 'sp.auth.perm.player.add' +) def _sp_auth_permission_player_add( command_info, players:filter_str, permission, server_id:int=None): """Grant a permission to players.""" @@ -72,7 +83,11 @@ def _sp_auth_permission_player_add( logger.log_message('Granted permission "{}" to {}.'.format( permission, player.name)) + @core_command.server_sub_command(['auth', 'permission', 'player', 'remove']) +@core_command.client_sub_command( + ['auth', 'permission', 'player', 'remove'], 'sp.auth.perm.player.remove' +) def _sp_auth_permission_player_remove( command_info, players:filter_str, permission, server_id:int=None): """Remove a permission from players.""" @@ -88,9 +103,14 @@ def _sp_auth_permission_player_remove( 'Removed permission "{}" from {}.'.format( permission, player.name)) -@core_command.server_sub_command([ - 'auth', 'permission', 'player', 'add_parent' -]) + +@core_command.server_sub_command( + ['auth', 'permission', 'player', 'add_parent'] +) +@core_command.client_sub_command( + ['auth', 'permission', 'player', 'add_parent'], + 'sp.auth.perm.player.parent.add' +) def _sp_auth_permission_player_add_parent( command_info, players:filter_str, parent): """Add a parent to players.""" @@ -105,9 +125,14 @@ def _sp_auth_permission_player_add_parent( logger.log_message( 'Added parent "{}" to {}.'.format(parent, player.name)) -@core_command.server_sub_command([ - 'auth', 'permission', 'player', 'remove_parent' -]) + +@core_command.server_sub_command( + ['auth', 'permission', 'player', 'remove_parent'] +) +@core_command.client_sub_command( + ['auth', 'permission', 'player', 'remove_parent'], + 'sp.auth.perm.player.parent.remove' +) def _sp_auth_permission_player_remove_parent( command_info, players:filter_str, parent): """Remove a parent from players.""" @@ -122,7 +147,11 @@ def _sp_auth_permission_player_remove_parent( logger.log_message( 'Removed parent "{}" from {}.'.format(parent, player.name)) + @core_command.server_sub_command(['auth', 'permission', 'player', 'test']) +@core_command.client_sub_command( + ['auth', 'permission', 'player', 'test'], 'sp.auth.perm.player.test' +) def _sp_auth_permission_player_test(command_info, permission): """Test which players are granted a permission.""" logger.log_message( @@ -149,6 +178,9 @@ def _sp_auth_permission_player_test(command_info, permission): # >> sp auth permission parent # ============================================================================= @core_command.server_sub_command(['auth', 'permission', 'parent', 'add']) +@core_command.client_sub_command( + ['auth', 'permission', 'parent', 'add'], 'sp.auth.perm.parent.add' +) def _sp_auth_permission_parent_add( command_info, parent, permission, server_id:int=None): """Add a permission to a parent.""" @@ -156,7 +188,11 @@ def _sp_auth_permission_parent_add( logger.log_message( 'Added permission "{}" to parent "{}".'.format(permission, parent)) + @core_command.server_sub_command(['auth', 'permission', 'parent', 'remove']) +@core_command.client_sub_command( + ['auth', 'permission', 'parent', 'remove'], 'sp.auth.perm.parent.remove' +) def _sp_auth_permission_parent_remove( command_info, parent, permission, server_id:int=None): """Remove a permission from a parent.""" @@ -164,9 +200,14 @@ def _sp_auth_permission_parent_remove( logger.log_message('Removed permission "{}" from parent "{}".'.format( permission, parent)) -@core_command.server_sub_command([ - 'auth', 'permission', 'parent', 'add_parent' -]) + +@core_command.server_sub_command( + ['auth', 'permission', 'parent', 'add_parent'] +) +@core_command.client_sub_command( + ['auth', 'permission', 'parent', 'add_parent'], + 'sp.auth.perm.parent.parent.add' +) def _sp_auth_permission_parent_add_parent( command_info, parent, parent_to_add): """Add a parent to a parent.""" @@ -174,9 +215,14 @@ def _sp_auth_permission_parent_add_parent( logger.log_message( 'Added parent "{}" to parent "{}".'.format(parent_to_add, parent)) -@core_command.server_sub_command([ - 'auth', 'permission', 'parent', 'remove_parent' -]) + +@core_command.server_sub_command( + ['auth', 'permission', 'parent', 'remove_parent'] +) +@core_command.client_sub_command( + ['auth', 'permission', 'parent', 'remove_parent'], + 'sp.auth.perm.parent.parent.remove' +) def _sp_auth_permission_parent_remove_parent( command_info, parent, parent_to_remove): """Remove a parent from a parent.""" @@ -186,9 +232,11 @@ def _sp_auth_permission_parent_remove_parent( 'Removed parent "{}" from parent "{}".'.format( parent_to_remove, parent)) -@core_command.server_sub_command([ - 'auth', 'permission', 'parent', 'list' -]) + +@core_command.server_sub_command(['auth', 'permission', 'parent', 'list']) +@core_command.client_sub_command( + ['auth', 'permission', 'parent', 'list'], 'sp.auth.perm.parent.list' +) def _sp_auth_permission_parent_list( command_info, name=None): """List all parents and permissions of a given parent or all parents.""" @@ -215,19 +263,34 @@ def _sp_auth_permission_parent_list( TypedServerCommand.parser.set_node_description( ['sp', 'auth'], 'Authorization specific commands.') +TypedClientCommand.parser.set_node_description( + ['sp', 'auth'], + 'Authorization specific commands.') TypedServerCommand.parser.set_node_description( ['sp', 'auth', 'backend'], 'Authorization backend specific commands.') +TypedClientCommand.parser.set_node_description( + ['sp', 'auth', 'backend'], + 'Authorization backend specific commands.') TypedServerCommand.parser.set_node_description( ['sp', 'auth', 'permission'], 'Commands to modify permissions.') +TypedClientCommand.parser.set_node_description( + ['sp', 'auth', 'permission'], + 'Commands to modify permissions.') TypedServerCommand.parser.set_node_description( ['sp', 'auth', 'permission', 'parent'], 'Commands to modify parent permissions.') +TypedClientCommand.parser.set_node_description( + ['sp', 'auth', 'permission', 'parent'], + 'Commands to modify parent permissions.') TypedServerCommand.parser.set_node_description( ['sp', 'auth', 'permission', 'player'], 'Commands to modify player permissions.') +TypedClientCommand.parser.set_node_description( + ['sp', 'auth', 'permission', 'player'], + 'Commands to modify player permissions.') diff --git a/addons/source-python/packages/source-python/core/command/docs.py b/addons/source-python/packages/source-python/core/command/docs.py index ce37627a3..5c444e71d 100644 --- a/addons/source-python/packages/source-python/core/command/docs.py +++ b/addons/source-python/packages/source-python/core/command/docs.py @@ -13,6 +13,7 @@ # Autodoc from autodoc import SphinxProject # Commands +from commands.typed import TypedClientCommand from commands.typed import TypedServerCommand # Core from core.command import core_command @@ -41,18 +42,21 @@ # >> sp docs create/generate/build # ============================================================================= @core_command.server_sub_command(['docs', 'create']) +@core_command.client_sub_command(['docs', 'create'], 'sp.docs.create') def _sp_docs_create(command_info, package): """Create a Sphinx project.""" _create_sphinx_project(package) @core_command.server_sub_command(['docs', 'generate']) +@core_command.client_sub_command(['docs', 'generate'], 'sp.docs.generate') def _sp_docs_generate(command_info, package): """Generate a Sphinx project.""" _generate_sphinx_project(package) @core_command.server_sub_command(['docs', 'build']) +@core_command.client_sub_command(['docs', 'build'], 'sp.docs.build') def _sp_docs_build(command_info, package): """Build a Sphinx project.""" _build_sphinx_project(package) @@ -448,3 +452,5 @@ def is_plugin(package): # ============================================================================= TypedServerCommand.parser.set_node_description( ['sp', 'docs'], 'Documentation specific commands.') +TypedClientCommand.parser.set_node_description( + ['sp', 'docs'], 'Documentation specific commands.') diff --git a/addons/source-python/packages/source-python/core/command/dump.py b/addons/source-python/packages/source-python/core/command/dump.py index 38837acf9..bfe9efaf1 100644 --- a/addons/source-python/packages/source-python/core/command/dump.py +++ b/addons/source-python/packages/source-python/core/command/dump.py @@ -7,6 +7,7 @@ # ============================================================================= # Source.Python Imports # Commands +from commands.typed import TypedClientCommand from commands.typed import TypedServerCommand # Core from core import dumps @@ -18,31 +19,42 @@ # ============================================================================= #: .. todo:: Make file_name optional @core_command.server_sub_command(['dump', 'class_info']) +@core_command.client_sub_command(['dump', 'class_info'], 'sp.dump.class') def _sp_dump_class_info(command_info, file_name): """Dump class info.""" dumps.dump_class_info(file_name) + @core_command.server_sub_command(['dump', 'convars']) +@core_command.client_sub_command(['dump', 'convars'], 'sp.dump.convars') def _sp_dump_convars(command_info, file_name): """Dump convars.""" dumps.dump_convars(file_name) + @core_command.server_sub_command(['dump', 'datamaps']) +@core_command.client_sub_command(['dump', 'datamaps'], 'sp.dump.datamaps') def _sp_dump_datamaps(command_info, file_name): """Dump datamaps.""" dumps.dump_datamaps(file_name) + @core_command.server_sub_command(['dump', 'server_classes']) +@core_command.client_sub_command(['dump', 'server_classes'], 'sp.dump.server') def _sp_dump_server_classes(command_info, file_name): """Dump server classes.""" dumps.dump_server_classes(file_name) + @core_command.server_sub_command(['dump', 'string_tables']) +@core_command.client_sub_command(['dump', 'string_tables'], 'sp.dump.string') def _sp_dump_string_tables(command_info, file_name): """Dump string tables.""" dumps.dump_string_tables(file_name) + @core_command.server_sub_command(['dump', 'weapon_scripts']) +@core_command.client_sub_command(['dump', 'weapon_scripts'], 'sp.dump.weapon') def _sp_dump_weapon_scripts(command_info, file_name): """Dump weapon scripts.""" dumps.dump_weapon_scripts(file_name) @@ -53,3 +65,5 @@ def _sp_dump_weapon_scripts(command_info, file_name): # ============================================================================= TypedServerCommand.parser.set_node_description( ['sp', 'dump'], 'Dump various data to files.') +TypedClientCommand.parser.set_node_description( + ['sp', 'dump'], 'Dump various data to files.') diff --git a/addons/source-python/packages/source-python/core/command/plugin.py b/addons/source-python/packages/source-python/core/command/plugin.py index 0c3928411..35cbf98d4 100644 --- a/addons/source-python/packages/source-python/core/command/plugin.py +++ b/addons/source-python/packages/source-python/core/command/plugin.py @@ -7,6 +7,7 @@ # ============================================================================= # Source.Python Imports # Commands +from commands.typed import TypedClientCommand from commands.typed import TypedServerCommand # Core from core.command import core_command @@ -23,21 +24,28 @@ # >> sp plugin # ============================================================================= @core_command.server_sub_command(['plugin', 'load']) +@core_command.client_sub_command(['plugin', 'load'], 'sp.plugin.load') def _sp_plugin_load(command_info, plugin): """Load a plugin.""" core_command.load_plugin(plugin) + @core_command.server_sub_command(['plugin', 'unload']) +@core_command.client_sub_command(['plugin', 'unload'], 'sp.plugin.unload') def _sp_plugin_unload(command_info, plugin): """Unload a plugin.""" core_command.unload_plugin(plugin) + @core_command.server_sub_command(['plugin', 'reload']) +@core_command.client_sub_command(['plugin', 'reload'], 'sp.plugin.reload') def _sp_plugin_reload(command_info, plugin): """Reload a plugin.""" core_command.reload_plugin(plugin) + @core_command.server_sub_command(['plugin', 'list']) +@core_command.client_sub_command(['plugin', 'list'], 'sp.plugin.list') def _sp_plugin_list(command_info): """List all currently loaded plugins.""" core_command.print_plugins() @@ -48,3 +56,5 @@ def _sp_plugin_list(command_info): # ============================================================================= TypedServerCommand.parser.set_node_description( ['sp', 'plugin'], 'Plugin specific commands.') +TypedClientCommand.parser.set_node_description( + ['sp', 'plugin'], 'Plugin specific commands.') pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy