Interface ProxyServer

All Superinterfaces:
Audience, Pointered

public interface ProxyServer extends Audience
Provides an interface to a Minecraft server proxy.
  • Method Details

    • shutdown

      void shutdown(Component reason)
      Shuts down the proxy, kicking players with the specified reason.
      Parameters:
      reason - message to kick online players with
    • shutdown

      void shutdown()
      Shuts down the proxy, kicking players with the default reason.
    • getPlayer

      Optional<Player> getPlayer(String username)
      Retrieves the player currently connected to this proxy by their Minecraft username. The search is case-insensitive.
      Parameters:
      username - the username to search for
      Returns:
      an Optional with the player, which may be empty
    • getPlayer

      Optional<Player> getPlayer(UUID uuid)
      Retrieves the player currently connected to this proxy by their Minecraft UUID.
      Parameters:
      uuid - the UUID
      Returns:
      an Optional with the player, which may be empty
    • getAllPlayers

      Collection<Player> getAllPlayers()
      Retrieves all players currently connected to this proxy. This call may or may not be a snapshot of all players online.
      Returns:
      the players online on this proxy
    • getPlayerCount

      int getPlayerCount()
      Returns the number of players currently connected to this proxy.
      Returns:
      the players on this proxy
    • getServer

      Optional<RegisteredServer> getServer(String name)
      Retrieves a registered RegisteredServer instance by its name. The search is case-insensitive.
      Parameters:
      name - the name of the server
      Returns:
      the registered server, which may be empty
    • getAllServers

      Collection<RegisteredServer> getAllServers()
      Retrieves all RegisteredServers registered with this proxy.
      Returns:
      the servers registered with this proxy
    • matchPlayer

      Collection<Player> matchPlayer(String partialName)
      Matches all Players whose names start with the provided partial name.
      Parameters:
      partialName - the partial name to check for
      Returns:
      a collection of mathed Players
    • matchServer

      Collection<RegisteredServer> matchServer(String partialName)
      Matches all RegisteredServers whose names start with the provided partial name.
      Parameters:
      partialName - the partial name to check for
      Returns:
      a collection of mathed RegisteredServers
    • createRawRegisteredServer

      RegisteredServer createRawRegisteredServer(ServerInfo server)
      Creates a raw RegisteredServer without tying it into the internal server map.
      Parameters:
      server - the server to register
      Returns:
      the RegisteredServer implementation created by the provided ServerInfo.
    • registerServer

      RegisteredServer registerServer(ServerInfo server)
      Registers a server with this proxy. A server with this name should not already exist.
      Parameters:
      server - the server to register
      Returns:
      the newly registered server
    • unregisterServer

      void unregisterServer(ServerInfo server)
      Unregisters this server from the proxy.
      Parameters:
      server - the server to unregister
    • getConsoleCommandSource

      ConsoleCommandSource getConsoleCommandSource()
      Returns an instance of CommandSource that can be used to determine if the command is being invoked by the console or a console-like executor. Plugins that execute commands are strongly urged to implement their own CommandSource instead of using the console invoker.
      Returns:
      the console command invoker
    • getPluginManager

      PluginManager getPluginManager()
      Gets the PluginManager instance.
      Returns:
      the plugin manager instance
    • getEventManager

      EventManager getEventManager()
      Gets the EventManager instance.
      Returns:
      the event manager instance
    • getCommandManager

      CommandManager getCommandManager()
      Gets the CommandManager instance.
      Returns:
      the command manager
    • getScheduler

      Scheduler getScheduler()
      Gets the Scheduler instance.
      Returns:
      the scheduler instance
    • getChannelRegistrar

      ChannelRegistrar getChannelRegistrar()
      Gets the ChannelRegistrar instance.
      Returns:
      the channel registrar
    • getBoundAddress

      InetSocketAddress getBoundAddress()
      Gets the address that this proxy is bound to. This does not necessarily indicate the external IP address of the proxy.
      Returns:
      the address the proxy is bound to
    • getConfiguration

      ProxyConfig getConfiguration()
      Gets the ProxyConfig instance.
      Returns:
      the proxy config
    • getVersion

      ProxyVersion getVersion()
      Returns the version of the proxy.
      Returns:
      the proxy version
    • createResourcePackBuilder

      ResourcePackInfo.Builder createResourcePackBuilder(String url)
      Creates a builder to build a ResourcePackInfo instance for use with Player.sendResourcePackOffer(ResourcePackInfo).

      Note: The resource-pack location should always: - Use HTTPS with a valid certificate. - Be in a crawler-accessible location. Having it behind Cloudflare or other DoS/Bot/crawler protection may cause issues in downloading. - Be on a web-server with enough bandwidth and reliable connection so the download does not time out or fail.

      Do also make sure that the resource pack is in the correct format for the version of the client. It is also highly recommended to always provide the resource-pack SHA-1 hash of the resource pack with ResourcePackInfo.Builder.setHash(byte[]) whenever possible to save bandwidth. If a hash is present the client will first check if it already has a resource pack by that hash cached.

      Parameters:
      url - The url where the resource pack can be found
      Returns:
      a ResourcePackInfo builder