The Server interface provides an abstraction for backend servers in a proxy network, allowing you to interact with servers regardless of the underlying proxy platform (BungeeCord, Velocity, etc.).
Interface
package eu.kennytv.maintenance.api.proxy;
public interface Server
Obtaining a Server Instance
You cannot directly instantiate a Server object. Instead, obtain instances through the MaintenanceProxy interface:
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServer("lobby");
Methods
getName
Returns the name of the server.
The name of the server as registered in the proxy configuration.
Example:
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServer("lobby");
if (server != null) {
String name = server.getName();
System.out.println("Server name: " + name);
}
hasPlayers
Checks if there are currently any players connected to the server.
true if one or more players are on the server, false otherwise.
Example:
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServer("survival");
if (server != null && server.hasPlayers()) {
System.out.println("The survival server has players online");
} else {
System.out.println("The survival server is empty");
}
broadcast
Sends a message to all players currently connected to the server.
void broadcast(Component component)
The Adventure Component message to broadcast to all players on the server.
Example:
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServer("lobby");
if (server != null) {
Component message = Component.text(
"Server restarting in 5 minutes!",
NamedTextColor.RED
);
server.broadcast(message);
}
isRegisteredServer
Checks whether the server is currently registered under the proxy.
boolean isRegisteredServer()
true if the server is registered in the proxy, false if it’s a dummy server.
This method will only return false if maintenance was previously enabled on a server that has since been removed from the proxy configuration. This typically happens when using MaintenanceProxy.getServerOrDummy(String) with a non-existent server name.
Example:
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServerOrDummy("potentially-removed-server");
if (server.isRegisteredServer()) {
System.out.println("Server is registered and active");
} else {
System.out.println("Server is not registered (dummy server)");
}
DummyServer Implementation
When using MaintenanceProxy.getServerOrDummy(String) with a non-existent server, a DummyServer instance is returned. This implementation:
- Returns
false for hasPlayers()
- Does nothing when
broadcast() is called
- Returns
false for isRegisteredServer()
- Returns the provided name from
getName()
This allows you to write code without null checks while still being able to detect unregistered servers.
Complete Usage Example
import eu.kennytv.maintenance.api.proxy.MaintenanceProxy;
import eu.kennytv.maintenance.api.proxy.Server;
import eu.kennytv.maintenance.api.MaintenanceProvider;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
public class ServerManagementExample {
public void broadcastToAllServers(String message) {
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Component component = Component.text(message, NamedTextColor.YELLOW);
for (String serverName : api.getServers()) {
Server server = api.getServer(serverName);
if (server != null && server.isRegisteredServer()) {
server.broadcast(component);
System.out.println("Broadcasted to " + server.getName());
}
}
}
public void checkServerStatus(String serverName) {
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
Server server = api.getServerOrDummy(serverName);
if (!server.isRegisteredServer()) {
System.out.println("Server '" + serverName + "' is not registered");
return;
}
System.out.println("Server: " + server.getName());
System.out.println("Has players: " + server.hasPlayers());
System.out.println("Under maintenance: " + api.isMaintenance(server));
}
public void notifyNonEmptyServers(Component message) {
MaintenanceProxy api = MaintenanceProvider.get().getProxy();
for (String serverName : api.getServers()) {
Server server = api.getServer(serverName);
if (server != null && server.hasPlayers()) {
server.broadcast(message);
}
}
}
}
See Also