Interface ServerServiceGrpc.AsyncService
- All Known Implementing Classes:
ServerServiceGrpc.ServerServiceImplBase, ServerServiceImpl
- Enclosing class:
ServerServiceGrpc
public static interface ServerServiceGrpc.AsyncService
ServerService provides gRPC methods for managing server-level configuration in SoulFire. This service handles global settings that affect the entire SoulFire server instance, including debug logging, plugin configurations, and other server-wide preferences. Configuration changes are persisted to a database and trigger runtime hooks to apply settings immediately (e.g., adjusting log levels for SoulFire, Minecraft, Netty, gRPC, Hibernate, and Via components). All methods require appropriate permissions: - GetServerInfo requires READ_SERVER_CONFIG permission - UpdateServerConfig requires UPDATE_SERVER_CONFIG permission - UpdateServerConfigEntry requires UPDATE_SERVER_CONFIG permission Errors: - PERMISSION_DENIED: If the caller lacks the required permission - INTERNAL: If a database or processing error occurs
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidgetServerInfo(ServerInfoRequest request, io.grpc.stub.StreamObserver<ServerInfoResponse> responseObserver) Retrieves comprehensive server information including current configuration, all available settings definitions, settings page layouts, and registered plugins.default voidupdateServerConfig(ServerUpdateConfigRequest request, io.grpc.stub.StreamObserver<ServerUpdateConfigResponse> responseObserver) Replaces the entire server configuration with the provided values.default voidupdateServerConfigEntry(ServerUpdateConfigEntryRequest request, io.grpc.stub.StreamObserver<ServerUpdateConfigEntryResponse> responseObserver) Updates a single configuration entry identified by namespace and key.
-
Method Details
-
getServerInfo
default void getServerInfo(ServerInfoRequest request, io.grpc.stub.StreamObserver<ServerInfoResponse> responseObserver) Retrieves comprehensive server information including current configuration, all available settings definitions, settings page layouts, and registered plugins. This method is typically called when initializing a settings UI to obtain: 1. Current configuration values to populate form fields 2. Settings definitions describing each setting's type, constraints, and metadata 3. Page definitions for organizing settings into logical groups 4. Plugin information for displaying registered plugins Requires: READ_SERVER_CONFIG permission Returns: ServerInfoResponse with all server configuration and metadata Errors: PERMISSION_DENIED if caller lacks READ_SERVER_CONFIG permission INTERNAL if a database error occurs while retrieving configuration -
updateServerConfig
default void updateServerConfig(ServerUpdateConfigRequest request, io.grpc.stub.StreamObserver<ServerUpdateConfigResponse> responseObserver) Replaces the entire server configuration with the provided values. This is a bulk update operation primarily used for profile import functionality. Use this method when you need to apply a complete configuration snapshot, such as when importing settings from a saved profile or restoring a backup. For individual setting changes during normal operation, prefer UpdateServerConfigEntry. The new configuration is persisted to the database, and runtime hooks are triggered to apply changes immediately (e.g., log level adjustments). Requires: UPDATE_SERVER_CONFIG permission Returns: Empty ServerUpdateConfigResponse on success Errors: PERMISSION_DENIED if caller lacks UPDATE_SERVER_CONFIG permission INTERNAL if a database error occurs while saving configuration -
updateServerConfigEntry
default void updateServerConfigEntry(ServerUpdateConfigEntryRequest request, io.grpc.stub.StreamObserver<ServerUpdateConfigEntryResponse> responseObserver) Updates a single configuration entry identified by namespace and key. This is a granular update operation for modifying individual settings. This is the preferred method for real-time UI interactions where users modify settings one at a time. It avoids overwriting unrelated settings and is more efficient than replacing the entire configuration. If the namespace doesn't exist, it will be created. If the key doesn't exist within the namespace, it will be added. Existing values are overwritten. The change is persisted to the database, and runtime hooks are triggered to apply the new value immediately where applicable. Requires: UPDATE_SERVER_CONFIG permission Returns: Empty ServerUpdateConfigEntryResponse on success Errors: PERMISSION_DENIED if caller lacks UPDATE_SERVER_CONFIG permission INTERNAL if a database error occurs while saving the entry
-