1
0
mirror of https://github.com/GeyserMC/Geyser.git synced 2025-12-19 14:59:27 +00:00

Add "enable-emotes" configuration option

This commit is contained in:
onebeastchris
2025-11-12 22:01:38 +01:00
parent 5b73ba36ce
commit 97b16b677d
16 changed files with 751 additions and 3 deletions

View File

@@ -32,6 +32,7 @@ import org.spongepowered.configurate.transformation.ConfigurationTransformation;
import org.spongepowered.configurate.transformation.TransformAction; import org.spongepowered.configurate.transformation.TransformAction;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects;
import java.util.UUID; import java.util.UUID;
import java.util.function.Function; import java.util.function.Function;
@@ -105,9 +106,24 @@ public class ConfigMigrations {
return new Object[]{ "gameplay", "max-visible-custom-skulls" }; return new Object[]{ "gameplay", "max-visible-custom-skulls" };
}) })
.addAction(path("emote-offhand-workaround"), (path, value) -> { .addAction(path("emote-offhand-workaround"), (path, value) -> {
if (value.getBoolean()) { String previous = value.getString();
GeyserImpl.getInstance().getLogger().warning("The emote-offhand-workaround has been replaced with an official Geyser extension!"); if (!Objects.equals(previous, "disabled") && GeyserImpl.getInstance() != null) {
GeyserImpl.getInstance().getLogger().warning("The emote-offhand-workaround option has been removed from Geyser. If you still wish to have this functionality, use this Geyser extension: https://github.com/GeyserMC/EmoteOffhandExtension/");
} }
if (Objects.equals(previous, "no-emotes")) {
value.set(false);
return new Object[]{ "gameplay", "emotes-enabled" };
}
return null;
})
// For the warning!
.addAction(path("allow-third-party-capes"), (node, value) -> {
GeyserImpl.getInstance().getLogger().warning("Third-party ears/capes have been removed from Geyser. If you still wish to have this functionality, use this Geyser extension: https://github.com/GeyserMC/ThirdPartyCosmetics");
return null;
})
.addAction(path("allow-third-party-ears"), (node, value) -> {
GeyserImpl.getInstance().getLogger().warning("Third-party ears/capes have been removed from Geyser. If you still wish to have this functionality, use this Geyser extension: https://github.com/GeyserMC/ThirdPartyCosmetics");
return null; return null;
}) })

View File

@@ -286,6 +286,12 @@ public interface GeyserConfig {
The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome.""") The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome.""")
boolean netherRoofWorkaround(); boolean netherRoofWorkaround();
@Comment("""
Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
""")
@DefaultBoolean(true)
boolean emotesEnabled();
@Comment(""" @Comment("""
Which item to use to mark unavailable slots in a Bedrock player inventory. Examples of this are the 2x2 crafting grid while in creative, 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. or custom inventory menus with sizes different from the usual 3x9. A barrier block is the default item.

View File

@@ -26,6 +26,7 @@
package org.geysermc.geyser.translator.protocol.bedrock.entity.player; package org.geysermc.geyser.translator.protocol.bedrock.entity.player;
import org.cloudburstmc.protocol.bedrock.packet.EmotePacket; import org.cloudburstmc.protocol.bedrock.packet.EmotePacket;
import org.geysermc.geyser.GeyserImpl;
import org.geysermc.geyser.api.event.bedrock.ClientEmoteEvent; import org.geysermc.geyser.api.event.bedrock.ClientEmoteEvent;
import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.Entity;
import org.geysermc.geyser.entity.type.player.PlayerEntity; import org.geysermc.geyser.entity.type.player.PlayerEntity;
@@ -40,6 +41,10 @@ public class BedrockEmoteTranslator extends PacketTranslator<EmotePacket> {
public void translate(GeyserSession session, EmotePacket packet) { public void translate(GeyserSession session, EmotePacket packet) {
// For the future: could have a method that exposes which players will see the emote // For the future: could have a method that exposes which players will see the emote
ClientEmoteEvent event = new ClientEmoteEvent(session, packet.getEmoteId()); ClientEmoteEvent event = new ClientEmoteEvent(session, packet.getEmoteId());
if (!GeyserImpl.getInstance().config().gameplay().emotesEnabled()) {
event.setCancelled(true);
}
session.getGeyser().eventBus().fire(event); session.getGeyser().eventBus().fire(event);
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;

View File

@@ -101,6 +101,11 @@ public class ConfigLoaderTest {
testConfiguration("allow-custom-skulls"); testConfiguration("allow-custom-skulls");
} }
@Test
void testNoEmotesMigration() throws Exception {
testConfiguration("migrate-no-emotes");
}
@Test @Test
void testInvalidConfig() throws Exception { void testInvalidConfig() throws Exception {
streamResourceFiles(CONFIG_PREFIX + "/invalid").forEach(resource -> { streamResourceFiles(CONFIG_PREFIX + "/invalid").forEach(resource -> {

View File

@@ -128,7 +128,7 @@ disable-bedrock-scaffolding: true
# disabled - the default/fallback, which doesn't apply this workaround # disabled - the default/fallback, which doesn't apply this workaround
# no-emotes - emotes will NOT be sent to other Bedrock clients and offhand will be swapped. This effectively disables all emotes from being seen. # no-emotes - emotes will NOT be sent to other Bedrock clients and offhand will be swapped. This effectively disables all emotes from being seen.
# emotes-and-offhand - emotes will be sent to Bedrock clients and offhand will be swapped # emotes-and-offhand - emotes will be sent to Bedrock clients and offhand will be swapped
emote-offhand-workaround: "no-emotes" emote-offhand-workaround: "emotes-and-offhand"
# The default locale if we dont have the one the client requested. Uncomment to not use the default system language. # The default locale if we dont have the one the client requested. Uncomment to not use the default system language.
default-locale: en_uk default-locale: en_uk

View File

@@ -83,6 +83,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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: true nether-roof-workaround: true
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -84,6 +84,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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: true nether-roof-workaround: true
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -83,6 +83,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -84,6 +84,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -83,6 +83,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -84,6 +84,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -83,6 +83,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -84,6 +84,9 @@ gameplay:
# The main downside to this is that the entire Nether will have the same red fog rather than having different fog for each biome. # 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 nether-roof-workaround: false
# Whether to allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: 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, # 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. # 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:<mapping-name>" # 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:<mapping-name>"

View File

@@ -0,0 +1,219 @@
# --------------------------------
# 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://wiki.geysermc.org/
#
# NOTICE: See https://wiki.geysermc.org/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.
# --------------------------------
bedrock:
# The IP address that will listen for connections.
# Generally, you should only uncomment and change this if 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
# If either of these are empty, the respective string will default to "Geyser"
motd1: "Geyser"
motd2: "Another Geyser server."
# 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: "Geyser"
# 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
# The port to broadcast to Bedrock clients with the MOTD that they should use to connect to the server.
# DO NOT uncomment and change this unless Geyser runs on a different internal port than the one that is used to connect.
# broadcast-port: 19132
# Whether to enable PROXY protocol or not for clients. You DO NOT WANT this feature unless you run UDP reverse proxy
# in front of your Geyser instance.
enable-proxy-protocol: false
# A list of allowed PROXY protocol speaking proxy IP addresses/subnets. Only effective when "enable-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.
#proxy-protocol-whitelisted-ips: [ "127.0.0.1", "172.18.0.0/16", "https://example.com/whitelist.txt" ]
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, it is recommended to keep this as "auto" so Geyser will automatically configure address, port, and auth-type.
# Leave as "auto" if floodgate is installed.
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).
# For plugin versions, it's recommended to keep the `address` field to "auto" so Floodgate support is automatically configured.
# If Floodgate is installed and `address:` is set to "auto", then "auth-type: floodgate" will automatically be used.
auth-type: online
# Whether to enable PROXY protocol or not while connecting to the server.
# This is useful only when:
# 1) Your server supports PROXY 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-proxy-protocol: false
# 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
# Floodgate uses encryption to ensure use from authorised 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
# For online mode authentication type only.
# Stores a list of Bedrock players 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
# 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
# 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: true
# Relay the player count and max players from the remote server to Bedrock players.
passthrough-player-counts: true
# 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
# 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
# Maximum amount of players that can connect. This is only visual at this time and does not actually limit player count.
max-players: 100
# If debug messages should be sent through console
debug-mode: false
# 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://cdn.discordapp.com/attachments/613170125696270357/957075682230419466/Screenshot_from_2022-03-25_20-35-08.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
# 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
# If set, when a Bedrock player performs any emote, it will swap the offhand and mainhand items, just like the Java Edition keybind
# There are three options this can be set to:
# disabled - the default/fallback, which doesn't apply this workaround
# no-emotes - emotes will NOT be sent to other Bedrock clients and offhand will be swapped. This effectively disables all emotes from being seen.
# emotes-and-offhand - emotes will be sent to Bedrock clients and offhand will be swapped
emote-offhand-workaround: "no-emotes"
# The default locale if we dont have the one the client requested. Uncomment to not use the default system language.
# default-locale: en_us
# 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
# Allows custom skulls to be displayed. Keeping them enabled may cause a performance decrease on older/weaker devices.
allow-custom-skulls: false
# The maximum number of custom skulls to be displayed per player. Increasing this may decrease performance on weaker devices.
# 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
# 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.
add-non-bedrock-items: true
# 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.
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 connect to the server even if they don't
# want to download the resource packs.
force-resource-packs: true
# Allows Xbox achievements to be unlocked.
xbox-achievements-enabled: false
# Whether player IP addresses will be logged by the server.
log-player-ip-addresses: true
# 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
# 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.
unusable-space-block: minecraft:barrier
# 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: 00000000-0000-0000-0000-000000000000
# 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
# 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 on plugin versions, the remote address and port sections are ignored
# If disabled on plugin versions, expect performance decrease and latency increase
use-direct-connection: true
# Whether Geyser should attempt to disable compression 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
config-version: 4

View File

@@ -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: online
# 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: Geyser
secondary-motd: Another Geyser server.
# Whether Geyser should relay the MOTD from the Java server to Bedrock players.
passthrough-motd: true
# 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: true
# 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: Geyser
# 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 allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: false
# 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:<mapping-name>"
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: 0
# 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

View File

@@ -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: online
# 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: Geyser
secondary-motd: Another Geyser server.
# Whether Geyser should relay the MOTD from the Java server to Bedrock players.
passthrough-motd: true
# 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: true
# 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: Geyser
# 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 allow Bedrock Edition emotes to be sent to other Bedrock Edition players.
emotes-enabled: false
# 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:<mapping-name>"
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: 0
# 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: 00000000-0000-0000-0000-000000000000
# If debug messages should be sent through console
debug-mode: false
# Do not change!
config-version: 5