Interface ViaPlatform<T>

Type Parameters:
T - - The player type for the platform, used for API related methods
All Known Subinterfaces:
ViaServerProxyPlatform<T>

public interface ViaPlatform<T>
ViaPlatform represents a platform ViaVersion runs on
  • Method Details

    • getLogger

      Logger getLogger()
      Get the logger for this platform
      Returns:
      Java Logger (may be a wrapper)
    • createLogger

      default Logger createLogger(String name)
      Creates a logger for the given name. Returns the main platform logger by default
      Parameters:
      name - The name of the logger
      Returns:
      The logger
    • getPlatformName

      String getPlatformName()
      Get the platform name
      Returns:
      Platform Name (simply its name)
    • getPlatformVersion

      String getPlatformVersion()
      Get the platform version
      Returns:
      Platform version
    • isProxy

      default boolean isProxy()
      Returns true if the server Via is running on is a proxy server.
      Returns:
      true if the platform is a proxy
    • getPluginVersion

      default String getPluginVersion()
      Get the plugin version.
      Returns:
      Plugin version as a semver string
    • runAsync

      default PlatformTask runAsync(Runnable runnable)
      Run a task Async
      Parameters:
      runnable - The task to run
      Returns:
      The Task ID
    • runRepeatingAsync

      default PlatformTask runRepeatingAsync(Runnable runnable, long ticks)
      Run a task async at a repeating interval.
      Parameters:
      runnable - The task to run
      ticks - The interval to run it at
      Returns:
      The Task ID
    • runSync

      default PlatformTask runSync(Runnable runnable)
      Run a task Sync
      Parameters:
      runnable - The task to run
      Returns:
      The Task ID
    • runSync

      default PlatformTask runSync(Runnable runnable, long delay)
      Runs a synchronous task after a delay in ticks.
      Parameters:
      runnable - task to run
      delay - delay in ticks to run it after
      Returns:
      created task
    • runRepeatingSync

      default PlatformTask runRepeatingSync(Runnable runnable, long period)
      Runs a synchronous task at a repeating interval.
      Parameters:
      runnable - task to run
      period - period in ticks to run at
      Returns:
      created task
    • sendMessage

      default void sendMessage(UserConnection connection, String message)
      Send a message to a player
      Parameters:
      connection - The UserConnection
      message - The message to send
    • kickPlayer

      default boolean kickPlayer(UserConnection connection, String message)
      Kick a player for a reason
      Parameters:
      connection - The UserConnection
      message - The message to kick them with
      Returns:
      True if it was successful
    • modifyPlayerDetails

      default void modifyPlayerDetails(UserConnection connection, com.google.gson.JsonObject payload)
      Modify the player details payload before it is sent. This method allows adding, changing, or removing fields from the payload. It is only called if ViaVersionConfig.sendPlayerDetails() is true.
      Parameters:
      connection - The UserConnection
      payload - The constructed payload to modify
    • modifyServerDetails

      default void modifyServerDetails(UserConnection connection, com.google.gson.JsonObject payload)
      Modify the server details payload before it is sent. This method allows adding, changing, or removing fields from the payload. It is only called if ViaVersionConfig.sendPlayerDetails() is true.
      Parameters:
      connection - The UserConnection
      payload - The constructed payload to modify
    • sendCustomPayload

      default void sendCustomPayload(UserConnection connection, String channel, byte[] message)
      Send a custom payload to from a player to the server.
      Parameters:
      connection - The UserConnection
      channel - The channel to send the payload on
      message - The data to send
    • sendCustomPayloadToClient

      default void sendCustomPayloadToClient(UserConnection connection, String channel, byte[] message)
      Send a custom payload from the server to a player.
      Parameters:
      connection - The UserConnection
      channel - The channel to send the payload on
      message - The data to send
    • getApi

      ViaAPI<T> getApi()
      Get the API for this platform
      Returns:
      The API for the platform
    • getConf

      ViaVersionConfig getConf()
      Get the config API for this platform
      Returns:
      The config API
    • getDataFolder

      File getDataFolder()
      Get ViaVersions's data folder.
      Returns:
      data folder
    • onReload

      default void onReload()
      Called when ViaVersion is initialized twice during the same process, this happens on platforms where ViaVersion is loaded as a plugin which can be reloaded.
    • getDump

      default com.google.gson.JsonObject getDump()
      Gets optional platform specific data for /viaversion dump. This can be a specific version or a list of installed plugins on the platform.
      Returns:
      The json data
    • getUnsupportedSoftwareClasses

      default Collection<UnsupportedSoftware> getUnsupportedSoftwareClasses()
      Returns an immutable collection of classes to be checked as unsupported software with their software name. If any of the classes exist at runtime, a warning about their potential instability will be given to the console.
      Returns:
      immutable collection of unsupported software to be checked
    • hasPlugin

      default boolean hasPlugin(String name)
      Returns whether the platform has a plugin/mod with the given name (even if disabled).
      Parameters:
      name - plugin or identifier
      Returns:
      whether the platform has a plugin/mod with the given name
    • couldBeReloading

      default boolean couldBeReloading()
      Returns whether the platform might be reloading.
      Returns:
      whether the platform might be reloading