diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java index a023e0e8e..6d29db907 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java @@ -130,6 +130,7 @@ public class ResourcePackLoader implements RegistryLoader { diff --git a/core/src/test/resources/configuration/chew/before.yml b/core/src/test/resources/configuration/chew/before.yml new file mode 100644 index 000000000..247f19f63 --- /dev/null +++ b/core/src/test/resources/configuration/chew/before.yml @@ -0,0 +1,146 @@ +# -------------------------------- +# Geyser Configuration File +# +# A bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. +# +# GitHub: https://github.com/GeyserMC/Geyser +# Discord: https://discord.geysermc.org/ +# -------------------------------- + +bedrock: + # The IP address that will listen for connections. + # There is no reason to change this unless you want to limit what IPs can connect to your server. + address: 0.0.0.0 + # The port that will listen for connections + port: 19132 + # Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock. + # This option makes the Bedrock port the same as the Java port every time you start the server. + # This option is for the plugin version only. + clone-remote-port: false + # The MOTD that will be broadcasted to Minecraft: Bedrock Edition clients. This is irrelevant if "passthrough-motd" is set to true + motd1: "gsauta" + motd2: "owo" + # The Server Name that will be sent to Minecraft: Bedrock Edition clients. This is visible in both the pause menu and the settings menu. + server-name: "GSA" +remote: + # The IP address of the remote (Java Edition) server + # If it is "auto", for standalone version the remote address will be set to 127.0.0.1, + # for plugin versions, Geyser will attempt to find the best address to connect to. + address: auto + # The port of the remote (Java Edition) server + # For plugin versions, if address has been set to "auto", the port will also follow the server's listening port. + port: 25565 + # Authentication type. Can be offline, online, or floodgate (see https://github.com/GeyserMC/Geyser/wiki/Floodgate). + auth-type: floodgate + +# Floodgate uses encryption to ensure use from authorised sources. +# This should point to the public key generated by Floodgate (Bungee or CraftBukkit) +# You can ignore this when not using Floodgate. +floodgate-key-file: public-key.pem + +## the Xbox/MCPE username is the key for the Java server auth-info +## this allows automatic configuration/login to the remote Java server +## if you are brave/stupid enough to put your Mojang account info into +## a config file +#userAuths: +# bluerkelp2: # MCPE/Xbox username +# email: not_really_my_email_address_mr_minecrafter53267@gmail.com # Mojang account email address +# password: "this isn't really my password" +# +# herpderp40300499303040503030300500293858393589: +# email: herpderp@derpherp.com +# password: dooooo + +# Bedrock clients can freeze when opening up the command prompt for the first time if given a lot of commands. +# Disabling this will prevent command suggestions from being sent and solve freezing for Bedrock clients. +command-suggestions: true + +# The following three options enable "ping passthrough" - the MOTD, player count and/or protocol name gets retrieved from the Java server. +# Relay the MOTD from the remote server to Bedrock players. +passthrough-motd: false +# Relay the protocol name (e.g. BungeeCord [X.X], Paper 1.X) - only really useful when using a custom protocol name! +# This will also show up on sites like MCSrvStatus. +passthrough-protocol-name: false +# Relay the player count and max players from the remote server to Bedrock players. +passthrough-player-counts: false +# Enable LEGACY ping passthrough. There is no need to enable this unless your MOTD or player count does not appear properly. +# This option does nothing on standalone. +legacy-ping-passthrough: false +# How often to ping the remote server, in seconds. Only relevant for standalone or legacy ping passthrough. +# Increase if you are getting BrokenPipe errors. +ping-passthrough-interval: 3 + +# Maximum amount of players that can connect +max-players: 100 + +# If debug messages should be sent through console +debug-mode: false + +# Thread pool size +general-thread-pool: 32 + +# Allow third party capes to be visible. Currently allowing: +# OptiFine capes, LabyMod capes, 5Zig capes and MinecraftCapes +allow-third-party-capes: true + +# Allow third party deadmau5 ears to be visible. Currently allowing: +# MinecraftCapes +allow-third-party-ears: false + +# Allow a fake cooldown indicator to be sent. Bedrock players do not see a cooldown as they still use 1.8 combat +show-cooldown: true + +# The default locale if we dont have the one the client requested. Uncomment to not use the default system language. +# default-locale: en_us + +# Configures if chunk caching should be enabled or not. This keeps an individual +# record of each block the client loads in. While this feature does allow for a few +# things such as block break animations to show up in creative mode and among others, +# it is HIGHLY recommended you disable this on a production environment as it can eat +# up a lot of RAM. However, when using the Spigot version of Geyser, support for features +# or implementations this allows is automatically enabled without the additional caching as +# Geyser has direct access to the server itself. +cache-chunks: false + +# Specify how many days images will be cached to disk to save downloading them from the internet. +# A value of 0 is disabled. (Default: 0) +cache-images: 0 + +# Bedrock prevents building and displaying blocks above Y127 in the Nether - +# enabling this config option works around that by changing the Nether dimension ID +# to the End ID. The main downside to this is that the sky will resemble that of +# the end sky in the nether, but ultimately it's the only way for this feature to work. +above-bedrock-nether-building: false + +# Force clients to load all resource packs if there are any. +# If set to false it allows the user to disconnect from the server if they don't +# want to download the resource packs +force-resource-packs: true + +# bStats is a stat tracker that is entirely anonymous and tracks only basic information +# about Geyser, such as how many people are online, how many servers are using Geyser, +# what OS is being used, etc. You can learn more about bStats here: https://bstats.org/. +# https://bstats.org/plugin/server-implementation/GeyserMC +metrics: + # If metrics should be enabled + enabled: true + # UUID of server, don't change! + uuid: ff99f931-ff7f-4dfc-a027-4bd15edc5980 + +# ADVANCED OPTIONS - DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING! + +# Geyser updates the Scoreboard after every Scoreboard packet, but when Geyser tries to handle +# a lot of scoreboard packets per second can cause serious lag. +# This option allows you to specify after how many Scoreboard packets per seconds +# the Scoreboard updates will be limited to four updates per second. +scoreboard-packet-threshold: 20 + +# Allow connections from ProxyPass and Waterdog. +# See https://www.spigotmc.org/wiki/firewall-guide/ for assistance - use UDP instead of TCP. +enable-proxy-connections: false + +# The internet supports a maximum MTU of 1492 but could cause issues with packet fragmentation. +# 1400 is the default. +# mtu: 1400 + +config-version: 4 diff --git a/core/src/test/resources/configuration/chew/plugin.yml b/core/src/test/resources/configuration/chew/plugin.yml new file mode 100644 index 000000000..0e568a7d3 --- /dev/null +++ b/core/src/test/resources/configuration/chew/plugin.yml @@ -0,0 +1,237 @@ +# -------------------------------- +# Geyser Configuration File +# +# A bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. +# +# GitHub: https://github.com/GeyserMC/Geyser +# Discord: https://discord.gg/geysermc +# Wiki: https://geysermc.org/wiki +# +# NOTICE: See https://geysermc.org/wiki/geyser/setup/ for the setup guide. Many video tutorials are outdated. +# In most cases, especially with server hosting providers, further hosting-specific configuration is required. +# -------------------------------- + +# Network settings for the Bedrock listener +bedrock: + # The IP address that Geyser will bind on to listen for incoming Bedrock connections. + # Generally, you should only change this if you want to limit what IPs can connect to your server. + address: 0.0.0.0 + + # The port that will Geyser will listen on for incoming Bedrock connections. + # Since Minecraft: Bedrock Edition uses UDP, this port must allow UDP traffic. + port: 19132 + + # Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock. + # This option makes the Bedrock port the same as the Java port every time you start the server. + clone-remote-port: false + +# Network settings for the Java server connection +java: + # What type of authentication Bedrock players will be checked against when logging into the Java server. + # Can be "floodgate" (see https://wiki.geysermc.org/floodgate/), "online", or "offline". + auth-type: floodgate + +# MOTD settings +motd: + # The MOTD that will be broadcasted to Minecraft: Bedrock Edition clients. This is irrelevant if "passthrough-motd" is set to true. + # If either of these are empty, the respective string will default to "Geyser" + primary-motd: gsauta + secondary-motd: owo + + # Whether Geyser should relay the MOTD from the Java server to Bedrock players. + passthrough-motd: false + + # Maximum amount of players that can connect. + # This is only visual, and is only applied if passthrough-motd is disabled. + max-players: 100 + + # Whether to relay the player count and max players from the Java server to Bedrock players. + passthrough-player-counts: false + + # Whether to use server API methods to determine the Java server's MOTD and ping passthrough. + # There is no need to disable this unless your MOTD or player count does not appear properly. + integrated-ping-passthrough: true + + # How often to ping the Java server to refresh MOTD and player count, in seconds. + # Only relevant if integrated-ping-passthrough is disabled. + ping-passthrough-interval: 3 + +# Gameplay options that affect Bedrock players +gameplay: + # The server name that will be sent to Minecraft: Bedrock Edition clients. This is visible in both the pause menu and the settings menu. + server-name: GSA + + # Allow a fake cooldown indicator to be sent. Bedrock players otherwise do not see a cooldown as they still use 1.8 combat. + # Please note: if the cooldown is enabled, some users may see a black box during the cooldown sequence, like below: + # https://geysermc.org/img/external/cooldown_indicator.png + # This can be disabled by going into Bedrock settings under the accessibility tab and setting "Text Background Opacity" to 0 + # This setting can be set to "title", "actionbar" or "false" + show-cooldown: title + + # Bedrock clients can freeze when opening up the command prompt for the first time if given a lot of commands. + # Disabling this will prevent command suggestions from being sent and solve freezing for Bedrock clients. + command-suggestions: true + + # Controls if coordinates are shown to players. + show-coordinates: true + + # Whether Bedrock players are blocked from performing their scaffolding-style bridging. + disable-bedrock-scaffolding: false + + # Bedrock prevents building and displaying blocks above Y127 in the Nether. + # This config option works around that by changing the Nether dimension ID to the End ID. + # The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. + nether-roof-workaround: false + + # Whether to show Bedrock Edition emotes to other Bedrock Edition players. + show-emotes: true + + # Which item to use to mark unavailable slots in a Bedrock player inventory. Examples of this are the 2x2 crafting grid while in creative, + # or custom inventory menus with sizes different from the usual 3x9. A barrier block is the default item. + # This config option can be set to any Bedrock item identifier. If you want to set this to a custom item, make sure that you specify the item in the following format: "geyser_custom:" + unusable-space-block: minecraft:barrier + + # Whether to add any items and blocks which normally does not exist in Bedrock Edition. + # This should only need to be disabled if using a proxy that does not use the "transfer packet" style of server switching. + # If this is disabled, furnace minecart items will be mapped to hopper minecart items. + # Geyser's block, item, and skull mappings systems will also be disabled. + # This option requires a restart of Geyser in order to change its setting. + enable-custom-content: true + + # Force clients to load all resource packs if there are any. + # If set to false, it allows the user to connect to the server even if they don't + # want to download the resource packs. + force-resource-packs: true + + # Whether to automatically serve a resource pack that is required for some Geyser features to all connecting Bedrock players. + # If enabled, force-resource-packs will be enabled. + enable-integrated-pack: true + + # Whether to forward player ping to the server. While enabling this will allow Bedrock players to have more accurate + # ping, it may also cause players to time out more easily. + forward-player-ping: false + + # Allows Xbox achievements to be unlocked. + # If a player types in an unknown command, they will receive a message that states cheats are disabled. + # Otherwise, commands work as expected. + xbox-achievements-enabled: false + + # The maximum number of custom skulls to be displayed per player. Increasing this may decrease performance on weaker devices. + # A value of 0 will disable all custom skulls. + # Setting this to -1 will cause all custom skulls to be displayed regardless of distance or number. + max-visible-custom-skulls: 128 + + # The radius in blocks around the player in which custom skulls are displayed. + custom-skull-render-distance: 32 + +# The default locale if we don't have the one the client requested. If set to "system", the system's language will be used. +default-locale: system + +# Whether player IP addresses will be logged by the server. +log-player-ip-addresses: true + +# For online mode authentication type only. +# Stores a list of Bedrock player usernames that should have their Java Edition account saved after login. +# This saves a token that can be reused to authenticate the player later. This does not save emails or passwords, +# but you should still be cautious when adding to this list and giving others access to this Geyser instance's files. +# Removing a name from this list will delete its cached login information on the next Geyser startup. +# The file that tokens will be saved in is in the same folder as this config, named "saved-refresh-tokens.json". +saved-user-logins: + - ThisExampleUsernameShouldBeLongEnoughToNeverBeAnXboxUsername + - ThisOtherExampleUsernameShouldAlsoBeLongEnough + +# For online mode authentication type only. +# Specify how many seconds to wait while user authorizes Geyser to access their Microsoft account. +# User is allowed to disconnect from the server during this period. +pending-authentication-timeout: 120 + +# Whether to alert the console and operators that a new Geyser version is available that supports a Bedrock version +# that this Geyser version does not support. It's recommended to keep this option enabled, as many Bedrock platforms +# auto-update. +notify-on-new-bedrock-update: true + +# Advanced configuration options. These usually do not need modifications. +advanced: + # Specify how many days player skin images will be cached to disk to save downloading them from the internet. + # A value of 0 is disabled. (Default: 0) + cache-images: 0 + + # Geyser updates the Scoreboard after every Scoreboard packet, but when Geyser tries to handle + # a lot of scoreboard packets per second, this can cause serious lag. + # This option allows you to specify after how many Scoreboard packets per seconds + # the Scoreboard updates will be limited to four updates per second. + scoreboard-packet-threshold: 20 + + # Whether Geyser should send team names in command suggestions. + # Disable this if you have a lot of teams used that you don't need as suggestions. + add-team-suggestions: true + + # A list of remote resource pack urls to send to the Bedrock client for downloading. + # The Bedrock client is very picky about how these are delivered - please see our wiki page for further info: https://geysermc.org/wiki/geyser/packs/ + resource-pack-urls: [] + + # Floodgate uses encryption to ensure use from authorized sources. + # This should point to the public key generated by Floodgate (BungeeCord, Spigot or Velocity) + # You can ignore this when not using Floodgate. + # If you're using a plugin version of Floodgate on the same server, the key will automatically be picked up from Floodgate. + floodgate-key-file: key.pem + + # Advanced networking options for the Geyser to Java server connection + java: + # Whether to enable HAPROXY protocol when connecting to the Java server. + # This is useful only when: + # 1) Your Java server supports HAPROXY protocol (it probably doesn't) + # 2) You run Velocity or BungeeCord with the option enabled in the proxy's main config. + # IF YOU DON'T KNOW WHAT THIS IS, DON'T TOUCH IT! + use-haproxy-protocol: false + + # Whether to connect directly into the Java server without creating a TCP connection. + # This should only be disabled if a plugin that interfaces with packets or the network does not work correctly with Geyser. + # If enabled, the remote address and port sections are ignored. + # If disabled, expect performance decrease and latency increase. + use-direct-connection: true + + # Whether Geyser should attempt to disable packet compression (from the Java Server to Geyser) for Bedrock players. + # This should be a benefit as there is no need to compress data when Java packets aren't being handled over the network. + # This requires use-direct-connection to be true. + disable-compression: true + + # Advanced networking options for Geyser's Bedrock listener + bedrock: + # The port to broadcast to Bedrock clients with the MOTD that they should use to connect to the server. + # A value of 0 will broadcast the port specified above. + # DO NOT change this unless Geyser runs on a different port than the one that is used to connect. + broadcast-port: 0 + + # How much to compress network traffic to the Bedrock client. The higher the number, the more CPU usage used, but + # the smaller the bandwidth used. Does not have any effect below -1 or above 9. Set to -1 to disable. + compression-level: 6 + + # Whether to expect HAPROXY protocol for connecting Bedrock clients. + # This is useful only when you are running a UDP reverse proxy in front of your Geyser instance. + # IF YOU DON'T KNOW WHAT THIS IS, DON'T TOUCH IT! + use-haproxy-protocol: false + + # A list of allowed HAPROXY protocol speaking proxy IP addresses/subnets. Only effective when "use-proxy-protocol" is enabled, and + # should really only be used when you are not able to use a proper firewall (usually true with shared hosting providers etc.). + # Keeping this list empty means there is no IP address whitelist. + # IP addresses, subnets, and links to plain text files are supported. + haproxy-protocol-whitelisted-ips: [] + + # The internet supports a maximum MTU of 1492 but could cause issues with packet fragmentation. + # 1400 is the default. + mtu: 1400 + + # This option disables the auth step Geyser performs for connecting Bedrock players. + # It can be used to allow connections from ProxyPass and WaterdogPE. In these cases, make sure that users + # cannot directly connect to this Geyser instance. See https://www.spigotmc.org/wiki/firewall-guide/ for + # assistance - and use UDP instead of TCP. + # Disabling Bedrock authentication for other use-cases is NOT SUPPORTED, as it allows anyone to spoof usernames, and is therefore a security risk. + # All Floodgate functionality (including skin uploading and account linking) will also not work when this option is disabled. + validate-bedrock-login: true + +# If debug messages should be sent through console +debug-mode: false + +# Do not change! +config-version: 5 diff --git a/core/src/test/resources/configuration/chew/remote.yml b/core/src/test/resources/configuration/chew/remote.yml new file mode 100644 index 000000000..0bcfcbe9e --- /dev/null +++ b/core/src/test/resources/configuration/chew/remote.yml @@ -0,0 +1,236 @@ +# -------------------------------- +# Geyser Configuration File +# +# A bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. +# +# GitHub: https://github.com/GeyserMC/Geyser +# Discord: https://discord.gg/geysermc +# Wiki: https://geysermc.org/wiki +# +# NOTICE: See https://geysermc.org/wiki/geyser/setup/ for the setup guide. Many video tutorials are outdated. +# In most cases, especially with server hosting providers, further hosting-specific configuration is required. +# -------------------------------- + +# Network settings for the Bedrock listener +bedrock: + # The IP address that Geyser will bind on to listen for incoming Bedrock connections. + # Generally, you should only change this if you want to limit what IPs can connect to your server. + address: 0.0.0.0 + + # The port that will Geyser will listen on for incoming Bedrock connections. + # Since Minecraft: Bedrock Edition uses UDP, this port must allow UDP traffic. + port: 19132 + +# Network settings for the Java server connection +java: + # The IP address of the Java Edition server. + address: 127.0.0.1 + + # The port of the Java Edition server. + port: 25565 + + # What type of authentication Bedrock players will be checked against when logging into the Java server. + # Can be "floodgate" (see https://wiki.geysermc.org/floodgate/), "online", or "offline". + auth-type: floodgate + + # Whether to forward the hostname that the Bedrock client used to connect over to the Java server. + # This is designed to be used for forced hosts on proxies. + forward-hostname: false + +# MOTD settings +motd: + # The MOTD that will be broadcasted to Minecraft: Bedrock Edition clients. This is irrelevant if "passthrough-motd" is set to true. + # If either of these are empty, the respective string will default to "Geyser" + primary-motd: gsauta + secondary-motd: owo + + # Whether Geyser should relay the MOTD from the Java server to Bedrock players. + passthrough-motd: false + + # Maximum amount of players that can connect. + # This is only visual, and is only applied if passthrough-motd is disabled. + max-players: 100 + + # Whether to relay the player count and max players from the Java server to Bedrock players. + passthrough-player-counts: false + + # How often to ping the Java server to refresh MOTD and player count, in seconds. + ping-passthrough-interval: 3 + +# Gameplay options that affect Bedrock players +gameplay: + # The server name that will be sent to Minecraft: Bedrock Edition clients. This is visible in both the pause menu and the settings menu. + server-name: GSA + + # Allow a fake cooldown indicator to be sent. Bedrock players otherwise do not see a cooldown as they still use 1.8 combat. + # Please note: if the cooldown is enabled, some users may see a black box during the cooldown sequence, like below: + # https://geysermc.org/img/external/cooldown_indicator.png + # This can be disabled by going into Bedrock settings under the accessibility tab and setting "Text Background Opacity" to 0 + # This setting can be set to "title", "actionbar" or "false" + show-cooldown: title + + # Bedrock clients can freeze when opening up the command prompt for the first time if given a lot of commands. + # Disabling this will prevent command suggestions from being sent and solve freezing for Bedrock clients. + command-suggestions: true + + # Controls if coordinates are shown to players. + show-coordinates: true + + # Whether Bedrock players are blocked from performing their scaffolding-style bridging. + disable-bedrock-scaffolding: false + + # Bedrock prevents building and displaying blocks above Y127 in the Nether. + # This config option works around that by changing the Nether dimension ID to the End ID. + # The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. + nether-roof-workaround: false + + # Whether to show Bedrock Edition emotes to other Bedrock Edition players. + show-emotes: true + + # Which item to use to mark unavailable slots in a Bedrock player inventory. Examples of this are the 2x2 crafting grid while in creative, + # or custom inventory menus with sizes different from the usual 3x9. A barrier block is the default item. + # This config option can be set to any Bedrock item identifier. If you want to set this to a custom item, make sure that you specify the item in the following format: "geyser_custom:" + unusable-space-block: minecraft:barrier + + # Whether to add any items and blocks which normally does not exist in Bedrock Edition. + # This should only need to be disabled if using a proxy that does not use the "transfer packet" style of server switching. + # If this is disabled, furnace minecart items will be mapped to hopper minecart items. + # Geyser's block, item, and skull mappings systems will also be disabled. + # This option requires a restart of Geyser in order to change its setting. + enable-custom-content: true + + # Force clients to load all resource packs if there are any. + # If set to false, it allows the user to connect to the server even if they don't + # want to download the resource packs. + force-resource-packs: true + + # Whether to automatically serve a resource pack that is required for some Geyser features to all connecting Bedrock players. + # If enabled, force-resource-packs will be enabled. + enable-integrated-pack: true + + # Whether to forward player ping to the server. While enabling this will allow Bedrock players to have more accurate + # ping, it may also cause players to time out more easily. + forward-player-ping: false + + # Allows Xbox achievements to be unlocked. + # If a player types in an unknown command, they will receive a message that states cheats are disabled. + # Otherwise, commands work as expected. + xbox-achievements-enabled: false + + # The maximum number of custom skulls to be displayed per player. Increasing this may decrease performance on weaker devices. + # A value of 0 will disable all custom skulls. + # Setting this to -1 will cause all custom skulls to be displayed regardless of distance or number. + max-visible-custom-skulls: 128 + + # The radius in blocks around the player in which custom skulls are displayed. + custom-skull-render-distance: 32 + +# The default locale if we don't have the one the client requested. If set to "system", the system's language will be used. +default-locale: system + +# Whether player IP addresses will be logged by the server. +log-player-ip-addresses: true + +# For online mode authentication type only. +# Stores a list of Bedrock player usernames that should have their Java Edition account saved after login. +# This saves a token that can be reused to authenticate the player later. This does not save emails or passwords, +# but you should still be cautious when adding to this list and giving others access to this Geyser instance's files. +# Removing a name from this list will delete its cached login information on the next Geyser startup. +# The file that tokens will be saved in is in the same folder as this config, named "saved-refresh-tokens.json". +saved-user-logins: + - ThisExampleUsernameShouldBeLongEnoughToNeverBeAnXboxUsername + - ThisOtherExampleUsernameShouldAlsoBeLongEnough + +# For online mode authentication type only. +# Specify how many seconds to wait while user authorizes Geyser to access their Microsoft account. +# User is allowed to disconnect from the server during this period. +pending-authentication-timeout: 120 + +# Whether to alert the console and operators that a new Geyser version is available that supports a Bedrock version +# that this Geyser version does not support. It's recommended to keep this option enabled, as many Bedrock platforms +# auto-update. +notify-on-new-bedrock-update: true + +# Advanced configuration options. These usually do not need modifications. +advanced: + # Specify how many days player skin images will be cached to disk to save downloading them from the internet. + # A value of 0 is disabled. (Default: 0) + cache-images: 0 + + # Geyser updates the Scoreboard after every Scoreboard packet, but when Geyser tries to handle + # a lot of scoreboard packets per second, this can cause serious lag. + # This option allows you to specify after how many Scoreboard packets per seconds + # the Scoreboard updates will be limited to four updates per second. + scoreboard-packet-threshold: 20 + + # Whether Geyser should send team names in command suggestions. + # Disable this if you have a lot of teams used that you don't need as suggestions. + add-team-suggestions: true + + # A list of remote resource pack urls to send to the Bedrock client for downloading. + # The Bedrock client is very picky about how these are delivered - please see our wiki page for further info: https://geysermc.org/wiki/geyser/packs/ + resource-pack-urls: [] + + # Floodgate uses encryption to ensure use from authorized sources. + # This should point to the public key generated by Floodgate (BungeeCord, Spigot or Velocity) + # You can ignore this when not using Floodgate. + # If you're using a plugin version of Floodgate on the same server, the key will automatically be picked up from Floodgate. + floodgate-key-file: key.pem + + # Advanced networking options for the Geyser to Java server connection + java: + # Whether to enable HAPROXY protocol when connecting to the Java server. + # This is useful only when: + # 1) Your Java server supports HAPROXY protocol (it probably doesn't) + # 2) You run Velocity or BungeeCord with the option enabled in the proxy's main config. + # IF YOU DON'T KNOW WHAT THIS IS, DON'T TOUCH IT! + use-haproxy-protocol: false + + # Advanced networking options for Geyser's Bedrock listener + bedrock: + # The port to broadcast to Bedrock clients with the MOTD that they should use to connect to the server. + # A value of 0 will broadcast the port specified above. + # DO NOT change this unless Geyser runs on a different port than the one that is used to connect. + broadcast-port: 0 + + # How much to compress network traffic to the Bedrock client. The higher the number, the more CPU usage used, but + # the smaller the bandwidth used. Does not have any effect below -1 or above 9. Set to -1 to disable. + compression-level: 6 + + # Whether to expect HAPROXY protocol for connecting Bedrock clients. + # This is useful only when you are running a UDP reverse proxy in front of your Geyser instance. + # IF YOU DON'T KNOW WHAT THIS IS, DON'T TOUCH IT! + use-haproxy-protocol: false + + # A list of allowed HAPROXY protocol speaking proxy IP addresses/subnets. Only effective when "use-proxy-protocol" is enabled, and + # should really only be used when you are not able to use a proper firewall (usually true with shared hosting providers etc.). + # Keeping this list empty means there is no IP address whitelist. + # IP addresses, subnets, and links to plain text files are supported. + haproxy-protocol-whitelisted-ips: [] + + # The internet supports a maximum MTU of 1492 but could cause issues with packet fragmentation. + # 1400 is the default. + mtu: 1400 + + # This option disables the auth step Geyser performs for connecting Bedrock players. + # It can be used to allow connections from ProxyPass and WaterdogPE. In these cases, make sure that users + # cannot directly connect to this Geyser instance. See https://www.spigotmc.org/wiki/firewall-guide/ for + # assistance - and use UDP instead of TCP. + # Disabling Bedrock authentication for other use-cases is NOT SUPPORTED, as it allows anyone to spoof usernames, and is therefore a security risk. + # All Floodgate functionality (including skin uploading and account linking) will also not work when this option is disabled. + validate-bedrock-login: true + +# bStats is a stat tracker that is entirely anonymous and tracks only basic information +# about Geyser, such as how many people are online, how many servers are using Geyser, +# what OS is being used, etc. You can learn more about bStats here: https://bstats.org/. +# https://bstats.org/plugin/server-implementation/GeyserMC +enable-metrics: true + +# The bstats metrics uuid. Do not touch! +metrics-uuid: ff99f931-ff7f-4dfc-a027-4bd15edc5980 + +# If debug messages should be sent through console +debug-mode: false + +# Do not change! +config-version: 5