Integrations - ME1312/SubServers-2 GitHub Wiki
This page will let you know what other plugins SubServers apps will interact with automatically when they are available.
Topics on This Page:
PlaceholderAPI
TitleAPI
Bukkit Item Naming
SubServers.Client.Bukkit provides PlaceholderAPI placeholders to those who want to use them. Naturally, we took this format to the extremes, so we needed our own page to explain these properly.
Like PlaceholderAPI's own BungeeCord placeholders, these placeholders use caching. To keep network resources down, we don't start requesting data until a placeholder is actually used. If you know you're going to use a placeholder and want immediate results, enable PlaceholderAPI-Ready
in config.yml
.
There are three prefixes for placeholders:
%subservers_example()% - Runs the `example()` method with the default behavior
%subservers_color_example()% - Runs the `example()` method explicitly including color codes
%subservers_plain_example()% - Runs the `example()` method explicitly excluding color codes
There are different ways to format these placeholders. Here's a few notable ones:
%subservers_example% - Runs the `example()` method with no arguments
%subservers_example(value1, value2)% - Runs the `example()` method with arguments
%subservers_example<&dExample, &bResponses>% - Runs the `example()` method with custom responses
%subservers_example(value1, value2)<&dExample, &bResponses>% - Runs the `example()` method with both
You can also use other methods and placeholders in arguments and custom responses:
%subservers_subserver.online()<&aOnline>% - Uses no other methods/placeholders
%subservers_subserver.online()<&b#server.players() online>% - Uses the `server.players()` method
%subservers_subserver.online()<&b$redisbungee_example$ online>% - Uses the `%redisbungee_example%` placeholder
%subservers_example()%
%subservers_players()%
%subservers_proxies()%
%subservers_proxy.displayname(Proxy)%
%subservers_proxy.type(Proxy)<Master Proxy, Proxy>%
%subservers_proxy.players(Proxy)%
%subservers_proxy.subdata(Proxy)<Connected, Disconnected>%
%subservers_proxy.subdata.channels(Proxy)%
%subservers_proxy.subdata.subchannels(Proxy)%
%subservers_proxy.signature(Proxy)%
If you don't select a proxy, the master proxy will be selected (if it's available).
%subservers_hosts()%
%subservers_host.displayname(Host)%
%subservers_host.available(Host)<Available, Unavailable>%
%subservers_host.enabled(Host)<Enabled, Disabled>%
%subservers_host.address(Host)%
%subservers_host.creator.templates(Host)%
%subservers_host.creator.template.displayname(Host, Template)%
%subservers_host.creator.template.enabled(Host, Template)<Enabled, Disabled>%
%subservers_host.creator.template.type(Host, Template)%
%subservers_host.creator.template.requiresversion(Host, Template)<Optional, Required>%
%subservers_host.creator.template.updatable(Host, Template)<Updatable, Not Updatable>%
%subservers_host.subservers(Host)%
%subservers_host.players(Host)%
%subservers_host.subdata(Host)<Connected, Unsupported, Disconnected>%
%subservers_host.subdata.channels(Host)%
%subservers_host.subdata.subchannels(Host)%
%subservers_host.signature(Host)%
If you don't select a host, the one this subserver exists on will be selected if it exists as one.
%subservers_groups()%
%subservers_group.servers(Group)%
%subservers_group.players(Group)%
There is no default for selecting groups.
%subservers_servers()%
%subservers_server.displayname(Server)%
%subservers_server.type(Server)<Subserver, Server>%
%subservers_server.groups(Server)%
%subservers_server.address(Server)%
%subservers_server.motd(Server)%
%subservers_server.restricted(Server)<Public, Private>%
%subservers_server.hidden(Server)<Visible, Hidden>%
%subservers_server.players(Server)%
%subservers_server.subdata(Server)<Connected, Disconnected>%
%subservers_server.subdata.channels(Server)%
%subservers_server.subdata.subchannels(Server)%
%subservers_server.signature(Server)%
If you don't select a server, this server will be selected.
%subservers_subservers()%
%subservers_subserver.displayname(Subserver)%
%subservers_subserver.available(Subserver)<Available, Unavailable>%
%subservers_subserver.enabled(Subserver)<Enabled, Disabled>%
%subservers_subserver.editable(Subserver)<Editable, Locked>%
%subservers_subserver.host(Subserver)%
%subservers_subserver.template(Subserver)%
%subservers_subserver.template.displayname(Subserver)%
%subservers_subserver.template.enabled(Subserver)<Enabled, Disabled>%
%subservers_subserver.template.type(Subserver)%
%subservers_subserver.template.requiresversion(Subserver)<Optional, Required>%
%subservers_subserver.template.updatable(Subserver)<Updatable, Not Updatable>%
%subservers_subserver.groups(Subserver)%
%subservers_subserver.address(Subserver)%
%subservers_subserver.motd(Subserver)%
%subservers_subserver.logging(Subserver)<Logging, Muted>%
%subservers_subserver.running(Subserver)<Running, Offline>%
%subservers_subserver.online(Subserver)<Online, Starting, Offline>%
%subservers_subserver.temporary(Subserver)<Permanent, Temporary>%
%subservers_subserver.stopaction(Subserver)%
%subservers_subserver.incompatibilities(Subserver)%
%subservers_subserver.incompatibilities.current(Subserver)%
%subservers_subserver.restricted(Subserver)<Public, Private>%
%subservers_subserver.hidden(Subserver)<Visible, Hidden>%
%subservers_subserver.players(Subserver)%
%subservers_subserver.subdata(Subserver)<Connected, Disconnected>%
%subservers_subserver.subdata.channels(Subserver)%
%subservers_subserver.subdata.subchannels(Subserver)%
%subservers_subserver.signature(Subserver)%
If you don't select a subserver, this subserver will be selected if it exists as one.
API for title messages didn't get added into Bukkit until 1.11. So, until then, we had to use something else.
TitleAPI adds an API that is used to deliver title messages in SubServers.Client.Bukkit for 1.8, 1.9, and 1.10 servers.
That's all there really is to say about it.
Item naming is something that's changed over the years, and SubServers.Client.Bukkit supports Minecraft versions all the way back to 1.7.10. So, here are the naming schemes available to you.
Numeric IDs were removed in 1.13, but if your servers are old enough, you can still make use of them in SubServers.
1 <- Smooth Stone
1:0 <- Smooth Stone (again)
1:1 <- Granite
Check this outdated looking website for more ids.
These existed in the older versions, but were not finalized until 1.13. This means that, for example, minecraft:grass
will show a different item entirely in 1.12 and 1.13.
minecraft:stone <- Smooth Stone
minecraft:granite <- Granite (1.13)
minecraft:repeater <- Redstone Repeater
Check this documentation for more names.
Before Mojang started naming their items, Bukkit decided to give everything a name of their own, creating a third naming scheme. While also removed in 1.13, Spigot's plugin compatibility layer keeps this naming scheme alive, making it somewhat of a bridge between versions. As such, bukkit:grass
shows the same item in both 1.12 and 1.13.
bukkit:stone <- Smooth Stone
bukkit:stone#0 <- Smooth Stone (again)
bukkit:stone#1 <- Granite
bukkit:grass <- Grass Block
bukkit:diode <- Redstone Repeater
Check this legacy documentation for more names.