Server Link Module
Overview
The server link module provides enhancements and additional support to the vanilla Minecraft server link feature. Which allows you to display important links to players in a dedicated UI.
- Adds improvements to the existing server link features
- Ability to set a custom image title resource for the server links menu
- Ability to use chat colors and formats for button names
- Backported legacy version support for all versions below 1.21

Integration
Sample Code
Explore each integration by cycling through each tab, to find the best fit for your requirements and needs.
Override the Server Link Menu resource
public void overrideServerLinkResourceExample(Player viewer) {
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
apolloPlayerOpt.ifPresent(apolloPlayer -> {
this.serverLinkModule.overrideServerLinkResource(apolloPlayer, ResourceLocationIcon.builder()
.resourceLocation("lunar:logo/logo-100x100.png")
.build());
});
}Reset the Server Link Menu resource
public void resetServerLinkResourceExample(Player viewer) {
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinkResource);
}Add Server Link
public void addServerLinkExample(Player viewer) {
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
apolloPlayerOpt.ifPresent(apolloPlayer -> {
this.serverLinkModule.addServerLink(apolloPlayer, Lists.newArrayList(
ServerLink.builder()
.id("website")
.displayName(Component.text("Website", NamedTextColor.LIGHT_PURPLE))
.url("https://www.lunarclient.com/")
.build(),
ServerLink.builder()
.id("support")
.displayName(Component.text("Support", NamedTextColor.AQUA))
.url("https://support.lunarclient.com/")
.build(),
ServerLink.builder()
.id("status")
.displayName(Component.text("Status", NamedTextColor.RED))
.url("https://status.lunarclient.com/")
.build()
));
});
}Remove Server Link
public void removeServerLinkExample(Player viewer) {
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
apolloPlayerOpt.ifPresent(apolloPlayer -> {
this.serverLinkModule.removeServerLink(apolloPlayer, Lists.newArrayList(
"website", "support", "status"
));
});
}Resetting all Server Links
public void resetServerLinksExample(Player viewer) {
Optional<ApolloPlayer> apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
apolloPlayerOpt.ifPresent(this.serverLinkModule::resetServerLinks);
}ServerLink Options
.id(String) sets a unique identifier for the server link.
.id("website").displayName(Component) is the public-facing name of the server link. It should contain an Adventure Component. See the chat components (opens in a new tab) page for more.
.displayName(Component.text("Website", NamedTextColor.LIGHT_PURPLE)).url(String) should be a string that specifies the destination URL that will be opened from the server link.
.url("https://www.lunarclient.com/")