Merge pull request #1840 from DiscoverSquishy/master

Update velocity egg to accomodate for velocity's config changes
This commit is contained in:
Michael (Parker) Parker
2022-09-07 14:27:53 -04:00
committed by GitHub
2 changed files with 98 additions and 78 deletions

View File

@@ -29,7 +29,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=velocity\r\n\r\nif [[ -z ${VELOCITY_VERSION} ]] || [[ ${VELOCITY_VERSION} == \"latest\" ]]; then\r\n VELOCITY_VERSION=\"latest\"\r\nfi\r\n\r\nif [[ -n \"${DOWNLOAD_LINK}\" ]]; then\r\n echo -e \"Using supplied download url: ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_URL=$(eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g'))\r\nelse\r\n\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions[] | contains($VERSION)' | grep true)\r\n LATEST_VERSION=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')\r\n\r\n if [[ \"${VER_EXISTS}\" == \"true\" ]]; then\r\n echo -e \"Version is valid. Using version ${VELOCITY_VERSION}\"\r\n else\r\n\r\n echo -e \"Using the latest ${PROJECT} version\"\r\n VELOCITY_VERSION=${LATEST_VERSION}\r\n fi\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true)\r\n LATEST_BUILD=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[-1]')\r\n\r\n if [[ \"${BUILD_EXISTS}\" == \"true\" ]]; then\r\n echo -e \"Build is valid for version ${VELOCITY_VERSION}. Using build ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest ${PROJECT} build for version ${VELOCITY_VERSION}\"\r\n BUILD_NUMBER=${LATEST_BUILD}\r\n fi\r\n\r\n JAR_NAME=${PROJECT}-${VELOCITY_VERSION}-${BUILD_NUMBER}.jar\r\n\r\n echo \"Version being downloaded\"\r\n echo -e \"Velocity Version: ${VELOCITY_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n echo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\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\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\/game_eggs\/minecraft\/proxy\/java\/velocity\/velocity.toml -o velocity.toml\r\n\r\nfi\r\necho -e \"install complete\"", "script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=velocity\r\nif [[ -z ${VELOCITY_VERSION} ]] || [[ ${VELOCITY_VERSION} == \"latest\" ]]; then\r\nVELOCITY_VERSION=\"latest\"\r\nfi\r\nif [[ -n \"${DOWNLOAD_LINK}\" ]]; then\r\necho -e \"Using supplied download url: ${DOWNLOAD_LINK}\"\r\nDOWNLOAD_URL=$(eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g'))\r\nelse\r\nVER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions[] | contains($VERSION)' | grep true)\r\nLATEST_VERSION=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')\r\nif [[ \"${VER_EXISTS}\" == \"true\" ]]; then\r\necho -e \"Version is valid. Using version ${VELOCITY_VERSION}\"\r\nelse\r\necho -e \"Using the latest ${PROJECT} version\"\r\nVELOCITY_VERSION=${LATEST_VERSION}\r\nfi\r\nBUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true)\r\nLATEST_BUILD=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[-1]')\r\nif [[ \"${BUILD_EXISTS}\" == \"true\" ]]; then\r\necho -e \"Build is valid for version ${VELOCITY_VERSION}. Using build ${BUILD_NUMBER}\"\r\nelse\r\necho -e \"Using the latest ${PROJECT} build for version ${VELOCITY_VERSION}\"\r\nBUILD_NUMBER=${LATEST_BUILD}\r\nfi\r\nJAR_NAME=${PROJECT}-${VELOCITY_VERSION}-${BUILD_NUMBER}.jar\r\necho \"Version being downloaded\"\r\necho -e \"Velocity Version: ${VELOCITY_VERSION}\"\r\necho -e \"Build: ${BUILD_NUMBER}\"\r\necho -e \"JAR Name of Build: ${JAR_NAME}\"\r\nDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\ncd \/mnt\/server\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\nif [[ -f ${SERVER_JARFILE} ]]; then\r\nmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\nif [[ -f velocity.toml ]]; then\r\necho -e \"velocity config file exists\"\r\nelse\r\necho -e \"downloading velocity config file.\"\r\ncurl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\nif [[ -f forwarding.secret ]]; then\r\necho -e \"velocity forwarding secret file already exists\"\r\nelse\r\necho -e \"creating forwarding secret file\"\r\ntouch forwarding.secret\r\ndate +%s | sha256sum | base64 | head -c 12 > forwarding.secret\r\nfi\r\necho -e \"install complete\"",
"container": "ghcr.io\/pterodactyl\/installers:alpine", "container": "ghcr.io\/pterodactyl\/installers:alpine",
"entrypoint": "ash" "entrypoint": "ash"
} }
@@ -72,4 +72,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }

View File

@@ -1,19 +1,28 @@
# Config version. Do not change this # Config version. Do not change this
config-version = "1.0" config-version = "2.5"
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577. # 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" bind = "0.0.0.0:25577"
# What should be the MOTD? This gets displayed when the player adds your server to # 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. # their server list. Legacy color codes and JSON are accepted.
motd = "&3A Velocity Server" motd = "&#09add3A Velocity Server"
# What should we display for the maximum number of players? (Velocity does not support a cap # What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.) # on the number of players online.)
show-max-players = 500 show-max-players = 500
# Should we authenticate players with Mojang? By default, this is on. # Should we authenticate players with Mojang? By default, this is on.
online-mode = true online-mode = true
# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = true
# If client's ISP/AS sent from this proxy is different from the one from Mojang's # 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 # authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection. # connections but is a weak form of protection.
prevent-client-proxy-connections = false prevent-client-proxy-connections = false
# Should we forward IP addresses and other data to backend servers? # Should we forward IP addresses and other data to backend servers?
# Available options: # Available options:
# - "none": No forwarding will be done. All players will appear to be connecting # - "none": No forwarding will be done. All players will appear to be connecting
@@ -26,17 +35,22 @@ prevent-client-proxy-connections = false
# - "modern": Forward player IPs and UUIDs as part of the login process using # - "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. # Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "legacy" player-info-forwarding-mode = "legacy"
# If you are using modern or BungeeGuard IP forwarding, configure an unique secret here.
forwarding-secret = "" # If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"
# Announce whether or not your server supports Forge. If you run a modded server, we # Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on. # suggest turning this on.
# #
# If your network runs one modpack consistently, consider using ping-passthrough = "mods" # If your network runs one modpack consistently, consider using ping-passthrough = "mods"
# instead for a nicer display in the server list. # instead for a nicer display in the server list.
announce-forge = false announce-forge = false
# If enabled (default is false) and the proxy is in online mode, Velocity will kick # 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. # any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false kick-existing-players = false
# Should Velocity pass server list ping requests to a backend server? # Should Velocity pass server list ping requests to a backend server?
# Available options: # Available options:
# - "disabled": No pass-through will be done. The velocity.toml and server-icon.png # - "disabled": No pass-through will be done. The velocity.toml and server-icon.png
@@ -52,84 +66,90 @@ kick-existing-players = false
# configuration is used if no servers could be contacted. # configuration is used if no servers could be contacted.
ping-passthrough = "DISABLED" ping-passthrough = "DISABLED"
# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true
[servers] [servers]
# Configure your servers here. Each key represents the server's name, and the value # Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to. # represents the IP address of the server to connect to.
lobby = "127.0.0.1:30066" 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. minigames = "127.0.0.1:30068"
try = ["lobby"]
factions = "127.0.0.1:30067" # In what order we should try servers when a player logs in or is kicked from a server.
try = [
"lobby"
]
[forced-hosts] [forced-hosts]
"minigames.example.com" = ["minigames"] # Configure your forced hosts here.
# Configure your forced hosts here. "lobby.example.com" = [
"lobby.example.com" = ["lobby"] "lobby"
"factions.example.com" = ["factions"] ]
"factions.example.com" = [
"factions"
]
"minigames.example.com" = [
"minigames"
]
[advanced] [advanced]
# Specify a custom timeout for connection timeouts here. The default is five seconds. # How large a Minecraft packet has to be before we compress it. Setting this to zero will
connection-timeout = 5000 # compress all packets, and setting it to -1 will disable compression entirely.
# Enables BungeeCord plugin messaging channel support on Velocity. compression-threshold = 256
bungee-plugin-message-channel = true
# Specify a read timeout for connections here. The default is 30 seconds. # How much compression should be done (from 0-9). The default is -1, which uses the
read-timeout = 30000 # default level of 6.
# Enables compatibility with HAProxy. compression-level = -1
proxy-protocol = false
# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux. # How fast (in milliseconds) are clients allowed to connect after the last connection? By
tcp-fast-open = true # default, this is three seconds. Disable this by setting this to 0.
# Shows ping requests to the proxy from clients. login-ratelimit = 3000
show-ping-requests = false
# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly # Specify a custom timeout for connection timeouts here. The default is five seconds.
# loses connection to the server without an explicit disconnect message by attempting to fall the connection-timeout = 5000
# 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. # Specify a read timeout for connections here. The default is 30 seconds.
failover-on-unexpected-server-disconnect = true read-timeout = 30000
# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6. # Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
compression-level = -1 # don't enable it.
# Declares the proxy commands to 1.13+ clients. haproxy-protocol = false
announce-proxy-commands = true
# Enables the logging of commands # Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
log-command-executions = false tcp-fast-open = 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. # Enables BungeeCord plugin messaging channel support on Velocity.
compression-threshold = 256 bungee-plugin-message-channel = true
# 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. # Shows ping requests to the proxy from clients.
login-ratelimit = 3000 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
# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true
# Enables the logging of commands
log-command-executions = false
# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true
[query] [query]
# If query is enabled, on what port should the query protocol listen on? # Whether to enable responding to GameSpy 4 query responses or not.
port = 25577 enabled = false
# 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] # If query is enabled, on what port should the query protocol listen on?
# A unique, anonymous ID to identify this proxy with. port = 25577
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. # This is the map name that is reported to the query services.
[messages] map = "Velocity"
generic-connection-error = "&cAn internal error occurred in your connection."
already-connected = "&cYou are already connected to this proxy!" # Whether plugins should be shown in query response by default or not
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." show-plugins = false
# 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: "