This plugin aims to provide a workaround for two problems that usually arise when hosting a BungeeCord server on a server under the Pterodactyl panel, more specifically while using a generic Minecraft: Java Edition egg, normally designed to support the widest range possible of server software for the Java edition of the game. Using these generic eggs is usually not a huge deal... except with BungeeCord. Of course, it's always better to use an egg designed to support the JAR you're trying to run, in this case BungeeCord (Pterodactyl includes an egg for BungeeCord by default), and if you have the option to use it, either by asking your hosting company to change it for you or, if you're self-hosting your own Pterodactyl instance, by changing it yourself, take advantage of it!
The two problems that arise are:
- Being unable to stop the BungeeCord instance
- Server stuck in "Starting" status
Both of these problems, as mentioned above, are not present when using the appropriate egg, only when using a generic one, which is what many hosting companies do by default.
This plugin fixes those two problems by literally adding a stop
command, which,
when ran via the console, will stop the BungeeCord instance (when ran by a player, the
plugin will forward the stop command to the server that the player was on, it will not
actually stop that server unless the player that ran it has the permissions to do so),
and by printing in the console a fake "Done" message, which triggers the "Running"
status on most of those generic eggs.
The team over at the Pterodactyl project defines it as follows:
Each egg is usually used to store the configuration of a specific type of game, for example: Vanilla, Spigot or Bungeecord for Minecraft.
Source: https://pterodactyl.io/project/terms.html
Generally speaking, in the context of Pterodactyl, an egg is a list of settings that define how the panel is going to interact with a server. Things like when to mark the server as "Started" (causes problem #2), configuration options under the "Startup" tab, or what commands to run in order to start or stop a server.
This is a very vague description, there is way more to it than just that. Now you should be
able to see why those two problems occur though: virtually all Minecraft server software use
the command /stop
(no slash when used via console) in order to stop the server instance.
The only exceptions to this rule are proxy software, like Velocity and BungeeCord (and
all of its forks, e.g. Waterfall).
The reason behind using a different command for these proxy instances is very simple:
typically, these instances sit on top of one or more regular Minecraft servers, which of
course need to be stopped with the /stop
command. Do you see the problem yet? If not,
keep reading. If let's say BungeeCord decided to also use stop as the keyword to stop the
instance, instead of turning off the Minecraft server, you'd turn off the entire proxy. This
may not look like a huge issue, until you realize that these proxies are meant to connect
multiple Minecraft servers together to form what's commonly known as a network. Instead
of turning off a lobby server that nobody is using, you'd stop the proxy instance, kicking
all players from all servers in the process.
You only need this if you are unable to switch to the appropriate BungeeCord egg. You may also use this if you find it more convenient to have a stop command available on your BungeeCord instance, it won't cause any harm to install it even if you don't need it.
- It's very lightweight: only 4 KB in size, RAM usage is only increased by less than 1 MB.
- It's completely open source: you can modify it to your liking, although we doubt anyone will modify it.
- It does not override the original
/stop
functionality in Bukkit/Spigot servers.
- Shut down your BungeeCord instance: first click on the Stop button on your Pterodactyl
panel and then type
end
in console. Alternatively, you could click on Stop and then Kill, but the first method ensures that your instance turns off gracefully, avoiding any data loss. - Upload
PteroBungee-v1.2.0.jar
to the "plugins" folder of your server - Start the BungeeCord instance back up.
And that's it!
- Download from GitHub.