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