Merge branch 'master' into purpur

This commit is contained in:
Purpur
2020-12-13 21:55:27 -06:00
committed by GitHub
68 changed files with 1436 additions and 564 deletions

View File

@@ -4,33 +4,34 @@ Its a game about placing blocks and going on adventures
Its set in infinitely-generated worlds of wide open terrain - icy mountains, swampy bayous, vast pastures and much more - filled with secrets, wonders and peril!
[Bedrock](/minecraft/bedrock/) Servers for Bedrock Minecraft (Windows 10, mobile, console)
* [Bedrock](/minecraft/bedrock/bedrock/)
* [Nukkit](/minecraft/bedrock/nukkit/)
* [PocketMine MP](/minecraft/bedrock/pocketmine_mp/)
[Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
* [Bedrock](/minecraft/bedrock/bedrock)
* [Nukkit](/minecraft/bedrock/nukkit)
* [PocketMine MP](/minecraft/bedrock/pocketmine_mp)
[Java](/minecraft/java/) Servers for Java Minecraft
* [Cuberite](/minecraft/java/cuberite/)
* [Feather](/minecraft/java/feather/)
* [Feed The Beast](/minecraft/java/ftb/)
* [Forge](/minecraft/java/forge/)
* [Magma](/minecraft/java/magma/)
* [Cuberite](/minecraft/java/cuberite)
* [Fabric](/minecraft/java/fabric)
* [Feather](/minecraft/java/feather)
* [Feed The Beast](/minecraft/java/ftb)
* [Forge](/minecraft/java/forge)
* [Magma](/minecraft/java/magma)
* [Paper](/minecraft/java/paper)
* [Spigot](/minecraft/java/spigot/)
* [spongeforge](/minecraft/java/spongeforge/)
* [SpongeVanilla](/minecraft/java/spongevanilla/)
* [Technic](/minecraft/java/technic/)
* [Tuinity](/minecraft/java/tuinity/)
* [VanillaCord](/minecraft/java/vanillacord/)
* [Spigot](/minecraft/java/spigot)
* [SpongeForge](/minecraft/java/spongeforge)
* [SpongeVanilla](/minecraft/java/spongevanilla)
* [Technic](/minecraft/java/technic)
* [Tuinity](/minecraft/java/tuinity)
* [VanillaCord](/minecraft/java/vanillacord)
* [Mohist](/minecraft/java/mohist)
* [Proxies](/minecraft/proxy/) Minecraft Server Proxies
* [Java](/minecraft/proxy/java/)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo/)
* [Waterfall](/minecraft/proxy/java/waterfall/)
* [Travertine](/minecraft/proxy/java/travertine/)
* [Velocity](/minecraft/proxy/java/velocity/)
* [Bedrock](/minecraft/proxy/bedrock/)
* [DragonProxy](/minecraft/proxy/bedrock/dragonproxy/)
* [GeyserMC](/minecraft/proxy/bedrock/geyser/)
* [Proxies](/minecraft/proxy) Minecraft Server Proxies
* [Java](/minecraft/proxy/java)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo)
* [Waterfall](/minecraft/proxy/java/waterfall)
* [Travertine](/minecraft/proxy/java/travertine)
* [Velocity](/minecraft/proxy/java/velocity)
* [Cross Platform](/minecraft/proxy/cross_platform)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog/)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.

View File

@@ -4,6 +4,10 @@
[Minecraft Bedrock Server](https://minecraft.net/en-us/download/server/bedrock/)
The official Minecraft Bedrock (Formerly Minecraft Pocket Edition) server.
#### gomint
[Gomint Bedrock Server](https://github.com/gomint/gomint)
Easy-to-use, highly configurable Minecraft Bedrock Edition server software with the ability to sustain in a low-resource environment.
#### Nukkit
[Nukkit GitHub](https://github.com/Nukkit/Nukkit)
Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-10-16T15:10:46+00:00",
"exported_at": "2020-12-01T21:01:12-05:00",
"name": "Vanilla Bedrock",
"author": "parker@parkervcp.com",
"description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"startup": ".\/bedrock_server",
"config": {
@@ -17,7 +18,7 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Done\"",
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitlist.json.bak\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"restoring config files\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitlist.json\r\n\r\necho -e \"Done\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}

View File

@@ -0,0 +1,11 @@
# gomint
Easy-to-use, highly configurable Minecraft Bedrock Edition server software with the ability to sustain in a low-resource environment.
### Server Ports
Bedrock server require a single port (default 19132)
| Port | default |
|---------|----------|
| Game | 19132 |

View File

@@ -0,0 +1,27 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-12-12T16:14:47+00:00",
"name": "GoMint",
"author": "parker@parkervcp.com",
"description": "A performant and stable Minecraft server software for the Bedrock Edition that comes with a modern API and support for Java 11 LTS.",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java --add-opens java.base\/java.nio=io.netty.common --add-exports java.base\/jdk.internal.misc=io.netty.common -p modules -m gomint.server\/io.gomint.server.Bootstrap",
"config": {
"files": "{\r\n \"server.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"listener.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\":\"Done in \"\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=gomint\/gomint\r\nVERSION=latest\r\nMATCH=modules\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/} -d modules\/\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nif [ ! -f server.yml ]; then\r\n curl -sSL -o server.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/gomint\/server.yml\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": []
}

View File

@@ -0,0 +1,4 @@
# The host and port to bind the server to
listener:
port: 19132
ip: 0.0.0.0

View File

@@ -0,0 +1,8 @@
# Now abandoned. Please use NukkitX by Cloudburst.
[NukkitX](https://github.com/CloudburstMC/Nukkit)
# Nukkit
[Nukkit GitHub](https://github.com/Nukkit/Nukkit)
Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition

View File

@@ -0,0 +1,5 @@
# PocketMine MP
[PocketMine MP](https://github.com/pmmp/PocketMine-MP)
A server software for Minecraft: Bedrock Edition in PHP

View File

@@ -24,13 +24,7 @@ This is a direct fork of the default forge service
A generic service to pull forge mod packs from the curseforge site.
## FTB Packs
[FTB](https://www.feed-the-beast.com/modpacks)
A generic service to pull forge mod packs from the FTB site.
Supply values to 2 variables to use
- MODPACK_URL: from the url to the pack https://www.feed-the-beast.com/projects/{MODPACK_URL}
- MODPACK_VERSION: version of the modpack to install
[FTB Modpacks through modpacks.ch](https://api.modpacks.ch)
[FTB Modpacks](https://api.modpacks.ch)
A generic service to pull FTB modpacks from api.modpacks.ch.
There are 2 ways to install a server through this service.
The first method only requires you to know the modpacks name and version.
@@ -51,10 +45,7 @@ The second method requires you to know the id for both the modpack and version i
**NOTE**
**Not all FTB packs come with a server.properties file, due to this the server.properties file
may not get updated with the correct ip address and port at first launch.
Please restart the server after first launch to fix this.**
[FTB Revelation](https://www.feed-the-beast.com/projects/ftb-revelation)
Revelation is a general all-purpose modpack with optimal FPS, server performance and stability.
Please restart the server after first launch to fix this.**
## Magma
[Magma](https://magmafoundation.org/)
@@ -94,3 +85,7 @@ The official Tekkit Classic modpack. Build factories, automate crafting!
## Tuinity
Fork of Paper aimed at improving server performance at high playercounts.
[Tuinity GitHub](https://github.com/Spottedleaf/Tuinity)
## Mohist
Fork of Spigot focused on performance optimizations.
[Mohist Github](https://github.com/Mohist-Community)

View File

@@ -3,21 +3,22 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-12-14T12:24:30-05:00",
"exported_at": "2020-12-08T17:25:20-08:00",
"name": "Cuberite",
"author": "parker@parkervcp.com",
"description": "A lightweight, fast and extensible game server for Minecraft",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"startup": ".\/Cuberite",
"config": {
"files": "{\r\n \"settings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Server.Ports\": \"{{server.build.default.port}}\",\r\n \"Server.Description\": \"{{server.build.env.SERV_DESC}}\"\r\n }\r\n },\r\n \"webadmin.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"User:admin.Password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"WebAdmin.Ports\":\"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Startup complete \"\r\n}",
"files": "{\r\n \"settings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Server.Ports\": \"{{server.build.default.port}}\",\r\n \"Server.Description\": \"{{server.build.env.SERV_DESC}}\"\r\n }\r\n },\r\n \"webadmin.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"User:admin.Password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"WebAdmin.Ports\": \"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Startup complete\"\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Cuberite\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y wget\r\n\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/download.cuberite.org\/linux-x86_64\/Cuberite.tar.gz\r\n\r\ntar --strip-components=1 -xf Cuberite.tar.gz",
"script": "#!\/bin\/ash\r\n# Cuberite\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y wget\r\n\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/download.cuberite.org\/linux-x86_64\/Cuberite.tar.gz\r\n\r\ntar -xzf Cuberite.tar.gz",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
@@ -28,8 +29,8 @@
"description": "Server Description",
"env_variable": "SERV_DESC",
"default_value": "Cuberite on Pterodactyl!",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
@@ -37,8 +38,8 @@
"description": "The password for the webadmin panel 'admin' user",
"env_variable": "ADMIN_PASS",
"default_value": "ChangeMe",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
@@ -46,9 +47,9 @@
"description": "Port for the cuberite webadmin panel.",
"env_variable": "WEB_PORT",
"default_value": "8080",
"user_viewable": 1,
"user_editable": 0,
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1,65535"
}
]
}
}

View File

@@ -0,0 +1,11 @@
# Fabric
Fabric is a lightweight, experimental modding toolchain for Minecraft.
## Server Ports
The fabric server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.
| Port | default |
|-------|---------|
| Game | 25565 |

View File

@@ -0,0 +1,46 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-12-06T19:54:35-08:00",
"name": "Fabric",
"author": "accounts@bofanodes.io",
"description": "Fabric is a modular modding toolchain targeting Minecraft 1.14 and above, including snapshots.",
"features": ["eula"],
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Fabric MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq unzip dos2unix wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nif [ -z \"$FABRIC_VERSION\" ] || [ \"$FABRIC_VERSION\" == \"latest\" ]; then\r\nFABRIC_VERSION=$(curl https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/ | grep -Po '(?<=href=\")[^\"]*' | sort -h | tail -1 | sed 's,\/,,g')\r\nwget https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\nelse\r\nwget https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\nfi\r\njava -jar fabric-installer-$FABRIC_VERSION.jar server -downloadMinecraft\r\necho -e \"Install Complete\"",
"container": "openjdk:11-jdk-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Jar File",
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "fabric-server-launch.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Fabric Version",
"description": "The version of Fabric to install.",
"env_variable": "FABRIC_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|between:3,15"
}
]
}

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-03-08T20:35:40-04:00",
"exported_at": "2020-12-12T16:29:02+00:00",
"name": "Feather",
"author": "parker@parkervcp.com",
"description": "An experimental Minecraft server implementation written in Rust.",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"startup": ".\/feather-server",
"config": {
@@ -17,7 +18,7 @@
},
"scripts": {
"installation": {
"script": "#!\/usr\/bin\/env bash\r\napt update\r\napt install -y curl\r\n\r\nget_latest_release() {\r\n curl -sSL \"https:\/\/api.github.com\/repos\/$1\/releases\/latest\" |\r\n grep '\"tag_name\":' |\r\n sed -E 's\/.*\"([^\"]+)\".*\/\\1\/'\r\n}\r\n\r\nPACKAGE=\"feather-rs\/feather\"\r\nVERSION=`get_latest_release \"${PACKAGE}\"`\r\necho \"Latest version=${VERSION}\"\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sSLo feather.tar.gz https:\/\/github.com\/caelunshun\/feather\/releases\/download\/${VERSION}\/feather-${VERSION}-linux.tar.gz\r\n\r\ntar --strip-components=1 -xzvf feather.tar.gz\r\n\r\nrm feather.tar.gz",
"script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=feather-rs\/feather\r\nMATCH=linux\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nchmod +x feather-server",
"container": "debian:stable-slim",
"entrypoint": "bash"
}
@@ -28,8 +29,8 @@
"description": "Do you want the installer to generate a world you you?",
"env_variable": "GEN_WORLD",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean"
}
]

View File

@@ -1,28 +1,21 @@
# Configuration for the Feather server.
# Most of the options here are unimplented and have no effect.
# Those that are unimplemted have been labeled so.
# Many of the options here are unimplemented and have no effect.
# Those that are unimplemented have been labeled so.
[io]
# Packets with a size more than or equal to this value will be sent compressed.
# Compressing packets reduces bandwidth usage but increases CPU activity.
compression_threshold = 256
# The number of worker threads used for asynchronous IO.
# Set to the number of cores on your CPU for optimal performance.
io_worker_threads = 8
[proxy]
# IP forwarding using either "bungee" (BungeeCord/Waterfall/Travertine) or "velocity" (Velocity)
proxy_mode = "none" # Unimplemented
[server]
online_mode = true
motd = "A Feather server"
max_players = 16
default_gamemode = "survival"
default_gamemode = "creative"
difficulty = "none" # Unimplemented
view_distance = 6
address = "127.0.0.1"
address = "0.0.0.0"
port = 25565
[gameplay]
@@ -44,4 +37,26 @@ level = "debug"
# upon joining. Set this to an empty string to disable.
url = ""
# Optional SHA1 hash of the resource pack file.
hash = ""
hash = ""
[world]
# The name of the directory containing the world.
name = "world"
# The generator to use if the world does not exist.
# Implemented values are: default, flat
generator = "default"
# The seed to use if the world does not exist.
# Leaving this value empty will generate a random seed.
# If this value is not a valid integer (i64), the string
# will be converted using a hash function.
seed = ""
# Interval at which to save modified chunks.
save_interval = "1min"
[proxy]
# Select the IP forwarding mode that is used by proxies like BungeeCord or Velocity.
# Valid values are
# - "None" - for usage without a proxy
# - "BungeeCord" - for BungeeCord/Waterfall/Travertine
# - "Velocity" - for Velocity style proxies (unimplemented)
proxy_mode = "None"

View File

@@ -2,9 +2,9 @@
### This is a generic egg for curseforge modpacks
You will need to give it a modpack ID. The ID for sevtech-ages is `268208` for example.
You will need to give it a modpack ID. The ID for BOFA mods is `375152` for example.
This can be found on the modpack page in the `About Project` section in the upper right corner.
This will grabe the latest release when the version is set to latest.
This will grab the latest release when the version is set to latest.
It "should" grab versions of the pack based on the modpack version numbers
It "should" grab versions of the pack based on the modpack version numbers

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-12T08:19:04-04:00",
"exported_at": "2020-12-07T11:33:04-05:00",
"name": "Curseforge Generic",
"author": "parker@parkervcp.com",
"description": "A generic egg for a forge modpack",
"features": null,
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server.jar",
"config": {
@@ -25,11 +26,11 @@
"variables": [
{
"name": "modpack project ID",
"description": "The modpack project ID from the curseforge site on the pack page.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages ID is 268208)",
"description": "The modpack project ID from the curseforge site on the pack page.\r\n\r\n(Ex. https:\/\/www.curseforge.com\/minecraft\/modpacks\/bofa-mods ID is 375152)",
"env_variable": "MODPACK_ID",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
@@ -37,9 +38,9 @@
"description": "Version of the modpack to use.",
"env_variable": "MODPACK_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}
}

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-06-01T21:19:06-04:00",
"exported_at": "2020-12-06T19:03:10-08:00",
"name": "Forge Enhanced",
"author": "parker@parkervcp.com",
"description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.",
"features": ["eula"],
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,17 +29,17 @@
"description": "The name of the Jarfile to use when running Forge Mod.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Forge version",
"name": "Minecraft Version",
"description": "The version of minecraft you want to install for.\r\n\r\nLeaving latest will install the latest recommended version.",
"env_variable": "MC_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:9"
},
{
@@ -46,8 +47,8 @@
"description": "The type of server jar to download from forge.\r\n\r\nValid types are \"recommended\" and \"latest\".",
"env_variable": "BUILD_TYPE",
"default_value": "recommended",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
@@ -55,9 +56,9 @@
"description": "Gets an exact version.\r\n\r\nEx. 1.15.2-31.2.4\r\n\r\nOverrides MC_VERSION and BUILD_TYPE. If it fails to download the server files it will fail to install.",
"env_variable": "FORGE_VERSION",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20"
}
]
}
}

View File

@@ -0,0 +1,31 @@
## FTB Modpacks
A generic service to pull FTB modpacks from api.modpacks.ch.
There are 2 ways to install a server through this service.
The first method only requires you to know the modpacks name and version.
The second method requires you to know the id for both the modpack and version in the api.
**Method 1 (Recommended)**
- FTB_SEARCH_TERM: the modpack name to query for, must be at least 4 characters long.
EX: for FTB: Interactions you would do "interactions".
- FTB_VERSION_STRING: the string version that you want to install.
EX: for FTB: Interactions 2.0.2, you would put "2.0.2".
**Method 2**
- FTB_MODPACK_ID: the id that directs to the modpack in the api.
EX: for FTB: Interactions the id would be "5". https://api.modpacks.ch/public/modpack/5
- FTB_MODPACK_VERSION_ID: the version id in the api.
EX: for FTB: Interactions 2.0.2 the id is "86". https://api.modpacks.ch/public/modpack/5/86
**NOTE**
**Not all FTB packs come with a server.properties file, due to this the server.properties file
may not get updated with the correct ip address and port at first launch.
Please restart the server after first launch to fix this.**
## Server Ports
The minecraft server requires a single port for access (default 25565) but some plugins may require extra ports to enabled for the server.
| Port | default |
|-------|---------|
| Game | 25565 |

View File

@@ -0,0 +1,20 @@
# Mohist
Mohist is a Spigot fork that prioritizes performance optimizations.
## Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.
| Port | default |
|-------|---------|
| Game | 25565 |
## Server Specific
### Supported versions:
- 1.16.4 series build 132+
- 1.12.x series
- 1.7.x series build 13+
Requires changing Minecraft_Version variable on each new Minecraft version release.

View File

@@ -0,0 +1,64 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-12-13T18:26:08-08:00",
"name": "Mohist",
"author": "alex.chang-lam@protonmail.com",
"description": "Spigot fork with performance optimizations.",
"features": null,
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}} pause",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Mohist Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${BUILD_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/${BUILD_VERSION}\/download\r\nelse\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/${BUILD_TYPE}\/download\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\necho -e \"Downloading build version ${BUILD_VERSION}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-server.jar; then\r\n echo -e \"Download link is valid.\"\r\n else\r\n echo -e \"Link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -s -o server.jar -sS ${DOWNLOAD_LINK}\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/server.jar ]; then\r\n echo \"!!! Error downloading build version ${BUILD_VERSION} !!!\"\r\n exit\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Jar File",
"description": "The name of the jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20"
},
{
"name": "Minecraft Version",
"description": "The version of Minecraft to download.",
"env_variable": "MC_VERSION",
"default_value": "1.16.4",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "Build Number",
"description": "Optional: \r\nThe build number for the Mohist release. Overrides Build Type.",
"env_variable": "BUILD_VERSION",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20"
},
{
"name": "Build Type",
"description": "The type of server jar to download from Mohist.\r\n\r\nValid types are \"recommended\" and \"latest\".",
"env_variable": "BUILD_TYPE",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@@ -3,11 +3,12 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-08-01T04:49:37-04:00",
"exported_at": "2020-12-06T18:34:01-08:00",
"name": "Paper",
"author": "parker@pterodactyl.io",
"description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.",
"image": "quay.io\/pterodactyl\/core:java",
"features": ["eula"],
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@@ -17,9 +18,9 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n VER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi",
"container": "alpine:3.9",
"entrypoint": "ash"
"script": "#!\/bin\/bash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=paper\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
@@ -28,8 +29,8 @@
"description": "The version of minecraft to download. \r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.",
"env_variable": "MINECRAFT_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 0,
"user_viewable": true,
"user_editable": false,
"rules": "nullable|string|max:20"
},
{
@@ -37,8 +38,8 @@
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
@@ -46,8 +47,8 @@
"description": "A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.",
"env_variable": "DL_PATH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string"
},
{
@@ -55,9 +56,9 @@
"description": "The build number for the paper release.\r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 0,
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:20"
}
]
}
}

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-03-29T13:00:51-04:00",
"exported_at": "2020-12-06T19:20:29-08:00",
"name": "Spigot",
"author": "support@pterodactyl.io",
"description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.",
"features": ["eula"],
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-8-jre",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,8 +29,8 @@
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
@@ -37,8 +38,8 @@
"description": "A URL to use to download Spigot rather than building it on the server. This is not user viewable. Use <code>{{DL_VERSION}}<\/code> in the URL to automatically insert the assigned version into the URL. If you do not enter a URL Spigot will build directly in the container (this will fail on low memory containers).",
"env_variable": "DL_PATH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string"
},
{
@@ -46,8 +47,8 @@
"description": "The version of Spigot to download (using the --rev tag). Use \"latest\" for latest.",
"env_variable": "DL_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|between:3,7"
}
]

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-12-11T01:44:03+03:00",
"exported_at": "2020-12-06T18:50:01-08:00",
"name": "SpongeForge",
"author": "parker@parkervcp.com",
"description": "A community-driven open source Minecraft: Java Edition modding platform.",
"features": ["eula"],
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,8 +29,8 @@
"description": "Example 1.12.2-2825-7.1.6\r\n\r\nIf the version fails it defaults to recommended",
"env_variable": "SF_VERSION",
"default_value": "recommended",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
@@ -37,8 +38,8 @@
"description": "The name of the Jarfile to use when running Forge Mod.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
}
]

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-09-13T21:18:48-04:00",
"exported_at": "2020-12-06T18:49:56-08:00",
"name": "SpongeVanilla",
"author": "parker@parkervcp.com",
"description": "SpongeVanilla is the implementation of the Sponge API on top of Vanilla Minecraft.",
"features": ["eula"],
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,8 +29,8 @@
"description": "Example 1.12.2-7.1.6\r\n\r\nIf the version fails it defaults to recommended",
"env_variable": "SV_VERSION",
"default_value": "recommended",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
@@ -37,8 +38,8 @@
"description": "The name of the Jarfile to use when running Mod.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
}
]

View File

@@ -1 +0,0 @@

View File

@@ -0,0 +1,11 @@
# Tuinity
Fork of Paper aimed at improving server performance at high playercounts.
## Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.
| Port | default |
|-------|---------|
| Game | 25565 |

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-03-27T00:25:53-04:00",
"exported_at": "2020-12-06T18:58:35-08:00",
"name": "Tuinity",
"author": "unknown@unknown.com",
"description": "Fork of Paper aimed at improving server performance at high playercounts.",
"features": ["eula"],
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,9 +29,9 @@
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}
}

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-06-06T09:33:27-04:00",
"exported_at": "2020-12-06T18:58:33-08:00",
"name": "VanillaCord",
"author": "support@pterodactyl.io",
"description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.\r\n\r\nVanillaCord adds support for BungeeCord's ip_forward setting.",
"features": ["eula"],
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
@@ -28,8 +29,8 @@
"description": "The name of the server jarfile to run the server with.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
@@ -37,9 +38,9 @@
"description": "The version of Minecraft Vanilla to install. Use \"latest\" to install the latest version.",
"env_variable": "VANILLA_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|between:3,15"
}
]
}
}

View File

@@ -1,12 +1,11 @@
# Minecraft Proxies
* [Java](/minecraft/proxy/java/)
* [Waterfall](/minecraft/proxy/java/waterfall/)
* [Travertine](/minecraft/proxy/java/travertine/)
* [Velocity](/minecraft/proxy/java/velocity/)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo/)
* [Bedrock](/minecraft/proxy/bedrock/)
* [DragonProxy](/minecraft/proxy/bedrock/dragonproxy/) (Abandoned in favor of GeyserMC)
* [GeyserMC](/minecraft/proxy/bedrock/geyser/)
* [Waterfall](/minecraft/proxy/java/waterfall)
* [Travertine](/minecraft/proxy/java/travertine)
* [Velocity](/minecraft/proxy/java/velocity)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo)
* [Cross Platform](/minecraft/proxy/cross_platform)
* [Waterdog](/minecraft/proxy/waterdog/)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.

View File

@@ -1,9 +0,0 @@
# Bedrock Proxies/Bridges
#### DragonProxy (Abandoned in favor of Geyser)
[DragonProxy](https://github.com/DragonetMC/DragonProxy)
A proxy to allow Minecraft: Bedrock clients to connect to Minecraft: Java Edition servers.
#### GeyserMC
[GeyserMC](https://geysermc.org/)
A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition.

View File

@@ -1,15 +0,0 @@
# DragonProxy
A proxy to allow Minecraft: Bedrock clients to connect to Minecraft: Java Edition servers.
### Server Ports
DragonProxy need 2 port (default 19132)
| Port | default |
|---------|----------|
| Bind | 19132 |
| Remote | 25565 |
### Known Issues
Also see the [DragonProxy Github](https://github.com/DragonetMC/DragonProxy)

View File

@@ -1,63 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-04-20T12:13:53+02:00",
"name": "DragonProxy",
"author": "info@goover.de",
"description": "A proxy made to allow Minecraft: Bedrock Edition clients to connect to Minecraft: Java Edition servers.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar DragonProxy.jar",
"config": {
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind-port:\": \"bind-port: {{server.build.default.port}}\",\r\n \"max-players:\": \"max-players: {{server.build.env.MAX_PLAYERS}}\",\r\n \"remote-port:\": \"remote-port: {{server.build.env.RPORT}}\",\r\n \"remote-auth:\": \"remote-auth: {{server.build.env.REMOTE_AUTH}}\",\r\n \"xbox-auth:\": \"xbox-auth: {{server.build.env.XBOX_AUTH}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Done\",\r\n \"userInteraction\": []\r\n}",
"logs": "[]",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "apk update\r\napk --no-cache --update add curl jq wget\r\n\r\ncd \/mnt\/server\r\nrm -rf DragonProxy.jar\r\nwget https:\/\/ci.codemc.io\/job\/DragonetMC\/job\/DragonProxy\/lastBuild\/artifact\/bootstrap\/standalone\/target\/DragonProxy.jar\r\n\r\nrm -rf \/mnt\/server\/config.yml\r\ncat <<EOT > \/mnt\/server\/config.yml\r\n# -----------------------------------------------\r\n# DragonProxy Configuration (25\/03\/20)\r\n# https:\/\/github.com\/DragonetMC\/DragonProxy\r\n# -----------------------------------------------\r\n# DO NOT CHANGE THIS VARIABLE!!!!!!\r\nconfig-version: 2\r\n# DO NOT CHANGE THIS VARIABLE!!!!!!\r\n\r\nlocale: 'EN'\r\n\r\n# The IP and port the proxy will listen for connections on\r\n# '0.0.0.0' will bind to all IP addresses available on your device\r\nbind-address: '0.0.0.0'\r\nbind-port: 19132\r\n\r\n# The MOTD that will be shown on the MCPE server list\r\nmotd: 'DragonProxy'\r\nmotd2: 'https:\/\/github.com\/DragonetMC\/DragonProxy'\r\n\r\n# The maximum amount of players that can join the proxy\r\nmax-players: 1\r\n\r\n# The IP and port of the remote server to connect to\r\nremote-address: '127.0.0.1'\r\nremote-port: 25565\r\n\r\n# The authentication method used for connecting to the remote server.\r\n# Accepted values:\r\n# credentials : This will display a form when you join the proxy asking you to enter your Mojang credentials\r\n# offline : No authentication, cant join premium servers such as Hypixel\r\nremote-auth: credentials\r\n\r\n# Whether or not Bedrock clients should be authenticated with xbox live\r\nxbox-auth: false\r\n\r\n# Whether or not to use the motd and player count of the primary remote server\r\nping-passthrough: true\r\n\r\n# Player gameplay related settings\r\nplayer-settings:\r\n # Whether or not to translate commands sent from the remote server and display\r\n # them on the Bedrock client. This is currently experimental.\r\n enable-commands: false\r\n\r\n # Whether or not to enable auto jump\r\n auto-jump: true\r\n\r\n # Whether or not to fetch skins from Mojang's servers\r\n fetch-skins: true\r\n\r\nmetrics:\r\n enabled: true\r\n # DO NOT CHANGE\r\n server-uuid: donotchange_serveruuid\r\n\r\n# The amount of threads that will be used.\r\n# Only change if you know what you are doing\r\nthread-pool-size: 8\r\nEOT",
"container": "openjdk:8-jre-alpine",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Remote Port",
"description": "",
"env_variable": "RPORT",
"default_value": "25565",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Remote Auth",
"description": "The authentication method used for connecting to the remote server.\r\nAccepted values:\r\ncredentials : This will display a form when you join the proxy asking you to enter your Mojang credentials\r\noffline : No authentication, cant join premium servers such as Hypixel",
"env_variable": "REMOTE_AUTH",
"default_value": "credentials",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "XBox Auth",
"description": "Whether or not Bedrock clients should be authenticated with xbox live\r\n\r\nTRUE or FALSE",
"env_variable": "XBOX_AUTH",
"default_value": "false",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Max Players",
"description": "The maximum amount of players that can join the proxy",
"env_variable": "MAX_PLAYERS",
"default_value": "1",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}

View File

@@ -1,5 +1,13 @@
# Mineraft Cross Platform Proxies
### GeyserMC
[GeyserMC](https://github.com/GeyserMC/)
A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition.
#### Waterdog
[Waterdog](https://github.com/yesdog/Waterdog)
Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others.
Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others.

View File

@@ -3,10 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-10-15T03:54:24+00:00",
"exported_at": "2020-12-05T13:11:06+01:00",
"name": "Waterdog",
"author": "parker@pterodactyl.io",
"description": "Waterdog is fork of the well-known Waterfall, which is a fork of the well-known BungeeCord, server teleportation suite.",
"features": null,
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
@@ -17,7 +18,7 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ \"${SERVER_JARFILE}\" == \"*\\.jar\" ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/cross_platform\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ \"${SERVER_JARFILE}\" == \"*\\.jar\" ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}

View File

@@ -3,12 +3,13 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-11T15:24:12-04:00",
"exported_at": "2020-12-04T12:08:21-05:00",
"name": "Travertine",
"author": "parker@parkervcp.com",
"description": "Travertine is a fork of the well-known Waterfall server teleportation suite.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"description": "Travertine is a fork of Waterfall with 1.7 protocol support. Waterfall is a fork of the well-known BungeeCord server teleportation suite.",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}",
@@ -17,7 +18,7 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n echo -e \"getting latest supported mc version and latest paper build\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r '.versions[0]')\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n VER_EXISTS=true\r\n else\r\n echo -e \"checking if version ${MINECRAFT_VERSION} exists\"\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r --arg VERSION ${MINECRAFT_VERSION} '.versions[] | contains($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest travertine version\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r '.versions[0]')\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | contains($BUILD)' | grep true)\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build for version ${MINECRAFT_VERSION}\"\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\nif [ -z ${SERVER_JARFILE} ]; then\r\n SERVER_JARFILE=server.jar\r\nfi\r\n\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading travertine config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/travertine\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"script": "#!\/bin\/bash\r\n# Travertine Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=travertine\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
@@ -28,35 +29,35 @@
"description": "The version of Minecraft that water was built to support.",
"env_variable": "MINECRAFT_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|alpha_num|between:1,6"
},
{
"name": "Waterfall Jar File",
"description": "The name of the Jarfile to use when running Waterfall.",
"name": "Travertine Jar File",
"description": "The name of the jar file to use when running Travertine.",
"env_variable": "SERVER_JARFILE",
"default_value": "waterfall.jar",
"user_viewable": 1,
"user_editable": 1,
"default_value": "travertine.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Download Link",
"description": "A link to the server jar to download the waterfall jar.",
"description": "A link to the server jar to download the Travertine jar.",
"env_variable": "DL_LINK",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Waterfall build number",
"name": "Travertine build number",
"description": "Default is latest.\r\n\r\nif set to latest or an invalid version will grab the latest build number.",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]

View File

@@ -3,21 +3,22 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-07-14T20:36:29-04:00",
"exported_at": "2020-11-22T01:50:29-05:00",
"name": "Velocity",
"author": "parker@parkervcp.com",
"description": "Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:adoptopenjdk-15-hotspot",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"velocity.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind = \": \"bind = \\\"0.0.0.0:{{server.build.default.port}}\\\"\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Done (\"\r\n}",
"logs": "{}",
"stop": "shutdown"
"stop": "end"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache curl\r\n\r\nmkdir -p \/mnt\/server\/\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z ${VELOCITY_VERSION} ] || [ ${VELOCITY_VERSION} == \"latest\" ]; then\r\n\tVELOCITY_VERSION=\/lastStableBuild\r\nfi\r\n\r\necho -e \"Getting download link\"\r\nDOWNLOAD_ENDPOINT=$(curl https:\/\/ci.velocitypowered.com\/job\/velocity\/${VELOCITY_VERSION}\/ | grep -Eo 'href=\"[^\\\"]+\"' | grep -vE \"view|fingerprint\" | grep \".jar\" | sed -n 's\/.*href=\"\\([^\"]*\\).*\/\\1\/p')\r\nDOWNLOAD_LINK=https:\/\/ci.velocitypowered.com\/job\/velocity\/lastStableBuild\/${DOWNLOAD_ENDPOINT}\r\n\r\necho -e \"Downloading ${DOWNLOAD_LINK}\"\r\ncurl ${DOWNLOAD_LINK} -o ${SERVER_JARFILE}\r\n\r\nif [ -f velocity.toml ]; then\r\n echo -e \"velocity config file exists\"\r\nelse\r\n echo -e \"downloading velocity config file.\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/proxy\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\n\r\necho -e \"install complete\"",
"script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache curl\r\n\r\nmkdir -p \/mnt\/server\/\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z ${VELOCITY_VERSION} ] || [ ${VELOCITY_VERSION} == \"latest\" ]; then\r\n\tVELOCITY_VERSION=\"latest\"\r\nfi\r\n\r\necho -e \"Getting download link\"\r\nDOWNLOAD_LINK=https:\/\/versions.velocitypowered.com\/download\/${VELOCITY_VERSION}\r\n\r\necho -e \"Downloading ${DOWNLOAD_LINK}\"\r\ncurl ${DOWNLOAD_LINK} -o ${SERVER_JARFILE}\r\n\r\nif [ -f velocity.toml ]; then\r\n echo -e \"velocity config file exists\"\r\nelse\r\n echo -e \"downloading velocity config file.\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "alpine:3.10",
"entrypoint": "ash"
}
@@ -25,20 +26,20 @@
"variables": [
{
"name": "Velocity Version",
"description": "The Velocity Proxy version to download.\r\n\r\nset to 'latest ' the download the last stable build.",
"description": "The Velocity Proxy version to download.\r\n\r\nSet to 'latest ' the download the last stable build.\r\nSet to '1.1.x-SNAPSHOT' to get the latest dev build.",
"env_variable": "VELOCITY_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 0,
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:20"
},
{
"name": "Server Jar File",
"description": "Server Jar File name",
"description": "Server Jarfile, by default this is set to 'velocity.jar'.\r\nSet it to otherwise if you wish to have a different jarfile name.",
"env_variable": "SERVER_JARFILE",
"default_value": "velocity.jar",
"user_viewable": 1,
"user_editable": 0,
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:20"
}
]

View File

@@ -1,106 +1,135 @@
# Config version. Do not change this
config-version = "1.0"
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25577"
# What should be the MOTD? This gets displayed when the player adds your server to
# their server list. Legacy color codes and JSON are accepted.
motd = "&3A Velocity Server"
# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 500
# Should we authenticate players with Mojang? By default, this is on.
online-mode = true
# If client's ISP/AS sent from this proxy is different from the one from Mojang's
# authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection.
prevent-client-proxy-connections = false
# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none": No forwarding will be done. All players will appear to be connecting from the
# proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this if
# you run servers using Minecraft 1.12 or lower.
# - "modern": Forward player IPs and UUIDs as part of the login process using Velocity's
# native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "NONE"
# If you are using modern IP forwarding, configure an unique secret here.
forwarding-secret = "FrP42MxySW6Y"
# - "none": No forwarding will be done. All players will appear to be connecting
# from the proxy and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
# if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
# plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
# unable to implement network level firewalling (on a shared host).
# - "modern": Forward player IPs and UUIDs as part of the login process using
# Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "legacy"
# If you are using modern or BungeeGuard IP forwarding, configure an unique secret here.
forwarding-secret = ""
# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
#
# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
# instead for a nicer display in the server list.
announce-forge = false
# If enabled (default is false) and the proxy is in online mode, Velocity will kick
# any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false
# Should Velocity pass server list ping requests to a backend server?
# Available options:
# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
# will determine the initial server list ping response.
# - "mods": Passes only the mod list from your backend server into the response.
# The first server in your try list (or forced host) with a mod list will be
# used. If no backend servers can be contacted, Velocity won't display any
# mod information.
# - "description": Uses the description and mod list from the backend server. The first
# server in the try (or forced host) list that responds is used for the
# description and mod list.
# - "all": Uses the backend server's response as the proxy response. The Velocity
# configuration is used if no servers could be contacted.
ping-passthrough = "DISABLED"
[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
lobby = "127.0.0.1:30066"
minigames = "127.0.0.1:30068"
factions = "127.0.0.1:30067"
# In what order we should try servers when a player logs in or is kicked from aserver.
try = [
"lobby"
]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.
lobby = "127.0.0.1:30066"
minigames = "127.0.0.1:30068"
# In what order we should try servers when a player logs in or is kicked from aserver.
try = ["lobby"]
factions = "127.0.0.1:30067"
[forced-hosts]
# Configure your forced hosts here.
"minigames.example.com" = [
"minigames"
]
"lobby.example.com" = [
"lobby"
]
"factions.example.com" = [
"factions"
]
"minigames.example.com" = ["minigames"]
# Configure your forced hosts here.
"lobby.example.com" = ["lobby"]
"factions.example.com" = ["factions"]
[advanced]
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256
# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1
# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000
# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000
# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000
# Enables compatibility with HAProxy.
proxy-protocol = false
# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000
# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true
# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000
# Enables compatibility with HAProxy.
proxy-protocol = false
# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
tcp-fast-open = true
# Shows ping requests to the proxy from clients.
show-ping-requests = false
# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
# loses connection to the server without an explicit disconnect message by attempting to fall the
# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
# can disable this setting to use the BungeeCord behavior.
failover-on-unexpected-server-disconnect = true
# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1
# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true
# Enables the logging of commands
log-command-executions = false
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256
# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000
[query]
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = false
# If query is enabled, on what port should the query protocol listen on?
port = 25577
# This is the map name that is reported to the query services.
map = "Velocity"
# Whether plugins should be shown in query response by default or not
show-plugins = false
# If query is enabled, on what port should the query protocol listen on?
port = 25577
# Whether plugins should be shown in query response by default or not
show-plugins = false
# This is the map name that is reported to the query services.
map = "Velocity"
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = false
[metrics]
# Whether metrics will be reported to bStats (https://bstats.org).
# bStats collects some basic information, like how many people use Velocity and their
# player count. We recommend keeping bStats enabled, but if you're not comfortable with
# this, you can turn this setting off. There is no performance penalty associated with
# having metrics enabled, and data sent to bStats can't identify your server.
enabled = true
# A unique, anonymous ID to identify this proxy with.
id = "b12f2e77-133c-4a5f-b288-d8833be3dc4d"
log-failure = false
# A unique, anonymous ID to identify this proxy with.
id = ""
log-failure = false
# Whether metrics will be reported to bStats (https://bstats.org).
# bStats collects some basic information, like how many people use Velocity and their
# player count. We recommend keeping bStats enabled, but if you're not comfortable with
# this, you can turn this setting off. There is no performance penalty associated with
# having metrics enabled, and data sent to bStats can't identify your server.
enabled = false
# Legacy color codes and JSON are accepted in all messages.
[messages]
generic-connection-error = "&cAn internal error occurred in your connection."
already-connected = "&cYou are already connected to this proxy!"
online-mode-only = "&cThis server only accepts connections from online-mode clients.\n\n&7Did you change your username? Sign out of Minecraft, sign back in, and try again."
# Prefix when the player is disconnected from a server.
# First argument '%s': the server name
disconnect-prefix = "&cCan't connect to %s: "
no-available-servers = "&cThere are no available servers."
# Prefix when the player gets kicked from a server.
# First argument '%s': the server name
kick-prefix = "&cKicked from %s: "
moved-to-new-server-prefix = "&cThe server you were on kicked you: "

View File

@@ -3,12 +3,13 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-06-03T16:13:49-04:00",
"exported_at": "2020-12-04T12:08:21-05:00",
"name": "Waterfall",
"author": "hostmaster@waterfallgaming.net",
"description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}",
@@ -17,7 +18,7 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n echo -e \"getting latest supported mc version and latest paper build\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n VER_EXISTS=true\r\n else\r\n echo -e \"checking if version ${MINECRAFT_VERSION} exists\"\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION ${MINECRAFT_VERSION} '.versions[] | contains($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | contains($BUILD)' | grep true)\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build for version ${MINECRAFT_VERSION}\"\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\nif [ -z ${SERVER_JARFILE} ]; then\r\n SERVER_JARFILE=server.jar\r\nfi\r\n\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"script": "#!\/bin\/bash\r\n# Waterfall Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=waterfall\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n\techo -e \"Downloading ${PROJECT} config.yml\"\r\n\tcurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n\techo -e \"${PROJECT} config.yml exists. Will not pull a new file\"\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
@@ -25,29 +26,29 @@
"variables": [
{
"name": "Minecraft Version",
"description": "The version of Minecraft that water was built to support.",
"description": "The version of Minecraft that Waterfall was built to support.",
"env_variable": "MINECRAFT_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|alpha_num|between:1,6"
},
{
"name": "Waterfall Jar File",
"description": "The name of the Jarfile to use when running Waterfall.",
"description": "The name of the jar file to use when running Waterfall.",
"env_variable": "SERVER_JARFILE",
"default_value": "waterfall.jar",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Download Link",
"description": "A link to the server jar to download the waterfall jar.",
"description": "A link to the server jar to download the Waterfall jar.",
"env_variable": "DL_LINK",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
@@ -55,9 +56,9 @@
"description": "Default is latest.\r\n\r\nif set to latest or an invalid version will grab the latest build number.",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}
}