Class ServerServiceGrpc.ServerServiceBlockingV2Stub

java.lang.Object
io.grpc.stub.AbstractStub<ServerServiceGrpc.ServerServiceBlockingV2Stub>
io.grpc.stub.AbstractBlockingStub<ServerServiceGrpc.ServerServiceBlockingV2Stub>
com.soulfiremc.grpc.generated.ServerServiceGrpc.ServerServiceBlockingV2Stub
Enclosing class:
ServerServiceGrpc

public static final class ServerServiceGrpc.ServerServiceBlockingV2Stub extends io.grpc.stub.AbstractBlockingStub<ServerServiceGrpc.ServerServiceBlockingV2Stub>
A stub to allow clients to do synchronous rpc calls to service ServerService.
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

    • build

      protected ServerServiceGrpc.ServerServiceBlockingV2Stub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<ServerServiceGrpc.ServerServiceBlockingV2Stub>
    • getServerInfo

      public ServerInfoResponse getServerInfo(ServerInfoRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateServerConfig

      public ServerUpdateConfigResponse updateServerConfig(ServerUpdateConfigRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException
    • updateServerConfigEntry

      public ServerUpdateConfigEntryResponse updateServerConfigEntry(ServerUpdateConfigEntryRequest request) throws io.grpc.StatusException
      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
      
      Throws:
      io.grpc.StatusException