Script to update Amp and Bungeecord along with core components of most network servers

So first off I love the web panel however there are some things that are not added into the web panel that like 99% of major network servers require. One is backed in support of Geysermc Geyser is a plugin that is required for any xbox users or windows minecraft user to play on your server. Sure it is advanced but once you have it setup things usually are ok…

Here is my shell script that helps me I am posting this because I love AMP and and I love commandline scripts that sort of thing…

#!/bin/sh
##Filename=script.sh
### Notes Don't forget to  chmod +rwx ./script.sh
### Created by LorenTedford.com email me at loren@lorentedford.com
### This script is specifically created for Amp panel users from Cubecoders.
### Amp can be Purchased/Installed from here: https://cubecoders.com/AMPInstall
### You will need to create folders with in the amp home directory
## mkdir /home/amp/Minecraft
## mkdir /home/amp/Minecraft/BungeeCord
## mkdir /home/amp/Minecraft/Geysermc
### The above commands need ran first from the user AMP
### Once the folders have been created you then can modify this script
### To help automate your updates
####  This is the script I use to  update our servers you will need to rewrite it to fit your system.
####  To learn more about shell scripts visit https://www.learnshell.org/
####  Thank you please visit Ltcraft.net and Lorentedford.com!
rm -rf /home/amp/Minecraft/BuildData
rm -rf /home/amp/Minecraft/BuildTools.log.txt
rm -rf /home/amp/Minecraft/Bukkit
rm -rf /home/amp/Minecraft/CraftBukkit
rm -rf /home/amp/Minecraft/apache-maven-3.6.0
rm -rf /home/amp/Minecraft/Spigot
rm -rf /home/amp/Minecraft/work
rm -rf /home/amp/Minecraft/spigot-1.19.2.jar
rm -rf /home/amp/Minecraft/spigot-1.19.3.jar
rm -rf /home/amp/Minecraft/BuildTools.jar
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
## Change the --rev to Version you desire
java -jar BuildTools.jar --rev 1.19.2
sleep 3s

java -jar BuildTools.jar --rev 1.19.3

cp -rf /home/amp/Minecraft/spigot-1.19.2.jar /home/amp/.ampdata/instances/creative/Minecraft/spigot-1.19.2.jar
cp -rf /home/amp/Minecraft/spigot-1.19.2.jar /home/amp/.ampdata/instances/Lobby/Minecraft/spigot-1.19.2.jar
cp -rf /home/amp/Minecraft/spigot-1.19.2.jar /home/amp/.ampdata/instances/Ltcraft/Minecraft/spigot-1.19.2.jar
cp -rf /home/amp/Minecraft/spigot-1.19.2.jar /home/amp/.ampdata/instances/mark/Minecraft/spigot-1.19.2.jar
cp -rf /home/amp/Minecraft/spigot-1.19.2.jar /home/amp/.ampdata/instances/survival/Minecraft/spigot-1.19.2.jar

cp -rf /home/amp/Minecraft/spigot-1.19.3.jar /home/amp/.ampdata/instances/creative/Minecraft/spigot-1.19.3.jar
cp -rf /home/amp/Minecraft/spigot-1.19.3.jar /home/amp/.ampdata/instances/Lobby/Minecraft/spigot-1.19.3.jar
cp -rf /home/amp/Minecraft/spigot-1.19.3.jar /home/amp/.ampdata/instances/Ltcraft/Minecraft/spigot-1.19.3.jar
cp -rf /home/amp/Minecraft/spigot-1.19.3.jar /home/amp/.ampdata/instances/mark/Minecraft/spigot-1.19.3.jar
cp -rf /home/amp/Minecraft/spigot-1.19.3.jar /home/amp/.ampdata/instances/survival/Minecraft/spigot-1.19.3.jar
#
#Bungee Cord Update Script
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-alert/target/cmd_alert.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-find/target/cmd_find.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-kick/target/cmd_kick.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-list/target/cmd_list.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-send/target/cmd_send.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/cmd-server/target/cmd_server.jar
wget https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/module/reconnect-yaml/target/reconnect_yaml.jar

mv BungeeCord.jar      /home/amp/Minecraft/Bungeecord/BungeeCord.jar
mv cmd_alert.jar       /home/amp/Minecraft/Bungeecord/cmd_alert.jar
mv cmd_find.jar        /home/amp/Minecraft/Bungeecord/cmd_find.jar
mv cmd_kick.jar        /home/amp/Minecraft/Bungeecord/cmd_kick.jar
mv cmd_list.jar        /home/amp/Minecraft/Bungeecord/cmd_list.jar
mv cmd_send.jar        /home/amp/Minecraft/Bungeecord/cmd_send.jar
mv cmd_server.jar      /home/amp/Minecraft/Bungeecord/cmd_server.jar
mv reconnect_yaml.jar  /home/amp/Minecraft/Bungeecord/reconnect_yaml.jar

rm -Rf /home/amp/.ampdata/instances/Bungeecord/Minecraft/BungeeCord.jar

cp -Rf /home/amp/Minecraft/Bungeecord/BungeeCord.jar /home/amp/.ampdata/instances/Bungeecord/Minecraft/BungeeCord.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_alert.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_alert.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_find.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_find.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_kick.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_kick.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_list.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_list.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_send.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_send.jar
cp -Rf /home/amp/Minecraft/Bungeecord/cmd_server.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/cmd_server.jar
cp -Rf /home/amp/Minecraft/Bungeecord/reconnect_yaml.jar  /home/amp/.ampdata/instances/Bungeecord/Minecraft/modules/reconnect_yaml.jar

#Update Geyser for Windows Minecraft Connection Bungeecord
#And floodgate for all servers connected to Bungeecord
# GeyserMC Information https://geysermc.org/
# Floodgate Information https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/
# Amp by default doesn't support Geyser and floodgate for Xbox and windows pc eddition Minecraft users.
# Follow the directions provided by Geyser and floodgate for best results.

wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/bungeecord/build/libs/Geyser-BungeeCord.jar
mv Geyser-BungeeCord.jar /home/amp/Minecraft/Geysermc
wget https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/bungee/build/libs/floodgate-bungee.jar
mv floodgate-bungee.jar /home/amp/Minecraft/Geysermc/floodgate-bungee.jar
wget https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/spigot/build/libs/floodgate-spigot.jar
mv floodgate-spigot.jar /home/amp/Minecraft/Geysermc/floodgate-spigot.jar

## Now we are going to copy the files downloaded into the required plugin locations.

cp -Rf /home/amp/Minecraft/Geysermc/Geyser-BungeeCord.jar /home/amp/.ampdata/instances/Bungeecord/Minecraft/plugins/Geyser-BungeeCord.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-bungee.jar /home/amp/.ampdata/instances/Bungeecord/Minecraft/plugins/floodgate-bungee.jar

# Now we are going to update the floodgate.jar on the spigot servers this is required. To make Geysermc to work.
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/creative/Minecraft/plugins/floodgate-spigot.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/factionspvp/Minecraft/plugins/floodgate-spigot.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/Lobby/Minecraft/plugins/floodgate-spigot.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/Ltcraft/Minecraft/plugins/floodgate-spigot.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/mark/Minecraft/plugins/floodgate-spigot.jar
cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/survival/Minecraft/plugins/floodgate-spigot.jar
#cp -Rf /home/amp/Minecraft/Geysermc/floodgate-spigot.jar /home/amp/.ampdata/instances/creative/Minecraft/plugins/floodgate-spigot.jar

# I use Viaversion for each server to help with allowing people to connect from a range of spigot versions.
# https://github.com/ViaVersion/ViaVersion

ampinstmgr -p

echo Spigot Update Script Completed!
sleep 4s
exit

This above script saves me 40 minutes or more of surfing the web panel and updating… I hope this helps some one else!

Are you aware that there is a dedicated Geyser instance type?

No I wasn’t aware… Could you explain a bit more?

That’s all there is to it. :slight_smile:

There’s an option in the instance creation screen for Geyser that is specifically designed to run Geyser only. Would probably make it easier to manage updating and whatnot.

Ok so do you point the geyser instance to the Bungeecord server then is that how it work?

I’ve never used it for Bungee myself. But that’s the basics of it, yeah. You can find guides online on how to configure Geyser for Bungee.

I think you don’t understand what is happening in the script… Basically I am following the standard guidlines for Geyser.

https://wiki.geysermc.org/geyser/setup/

According to Geyser it should be ran on the Bungeecord server like I already have it… My scripts only pertain to automatic updates of all servers in mass and certain key elements of Bungeecord.

To my knowledge I wasn’t aware Geyser had its own application in AMp panel I will have to look at it and see exactly what it is. I was hoping you would explain this a bit more… For larger community networks or former larger community networks like myself yes I use to be fairly large at one time before my accident back in 2014… But anyway we always like to manage everything off the Bungeecord side… Especially when we are mixing and matching Hardware for other back end Mincecraft servers… Example we keep our test servers on a different physical box in the break some thing… Or if we host a small event we might spin up a vps from one of our many providers and point it over etc.

Unless I’m missing something with your script… The link you shared, this is the standalone version.

You would use AMP’s scheduled tasks to update all servers at specific times. What part of the script wouldn’t work with that?

I guess I missed the point of your post because of the description you wrote. You’re wanting the entirety of the script added to AMP as a functionality versus just the Geyser part that you described in your post.

Yeah my shell script is correct its downloading the Bungeecord Version of Geyser. The issue with replying on amp to update Bungeecord is that it doesn’t update the modules…This is key for me. Hopefully now you understand what I am doing and accomplished with these scripts and why they are critical to keeping large network server’s going.

I do think what would be cool is if Amp did the Basics like example have a application installation for Bungeecord that specifically downloads and updates its self including its modules. Also with Geyser Support as well maybe a toggle for the Geyser support and update the Minecraft servers that are on the same box maybe a box to each server installation so you could copy and paste the path or locations. I suppose I am dreaming here… Because even the Bungeecord Application doesn’t update its modules…

Perhaps the modules could be automated in some way. I assume Mike is using an API to handle the main Bungee download, so could probably piggy-back off of that. But I have no clue since it’s proprietary.

You could open a GitHub feature request in the AMP repo and let him respond to it.

You probably won’t get much improvement in what you’re wanting with the all out update option yet though. Scheduled tasks already update the servers themselves, and with the eventual grouping of instances in the roadmap it may allow you to simultaneously shutdown/update the servers using a button.

I have figured since the Bungeecord App has been broken since day one on the updating of modules that is that it was just an assumption to work around and outside the panel for updates… Idk I just posting what works for me at the moment I can’t be the only one that loves amp but yet has to kinda smack it around with a shell script to make it work.