diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index ff63943..0000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,3 +0,0 @@ -_docs/ @GeyserMC/Moderators @GeyserMC/WikiAdmin @GeyserMC/Triage @GeyserMC/GeyserTeam -_data/ @GeyserMC/Moderators @GeyserMC/WikiAdmin @GeyserMC/Triage @GeyserMC/GeyserTeam -* @GeyserMC/WikiAdmin @GeyserMC/GeyserTeam diff --git a/.github/scripts/upload_algolia.rb b/.github/scripts/upload_algolia.rb new file mode 100644 index 0000000..a7dc38a --- /dev/null +++ b/.github/scripts/upload_algolia.rb @@ -0,0 +1,39 @@ +require 'algolia' +require 'json' + +APPLICATION_ID = ARGV[0] +API_KEY = ARGV[1] + +puts "Building client..." + +client = Algolia::Search::Client.create(APPLICATION_ID, API_KEY) +index = client.init_index('geyserwiki') + +puts "Building jekyll..." + +# Build the site +#`bundle exec jekyll build` Actions does this for us + +# Grab the data.json +# @type [Array] +data = JSON.parse(File.read('_site/search/data.json')) + +#puts "Data is #{data}" +puts "Data is #{data.length}" + +# Remove any data that url does not start with /floodgate, /geyser, or /other +data = data.delete_if { |d| !d['url'].start_with?('/floodgate', '/geyser', '/other') } + +# Add ObjectID to each data item with the value of the ID +data = data.map do |d| + d['objectID'] = d['id'] + d +end + +#puts "Data is #{data}" + +puts "Saving Objects" + +index.save_objects(data) + +puts "Done" \ No newline at end of file diff --git a/.github/workflows/algolia.yml b/.github/workflows/algolia.yml new file mode 100644 index 0000000..46495ab --- /dev/null +++ b/.github/workflows/algolia.yml @@ -0,0 +1,27 @@ +name: Index Algolia + +on: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repo content + uses: actions/checkout@v2 + + - name: Build Jekyll + run: | + jekyll build --trace --config _config.yml + + - name: Setup Ruby + uses: ruby/setup-ruby@v2 + with: + ruby-version: 3.0 + bundler-cache: true + + - name: Check permalinks + run: ruby .github/scripts/algolia.rb {{ secrets.ALGOLIA_APP_ID }} {{ secrets.ALGOLIA_API_KEY }} diff --git a/Gemfile b/Gemfile index 03b5892..3b1282a 100644 --- a/Gemfile +++ b/Gemfile @@ -12,15 +12,17 @@ source "https://rubygems.org" # This is the default theme for new Jekyll sites. You may change this to anything you like. # gem "minima" -gem 'webrick' # If you want to use GitHub Pages, remove the "gem "jekyll"" above and # uncomment the line below. To upgrade, run `bundle update github-pages`. gem "github-pages", group: :jekyll_plugins +gem 'webrick' # If you have any plugins, put them here! # group :jekyll_plugins do # gem "jekyll-github-metadata", "~> 1.0" # end -gem 'wdm', '>= 0.1.0' if Gem.win_platform? +# Required for GitHub Pages +gem 'algolia' +gem 'json' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 3fe8196..91037b4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,6 +9,10 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) + algolia (2.2.2) + faraday (>= 0.15, < 2.0) + multi_json (~> 1.0) + net-http-persistent coffee-script (2.4.1) coffee-script-source execjs @@ -17,6 +21,7 @@ GEM commonmarker (0.17.13) ruby-enum (~> 0.5) concurrent-ruby (1.1.9) + connection_pool (2.2.5) dnsruby (1.61.9) simpleidn (~> 0.1) em-websocket (0.5.3) @@ -25,7 +30,6 @@ GEM ethon (0.15.0) ffi (>= 1.15.0) eventmachine (1.2.7) - eventmachine (1.2.7-x64-mingw32) execjs (2.8.1) faraday (1.9.3) faraday-em_http (~> 1.0) @@ -51,7 +55,6 @@ GEM faraday-rack (1.0.0) faraday-retry (1.0.3) ffi (1.15.5) - ffi (1.15.5-x64-mingw32) forwardable-extended (2.6.0) gemoji (3.0.1) github-pages (223) @@ -219,6 +222,7 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) + json (2.6.1) kramdown (2.3.1) rexml kramdown-parser-gfm (1.1.0) @@ -234,12 +238,13 @@ GEM jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.15.0) + multi_json (1.15.0) multipart-post (2.1.1) + net-http-persistent (4.0.1) + connection_pool (~> 2.2) nokogiri (1.13.1) mini_portile2 (~> 2.7.0) racc (~> 1.4) - nokogiri (1.13.1-x64-mingw32) - racc (~> 1.4) octokit (4.22.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) @@ -277,9 +282,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8) - unf_ext (0.0.8-x64-mingw32) unicode-display_width (1.8.0) - wdm (0.1.1) webrick (1.7.0) zeitwerk (2.5.4) @@ -288,8 +291,9 @@ PLATFORMS x64-mingw32 DEPENDENCIES + algolia github-pages - wdm (>= 0.1.0) + json webrick BUNDLED WITH diff --git a/LICENSE b/LICENSE index d3e980e..261eeb9 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2022 GeyserMC + Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index 65a79cd..853bcd6 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # GeyserMC Wiki -This is the repository that contains the wiki for all of GeyserMCs projects. +This is the repository containing the wikis for GeyserMC other Geyser projects. The wiki can be accessed using [this link](https://wiki.geysermc.org). ## Contributing -If you would like to contribute to the wiki, please [open a pull request](https://github.com/GeyserMC/GeyserWiki/pulls). +If you would like to contribute to the wiki, please [open a pull request](https://pull-request-url-goes-here.org/). ### Creating a new page diff --git a/_config.yml b/_config.yml index 0b01b31..1318f34 100644 --- a/_config.yml +++ b/_config.yml @@ -17,7 +17,9 @@ title: GeyserMC Wiki author: GeyserMC description: > # this means to ignore newlines until "baseurl:" - This is the wiki for all of GeyserMCs projects. + Write an awesome description for your new site here. You can edit this + line in _config.yml. It will appear in your document head meta (for + Google search results) and in your feed.xml site description. # Add your baseurl here (your repository) but DO NOT CHANGE THE LINE NUMBER without editing .circleci/circle_urls.sh baseurl: "" # the subpath of your site, e.g. /blog @@ -28,7 +30,7 @@ url: "https://wiki.geysermc.org" # the base hostname & protocol for your site # Social (First three Required) repo: "https://github.com/GeyserMC/GeyserWiki" github_user: "GeyserMC" -github_repo: "Geyser" +github_repo: "GeyserWiki" github_branch: "master" # Optional diff --git a/_data/navigation.yml b/_data/navigation.yml index f5f2343..f7ed8a7 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -1,2 +1,6 @@ -- title: Download - external_url: https://geysermc.org/download \ No newline at end of file +- title: Geyser Download + external_url: https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/ +- title: Floodgate Download + external_url: https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/ + + diff --git a/_data/providers.json b/_data/providers.json index 6e7468d..da29b1c 100644 --- a/_data/providers.json +++ b/_data/providers.json @@ -1,33 +1,28 @@ { "description_templates": { - "default": "Get Geyser as a plugin, as in the [setup guide](https://wiki.geysermc.org/geyser/setup/). Use the same port as your Java server for the Bedrock port in your config (either by setting it yourself, or enabling \"clone-remote-port\") and connect with the same IP and port as you would on Java." + "default": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port." }, "built_in": [ { "name": "Aternos", "url": "https://aternos.org/", - "description": "Select as a plugin in the Aternos plugin list and connect to your server with your Java IP and port. See [Aternos's article](https://support.aternos.org/hc/en-us/articles/360051047631) for more details. \n Do note: Aternos automatically installs the latest version of the plugin, but does not auto update it. To update Geyser on aternos, simply reinstall the plugin (no need to uninstall the plugin/deleting the plugin files)." + "description": "Select as a plugin in the Aternos plugin list and connect to your server with your Java IP and port. See [Aternos's article](https://support.aternos.org/hc/en-us/articles/360051047631) for more details." + }, + { + "name": "Arry Hosting", + "url": "https://arry.host/", + "description": "After logging into the panel, click the control button on the right side of the server you'd like to add Geyser to. Then select Egg Changer on the top of the screen. Scroll down to the bottom and click on change egg under the Geyser logo. Check off reinstall server. (This will install Paper and Geyser. You can change out the server software with anything else that works with Bukkit Plugins.)" }, { "name": "Apex Hosting", "url": "https://apexminecrafthosting.com/", "description": "Full auto installation. Go to the `Customizations` tab in the panel and select `Enabled` under the `Geyser Auto Installer` option then restart and connect to your server with your Java IP and port. See [Apex's article](https://apexminecrafthosting.com/geysermc/) for more details." }, - { - "name": "Cloud Nord", - "url": "https://cloudnord.net/", - "description": "Go to their [Crossplay Server](https://cloudnord.net/minecraftcrossplay-server-hosting/) hosting section and simply order your server. Instructions on how to join are provided." - }, { "name": "CreeperHost", "url": "https://www.creeperhost.net/", "description": "Has a toggle within the control panel to automatically enable Geyser. May not be enabled by default, so you may need to toggle it and restart the server." }, - { - "name": "Cubes Hosting", - "url": "https://www.cubes.host/", - "description": "Install Geyser as a plugin from the plugin manager configure with the correct port then restart the server and Geyser works out of the box as expected." - }, { "name": "exaroton", "url": "https://exaroton.com/", @@ -48,20 +43,10 @@ "url": "https://mcprohosting.com/", "description": "Click \"Enable Bedrock Support\" on the server dashboard and follow the steps. For manual installation: Add Destination Port 19132 with Protocol UDP to the port forward mapping and connect to the given source port." }, - { - "name": "Minefort", - "url": "https://minefort.com/", - "description": "On the server dashboard under \"Connect Support\", make sure \"Allow Bedrock\" is enabled. Then simply connect via `play.minefort.com` and join using `/server `, or connect via `.minefort.com`." - }, { "name": "Minehut", "url": "https://minehut.com/", - "description": "Connect via `bedrock.minehut.com` and do `/join `, or connect directly via `.bedrock.minehut.gg`." - }, - { - "name": "MixmlHosting", - "url": "https://mixmlhosting.com/", - "description_template": "default" + "description": "Connect via `bedrock.minehut.com` and do `/join `." }, { "name": "OMGServ", @@ -79,14 +64,9 @@ "description": "Geyser is installed and configured on all servers by default." }, { - "name": "Server.pro", - "url": "https://server.pro", - "description": "On VPS, select Geyser in the [Service Type Menu](https://i.imgur.com/loSNmvu.png), Floodgate can be enabled and disabled on the dashboard configuration. For manual installation: If using a Premium or Free plan, use the same port as your Java server for the Bedrock port in the configuration file and connect with the same port; for the Free plan, also enable the `clone-remote-port` option; leave the IP values as default (`0.0.0.0` and `auto`). However, if you are using a PRO or a VPS plan, you can use any port you'd like, which can be opened on the Firewall tab." - }, - { - "name": "Snakecraft Hosting", - "url": "https://snakecrafthosting.com/", - "description": "Select \"Paper + Geyser with Floodgate\" under the Jar Type at checkout to install the Geyser plugin. Players will Connect with the same IP and port as you would on Java." + "name": "SoulNode", + "url": "https://soulnode.net/", + "description": "Select [Plugin Pack](https://i.imgur.com/7e2QEKV.png) at checkout to auto-install Geyser. No extra setup required. Will auto bind to your default port to connect." }, { "name": "SRKHOST", @@ -151,16 +131,16 @@ "url": "https://craft-hosting.ru/", "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port; note that this provider appears to only provide service in Russia." }, + { + "name": "Dashflo.net", + "url": "https://dashflo.net/", + "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port, or buy a dedicated IP address to support a different port." + }, { "name": "DedicatedMC", "url": "https://dedicatedmc.io/", "description": "Get Geyser as a plugin. Need to ask to open the default bedrock port." }, - { - "name": "Eendhosting", - "url": "https://eendhosting.nl/", - "description_template": "default" - }, { "name": "EnviroMC", "url": "https://enviromc.host/", @@ -185,22 +165,27 @@ { "name": "FalixNodes", "url": "https://falixnodes.net/", - "description": "Get Geyser as a plugin. Open a port yourself on the network page in the game panel, then change the port under the bedrock section of the Geyser config." + "description_template": "default" }, { "name": "Ferox Hosting", "url": "https://feroxhosting.nl", - "description": "Get Geyser as a plugin. Open a port yourself in our panel and check out the [knowledgebase](https://feroxhosting.nl/kb/) for how to install and configure the plugin." + "description": "Get Geyser as a plugin. Open a port yourself in our panel and check out the [knowledgebase](https://kb.FeroxHosting.nl) for how to install and configure the plugin." }, { "name": "Fluctis Hosting", "url": "https://fluctishosting.com", "description_template": "default" }, + { + "name": "FreeMC.Host", + "url": "https://freemc.host/", + "description_template": "default" + }, { "name": "FreeMcServer.net", "url": "https://freemcserver.net", - "description_template": "default" + "description": "Get Geyser as a plugin. Create a UDP port in the ports tab then type it in your config and connect with that port." }, { "name": "Futurehosting", @@ -216,17 +201,12 @@ { "name": "Google Cloud", "url": "https://cloud.google.com/", - "description": "Not a dedicated Minecraft provider\n - 90 day/$300 free trial\n - \n - Note: You'll need to also allow port 19132 on UDP, use Paper instead of vanilla, and put Geyser in the plugins folder\n - You also don't need an SSD, they're just trying to make you pay more" - }, - { - "name": "GPortal", - "url": "https://www.g-portal.com/", - "description": "Get Geyser as a plugin. Need to ask to open a UDP port. Also, make sure your `bedrock` `address` in your Geyser config is your server IP." + "description": "Not a dedicated Minecraft provider\n - 90 day/$300 free trial\n - [Tutorial for a Minecraft server Google Cloud](https://cloud.google.com/solutions/gaming/minecraft-server)\n - Note: You'll need to also allow port 19132 on UDP, use Paper instead of vanilla, and put Geyser in the plugins folder\n - You also don't need an SSD, they're just trying to make you pay more" }, { "name": "Heavynode", "url": "https://www.heavynode.com/", - "description": "Get Geyser as a plugin. Use default port and 0.0.0.0 as the address. 19132 is blocked for DDOS reasons so your best bet is to use the same port as your Java server for the Bedrock port in your config and connect with that port. Also, see [here](https://wiki.geysermc.org/geyser/fixing-unable-to-connect-to-world/#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server-or-only-people-who-also-play-on-java-edition-can-join-from-geyser)" + "description": "Get Geyser as a plugin. Use default port and 0.0.0.0 as the address. 19132 is blocked for DDOS reasons so your best bet is to use the same port as your Java server for the Bedrock port in your config and connect with that port. Also, see [here](https://github.com/GeyserMC/Geyser/wiki/Fixing-%22Unable-to-Connect-to-World%22#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server)" }, { "name": "Hetzner", @@ -239,9 +219,14 @@ "description": "Get Geyser as a plugin. Use the one of the available ports allocated for your server, for the Bedrock port in your config and connect with that port." }, { - "name": "HostEZ", - "url": "https://hostez.io/minecraft", - "description": "Geyser plugin supported with self-install or installed on request with its own port. Includes firewall tested to be compatible with Geyser." + "name": "hokus", + "url": "https://hokus.me", + "description_template": "default" + }, + { + "name": "HostMC4Free", + "url": "https://hostmc4free.com", + "description": "Order new service, choose Geyser in Bedrock section, and open a ticket to request a second port all ports support UDP" }, { "name": "HostValues", @@ -251,12 +236,17 @@ { "name": "HumbleServers", "url": "https://humbleservers.com/", - "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config, or one of the two extra ports, and connect with that port. If the subdomain doesn't work, use your regular numbered IP address." + "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config, or one of the two extra ports, and connect with that port. If the subdomain doesn't work, use your regular IP address with numbers." + }, + { + "name": "Hexit", + "url": "https://client.hexit.cc/", + "description_template": "default" }, { "name": "MC-HOST24.de", "url": "https://mc-host24.de/", - "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config (either by setting it yourself, or enabling \"clone-remote-port\"). Set remote address to auto, and bedrock address to the server IP. Connect with the Java IP and port." + "description": "Get Geyser as a plugin. Use the same address as your Java server for the Bedrock address in your config." }, { "name": "Meloncube", @@ -278,11 +268,6 @@ "url": "https://minehub.de/", "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port, or buy a dedicated IP address to support a different port." }, - { - "name": "Netbela", - "url": "https://netbela.nl/store/minecraft", - "description": "Install Geyser as a plugin with the dedicated Plugin installer. Use the same port as your Java server in your config. Connect using the same address and port as your Java server." - }, { "name": "NFOservers", "url": "https://nfoservers.com/", @@ -291,27 +276,32 @@ { "name": "NiCraft", "url": "https://www.ni-host.com/", - "description": "Use the same port as your Java server for the Bedrock port in your config and connect with that port.\n - See [here](https://wiki.geysermc.org/geyser/fixing-unable-to-connect-to-world/#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server-or-only-people-who-also-play-on-java-edition-can-join-from-geyser).\n - So if your players encounter this issue, please ask them to try to connect (even if they don't have Minecraft) from Java Edition first while their Bedrock client is opened, and after they should be able to join on Bedrock Edition." + "description": "Use the same port as your Java server for the Bedrock port in your config and connect with that port.\n - See [here](https://github.com/GeyserMC/Geyser/wiki/Fixing-%22Unable-to-Connect-to-World%22#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server).\n - So if your players encounter this issue, please ask them to try to connect (even if they don't have Minecraft) from Java Edition first while their Bedrock client is opened, and after they should be able to join on Bedrock Edition." }, { "name": "Nitrado", "url": "https://nitrado.net", "description": "Get Geyser as a plugin. Add 4 to the Port of the Java server. See [here](https://wiki.nitrado.net/en/How_to_install_GeyserMC_and_Floodgate) for specific instructions." }, + { + "name": "NightNodes", + "url": "https://nightnodes.host/", + "description_template": "default" + }, { "name": "Nodecraft", "url": "https://nodecraft.com", "description": "Get Geyser as a plugin. Use the default server port and 0.0.0.0 or your server IP as the host address." }, { - "name": "Oracle Cloud / OCI", - "url": "https://www.oracle.com/cloud/", - "description": "Not a dedicated Minecraft provider\n - 30 day/$300 free trial\n - [Tutorial for a Minecraft server in Oracle Cloud](https://blogs.oracle.com/developers/post/how-to-set-up-and-run-a-really-powerful-free-minecraft-server-in-the-cloud)\n - Note: You'll need to also allow port 19132 on UDP in both the security list and the firewall-cmd command, use Paper instead of vanilla, and put Geyser in the plugins folder.\n -- Note for Ubuntu users: Comment out `-A INPUT -j REJECT --reject-with icmp-host-prohibited` in `/etc/iptables/rules.v4` and run `sudo iptables-restore < /etc/iptables/rules.v4` to fix ufw." + "name": "NXYL.pro", + "url": "https://play.nxyl.pro", + "description": "Get Geyser as a plugin. Put the port provided by the host in your config.yml for the Java and bedrock sections, or create a port in the ports manager on the panel and use that for bedrock with the main one for Java, and you will be able to connect!" }, { "name": "OVH", "url": "https://www.ovh.com/", - "description": "See [here](https://wiki.geysermc.org/geyser/fixing-unable-to-connect-to-world/#issues-connecting-with-ovh-or-a-subsidiary)." + "description": "See [here](https://github.com/GeyserMC/Geyser/wiki/Fixing-'Unable-to-Connect-to-World'#issues-connecting-with-ovh-or-a-subsidiary)." }, { "name": "Pebblehost", @@ -319,6 +309,11 @@ "description_template": "default", "description": "See [this video](https://youtu.be/v9lC80UBZF4) for a PebbleHost-specific tutorial." }, + { + "name": "PhoenixNodes", + "url": "https://phoenixnodes.com", + "description": "Get Geyser as a plugin. Open a ticket to request an additional port for Geyser." + }, { "name": "PlanetNode", "url": "https://planetnode.net", @@ -335,29 +330,29 @@ "description_template": "default" }, { - "name": "Redline Hosting", - "url": "https://redlinehosting.net/", - "description_template": "default" + "name": "ReviveHost", + "url": "https://revivehost.com", + "description": "Get Geyser as a plugin. Request an additional port and put that port in your config.yml for the Bedrock server." }, { "name": "Revivenode", "url": "https://revivenode.com/", - "description": "Get Geyser as a plugin, as in the [setup guide](https://wiki.geysermc.org/geyser/setup/). Use the same port as your Java server for the Bedrock port in your config (either by setting it yourself, or enabling \"clone-remote-port\". Connect with the same IP and port as you would on Java. \n - See [here](https://wiki.geysermc.org/geyser/fixing-unable-to-connect-to-world/#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server-or-only-people-who-also-play-on-java-edition-can-join-from-geyser).\n - So if your players encounter this issue, please ask them to try to connect (even if they don't have Minecraft) from Java Edition first while their Bedrock client is opened, and after they should be able to join on Bedrock Edition." - }, - { - "name": "SunriseNode", - "url": "https://sunrisenode.com", - "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port." + "description_template": "default" }, { "name": "ScalaCube", "url": "https://scalacube.com/", "description": "Get Geyser as a plugin. Use the same address and port as your Java server for the Bedrock address and port in your config and connect with that port." }, + { + "name": "Server.pro", + "url": "https://server.pro", + "description": "**Update as of December 21, 2021 - a VPS plan is recommended by server.pro; other plans will not work or be very unreliable. Geyser can't do anything about this. The following instructions are untouched from before this update**. Get Geyser as a plugin. If you are using a Premium or Free plan, use the same port as your Java server for the Bedrock port in the configuration file and connect with that same port; for the Free plan, also enable the `clone-remote-port` option; leave the IP values as default (`0.0.0.0` and `auto`). If you are using a Pro or VPS plan, you can use any port you'd like and it's recommended to leave it to the default or `19132`." + }, { "name": "Shockbyte", "url": "https://shockbyte.com/", - "description": "For Plugin install: use the same address and port as your Java server for the Bedrock address and port in your config and connect with that port. For Geyser Standalone installation instructions, see [here](https://shockbyte.com/billing/knowledgebase/173/Introduction-to-GeyserMCorDragonProxy-How-GeyserMC-Works.html)." + "description": "Use the same port as your Java server for the Bedrock address and port in your config and connect with that port. You can also see standalone installation instructions [here](https://shockbyte.com/billing/knowledgebase/173/Introduction-to-GeyserMCorDragonProxy-How-GeyserMC-Works.html)." }, { "name": "Skynode.pro", @@ -367,13 +362,18 @@ { "name": "SoYouStart", "url": "https://www.soyoustart.com", - "description": "See [here](https://wiki.geysermc.org/geyser/fixing-unable-to-connect-to-world/#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server-or-only-people-who-also-play-on-java-edition-can-join-from-geyser)." + "description": "See [here](https://github.com/GeyserMC/Geyser/wiki/Fixing-'Unable-to-Connect-to-World'#bedrock-players-can-connect-after-hitting-the-server-on-a-tcp-port-eg-on-java-or-a-website-on-the-same-server)." }, { "name": "Sparked Host", "url": "https://sparkedhost.com", "description_template": "default" }, + { + "name": "SpawnMC", + "url": "https://spawnmc.net/", + "description": "Get Geyser as a plugin. Use the same port as your Java server for the Bedrock port in your config and connect with that port; note that this provider only provides service in China." + }, { "name": "StellaNode", "url": "https://stellanode.com/", @@ -397,7 +397,7 @@ { "name": "Titan Nodes", "url": "https://titannodes.com/", - "description": "Get Geyser as a plugin. Use the default server port and 0.0.0.0 as the host address." + "description": "Get Geyser as a plugin. Use the Default server port and 0.0.0.0 as the host address." }, { "name": "TNAHosting", @@ -409,16 +409,6 @@ "url": "https://turbohost.nl/", "description_template": "default" }, - { - "name": "UltimateSRV", - "url": "https://ultimatesrv.com/", - "description_template": "default" - }, - { - "name": "Volcano Hosting", - "url": "https://www.volcanohosting.net/", - "description_template": "default" - }, { "name": "Vultam", "url": "https://vultam.net/", diff --git a/_data/toc.yml b/_data/toc.yml index 07ead7a..adc639c 100644 --- a/_data/toc.yml +++ b/_data/toc.yml @@ -6,22 +6,21 @@ children: - title: Plugin Setup url: "geyser/setup/#plugin-setup" - - title: Videos - url: "geyser/setup/#setup-videos" - - title: "Standalone" - url: "geyser/standalone/" - children: + - title: Standalone Setup + url: "geyser/setup/#standalone-setup" - title: Termux (Android) url: "geyser/setup/#termux-android" - title: NewTerm 2 (iOS) url: "geyser/setup/#newterm-2-ios" + - title: Videos + url: "geyser/setup/#setup-videos" - title: FAQ url: "geyser/faq/" - title: Common Issues url: "geyser/common-issues/" children: - title: Fixing 'Unable to Connect to World' - url: "geyser/fixing-unable-to-connect-to-world/" + url: "geyser/common-issues/#see-here-for-fixing-unable-to-connect-to-world-with-no-console-errors" - title: Understanding the Config url: "geyser/understanding-the-config/" - title: Standalone Command Line Arguments @@ -36,21 +35,10 @@ url: "geyser/using-geyser-with-consoles/" - title: Anticheat Compatibility url: "geyser/anticheat-compatibility/" - - title: Using Geyser or Floodgate as a dependency + - title: Using geyser or floodgate as a dependency url: "geyser/using-geyser-or-floodgate-as-a-dependency/" - title: Current Limitations url: "geyser/current-limitations/" - - title: Using playit.gg with Geyser - url: "geyser/playit-gg/" - - title: Custom items with Geyser - url: "geyser/custom-items/" - children: - - title: JSON mappings - url: "geyser/custom-items/#json-mappings" - - title: Geyser extensions - url: "geyser/custom-items/#geyser-extensions" - - title: Resource pack - url: "geyser/custom-items/#resource-pack" - title: Floodgate Documentation url: "floodgate/" links: @@ -65,19 +53,16 @@ url: "floodgate/features/#whitelist-command" - title: Global Api url: "floodgate/features/#what-is-the-global-api" + - title: Global Linking + url: "floodgate/features/#what-is-global-linking" + - title: Local Linking + url: "floodgate/features/#local-linking" - title: Skin Uploading url: "floodgate/features/#what-is-skin-uploading" - title: "Floodgate API" url: "floodgate/api/" - title: "FloodgatePlayer" url: "floodgate/player/" - - title: "Linking" - url: "floodgate/linking/" - children: - - title: Global Linking - url: "floodgate/linking/#what-is-global-linking" - - title: Local Linking - url: "floodgate/linking/#local-linking" - title: "Forms and Cumulus" url: "floodgate/forms/" - title: "Commands" @@ -89,11 +74,11 @@ url: "other/geyseroptionalpack/" - title: "GeyserConnect" url: "other/geyserconnect/" + - title: "Geyser-Fabric" + url: "other/geyser-fabric/" - title: "Test Server" url: "other/test-server/" - title: "Developer Guide" url: "other/developer-guide/" - title: "Community Geyser Projects" url: "other/community-geyser-projects/" - - title: "Geyser Discord Bot Usage" - url: "other/discord-bot-usage/" \ No newline at end of file diff --git a/_data/versions.json b/_data/versions.json deleted file mode 100644 index 2afa034..0000000 --- a/_data/versions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "bedrock": "1.19.40 - 1.19.80", - "java": "1.19.4" -} diff --git a/_docs/floodgate/api.md b/_docs/floodgate/api.md index c8493ab..08e04a6 100644 --- a/_docs/floodgate/api.md +++ b/_docs/floodgate/api.md @@ -4,7 +4,7 @@ title: Floodgate API permalink: /floodgate/api/ --- -### Floodgate has an API to extend what is possible and allow servers to get information about the Bedrock client. It also allows other plugins access to [Cumulus](/floodgate/forms/) +### Floodgate has an API to extend what is possible and allow servers to get information about the Bedrock client. It also allows other plugins access to [Cumulus](Forms) This page will contain information about class FloodgateApi.
See the sidebar for more information about other parts of the API. @@ -21,7 +21,7 @@ Floodgate uses the open collaboration repo. The following example is for Maven, org.geysermc.floodgate api - 2.2.0-SNAPSHOT + 2.0-SNAPSHOT provided ``` @@ -40,24 +40,26 @@ After you got the instance, you have access to all the methods.
Use the documentation in the API module to see (and get info about) every single method available. Most [API methods have a simple explanation](https://github.com/GeyserMC/Floodgate/tree/master/api/src/main/java/org/geysermc/floodgate/api). -#### We'll highlight a few to get you started quickly: +#### We'll highlight a few to get you started quickly:
+ `FloodgateApi#isFloodgatePlayer(UUID)`
Used to check if the given UUID of an **online** player is a Bedrock player. `FloodgateApi#getPlayer(UUID)`
Used to get the FloodgatePlayer instance of an **online** player.
-Click [here](/floodgate/player/) to get more information about the FloodgatePlayer class. +Click [here](FloodgatePlayer) to get more information about the FloodgatePlayer class. **Note**: You don't need to wait until the Bedrock player is online to use the getPlayer and isFloodgatePlayer methods.
You can even use them in the pre-login events. `FloodgateApi#getPlayerLink()`
Used to get the PlayerLink instance used by Floodgate to check for linked accounts.
-Click [here](/floodgate/linking/) to get more information about the PlayerLink class +Click [here](PlayerLink) to get more information about the PlayerLink class `FloodgateApi#sendForm(UUID, Form(Builder))`
Used to send a form to the Bedrock player with the given UUID.
-Click [here](/floodgate/forms/) to get more information about Forms. +Click [here](Forms) to get more information about Forms. ### Using the API on backend servers + In order to successfully use the API on backend Spigot servers when using a proxy, `send-floodgate-data` must be set to `true` on the proxy Floodgate's config, and the `key.pem` file must be identical between all Floodgate instances. diff --git a/_docs/floodgate/commands.md b/_docs/floodgate/commands.md index 58a203b..6aa9f0f 100644 --- a/_docs/floodgate/commands.md +++ b/_docs/floodgate/commands.md @@ -6,6 +6,6 @@ permalink: /floodgate/commands/ | Command | Permission | Description | |:---:|:---:|:---:| -| `fwhitelist` | `floodgate.command.fwhitelist` | Whitelist command for Floodgate players. See [here](/floodgate/features/#whitelist-command) for details. | +| `fwhitelist` | `floodgate.command.whitelist` | Whitelist command for Floodgate players. See [here](https://github.com/GeyserMC/Floodgate/wiki/Features#whitelist-command) for details. | | `linkaccount` | `floodgate.command.linkaccount` | Link your account for local linking. | | `unlinkaccount` | `floodgate.command.unlinkaccount` | Unlink your account for local linking. | diff --git a/_docs/floodgate/features.md b/_docs/floodgate/features.md index 94eaadc..13ed9e6 100644 --- a/_docs/floodgate/features.md +++ b/_docs/floodgate/features.md @@ -12,19 +12,59 @@ Floodgate 2.0 has a whitelist command, `fwhitelist`, that should be used for add You can also specify a UUID: `fwhitelist add 00000000-0000-0000-0009-01f64f65c7c3` -The permission node is `floodgate.command.fwhitelist`. +The permission node is `floodgate.command.whitelist`. ## What is the Global Api? -The Global Api is an API that is available for every server. It currently includes: [Global Linking](#what-is-global-linking), [skin uploading](#what-is-skin-uploading), getting a xuid by gamertag, and getting a gamertag by xuid. +The Global Api is an API that is available for every server. It currently includes: [Global Linking](#What-is-Global-Linking), [skin uploading](#What-is-skin-uploading), getting a xuid by gamertag, and getting a gamertag by xuid. We don't store anything else than you can access by the Global Api, except for some non-identifiable metrics. The source code of the Global Api is available [here](https://github.com/GeyserMC/global_api) and the source code of the Global Linking server is available [here](https://github.com/GeyserMC/GlobalLinkServer). +## What is Global Linking? +Instructions and information about how to link can also be found here: https://link.geysermc.org/ + +Before we introduced Global Linking, you always had to link your Java and Bedrock account on every individual server you visited (that has Floodgate). Global Linking is here to fix that problem. Link once, join everywhere.
+Global Linking is part of the [Global Api](#What-is-the-Global-Api) and uses the GlobalLinkServer to link your account. To be able to link your account you have to do the following: +1. Join the GlobalLinkServer with both your Java and Bedrock account + (IP: `link.geysermc.org`, Java port: `25565`, Bedrock port: `19132`) +2. Start the linking process by typing `/linkaccount` on your Java **or** Bedrock account +3. You'll get a message with a random number that you have to enter on the account that you did not start the linking process on. +4. Enter the random number on the other account by typing `/linkaccount ` +5. You should get kicked from the server on both your Bedrock and Java account with the message that it had successfully linked your accounts. + +Global Linking should be enabled by default on every server running Floodgate 2.0, but in the case that you disabled it, you can enable it again by opening your Floodgate config and make sure that the `player-link` section looks similar to this: +```yml +# Configuration for player linking +player-link: + # Whether to enable the linking system. Turning this off will prevent + # players from using the linking feature even if they are already linked. + enabled: true + # Whether to use global linking. Global linking uses a central server to request link + # accounts, allowing people to link once, join everywhere (on servers with global linking). + use-global-linking: true +``` +([see the default config](https://github.com/GeyserMC/Floodgate/blob/master/common/src/main/resources/config.yml)) + +Once you saved the config and restarted your server you should be using Global Linking. + +If you don't want to use Global Linking, you can disable `enable-global-linking` in the Floodgate config. + +### Local Linking +You can also set up a local linking database on your server. Local linking can work with Global Linking at the same time. Link entries in your local database will override entries in the Global Linking Server. + +Note that you only have to follow these steps on your proxy (BungeeCord or Velocity), if you have one. + +1. Download one of the linking databases extensions [here](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/). + If you need help picking the right one: choose `mysql` if you already have a database or want to have a multi-proxy setup. For anything else choose `sqlite`. The full name should be `floodgate-*type*-database.jar`. +2. Copy the database extension jar you just downloaded *into* the floodgate 2.0 plugin folder (e.g. `/plugins/floodgate/`). +3. Enable `enable-own-linking` in the `player-link` section of Floodgate. +4. Set `type` in the `player-link` section to your database type (currently either `mysql` or `sqlite`). (If you used Floodgate 1.0 and had linking enabled back then; the database type was `sqlite`). +5. Restart your server + +If you have selected `mysql` a new data folder for the database should be generated inside the Floodgate data folder. You can enter your database credentials in there. After you did that restart your server once more. + +That should be it. You can then link your accounts by following the instructions you get when typing `/linkaccount`. ## What is skin uploading? Skins of Bedrock player should be visible to Java players on servers with Floodgate 2.0 installed. If they aren't, it's most likely that the skin uploading queue has grown too large and can take a while to upload your skin. -Skin uploading is also a part of the [Global Api](#what-is-the-global-api). It is responsible for converting Bedrock skins to Java skins and uploading them to Mojang servers make them show up on Java Edition. - -We're using MineSkin internally. MineSkin is running on accounts donated by the community. So if you want to support MineSkin and make the upload times faster, feel free to look at [this page](https://mineskin.org/account) for more info. - -![Example skin upload](https://cdn.discordapp.com/attachments/613168850925649981/815969801763160104/unknown.png) +Skin uploading is also a part of the [Global Api](#What-is-the-Global-Api). It is responsible for converting Bedrock skins to Java skins and uploading them to Mojang servers make them show up on Java Edition. diff --git a/_docs/floodgate/forms.md b/_docs/floodgate/forms.md index ccc9471..a9daf56 100644 --- a/_docs/floodgate/forms.md +++ b/_docs/floodgate/forms.md @@ -7,8 +7,8 @@ permalink: /floodgate/forms/ # What is Cumulus? Bedrock Edition has a cool exclusive feature called Forms.
-Cumulus is the Forms API that we use in Geyser and Floodgate.
-The source code is available [here](https://github.com/GeyserMC/Cumulus). You can access the Cumulus API through the [Floodgate API](/floodgate/api/). +Cumulus is the new Forms API that we use in Geyser and Floodgate. The source code is available [here](https://github.com/GeyserMC/Cumulus). +You can access the Cumulus API through the [Floodgate API](FloodgateApi). Bedrock knows three types of Forms: * ModalForm @@ -57,7 +57,7 @@ SimpleForm.builder() While the CustomForm is the last one on our list (and thus the least easy one), it also has the greatest customizability.
This form exists of a title, content and a list of different components e.g. label, slider and input.
-See [Components](#components) for more information about every component you can use and in which form type. +See [Components](#Components) for more information about every component you can use and in which form type. ![Example of a CustomForm](https://i.imgur.com/zHgxELm.png) @@ -72,6 +72,31 @@ CustomForm.builder() .slider("Text", 0, 10, 1, 5) ``` +## Components + +Forms have different component types, most of them are limited to the CustomForm and some are available to everything but CustomForm. + +### Button +Limited to ModalForm and SimpleForm. With SimpleForm, buttons can have image icons and there can be more than 2. + +### Dropdown +Limited to CustomForm + +### Input +Limited to CustomForm. + +### Label +Limited to CustomForm. + +### Slider +Limited to CustomForm. + +### Stepslider +Limited to CustomForm. + +### Toggle +Limited to CustomForm. + ## Sending a form After you decided which form type you want to use and finished filling in the actual content, it's time to send the Form to the Bedrock player.
@@ -89,25 +114,54 @@ So you can make and send forms in a pretty compact way by doing something like t FloodgatePlayer player = FloodgateApi.getInstance().getPlayer(uuid); ... player.sendForm( - CustomForm.builder() + new CustomForm.Builder() .title("My cool title") - .label("10/10 content") -); + .content("10/10 content") +)); ``` ## Receiving a response from the client -It's nice and all that we can send forms to a client, but we also want to be able to get a response from a client and being able to handle them.
-We can do that using one (or multiple) result handers. The most used result handlers are: `validResultHandler(BiConsumer | Consumer)`, `invalidResultHandler`, `closedResultHandler` and `closedOrInvalidResultHandler`.
-Here follows an example that uses result handlers: +It's nice and all that we can send forms to a client, but we also want to be able to get a response from a client and being able to handle them. +We can do that using the `responseHandler(BiConsumer)` method in the FormBuilder: ```java -CustomForm.builder() - .title("geyser.auth.login.form.details.title") - .label("geyser.auth.login.form.details.desc") - .input("geyser.auth.login.form.details.email", "account@geysermc.org", "") - .input("geyser.auth.login.form.details.pass", "123456", "") - .closedOrInvalidResultHandler(() -> buildAndShowLoginDetailsWindow(session)) - .validResultHandler(response -> session.authenticate(response.next(), response.next()))); +_Modal_Form.builder() + .title("Feedback form") + .content("We're asking for feedback, are you willing to enter some feedback to improve our server?") + .button1("Yes") // id = 0 + .button2("No") // id = 1 + .responseHandler((form, responseData) -> { + _Modal_FormResponse response = form.parseResponse(responseData); + if (!response.isCorrect()) { + // player closed the form or returned invalid info (see FormResponse) + return; + } + + // short version of getClickedButtonId == 0 + if (response.getResult()) { + System.out.println("Yay, he wants to give us feedback"); + return; + } + System.out.println("No feedback for us :("); + }); +``` +Or using the response handler setter of the Form (not a FormBuilder): +```java +_Modal_Form form = ...; +form.setResponseHandler(responseData -> { + _Modal_FormResponse response = form.parseResponse(responseData); + if (!response.isCorrect()) { + // player closed the form or returned invalid info (see FormResponse) + return; + } + + // short version of getClickedButtonId == 0 + if (response.getResult()) { + System.out.println("Yay, he wants to give us feedback"); + return; + } + System.out.println("No feedback for us :("); +}); ``` ## Advanced stuff @@ -115,7 +169,7 @@ CustomForm.builder() The FormBuilder also has support for translating the data used in the builder.
To add a translator, you can use the `translator(BiFunction)` or the `translator(BiFunction, String)` method: ```java -ModalForm form = ModalForm.builder() +_Modal_Form form = _Modal_Form.builder() .translator(this::translate, userLanguage) .title("Title") .content("Content") @@ -132,7 +186,7 @@ public String translate(String key, String locale) { ``` Or you can have the translate method directly in the FormBuilder instead of a separate method: ```java -ModalForm form = ModalForm.builder() +_Modal_Form form = _Modal_Form.builder() .translator((key, unused) -> { // this method will be called for every string, in this case, 4 times: // Title, Content, translate.button1, translate.button2 diff --git a/_docs/floodgate/issues.md b/_docs/floodgate/issues.md index d4b2880..b91a265 100644 --- a/_docs/floodgate/issues.md +++ b/_docs/floodgate/issues.md @@ -11,7 +11,7 @@ If an issue you're experiencing is not listed here, please consider joining the In some instances, like if you have the `username-prefix` set to `*`, you may need to wrap the Bedrock player's username in quotes; for example: `/tp "*BedrockPlayer"`. Setting the prefix to `.` should also fix this. ## If you wish to use IP forwarding, please enable it in your BungeeCord config as well! -It is likely you have enabled `send-floodgate-data` in your Floodgate config but either Floodgate isn't installed on the target server, or your floodgate key isn't the same between the installs of the plugin (please copy them so they all use the same key). +It is likely you have enabled `send-floodgate-data` in your Floodgate config but either Floodgate isn't installed on the target server, or you floodgate key isn't the same between the installs of the plugin (please copy them so they all use the same key). ## `java.lang.IllegalStateException: Cannot reply to EncryptionRequestPacket without profile and access token.` @@ -44,10 +44,6 @@ Ensure that you removed the `usercache.json` file from the server root directory Set `allow-invalid-usernames` to `true` in LuckPerms' config. -## Failed to verify username! (with Paper) - -To completely mitigate this issue, disable `perform-username-validation` in the [unsupported settings of the `config/paper-global.yml` file](https://paper.readthedocs.io/en/latest/server/configuration.html#unsupported-settings) (`paper.yml` in the root server folder on servers below 1.19). Using Floodgate on the backend servers will also mitigate this issue. - ## Error with Forge or Fabric Bukkit Hybrid At this time, there is no way to run Floodgate on servers that mix Forge and Bukkit or Fabric and Bukkit (For example: Magma, Mohist, and Cardboard/Bukkit4Fabric) - most hybrids do not support the complicated procedures we need to do in order to allow Bedrock players to connect (for the technically minded: these server softwares typically don't support NMS). diff --git a/_docs/floodgate/linking.md b/_docs/floodgate/linking.md deleted file mode 100644 index 7adf12f..0000000 --- a/_docs/floodgate/linking.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: page -title: Linking -permalink: /floodgate/linking/ ---- - -## What is Global Linking? -Instructions and information about how to link can also be found here: [https://link.geysermc.org/](https://link.geysermc.org/) - -Before we introduced Global Linking, you always had to link your Java and Bedrock account on every individual server you visited (that has Floodgate). Global Linking is here to fix that problem. Link once, join everywhere.
- -Keep in mind: While having your accounts linked, you will use the Java account's location, inventory data, and achievements etc. regardless of which platform you sign in from (therefore, "synchronising" the player data). The player data from the Bedrock account will not be accessible until you unlink again. As a result, you should transfer everything (ender chest contents, items, armor) to the Java account before linking to not "lose" your Bedrock progress. If you forgot to do this, you can unlink, transfer everything over, and link again. - -Global Linking is part of the [Global Api](https://wiki.geysermc.org/floodgate/features/#what-is-the-global-api) and uses the GlobalLinkServer to link your account. To be able to link your account you have to do the following: -1. Join the GlobalLinkServer with both your Java and Bedrock account - (IP: `link.geysermc.org`, Java port: `25565`, Bedrock port: `19132`) -2. Start the linking process by typing `/linkaccount` on your Java **or** Bedrock account -3. You'll get a message with a random number that you have to enter on the account that you did not start the linking process on. -4. Enter the random number on the other account by typing `/linkaccount ` -5. You should get kicked from the server on both your Bedrock and Java account with the message that it had successfully linked your accounts. - -To unlink your globally linked accounts, join the GlobalLinkServer (as described above for linking) on either Java or Bedrock, and use the `/unlinkaccount` command. - -Global Linking should be enabled by default on every server running Floodgate 2.0, but in the case that you disabled it, you can enable it again by opening your Floodgate config and make sure that the `player-link` section looks similar to this: -```yml -# Configuration for player linking -player-link: - # Whether to enable the linking system. Turning this off will prevent - # players from using the linking feature even if they are already linked. - enabled: true - # Whether to use global linking. Global linking uses a central server to request link - # accounts, allowing people to link once, join everywhere (on servers with global linking). - use-global-linking: true -``` -([see the default config](https://github.com/GeyserMC/Floodgate/blob/master/core/src/main/resources/config.yml)) - -Once you saved the config and restarted your server you should be using Global Linking. - -If you don't want to use Global Linking, you can disable `enable-global-linking` in the Floodgate config. - -## Local Linking -You can also set up a local linking database on your server. Local linking can work with Global Linking at the same time. Link entries in your local database will override entries in the Global Linking Server. - -Note that you only have to follow these steps on your proxy (BungeeCord or Velocity), if you have one. - -1. Download one of the linking databases extensions [here](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/). - If you need help picking the right one: choose `mysql` if you already have a database or want to have a multi-proxy setup. For anything else choose `sqlite`. The full name should be `floodgate-*type*-database.jar`. -2. Copy the database extension jar you just downloaded *into* the floodgate 2.0 plugin folder (e.g. `/plugins/floodgate/`). -3. Enable `enable-own-linking` in the `player-link` section of Floodgate. -4. Set `type` in the `player-link` section to your database type (currently either `mysql` or `sqlite`). (If you used Floodgate 1.0 and had linking enabled back then; the database type was `sqlite`). -5. Restart your server - -If you have selected `mysql` a new data folder for the database should be generated inside the Floodgate data folder. You can enter your database credentials in there. After you did that restart your server once more. - -That should be it. You can then link your accounts by following the instructions you get when typing `/linkaccount`. diff --git a/_docs/floodgate/root.md b/_docs/floodgate/root.md index 63e6c32..2f6329b 100644 --- a/_docs/floodgate/root.md +++ b/_docs/floodgate/root.md @@ -5,11 +5,16 @@ permalink: /floodgate/ --- # Floodgate -## What is Floodgate? -Floodgate is a hybrid mode plugin that allows Minecraft: Bedrock Accounts to join Minecraft: Java Edition servers without needing a Minecraft: Java Edition account. -This is something you install in addition to Geyser. Unlike Geyser, Floodgate can only be installed as a plugin on Spigot (including Paper and forks), Bungeecord, Velocity, and as a mod on Fabric servers, and can only be utilized on servers that have it installed. -## What has Floodgate 2.0 to offer? -Floodgate 2.0 is a rewrite of Floodgate 1.0, with various bugfixes and improvements. It also introduces new features: being able to [see Bedrock player skins on Java edition](/floodgate/features/#what-is-skin-uploading), -being able to [use Bedrock forms](/floodgate/forms/), link your account once and login on every server that has [Global Linking](/floodgate/features/#what-is-global-linking) enabled, -and the [Global Api](/floodgate/features/#what-is-the-global-api). +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) +[![Build Status](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/badge/icon)](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/) +[![Discord](https://img.shields.io/discord/613163671870242838.svg?color=%237289da&label=discord)](http://discord.geysermc.org/) +[![HitCount](https://hits.dwyl.com/GeyserMC/Floodgate.svg)](http://hits.dwyl.com/GeyserMC/Floodgate) + +Hybrid mode plugin to allow for connections from [Geyser](https://github.com/GeyserMC/Geyser) to join online mode servers. + +Geyser is an open collaboration project by [CubeCraft Games](https://cubecraft.net). + +See the [Floodgate](https://github.com/GeyserMC/Geyser/wiki/Floodgate) page in the Geyser Wiki for more info about the what Floodgate is, how you setup Floodgate and known issues/caveats. + +See the [Floodgate wiki](https://github.com/GeyserMC/Floodgate/wiki) (currently work in progress) for a more in-depth look into Floodgate, how it works and the Floodgate API. diff --git a/_docs/floodgate/setup.md b/_docs/floodgate/setup.md index 26fbee9..9940aab 100644 --- a/_docs/floodgate/setup.md +++ b/_docs/floodgate/setup.md @@ -6,23 +6,26 @@ permalink: /floodgate/setup/ ## Downloads: -Download Geyser and Floodgate from the [Geyser download page](https://geysermc.org/download). +Floodgate 2.0: https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/ +Geyser: https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/ ## Prerequisites - You must own/manage the server in order to add Floodgate. *If you do not own the server, Floodgate does not allow you to bypass logging into Java servers that require a Mojang Java account*. -- You must either be running Geyser as a [plugin](/geyser/setup/), or be running [Geyser Standalone](/geyser/standalone/). Floodgate does not replace Geyser. +- You must either be running Geyser as a [plugin](https://github.com/GeyserMC/Geyser/wiki/Setup#plugin-setup), or be running [Geyser Standalone](https://github.com/GeyserMC/Geyser/wiki/Setup#Standalone-Setup). Floodgate does not replace Geyser. +- You should make sure your Geyser is on the latest version (old versions of Geyser that worked with Floodgate 1.0 will not work with Floodgate 2.0) - `floodgate-spigot.jar` cannot be installed on CraftBukkit/Bukkit servers. ## Setting Up -*Any reference to Spigot here also refers to any compatible server software such as Paper. For the proxy setup, backend server implies all the servers that are behind the proxy.* +*Any reference to Spigot here also refers to any compatible server software such as Paper.* -For BungeeCord/Velocity setups: you only are required to install Floodgate on the BungeeCord or Velocity proxy unless you want to use the Floodgate API on the backend servers - see [below](#installing-floodgate-also-on-spigot-servers-behind-bungeecord-or-velocity) for the installation process. +For BungeeCord/Velocity setups: you only are required to install Floodgate on the BungeeCord or Velocity proxy unless you want to use the Floodgate API on the backend servers - see [below](installing-floodgate-also-on-spigot-servers-behind-bungeecord-or-velocity) for the installation process.        *Note:* Installing Floodgate on the backend servers will allow Bedrock player skins to display without the Bedrock player having to switch backend servers. -- Download the Floodgate plugin and add it to your plugins folder on your frontend server. - - Select your platform on the download page linked above and click "Download Floodgate" - - If you are using Floodgate on Fabric, you will need to download the [Fabric API](https://www.curseforge.com/minecraft/mc-mods/fabric-api). +- Download the Floodgate plugin from [here](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/) and add it to your plugins folder on your frontend server. + - `floodgate-spigot.jar` for Spigot, Paper, etc + - `floodgate-bungee.jar` for BungeeCord, Waterfall, etc + - `floodgate-velocity.jar` for Velocity - Change the `auth-type` in the Geyser config to `floodgate`. - Restart/start up the server. @@ -31,15 +34,32 @@ For BungeeCord/Velocity setups: you only are required to install Floodgate on th ### Installing Floodgate also on Spigot servers behind BungeeCord or Velocity -This is only needed when you want to use the Floodgate API on your backend server(s) behind a proxy. +This is only needed when you want to use the Floodgate API on your Spigot server(s) behind a proxy. -- Install Floodgate on the proxy and on *all* backend servers as per the [previous instructions](/floodgate/setup/) -- Enable `ip_forward` in your BungeeCord `config.yml` if using BungeeCord. For Velocity, set up "player-info-forwarding". -- Set `bungeecord` to `true` in your `spigot.yml`. When using Velocity, see their [guide](https://docs.papermc.io/velocity/player-information-forwarding), as they have multiple options that require different setups. +- Install Floodgate on the proxy and on *all* backend servers as per the [previous insructions](#setting-up) +- Enable `ip_forward` in your BungeeCord `config.yml` if using BungeeCord +- Set `bungeecord` to `true` in your `spigot.yml` - Start the proxy server. - Edit the Floodgate config on your proxy server and set `send-floodgate-data` to `true`. -- *Copy* the `key.pem` file in the proxy Floodgate config folder to all backend servers' Floodgate config folder. **DO NOT DISTRIBUTE THIS KEY TO ANYBODY!** This key is what allows for Bedrock accounts to bypass the Java Edition authentication, and if anyone gets ahold of this, they can wreak havoc on your server. -- Restart the backend servers and proxy server. +- *Copy* the `key.pem` file in the proxy Floodgate config folder to all Spigot servers' Floodgate config folder. **DO NOT DISTRIBUTE THIS KEY TO ANYBODY!** This key is what allows for Bedrock accounts to bypass the Java Edition authentication, and if anyone gets ahold of this, they can wreak havoc on your server. +- Restart the Spigot servers and proxy server. + +## How do I migrate from Floodgate 1.0 to Floodgate 2.0? +Floodgate 2.0 is not compatible with Floodgate 1.0 and Floodgate 1.0 is not compatible with Floodgate 2.0, which means there may be some manual upgrading required. When Floodgate 2.0 is loaded for the first time (on your server), it will try to convert the Floodgate 1.0 config to a Floodgate 2.0 config and it will generate a new key (the old one can be found under `old-key.pem`). Floodgate 2.0 uses a different algorithm for the key and because of that, you now only have one key (called `key.pem`) instead of two. You will have to copy the new Floodgate key (like you had to do in the initial startup) to all the servers that use Floodgate, including Geyser-Standalone.
+ +Probably not everyone will understand what has been said, so here is a step-by-step guide: +1. Replace Geyser with the [latest version](https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/) (builds of Geyser that worked with floodgate 1.0, don't work) and replace every server that uses Floodgate with the [latest version](https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/). +2. Restart **one** server that uses Floodgate and let Floodgate update the config and generate a new `key.pem` file. +3. Look at the Floodgate configuration of that server and check if `config-version` is present in the Floodgate config. If it isn't, you have not installed Floodgate 2.0. While you are there, please decide if you want to continue using the legacy player name prefix `*` or use one of the recommended prefixes: `.` (the new default), `+` or `-`. All those new prefixes are easier to use for commands since you don't have to wrap the player's name in quotes. +4. Copy the files: `config.yml` and `key.pem` to all your servers that use Floodgate. +5. If you are using Geyser-Standalone, only copy `key.pem` to the Geyser-Standalone folder. +6. Make sure that you edit the Geyser config to point to `key.pem` instead of `public-key.pem` (the setting is`floodgate-key-file`). +7. Restart the other servers and check for errors. +8. Try to join Geyser with one account to check if everything works as expected. If it doesn't, please make sure that you followed every step correctly. If you did everything correctly and it still doesn't work, join our Discord to get support. + +Depending on if you want to keep using [Global Linking](Features#What-is-Global-Linking), which is enabled by default, you should be ready to go. + +To migrate your Floodgate 1.0 local account linking database, follow [these](Features#Local-Linking) steps. ## Changing/disabling the prefix @@ -47,15 +67,15 @@ This is only needed when you want to use the Floodgate API on your backend serve In your Floodgate config, change `username-prefix` to whichever prefix you desire - you can set it to `""` and there will be no prefix. -On some older Paper servers (or any forks that use them), you may need to also shut down your server and delete your `usercache.json` file located in the same folder as your server jar to prevent users who already joined from having the old prefix. See [this issue](/floodgate/issues/#prefix-is-not-changing-on-the-server-after-changing-it-in-the-config) for more information. +On some older Paper servers (or any forks that use them), you may need to also shut down your server and delete your `usercache.json` file located in the same folder as your server jar to prevent users who already joined from having the old prefix. See [this issue](Issues#Prefix-is not-changing-on-the-server-after-changing-it in-the-config.) for more information. ## Obtaining UUIDs for Floodgate players -Check your server logs, or use [this](https://uuid.kejona.dev/) page. If this doesn't work, then try this method: +Check your server logs, or use [this](https://floodgate-uuid.heathmitchell1.repl.co/) page. If this doesn't work, then try this method: -First, you'll need to get the XUID of the player. There are several third-party websites to find this, for example, [this one](https://www.cxkes.me/xbox/xuid) (unaffiliated with Geyser). Make sure to choose "Hexidecimal." You'll need to enter the player's Xbox Gamertag, and, once submitted, and it should display the XUID in the format of `xxxxxxxxxxxxxxxx`. To turn the XUID into a UUID that Java Edition can recognize, you need to put the XUID in this format: `00000000-0000-0000-xxxx-xxxxxxxxxxxx`. If formatted right, Java Edition should accept it as a UUID. +First, you'll need to get the XUID of the player. There are several third-party websites to find this, for example, this one (unaffiliated with Geyser). Make sure to choose "Hexidecimal." You'll need to enter the player's Xbox Gamertag, and, once submitted, and it should display the XUID in the format of `xxxxxxxxxxxxxxxx`. To turn the XUID into a UUID that Java Edition can recognize, you need to put the XUID in this format: `00000000-0000-0000-xxxx-xxxxxxxxxxxx`. If formatted right, Java Edition should accept it as a UUID. ## Using PlaceholderAPI -If you're using the Spigot version of Floodgate, download the Placeholder plugin [here](https://github.com/rtm516/FloodgatePlaceholders/). Using the placeholders shouldn't require additional setup other than having [PlaceholderAPI](https://www.spigotmc.org/resources/6245/) installed. See the section above on installing Floodgate on backend servers if you wish to use this on BungeeCord. +If you're using the Bukkit version of Floodgate, download the Placeholder plugin [here](https://github.com/rtm516/FloodgatePlaceholders/). Using the placeholders shouldn't require additional setup other than having [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) installed. See the section above on installing Floodgate on backend servers if you wish to use this on BungeeCord. ## Using Skript -If you're using the Spigot version of Floodgate, there is an unofficial plugin that adds Skript support [here](https://github.com/Camotoy/floodgate-skript). +If you're using the Bukkit version of Floodgate, there is an unofficial plugin that adds Skript support [here](https://github.com/Camotoy/floodgate-skript). diff --git a/_docs/geyser/anticheat-compatibility.md b/_docs/geyser/anticheat-compatibility.md index 2ab8a3a..6c6302b 100644 --- a/_docs/geyser/anticheat-compatibility.md +++ b/_docs/geyser/anticheat-compatibility.md @@ -10,27 +10,24 @@ Do note that this is a community-compiled list and is incomplete! If you wish to Full Compatibility (Checks Bedrock Players Accurately) -- [AntiAura](https://www.spigotmc.org/resources/1368/){:target="_blank"} (Paid) - Last Updated on 19th August 2021 -- [Themis](https://www.spigotmc.org/resources/90766/){:target="_blank"} - Last Updated on 15th Jun 2022 -- [Negativity V2](https://www.spigotmc.org/resources/86874/){:target="_blank"} (Paid) - Last Updated on 21st March 2022 -- [SoaromaSAC](https://www.spigotmc.org/resources/87702/){:target="_blank"} - Last Updated on 27th March 2022 -- [Spartan](https://www.spigotmc.org/resources/25638/){:target="_blank"} (Paid) - Last Updated on 8th February 2023 +- [AntiAura](https://www.spigotmc.org/resources/1368/) - Last Updated on 8/19/21 +- [NESS Reloaded](https://www.spigotmc.org/resources/75887/) - Last Updated on 8/19/21 +- [Themis](https://www.spigotmc.org/resources/90766/) - Last Updated on 8/19/21 +- [LightAntiCheat](https://www.spigotmc.org/resources/96341/) - Last Updated on 12/4/21 Partially Compatible (Does not Check/Ignores Bedrock Players) -- [AAC](https://www.spigotmc.org/resources/6442/){:target="_blank"} (Paid) - Last Updated on 19th August 2021 -- [Flappy Anticheat](https://www.spigotmc.org/resources/92180/){:target="_blank"} - Last Updated on 14th September 2021 -- [GrimAC](https://github.com/MWHunter/Grim){:target="_blank"} - Last Updated on 24th March 2022 -- [Matrix](https://matrix.rip/){:target="_blank"} (Paid) - Last updated on 2nd September 2021 -- [Vulcan](https://www.spigotmc.org/resources/83626/){:target="_blank"} (Paid) - Last Updated on 19th August 2021 -- [Verus](https://verus.ac){:target="_blank"} (Paid) - Last Updated on 13th July 2022 +- [AAC](https://www.spigotmc.org/resources/6442/) - Last Updated on 8/19/21 +- [Flappy Anticheat](https://www.spigotmc.org/resources/92180/) - Last Updated on 9/14/21 +- [Matrix](https://matrix.rip/) - Last updated on 9/2/21 +- [Spartan](https://www.spigotmc.org/resources/25638/) (Spartan Syn offers full Bedrock checks for an additional $43) - Last Updated on 8/19/21 +- [Vulcan](https://www.spigotmc.org/resources/83626/) - Last Updated on 8/19/21 Incompatible (False Positives on Bedrock Players, no Compatibility at All) -- [AntiCheatReloaded](https://www.spigotmc.org/resources/23799/){:target="_blank"} - Last Updated on 19th August 2021 -- [Negativity V1](https://www.spigotmc.org/resources/48399/){:target="_blank"} - Last Updated on 21st March 2022 -- [NoCheatPlus](https://ci.codemc.io/job/Updated-NoCheatPlus/job/Updated-NoCheatPlus/){:target="_blank"} ([Compat NCP](https://github.com/Updated-NoCheatPlus/CompatNoCheatPlus/){:target="_blank"} is an addon that enables Partial Compatibility) - Last Updated on 19th August 2021 -- [GodsEye](https://www.spigotmc.org/resources/69595/){:target="_blank"} ([GodsEyeGeyserMC](https://github.com/TheDejavu/GodsEyeGeyserMC/releases){:target="_blank"} is an addon that enables Partial Compatibility) (Paid) - Last Updated on 21st March 2022 -- [Kauri](https://www.spigotmc.org/resources/53721/){:target="_blank"} (Paid) - Last Updated on 21st March 2022 -- [Reflex](https://www.spigotmc.org/resources/21122/){:target="_blank"} (Paid) - Last Updated on 19th August 2021 -- [Wraith](https://www.spigotmc.org/resources/66887/){:target="_blank"} (Paid) - Last Updated on 19th August 2021 +- [AntiCheatReloaded](https://www.spigotmc.org/resources/23799/) - Last Updated on 8/19/21 +- [Negativity](https://www.spigotmc.org/resources/86874/) - Last Updated on 8/19/21 +- [NoCheatPlus](https://ci.codemc.io/job/Updated-NoCheatPlus/job/Updated-NoCheatPlus/) ([Compat NCP](https://github.com/Updated-NoCheatPlus/CompatNoCheatPlus/) is an addon that enables Partial Compatibility) - Last Updated on 8/19/21 +- [Reflex](https://www.spigotmc.org/resources/21122/) - Last Updated on 8/19/21 +- [SoaromaSAC](https://www.spigotmc.org/resources/87702/) - Last Updated on 8/19/21 +- [Wraith](https://www.spigotmc.org/resources/66887/) - Last Updated on 8/19/21 diff --git a/_docs/geyser/commands.md b/_docs/geyser/commands.md index 47a08cb..b486b8d 100644 --- a/_docs/geyser/commands.md +++ b/_docs/geyser/commands.md @@ -19,4 +19,4 @@ permalink: /geyser/commands/ | `geyser statistics` | `geyser.command.statistics` | Open the Java statistics menu. | | `geyser version` | `geyser.command.version` | Shows the current Geyser version and checks for updates. | -For Floodgate commands, see [here](/floodgate/commands/). +For Floodgate commands, see [here](https://github.com/GeyserMC/Floodgate/wiki/Commands). diff --git a/_docs/geyser/common-issues.md b/_docs/geyser/common-issues.md index 10bc95d..412392d 100644 --- a/_docs/geyser/common-issues.md +++ b/_docs/geyser/common-issues.md @@ -4,10 +4,10 @@ title: Common Issues permalink: /geyser/common-issues/ --- -Commonly, people may have issues with Geyser not showing up in their server list or run into similar issues. This page contains a few common issues people may encounter that you might have as well as potential fixes for them. If you still can't make it work, join [our Discord](https://discord.gg/geysermc) for support. +Commonly, people may have issues with Geyser not showing up in their server list or run into similar issues. This page contains a few common issues people may encounter that you might have as well as potential fixes for them. If you still can't make it work, join [our Discord](https://discord.geysermc.org) for support. # Floodgate -For Floodgate issues see: [Floodgate: Known Issues/Caveats](/floodgate/issues/). +For Floodgate issues see: [Floodgate: Known Issues/Caveats](https://github.com/GeyserMC/Floodgate/wiki/Issues). # I can't connect! (Either the server doesn't show up in the friends list or I get "Unable to connect to world") * If you don't use a reverse proxy such as TCPShield make sure that `enable-proxy-protocol` is set to false. @@ -15,14 +15,14 @@ For Floodgate issues see: [Floodgate: Known Issues/Caveats](/floodgate/issues/). ## If the server doesn't show up in the friends list * *If using Windows 10, iOS, or Android*: try adding the server to the Servers list in-game. -* *If using Xbox One*: try connecting with [BedrockConnect](/geyser/using-geyser-with-consoles/). -* *If using PS4*: [try using a LAN proxy.](/geyser/using-geyser-with-consoles/#playstation-4) -* *If using Nintendo Switch*: there is currently no way for local servers to show up in the Friends tab, but you can still connect using [BedrockConnect](/geyser/using-geyser-with-consoles/). +* *If using Xbox One*: try connecting with [BedrockConnect](https://github.com/GeyserMC/Geyser/wiki/Using-Geyser-with-Consoles). +* *If using PS4*: [try using a LAN proxy.](https://github.com/GeyserMC/Geyser/wiki/Using-Geyser-with-Consoles#playstation-4) +* *If using Nintendo Switch*: there is currently no way for local servers to show up in the Friends tab, but you can still connect using [BedrockConnect](https://github.com/GeyserMC/Geyser/wiki/Using-Geyser-with-Consoles). *If the Geyser instance is locally hosted:* try using `localhost` or `0.0.0.0` as the IP address. *If that doesn't work, or your Geyser instance is on another computer in the network*: use your **local** IPv4 address. -## See [here](/geyser/fixing-unable-to-connect-to-world/) for fixing "Unable to Connect to World" with no console errors +## See [here](https://github.com/GeyserMC/Geyser/wiki/Fixing-%27Unable-to-Connect-to-World%27) for fixing "Unable to Connect to World" with no console errors ### `java.net.BindException: Address already in use: bind` on startup. This means something (likely another instance of Geyser) is running on the port you have specified in the config. Please make sure you close all applications running on this port. If you don't recall opening anything, usually restarting your computer fixes this. @@ -41,7 +41,7 @@ This usually has something to do on your host's end. Most commonly, it's because # Stuck on "Locating Server" with no errors -You may need to update your Java version. If so, update at [Adoptium.net](https://adoptium.net/). +You may need to update your Java version. If so, update at [AdoptOpenJDK.net](https://adoptopenjdk.net/). Sometimes this happens in poor-network environments. There is an `mtu` option in the Geyser config; lower this number slowly (in batches of 100), restart each time, and re-test joining. @@ -70,11 +70,7 @@ Connection Refused usually means that a Java server could not be found on that p If you're updating from an old build of Geyser, set your remote address to `auto` and try again. ### Floodgate Misconfiguration -See [this page](/floodgate/issues/) for more information. - -### Missing profile key. This server requires secure profiles. - -See [this page](/geyser/secure-chat/). +See [this page](https://github.com/GeyserMC/Floodgate/wiki/Issues) for more information. ### Mojang Resetting Account Credentials This is unfortunately something we have no control over, and is most likely the case when you're running Geyser as a plugin on a server host or joining a friend far away from your location. If you're running Geyser locally, this should not happen to you, but what we recommend for servers is a plugin we make called [Floodgate](https://github.com/GeyserMC/Floodgate), which allows for Bedrock clients to join your server without needing a Java Edition account. Take a look [here](Floodgate) for more information. @@ -84,8 +80,6 @@ It's currently unknown why this happens even for valid domains. Try using the IP # Bedrock clients freeze when opening up commands for the first time Disable `command-suggestions` in your Geyser config. This will stop the freezing at the expense of removing command suggestions from Bedrock clients. -If you're a dedicated server admin, you can have a list of commands players should be using. This will remove any unnecessary commands from tab completion as well for Java players. It has other benefits too. Here's a plugin that can just do that: -[CommandWhitelist](https://www.spigotmc.org/resources/81326/) # BungeeCord freezes and crashes after bedrock player joins Make sure you have set `ip-forward` to `true` in your BungeeCord `config.yml` and set `bungeecord` to `true` in each connected server's `spigot.yml`. @@ -115,8 +109,7 @@ If you use floodgate ensure that it is installed on all of your Spigot backend s 2. `Lobby: floodgate` 3. `Server-1: floodgate` 4. `Server-2: floodgate` - -And so on. + And so on. * Please also make sure that you have the same `key.pem` and `config.yml` on all of your servers. diff --git a/_docs/geyser/creating-a-startup-script.md b/_docs/geyser/creating-a-startup-script.md index dec5e24..214abc3 100644 --- a/_docs/geyser/creating-a-startup-script.md +++ b/_docs/geyser/creating-a-startup-script.md @@ -4,15 +4,15 @@ title: Creating a Startup Script permalink: /geyser/creating-a-startup-script/ --- -**In order for this to work, you MUST have Java 16 (or higher) installed!** +**In order for this to work, you MUST have Java 8 installed!** -Once you have downloaded and placed Geyser into its own folder, you will need to create a startup script; similar to how you'd run a Bukkit/Spigot/Paper server. +Once you have downloaded and placed Geyser into its own folder, you will need to create a startup script; similar to how you'd run a Bukkit server. ### Windows -* Create a new text file in the same location as the Geyser-Standalone jar file, and call it `run.bat`. Open this with a text editor (preferably Notepad++), and insert the text below: +* Create a new text file in the same location as the Geyser jar file, and call it `run.bat`. Open this with a text editor (preferably Notepad++), and insert the text below: ```batch @echo off -java -Xms1024M -jar Geyser-Standalone.jar +java -Xms1024M -jar Geyser.jar pause ``` * Double-click the **run.bat**, and Geyser should start up. Geyser will generate all the needed files. @@ -23,7 +23,7 @@ pause ```sh #!/bin/bash cd "$( dirname "$0" )" -java -Xms1024M -jar Geyser-Standalone.jar +java -Xms1024M -jar Geyser.jar ``` * Open Terminal, and type in `chmod a+x` **(Do NOT press return!)**, and drag your *run.command* file into the Terminal. * Press return on your keyboard, and Geyser will start up. Geyser will generate all the needed files. @@ -34,7 +34,7 @@ java -Xms1024M -jar Geyser-Standalone.jar ```sh #!/bin/sh cd "$( dirname "$0" )" -java -Xms1024M -jar Geyser-Standalone.jar +java -Xms1024M -jar Geyser.jar ``` * In your default terminal application, make the file executable by running `chmod +x ~(dir)/run.sh` where `dir` is the name of the folder Geyser is in, or by changing the file permissions; * Open your default terminal application, and type `./run.sh` to run Geyser. Geyser will generate all the needed files. diff --git a/_docs/geyser/current-limitations.md b/_docs/geyser/current-limitations.md index 3508143..0ad8910 100644 --- a/_docs/geyser/current-limitations.md +++ b/_docs/geyser/current-limitations.md @@ -19,16 +19,16 @@ The following things cannot be fixed without changes to Bedrock or the Java prot - Various command arguments for any command that doesn't use the Minecraft Brigadier library - Anything that relies on tab complete or typing in the chat UI (related to the above) - Bedrock sends no packet that indicates they are in this menu - Unable to see banner layers past 6 -- Movement issues around bamboo due to offset differences between Java and Bedrock. The following plugin works around this, but please read the README before using: https://github.com/Camotoy/GeyserHacks +- Movement issues around bamboo due to offset differences between Java and Bedrock, but you can use this plugin for temp fix https://github.com/Camotoy/BambooCollisionFix/releases - Custom anvil recipes - Heights lower than -64 or higher than 320 in the overworld with extended height enabled, and heights lower than 0 or higher than 256 in other dimensions - Dolphin's Grace potion effect visuals (effects should still work correctly) - Invisible item frames -- Blocks (excluding jack-o-lantern) on entity heads (E.G. armor stands, players) -The following changes **are supported** with the [GeyserOptionalPack](/other/geyseroptionalpack/), which is a Bedrock resource pack you can install for additional functionality for features Bedrock does not natively support: +The following changes **are supported** with the [GeyserOptionalPack](https://github.com/GeyserMC/Geyser/wiki/GeyserOptionalPack), which is a Bedrock resource pack you can install for additional functionality for features Bedrock does not natively support: - Custom armor stand poses - Illusioners +- Iron golem cracked texture - Hit particles and other miscellaneous particles not natively in Bedrock - Offhand animations - Shulker invisibility diff --git a/_docs/geyser/custom-items.md b/_docs/geyser/custom-items.md deleted file mode 100644 index 3bd4158..0000000 --- a/_docs/geyser/custom-items.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -layout: page -title: Custom items with Geyser -permalink: /geyser/custom-items/ ---- - -# Custom items with Geyser - -To setup custom items in geyser, you have to choose how you are going to register your items. The easiest is [using a json file](#json-mappings) but you can also [use a Geyser extension](#geyser-extensions). - -## JSON mappings - -1. Start your server, and you should have a folder called `custom_mappings` that is created. That would be with the folder of `Geyser.jar` file for standalone and inside your Geyser data folder for a plugin. -2. Create a `.json` file, it can be any name you like and as many files as you like. You don't need to make one file per item. Here is the structure of the file: -```json -{ - "format_version": 1, - "items": { - - } -} -``` -3. Inside the `items` entry, you can add your java item to extend: - -```json -"minecraft:JAVA_ITEM": [ - -] -``` -4. Inside this java item, goes an array of all your custom items. - -```json -{ - "name": "my_item" -} -``` -5. Then, you need to set one or more item options or registrations, they can be stacked, so that all of the specified types need to match. - * Custom model data: `custom_model_data` (int) - * Damage predicate: `damage_predicate` (int) This is a fractional value of damage/max damage and not a number between 0 and 1. - * Unbreakable: `unbreakable` (boolean) -6. You also have some extra modifiers that you can set to further customise your item. **Note that the following modifiers are NOT required.** - * `display_name` (string) default: item name - * `icon` (string) default: item name - * `allow_offhand` (boolean) default: false - * `texture_size` (int) default: 16 - * `render_offsets` (object) It works as follows. Note that all the sub-objects are optional, except x, y and z. You can have for example only a main hand with a position, and noting else. default: no render offset - ```json - "render_offsets": { - "main_hand": { - "first_person": { - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "rotation": { - "x": 0, - "y": 0, - "z": 0 - }, - "scale": { - "x": 0, - "y": 0, - "z": 0 - } - }, - "third_person": { - - } - }, - "off_hand": { - - } - } - ``` - -## Geyser extensions - -### Extending a vanilla item - -1. Create your custom item options or registrations, to which you can add any of the following. They can be stacked, so that all of the specified types need to match, but you **do NOT need all of them.** -```java -CustomItemOptions itemOptions = CustomItemOptions.builder() - .customModelData(1) - .damagePredicate(1) //This is a fractional value of damage/max damage and not a number between 0 and 1. - .unbreakable(true) - .build(); -``` -2. Create your custom item, and store it somewhere: -```java -CustomItemData data = CustomItemData.builder() - .name("my_item") - .customItemOptions(itemOptions) - .build(); -``` -3. You have some modifiers that you can set to further customise your item. **Note that the following modifiers are NOT required.** -```java -.displayName("displayName"); //Default: item name -.icon("my_icon"); //Default: item name -.allowOffhand(false); //Default: false -.textureSize(16); //Default: 16 -.renderOffsets(new CustomRenderOffsets(...)); //Default: no render offset -``` -4. Then, in your pre init event, you can register your item: -```java -@Subscribe -public void onGeyserPreInitializeEvent(GeyserDefineCustomItemsEvent event) { - event.registerCustomItem("minecraft:JAVA_ITEM", data); -} -``` - -### Non vanilla (modded) items with Geyser extensions (for example to use with Fabric) - -1. Create your item data: -```java -NonVanillaCustomItemData data = NonVanillaCustomItemData.builder() - .name("my_item") - .identifier("my_mod:my_item") - .javaId(1) -``` -2. There are many other options you can set to match the behavior that you require for your item. You can see them [here](https://github.com/GeyserMC/Geyser/blob/master/api/geyser/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java) -3. Register your item in the pre init event: -```java -@Subscribe -public void onGeyserPreInitializeEvent(GeyserDefineCustomItemsEvent event) { - event.registerCustomItem(data); -} -``` - -## Resource pack - -1. Setup a basic bedrock resource pack. If you need help, you can find it [here](https://wiki.bedrock.dev/guide/project-setup.html#rp-manifest). -2. Make a `textures` folder. -3. Create `item_texture.json` in the `textures`, and put this in it: - -```json -{ - "resource_pack_name": "MY_PACK_NAME_HERE", - "texture_name": "atlas.items", - "texture_data": { - - } -} -``` -4. Inside texture data, you can add your items. The texture name and path must match the name that you set in your mappings. - -```json -"my_item": { - "textures": [ - "textures/items/my_item" - ] -} -``` -5. Then you need to put your textures inside the `textures/items`. Make sure to have it match the texture path that you specified in `item_texture.json`! diff --git a/_docs/geyser/faq.md b/_docs/geyser/faq.md index 53562a9..bcdaed3 100644 --- a/_docs/geyser/faq.md +++ b/_docs/geyser/faq.md @@ -23,7 +23,7 @@ Geyser should generally work fine with plugins, as we emulate a Java client. The Floodgate can cause issues with plugins as it modifies the login process. *Please note that any offline mode authenticator plugins are only here for documentation; Geyser does not support offline mode usage.* -* [DynamicBungeeAuth](https://www.spigotmc.org/resources/27480/) Currently working on latest version 10.28B+ (10.27B and older versions produces invalid credentials for Bedrock players) +* [DynamicBungeeAuth](https://www.spigotmc.org/resources/27480/) produces invalid credentials for Bedrock players. * [FastLogin](https://www.spigotmc.org/resources/14153/) does not let floodgate add player prefix. * [ExploitFixer](https://www.spigotmc.org/resources/62842/) thinks that Floodgate users are UUID spoofing - disable the `uuidspoof` setting in ExploitFixer's config. * [JPremium](https://www.spigotmc.org/resources/27766/) alters the UUID of a player, causing Floodgate not to be able to get the Bedrock data from its map. @@ -32,27 +32,23 @@ Floodgate can cause issues with plugins as it modifies the login process. *Pleas * [ProtocolSupportBungee](https://www.spigotmc.org/resources/8733/) changes how the login process works and therefore breaks the Floodgate injection code. * [SayNoToMcLeaks](https://www.spigotmc.org/resources/40906/) prevents Floodgate from finishing its login system. -If you come across any more, please let us know via [Discord](http://discord.gg/geysermc). +If you come across any more, please let us know via [Discord](http://discord.geysermc.org). ## Which plugin version of Geyser do I need? This is a non-complete list of what platform each plugin version of Geyser is for, and the standalone version can be used for any as it isn't a plugin. * Geyser-Spigot works with: - * [Spigot](https://www.spigotmc.org/) - * [Paper](https://papermc.io/downloads) (recommended) - * Any other forks of the above + * [Spigot](https://www.spigotmc.org/) + * [Paper](https://papermc.io/downloads) (recommended) + * Any other forks of the above * Geyser-Bungee works with: - * [BungeeCord](https://www.spigotmc.org/wiki/bungeecord/) - * [Waterfall](https://papermc.io/downloads#Waterfall) - * Any other forks of the above + * [BungeeCord](https://www.spigotmc.org/wiki/bungeecord/) + * [Waterfall](https://papermc.io/downloads#Waterfall) + * Any other forks of the above * Geyser-Velocity works with [Velocity](https://www.velocitypowered.com/) * Geyser-Sponge works with [SpongeVanilla or SpongeForge](https://www.spongepowered.org/) -* Geyser-Fabric works with [Fabric](https://www.fabricmc.net/) - -## Which type of Geyser version is better, standalone or plugin? -Because of optimizations that hook into the plugin platforms, plugin versions of Geyser are preferable compared to standalone Geyser. On Spigot, Velocity, and BungeeCord versions of Geyser, direct connections allow for faster loading times, lower latency, and accurate IP addresses without requiring Floodgate. Geyser-Spigot has further optimizations due to having direct world access, including lower memory usage and greater translation accuracy. However, large server networks might prefer standalone Geyser because it can be updated without needing to restart any other proxies or servers, and can offload resource usage onto seperate machines. ## What server versions does Geyser-Spigot support? -The Geyser-Spigot plugin supports any Minecraft server version 1.13.2 or later. Any earlier version is not supported by the plugin - use a proxy version or the standalone build instead. +The Geyser-Spigot plugin supports any Minecraft server version 1.12.2 or later. Any earlier version is not supported by the plugin - use a proxy version or the standalone build instead. ## If using BungeeCord or another fork, where do I need to put Geyser/Floodgate? You only need Geyser and/or Floodgate on the BungeeCord server, as long as not using the Floodgate API. In this case, Floodgate is needed on the "backend" servers as well. @@ -63,7 +59,7 @@ Generally, the IP that Bedrock players will join with is your Java IP and the de ## How can I have Bedrock players load resource packs? -You can add Bedrock resource packs to your Geyser installation in the `packs` folder of wherever the Geyser config is located. Bedrock clients will automatically download and load those resource packs. There is currently no automatic Java-to-Bedrock resource pack conversion, but you can convert any Java resource pack to Bedrock using [this tool](https://rtm516.github.io/ConvertJavaTextureToBedrock/) and add that to your server. The converter currently only works with packs up until 1.17; you will need to use another converter, or, [convert the pack yourself](https://learn.microsoft.com/en-us/minecraft/creator/documents/convertingtexturepacks). +You can add Bedrock resource packs to your Geyser installation in the `packs` folder of wherever the Geyser config is located. Bedrock clients will automatically download and load those resource packs. There is currently no automatic Java-to-Bedrock resource pack conversion, but you can convert any Java resource pack https://rtm516.github.io/ConvertJavaTextureToBedrock/ and add that to your server. ## How can Bedrock players hold items in their offhand? @@ -75,10 +71,10 @@ If there is a prefix on Floodgate players, you must include the prefix in the na Example: `/tp "."` ## How do I add players to the whitelist when using Floodgate? -There are three ways you can do this. The first way is to use Floodgate's built-in whitelist command, `/fwhitelist add `. The second way is to turn off the whitelist using `/whitelist off`, then get the Geyser player to join, then run `/whitelist add "."`, then turn the whitelist back on using `/whitelist on`. (If using this method for a Bedrock account linked to an existing, whitelisted Java account, there is no need to _also_ whitelist the Bedrock account; you may link the accounts then immediately turn the whitelist back on.) The third way is to add the player's UUID as given by Floodgate to the whitelist.json file and then run `/whitelist reload`. +There are three ways you can do this. The first way is to use Floodgate's built-in whitelist command, `/fwhitelist add .`. The second way is to turn off the whitelist using `/whitelist off`, then get the Geyser player to join, then run `/whitelist add "."`, then turn the whitelist back on using `/whitelist on`. (If using this method for a Bedrock account linked to an existing, whitelisted Java account, there is no need to _also_ whitelist the Bedrock account; you may link the accounts then immediately turn the whitelist back on.) The second way is to add the player's UUID as given by Floodgate to the whitelist.json file and then run `/whitelist reload`. ## How do I find a player's UUID without them joining when using Floodgate? -Use [this page.](https://uuid.kejona.dev/) If this doesn't work, then try this method: +Use [this page.](https://floodgate-uuid.heathmitchell1.repl.co/) If this doesn't work, then try this method:

First, you'll need to get the XUID of the player. There are several third-party websites to find this, for example, [this one](https://cxkes.me/xbox/xuid) (unaffiliated with Geyser). Make sure to choose "Hexidecimal." You'll need to enter the player's Xbox Gamertag, and, once submitted, it should display the XUID in the format of `xxxxxxxxxxxxxxxx`. To turn the XUID into a UUID that Java Edition can recognize, you need to put the XUID in this format: `00000000-0000-0000-xxxx-xxxxxxxxxxxx`. If formatted right, Java Edition should accept it as a UUID. @@ -95,19 +91,11 @@ This is a Bedrock client issue caused by Bedrock being 32-bit and Java being 64- No, this is a translation tool to allow Bedrock players to connect to Java servers. It does not work the opposite way. ## Can I use Geyser with Pterodactyl Panel? -Yes, you can use Geyser as a plugin or a mod for your Minecraft server software running on Pterodactyl. There is also an official egg for the standalone version. It supports auto-updating and has all config options easily editable. You can find it [here](https://github.com/GeyserMC/pterodactyl-stuff), download the JSON egg, and import it into your panel. Make sure the Geyser port (using UDP) is exported out to the host & allocated the port to the server. +Yes, you can use Geyser as a plugin or a mod for your Minecraft server software running on Pterodactyl. There is also an official egg for the standalone version. It supports auto-updating and has all config options easily editable. You can find it [here](https://github.com/GeyserMC/pterodactyl-stuff), download the JSON egg, and import it into your panel. ## Can I use Geyser with Ngrok? Unfortunately, Ngrok is TCP-only, so you will not be able to use Geyser with Ngrok. As an alternative, you can use [playit.gg](https://playit.gg), which supports both TCP and UDP. -## How do I setup [Cosmic Guard](https://cosmicguard.com/)? -1) You will need access to the host systems terminal. Note: This guide is for Linux systems only! -2) Setup a "Guard" select gaming then Minecraft: Bedrock edition. -3) Click setup for linux and run the guardian installer and start the service. -4) Run "guardian status" and take note of the "Local IP" it starts with "10.31.x.x". -5) Go to the Geyser config.yml and update the Bedrock address to the Local IP which you found above. -6) Restart the mc server and test it out, it should work for both Java and Bedrock. - ## Can I connect Geyser to an older server? If the server has ViaVersion and/or supports the latest Minecraft version, yes. However, we are unable to support older versions of Minecraft due to a limitation in our Java support library. @@ -117,9 +105,9 @@ The short answer: if a vanilla client can join the server, then so can Geyser. The long answer: currently, there is no way for Geyser to translate the features that most mods add (blocks, items, etc.). Therefore, servers that require mods to be installed clientside are unsupportable through Geyser. ## How can I auto-update Geyser? -Geyser MC Auto Updater ([GitHub page](https://github.com/michaelwatne/geysermcupdater)) is an option at this time to auto-update Geyser through the command line. Note that this project is unaffiliated with Geyser. +[Geyser MC Auto Updater](https://github.com/michaelwatne/geysermcupdater) is an option at this time to auto-update Geyser through the command line. Note that this project is unaffiliated with Geyser. -GeyserUpdater ([GitHub page](https://github.com/ProjectG-Plugins/GeyserUpdater)/[Spigot page](https://www.spigotmc.org/resources/88555/)) is a Spigot/BungeeCord plugin option for auto-updating. Please note that this plugin is also unaffiliated and unsupported by Geyser, and users should redirect support for the plugin to its [Discord](https://discord.gg/U5MC2tcCz9). +GeyserUpdater ([GitHub page](https://github.com/YHDiamond/GeyserUpdater)/[Spigot page](https://www.spigotmc.org/resources/88555/)) is a Spigot/BungeeCord plugin option for auto-updating. Please note that this plugin is also unaffiliated and unsupported by Geyser, and users should redirect support for the plugin to its [Discord](https://discord.gg/U5MC2tcCz9). ## How can I make DiscordSRV show Floodgate 2.0 or GeyserSkinManager skins? Replace the `AvatarUrl` line in your DiscordSRV config with this: `AvatarUrl: https://mc-heads.net/avatar/{texture}/{size}.png` @@ -203,21 +191,6 @@ We aim to support any of the bedrock languages; see [here](https://translate.gey |Hebrew |he_il| |Hindi |hi_in| -## Adding custom Geyser translation overrides - -As of Geyser build #1101, you can now -specify custom translations for Geyser strings used within the project. - -Please note that you cannot add strings that work in Minecraft formatting - these strings are only for -places where Geyser uses them. - -To start, create a `languages` folder in the same directory as the Geyser config file. -Inside of it, you'll need to add a file with your desired locale ending in `.properties`. You can see -[here](https://github.com/GeyserMC/languages/tree/master/texts) for the locale files that Geyser uses - -you can download these as a starting point, or you can just add the strings you want to overwrite. - -You must restart Geyser for the changes to apply. - # Questions not related to gameplay ## What is the relationship between CubeCraft and Geyser? diff --git a/_docs/geyser/fixing-unable-to-connect-to-world.md b/_docs/geyser/fixing-unable-to-connect-to-world.md deleted file mode 100644 index c7d64c9..0000000 --- a/_docs/geyser/fixing-unable-to-connect-to-world.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -layout: page -title: Fixing 'Unable to Connect to World' -permalink: /geyser/fixing-unable-to-connect-to-world/ ---- - -*Unable to Connect to World* is by far the most common error people get when attempting to set up Geyser. Here's some steps on how to solve that. - -**_If you are using a hosting provider: Many providers and remote hostings have additional steps you have to perform in order to be supported; see [Supporting Hosting Providers](https://wiki.geysermc.org/geyser/supported-hosting-providers/). If you're self-hosting from home, you don't need to worry about this._** - -# Before we start... - -## ...Java players can't connect either! - -This **should not be** a Geyser problem. Geyser does not modify server behavior. Floodgate does modify the login structure but only for Bedrock players. Contact your hosting provider or look elsewhere for fixing this connection issue. - -## ...I just updated, and now it doesn't work! - -If this occurred after updating a plugin version of Geyser, ensure that you shut off your server, swapped the Geyser jar, and then started up your server. - -## ...There are errors in my console! - -Please read through the [common issues page](https://wiki.geysermc.org/geyser/common-issues/). If there is another error not documented there, join us on our [Discord](https://discord.geysermc.org). - -## ...Have you tried restarting? - -Especially on mobile devices, sometimes just restarting Minecraft fixes the issue. - -# Is it the server or the client? - -Run your Java server IP and Bedrock address here: https://mcsrvstat.us/. It's a great way of determining if the server is reachable in the first place. - -# General troubleshooting steps - -## Ensure you're connecting on the right IP - -You should be connecting with the Java server IP and the Bedrock port. If you port forwarded 19132, for example, you should specify port 19132 when connecting from Bedrock. - -## I'm using a hosting provider or VPS! - -Please read [this page on supported hosting providers](https://wiki.geysermc.org/geyser/supported-hosting-providers/) to see if there are extra configuration steps required for your hosting or server provider. - -## Port forwarding - -Your server does need to be port forwarded. Generally, you can follow any Minecraft: Java Edition port forwarding guide; however, you need to replace any mention of TCP with UDP and, by default, any mention of 25565 with 19132. - -## Using TCP in DNS options/port forwarding Instead of UDP - -Minecraft: Java Edition uses TCP for connecting; Minecraft: Bedrock Edition uses UDP. Port forwarding your Bedrock Edition port with only TCP will not work, it has to be UDP. Forwarding your Bedrock Edition port with `TCP/UDP` (both protocols) should also work but is not recommended unless Java Edition and Bedrock Edition is sharing the same port. - -## Bedrock port is less than 10000 - -Historically, having a Bedrock port that is a lower number will cause issues. Setting it to 10000 or above seems safe. - -## Bedrock players can connect *after* hitting the server on a TCP port (e.g. on Java or a website on the same server), OR only people who also play on Java Edition can join from Geyser - -This is likely a firewall issue on your server. Try the following workaround: - -Attempt to connect to the Bedrock IP and port through a web browser - for example, `http://test.geysermc.org:19132`. It won't work, but then try connecting through Bedrock, and it should work. - -Specific host fixes: - -SoYouStart (a subsidiary of OVH): - -In the SoYouStart control panel: -1. Click the IP tab. -2. Click the gear at the right of the public IP address; select "Game mitigation". -3. Pick "Add a rule". -4. Select "minecraftPocketEdition" in the dropdown list and enter the target UDP ports. -5. Save and wait a few seconds for the changes to come into effect. - -## Issues connecting with OVH or a subsidiary - -If you're running into issues with some Bedrock players being unable to connect on OVH, navigate through the following settings: - -- Navigate to `Network interfaces` -- Click on the `...` button on the table for your IP -> then `...` and `Configure the GAME firewall` -> `Add rule` -> `Other protocol` (or `minecraftPocketEdition` if available) -- Add your Geyser port into `outgoing port` - -## Changing the `bedrock` `address` in the Geyser config. - -Except for a few specific hosting providers, you generally do not need to change this part of the Geyser config. However, in rare instances, it does fix issues - -# Using a hosting provider or other location - -## Pterodactyl - -If you get this error while using the Pterodactyl Panel, try editing the Geyser config and changing the port to something besides `19132` (e.g. `25566`). - -## Hosting Geyser on another computer on the same network - -### Can only connect from the same computer and not anywhere else - -Your firewall is likely in the way. Try adding an exception to Java, or disable the firewall for testing purposes. - -# As a last resort for troubleshooting... - -Minecraft offers a vanilla Bedrock server [here](https://www.minecraft.net/en-us/download/server/bedrock). Downloading, running, and attempting to connect to it may help isolate if the issue is on Geyser's end, or your computer/network's end. - -# Using Geyser on the same computer - -## Windows 10/11 - -_This only affects people trying to join Geyser from Windows 10/11 Edition with Geyser hosted on the same computer._ - -This is an issue caused by Loopback restrictions not being lifted. By default, Microsoft Apps have this restriction on all their apps for local connections. Geyser will attempt to resolve this automatically; however, if you're still having connection problems, you can lift it by typing the following in Windows PowerShell in administrator mode: (it should return `OK.` if it worked) -```powershell -CheckNetIsolation LoopbackExempt -a -n="Microsoft.MinecraftUWP_8wekyb3d8bbwe" -``` - -Should this not work, you can try this set of steps: - -1. Hold down Windows Key + R -2. In the prompt, type `hdwwiz.exe`, then press Enter then Next -3. Install the Hardware Manually -4. Choose Network Adapter > Next > Microsoft > "Microsoft KM-TEST Loopback Adapter" then hit Next until it's done. - diff --git a/_docs/geyser/playit-gg.md b/_docs/geyser/playit-gg.md deleted file mode 100644 index 8fde73f..0000000 --- a/_docs/geyser/playit-gg.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: page -title: playit.gg Setup -permalink: /geyser/playit-gg/ ---- - -## Prerequisites - -- You must be able to connect to your Geyser instance locally. -- If you already have playit.gg running & set up (for e.g. Minecraft Java edition), skip steps 1 and 2 and proceed with step 3. - -## Setup -1. Head over to [playit.gg's website](https://playit.gg/) - download the program & run it. It will open the login site in the browser - create an account & sign in. Or, use a guest account. -2. Once logged in, make sure to connect the program + site, until step 4 is reached. This should happen automatically, if it does not, follow the instructions on the website and the playit.gg program console. - ![img](https://cdn.discordapp.com/attachments/613194762249437245/1101302643214794863/image.png) -3. Click "Create Tunnel" if you see the screen above, or, select the "Tunnels" tab when logged in to your account. There, select "Minecraft Bedrock", leave "Enable Tunnel" ticked, and click "Add tunnel". - ![img](https://cdn.discordapp.com/attachments/613194762249437245/1101305135768027156/image.png) -4. Once "Add tunnel" is clicked, it should create a new tunnel, and you are set! Scroll down until you see this: - ![img](https://cdn.discordapp.com/attachments/613194762249437245/1101306419640270858/image.png) - If you have Geyser running on a port that is not 19132, update the port there. The "Local Address" does not need to be changed unless you are not running playit.gg and Geyser on the same device. -5. Connect to your server - use the IP and Port from the "Allocation" tab. In our example - "180.ip.ply.gg" as the IP, and "17019" as the port. Alternatively, use the Domain it gives you instead of the IP. -6. If you join successfully, then you are done! Make sure to leave the playit.gg program running as closing it will close the tunnel. You also may want to ratelimit individual connections - use the "Per Connection Rate Limit" option to do so. - (If you failed to join, check out the [troubleshooting](/geyser/setting-up-playit-gg/#troubleshooting) section of the page.) - -## Troubleshooting - -### I can't connect to my server! -* *Are there errors in your minecraft server console?* -* *Make sure to check [here](/geyser/fixing-unable-to-connect-to-world/) beforehand.* -* *If you changed the port that Geyser would bind to, you'll have to tell playit.gg to use that port instead! See step 5 here.* -* *(Alternatively: You can try setting the* `bedrock` `port` *in the Geyser configuration to* `19132`.) diff --git a/_docs/geyser/root.md b/_docs/geyser/root.md index 9cac055..ff466e5 100644 --- a/_docs/geyser/root.md +++ b/_docs/geyser/root.md @@ -11,6 +11,6 @@ permalink: /geyser/ _A bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition._ -**Currently, supporting Minecraft Bedrock {{ site.data.versions.bedrock }} and Minecraft Java {{ site.data.versions.java }}** +**Currently, supporting Minecraft Bedrock 1.17.30 - 1.17.41 + 1.18 and Minecraft Java 1.18** The goal of Geyser is to bridge the Minecraft: Bedrock Edition and Minecraft: Java Edition by allowing Bedrock clients to join Java Edition servers. This project is still in development and not complete yet, so expect bugs. diff --git a/_docs/geyser/secure-chat.md b/_docs/geyser/secure-chat.md deleted file mode 100644 index f9b11bc..0000000 --- a/_docs/geyser/secure-chat.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: page -title: Geyser and Secure Chat -permalink: /geyser/secure-chat/ ---- - -In the 1.19 Java Edition updates, a mechanism for reporting player chat messages to Mojang was implemented. -Bedrock Edition does not support this reporting mechanism. -If your server or proxy settings require that every player joining supports this mechanism (which may be enabled by default), -Bedrock players will be unable to chat. - -Server administrators can disable this setting, but please note that Java players can join with certain mods that make their messages unreportable. - -For a technical explanation of Java's chat signing system, see this [article](https://gist.github.com/kennytv/ed783dd244ca0321bbd882c347892874). - -# Disabling - -*Vanilla, Spigot/Paper/forks, Fabric* - -Set `enforce-secure-profile: false` in [server.properties](https://minecraft.fandom.com/wiki/Server.properties) - -*BungeeCord and forks* - -Set `enforce_secure_profile: false` in [config.yml](https://www.spigotmc.org/wiki/bungeecord-configuration-guide/) - -*Velocity* - -Set `force-key-authentication = false` in [velocity.toml](https://github.com/PaperMC/Velocity/blob/dev/3.0.0/proxy/src/main/resources/default-velocity.toml#L19) diff --git a/_docs/geyser/setup.md b/_docs/geyser/setup.md index 3062187..1d75c33 100644 --- a/_docs/geyser/setup.md +++ b/_docs/geyser/setup.md @@ -6,87 +6,99 @@ permalink: /geyser/setup/ # Setup -## Overview +Bedrock clients will join through Geyser and it will handle all the packet translations. There are six different versions of Geyser: Geyser for Spigot (works on derivatives such as Paper), Geyser for BungeeCord (also works on Waterfall), Geyser for Velocity, Geyser for Sponge, Geyser for Fabric (does not support client required mods, and more info about that can be found [here](https://github.com/GeyserMC/Geyser/wiki/Geyser-Fabric)) and Geyser Standalone. The first five versions run as plugins/mods and can be installed directly onto the server. The standalone version can be used in a similar way, except you run it separately. -Bedrock clients will join through Geyser, and it will handle all the packet translations. There are six different versions of Geyser: -1. Geyser for Spigot (works on derivatives such as Paper), -2. Geyser for BungeeCord (also works on Waterfall), -3. Geyser for Velocity, -4. Geyser for Sponge, -5. Geyser for Fabric (for setups that support vanilla Java clients; requires [Fabric API](https://www.curseforge.com/minecraft/mc-mods/fabric-api)), -6. Geyser Standalone (Standalone Setup instructions are [here](/geyser/standalone/)). - -The first five versions run as plugins/mods and can be installed directly onto the server. The standalone version can be used in a similar way, except you run it separately. - -If you are running a server, it is highly recommended you use one of the plugin versions, and if you want to join a server that does not have Geyser installed, you can run the standalone version. If you use Pterodactyl Panel we have an egg for the standalone version, please see [here](/geyser/faq/#can-i-use-geyser-with-pterodactyl-panel) for more information. +If you are running a server, it is highly recommended you use one of the plugin versions, and if you want to join a server that does not have Geyser installed, you can run the standalone version. If you use Pterodactyl Panel we have an egg for the standalone version, please see [here](FAQ#can-i-use-geyser-with-pterodactyl-panel) for more information. +If you're still having problems with Geyser not working or giving you an "Unable to connect to world" error, see the [Common Issues](Common-Issues) page.\ +For more information, take a look at the [Understanding the Config](Understanding-the-Config) page, and the [FAQ](FAQ) page.\ +And if you still have questions, feel free to join the [Discord](https://discord.geysermc.org) if you haven't already. ## Prerequisites -- The server you are connecting to has to support the latest version of Minecraft Java Edition (at this time this is Minecraft {{ site.data.versions.java }}) -The server itself does not have to be the latest version but does have to allow connections. If you're running the server on an older version, you can use the plugin [ViaVersion](https://www.spigotmc.org/resources/19254/), but do note that only **1.13.2 and any version above is officially supported**. For older versions, use Geyser Standalone, or Geyser on a proxy like Velocity or BungeeCord. -- The device running Geyser must support Java 16 or later. If you need help installing or updating, please see [PaperMC's Java update page](https://docs.papermc.io/misc/java-install). If you're running a version of Paper that does not support Java 16 or later, you can add the flag `-DPaper.IgnoreJavaVersion=true` to your startup Java arguments to allow Paper to run on Java 16. You can run Geyser standalone on another device if a server software cannot be updated to use Java 16. -- If you are connecting to an online mode Java server, a paid Java account is required. If you are running the server, you can bypass this requirement for your server with [Floodgate](/floodgate/). -- Your Bedrock client has to be a supported version - at this time that is Bedrock version(s) {{ site.data.versions.bedrock }}. + +- The server you are connecting to has to support the latest version of Minecraft Java Edition (at this time this is Minecraft 1.18.0) + The server itself does not have to be the latest version but does have to allow connections. If you're running the server on an older version, you can use the plugin [ViaVersion](https://www.spigotmc.org/resources/19254/), but do note that only **1.12.2 and any version above is officially supported**. +- The device running Geyser must support Java 16 or later. If you need help installing or updating, please see https://paper.readthedocs.io/en/latest/java-update/index.html. If you're running a version of Paper that does not support Java 16 or later, you can add the flag `-DPaper.ignoreJavaVersion=true` to your startup Java arguments to allow Paper to run on Java 16. You can run Geyser standalone on another device if a server software cannot be updated to use Java 16. +- If you are connecting to an online mode Java server, a paid Java account is required. If you are running the server, you can bypass this requirement for your server with [Floodgate](https://github.com/GeyserMC/Floodgate/wiki). +- Your Bedrock client has to be a supported version - at this time that is Bedrock version 1.17.30 - 1.18.0. - If you are running the server, you need to have a UDP port opened. See below for more instructions. -- In order for Bedrock players to chat (1.19.3+) or join (1.19.1/1.19.2), you need to disable chat signing. More information about that can be read on the [chat signing page](/geyser/secure-chat/). ## Plugin Setup -1. Read the Prerequisites above, especially if you are setting up Geyser for an older Minecraft Java Edition version! -2. To make sure you are using the easiest way to set up Geyser, please check whether your hosting provider features [built-in Geyser](/geyser/supported-hosting-providers/#built-in-geyser). If you are not using a hosting provider, or your hosting provider is not featured on said list, continue with the steps below. -3. If 2. does not apply: download Geyser [here](https://geysermc.org/download) for the platform your server runs on. See the [FAQ](/geyser/faq/#which-plugin-version-of-geyser-do-i-need) if you're confused about which build to download. -4. Put the Geyser jar file in your plugins folder and start up the server. -5. Port-forwarding: - - If you are using a hosting provider, you will likely need to change your Bedrock port in `config.yml`. Information on your hosting provider might be available on the [Supported Hosting Providers](/geyser/supported-hosting-providers/) page. If there is no information on your hosting provider and you are unable to assign/open ports yourself, try enabling `clone-remote-port` in Geyser's `config.yml`file and connecting with the same IP/port as you would with Java Edition. - - If not using a hosting provider, you will need to use port forwarding to allow people outside your LAN to connect. You want to port forward 19132 UDP, instructions to do that for most routers can be found [here](https://www.lifewire.com/how-to-port-forward-4163829). If you are trying to join from the same LAN, the server should show up in the friends tab. - - To check whether it is working correctly, you can use the `geyser connectiontest [yourIP]:[yourPort]` command in your server console to check if the server is reachable from the outside. - - _Restart your server if you edited your config! Simply reloading will not work._ -6. Besides the `port` entry in the _Bedrock Section_ of Geyser's `config.yml`, you rarely need to change anything. A few examples: - - `address: 0.0.0.0` 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 or if your hosting provider instructs you to do so. - - `port: 19132` The port Bedrock players will use to connect. If the option `clone-remote-port` is set to true, this port is ignored, and you'll have to use the same port on bedrock as you would on Java to connect. -7. The _remote_ section in the `config.yml` determines, which Java server the Bedrock players join. -- `address: auto` This means, that Geyser configures the server's IP, port and auth-type of the java server by itself, leave this at auto. -- `port: 25565` This should be the port of the Java server. By default, it is set to 25565 - your hosting provider may have assigned a different port to your Java server, set that here. -8. If you wish to remove the Java account requirement, set up the [Floodgate](/floodgate/setup/) plugin. This will allow Bedrock players to play on your server, without you having to use offline mode. -9. For further Geyser config changes, like allowing Bedrock players to build on the nether roof, refer to [the config help article](/geyser/understanding-the-config/). +1. Download a jar of Geyser from the [build server](https://ci.opencollab.dev/job/Geyser/job/master/) depending on what platform your server runs on. See the [FAQ](FAQ#which-plugin-version-of-geyser-do-i-need) if you're confused about which build to download. +2. Put the Geyser jar file in your plugins folder and start up the server. +3. If you are on a hosting provider, you will likely need to change your Bedrock port in `config.yml`. Information on your hosting provider might be available on the [Supported Hosting Providers](https://github.com/GeyserMC/Geyser/wiki/Supported-Hosting-Providers) page. +4. Restart your server if you edited your config. +5. If not using a hosting provider you will need to use port forwarding to allow people out of your LAN to connect. You want to port forward 19132 UDP, instructions to do that for most routers can be found [here](https://www.lifewire.com/how-to-port-forward-4163829). -If you're still having problems with Geyser not working or giving you an "Unable to connect to world" error, see the [Common Issues](/geyser/common-issues/) page.\ -For more information, take a look at the [Understanding the Config](/geyser/understanding-the-config/) page, and the [FAQ](/geyser/faq/) page.\ -And if you still have questions, feel free to join the [Discord](https://discord.geysermc.org) if you haven't already. +If you are trying to join from the same LAN, the server should show up in the friends tab. ### BungeeCord/Velocity Setup If you are using a BungeeCord, Waterfall, or Velocity proxy, then you only need to install Geyser (and Floodgate, if you desire) on the proxy. -You can install Floodgate (but not Geyser) on the back-end servers to improve skin functionality and to let other plugins access the Floodgate API. If you do this, then you _must_ make sure that the same `key.pem` file is used between all instances of Floodgate; otherwise, Bedrock clients will not be able to join. Full instructions can be found on the [Floodgate Wiki](/floodgate/setup/). +You can install Floodgate (but not Geyser) on the back-end servers to improve skin functionality and to let other plugins access the Floodgate API. If you do this, then you _must_ make sure that the same `key.pem` file is used between all instances of Floodgate; otherwise, Bedrock clients will not be able to join. Full instructions can be found on the [Floodgate Wiki](https://github.com/GeyserMC/Floodgate/wiki/Setup-and-Usage). The Bedrock clients, like Java clients, should connect to the proxy server, and should never directly connect to a back-end server. You don't need to (and shouldn't) port-forward anything for the back-end servers! -#### Setup: -1. Make sure Velocity/BungeeCord is up-to-date. The proxy can be newer than the servers behind it (also called backend servers). If you're running the backend servers on an older version then the current {{ site.data.versions.java }}, you can use the plugin [ViaVersion](https://www.spigotmc.org/resources/19254/). It is recommended to have the plugin on all backend servers where necessary, instead to having it on the proxy. -2. Download Geyser [here](https://geysermc.org/download) for the platform your server runs on. See the [FAQ](/geyser/faq/#which-plugin-version-of-geyser-do-i-need) if you're confused about which build to download. -3. Put the Geyser jar file in your plugins folder and start up the server. -4. Port-forwarding: -- If you are using a hosting provider, you will likely need to change your Bedrock port in the `config.yml` file. Information on your hosting provider might be available on the [Supported Hosting Providers](/geyser/supported-hosting-providers/) page. If your hosting provider is not listed there, and you are unable to port forward the default 19132 port on UDP, try setting `clone-remote-port` to true and connecting with the Java IP and port. Any port will work, as long as the UDP protocol is not blocked or already in use by the query feature (see `server.properties`) or another mod. -- If you are not using a hosting provider, you will need to use port forwarding to allow people out of your LAN to connect. You want to port forward 19132 UDP, instructions to do that for most routers can be found [here](https://www.lifewire.com/how-to-port-forward-4163829). Note: Any port will work, as long as UDP traffic is not blocked. Java uses the TCP protocol, so you will need to open both UDP and TCP if you wish to use the same port. -- To check whether it is working correctly, you can use the `geyser connectiontest [yourIP]:[yourPort]` command in your server console to check if the server is reachable from the outside. -- _Restart your server if you edited your config! Simply reloading will not work._ -5. Besides the `port` entry in the _Bedrock Section_ of Geyser's `config.yml`, you rarely need to change anything. A few examples: -- `address: 0.0.0.0` 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 or if your hosting provider instructs you to do so. -- `port: 19132` The port bedrock players will use to connect. If the option `clone-remote-port` is set to true, this port is ignored, and you'll have to use the same port on Bedrock as you would on Java to connect. -6. The _remote_ section in the `config.yml` determines which Java proxy the Bedrock players join. The proxy then configures which server the players are sent to. -- `address: auto` Leaving this at auto is recommended, because it means that Geyser configures the proxy's IP, port and auth-type itself. -- `port: 25565` This should be the port of the Java server. By default, it is set to 25565 - your hosting provider may have assigned a different port to your proxy, set that here. -7. For further Geyser config changes, like allowing Bedrock players to build on the nether roof, refer to [the config help article](/geyser/understanding-the-config/). - - ## Standalone Setup -Please read [Standalone Setup](/geyser/standalone/) to set up Geyser Standalone. +Please keep in mind, you need some sort of computer or host to run Geyser Standalone on. Applications such as Termux on Android are capable of running Geyser, but this largely depends on how powerful your Android device is. Please do so at your own risk. Instructions to run Geyser on Termux can be found [here](GeyserSetup#termux-android). + +1. Download a jar of Geyser from the [build server](https://ci.opencollab.dev/job/Geyser/job/master/). +2. Create a new folder for Geyser, and drop the jar in there. + +### GUI Setup (Recommended) +3. Double-click the jar file and all the necessary files for Geyser will be created. +4. Configure options such as the server you want to join in the Geyser config. A description of all options of the config can be found on the [Understanding the Config](https://github.com/GeyserMC/Geyser/wiki/Understanding-the-Config) page. +5. Stop the current instance of Geyser and re-run it. + +### Console Setup +3. Create a new bat or startup script, similar to the one you'd use for a Spigot or Paper server, and take a look at [this](Creating-a-Startup-Script) page for what to put into it. +4. Run the startup script/bat, and all the necessary files for Geyser will be created. +5. Configure options such as the server you want to join in the Geyser config. A description of all options of the config can be found on the [Understanding the Config](https://github.com/GeyserMC/Geyser/wiki/Understanding-the-Config) page. +6. Stop the current instance of Geyser and re-run it. + +Once you're done, open up Minecraft: Bedrock Edition and in the **Friends** tab, Geyser should show up there. If it does not show up, just add the Java IPv4 address and Bedrock port. + +### Standalone Setup (Geyser and Floodgate are not on the same server) +If you want to offload Geyser's processing you can host Geyser (Standalone) somewhere else and make it redirect to your server. +**Warning:** Do not forget to edit the remote section of your Geyser config. +See the [Floodgate](https://github.com/GeyserMC/Floodgate/wiki/) wiki page for more details. ## Port Forwarding -Unlike Minecraft Java Edition, Bedrock Edition runs on port 19132 on the UDP protocol. When port forwarding, make sure to allocate to 19132 UDP or another UDP port. For many server hosting providers, you will simply need to change your Bedrock listening port (see [here](/geyser/supported-hosting-providers/) for a list of supported providers). +Unlike Minecraft Java Edition, Bedrock Edition runs on port 19132 on the UDP protocol. When port forwarding, make sure to allocate to 19132 UDP or another UDP port. For many server hosting providers, you will simply need to change your Bedrock listening port (see [here](https://github.com/GeyserMC/Geyser/wiki/Supported-Hosting-Providers) for a list of supported providers). + +## Termux (Android) +Please read the disclaimer [here](GeyserSetup#standalone-setup) before continuing. +1. Download and install [Termux](https://termux.com/) +2. Run `pkg install openjdk-17` +3. Run `wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/standalone/target/Geyser.jar` +4. Run `java -jar Geyser.jar` + +OR + +We have an automated setup script for clean Termux installs, which might not work for all users. If the manual guide above does not work, try this. +Run this to start the download/install: +``` +curl https://gist.githubusercontent.com/rtm516/e3e07d6595ee41e05a38b03c0f4d7a80/raw/install.sh | bash +``` + +## NewTerm 2 (iOS) +**Note:** A jailbreak is required. You can find what jailbreak to use for your device [here](https://docs.google.com/spreadsheets/d/11DABHIIqwYQKj1L83AK9ywk_hYMjEkcaxpIg6phbTf0/edit?usp=sharing). +1. Install [Filza File Manager](http://cydia.saurik.com/package/com.tigisoftware.filza/). +2. Install [NewTerm 2](https://chariz.com/get/newterm). +4. Download jre-16 for iOS and install it using Filza [here](https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/download/v16-openjdk/openjdk-16-jre_16.0.0+git20201217.8383f41-2_iphoneos-arm.deb). +3. Download my modified java commands, and install it using Filza [here](https://cdn.discordapp.com/attachments/558829512633090048/834014323755319306/com.letschill.java_0.1_iphoneos-arm.deb). +4. Open NewTerm 2 and run `wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/standalone/target/Geyser.jar`. +5. Run `java -jar Geyser.jar`. +6. You can find Geyser server running in MCPE! + +**Note:** +Due to iOS's environment, if your device has low specs, iOS might end up killing NewTerm 2 while you're playing, stopping the server. There is no fix for that because of how iOS works. + +You may encounter some issues. If you do, run `su` then enter the root password (default is `alpine`) for root access. Then, run the server like you normally would, and it should work just fine. ## Setup Videos -Setup tutorials in a variety of languages. Do note: Some might be outdated - but the written guide above is up-to-date. +Setup tutorials in a variety of languages. ### English **Connect to Java servers from Bedrock Edition! | GeyserMC Proxy Tutorial by [raimuakuna](https://www.youtube.com/channel/UCIMZsNCD_-prDETwRypAqmQ)** @@ -109,11 +121,3 @@ Setup tutorials in a variety of languages. Do note: Some might be outdated - but **ЗАШЕЛ НА ХАЙПИКСЕЛЬ С МКПЕ? ЧИТЕРСКИЙ КОНФИГ!** by [TOWUK](https://www.youtube.com/channel/UCK8v-rGsfCOkpbi0slIpAng) [![YouTube Video](https://img.youtube.com/vi/KcZZp05EfVQ/0.jpg)](https://www.youtube.com/watch?v=KcZZp05EfVQ) - -**ПОДНИМАЕМ СЕРВЕР JAVA+BEDROCK MINECRAFT** by [UncleZak](https://www.youtube.com/watch?v=nrFQ6BlOsLc) - -[![YouTube Video](https://img.youtube.com/vi/nrFQ6BlOsLc/0.jpg)](https://www.youtube.com/watch?v=nrFQ6BlOsLc) - -**Кроссплатформенный сервер Minecraft | GeyserMC Installation** by [Plutonium](https://www.youtube.com/channel/UCxXjEZgHcjMIYoHoDKOCBOw) - -[![YouTube Video](https://img.youtube.com/vi/nOwowRFZE9M/0.jpg)](https://www.youtube.com/watch?v=nOwowRFZE9M) diff --git a/_docs/geyser/standalone.md b/_docs/geyser/standalone.md deleted file mode 100644 index 4c382b5..0000000 --- a/_docs/geyser/standalone.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: page -title: Geyser Standalone -permalink: /geyser/standalone/ ---- - -# Setup of Geyser Standalone - - -## Prerequisites - -- The server you are connecting to has to support the latest version of Minecraft: Java Edition (at this time this is Minecraft {{ site.data.versions.java }}) -The server itself does not have to be the latest version but does have to allow connections. If you're running the server on an older version, you can use the plugin [ViaVersion](https://www.spigotmc.org/resources/19254/). -- The device running Geyser must support Java 16 or later. If you need help installing or updating, please see [PaperMC's Java update page](https://paper.readthedocs.io/en/latest/java-update/index.html). -- If you are connecting to an online mode Java server, a paid Java account is required. If you are running the server, you can bypass this requirement for your server with [Floodgate](/floodgate/). -- Your Bedrock client has to be a supported version - at this time that is Bedrock version(s) {{ site.data.versions.bedrock }}. -- To allow Geyser Standalone to be reached outside the local network, Unlike Minecraft: Java Edition, Bedrock Edition runs on port 19132 on the UDP protocol. When port forwarding, make sure to allocate to 19132 UDP or another UDP port. -- Currently, Geyser does not support key signing. To disable it (on servers running version 1.19 and higher), follow these instructions: Spigot, Paper, & all forks: Set `enfore-secure-profile: false` in the `server.properties` file. On BungeeCord: Set `enforce_secure_profile: false` in your `config.yml`. Using Velocity: set `force-key-authentication = false` in your `velocity.toml`. - - -## Standalone Setup -Please keep in mind, you need some sort of computer or host to run Geyser Standalone on. Applications such as Termux on Android are capable of running Geyser, but this largely depends on how powerful your Android device is. Please do so at your own risk. Instructions to run Geyser on Termux can be found [here](/geyser/setup/#termux-android). - -1. Download [Geyser Standalone](https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/standalone). -2. Create a new folder for Geyser, and drop the jar in there. - -### GUI Setup (Recommended) -3. Double-click the jar file and all the necessary files for Geyser will be created. -4. Configure options such as the server you want to join in the Geyser config. A description of all options of the config can be found on the [Understanding the Config](/geyser/understanding-the-config/) page. -5. Stop the current instance of Geyser and re-run it. - -### Console Setup -3. Create a new bat or startup script, similar to the one you'd use for a Spigot or Paper server, and take a look at [this](/geyser/creating-a-startup-script/) page for what to put into it. -4. Run the startup script/bat, and all the necessary files for Geyser will be created. -5. Configure options such as the server you want to join in the Geyser config. A description of all options of the config can be found on the [Understanding the Config](/geyser/understanding-the-config/) page. -6. Stop the current instance of Geyser and re-run it. - -Once you're done, open up Minecraft: Bedrock Edition and in the **Friends** tab, Geyser should show up there. If it does not show up, just add the Java IPv4 address and Bedrock port. - -### Standalone Setup (Geyser and Floodgate are not on the same server) -If you want to offload Geyser's processing you can host Geyser (Standalone) somewhere else and make it redirect to your server. -**Warning:** Do not forget to edit the remote section of your Geyser config. -See the [Floodgate](/floodgate/) wiki page for more details. - -## Port Forwarding - -Unlike Minecraft: Java Edition, Bedrock Edition runs on port 19132 on the UDP protocol. When port forwarding, make sure to allocate to 19132 UDP or another UDP port. For many server hosting providers, you will simply need to change your Bedrock listening port (see [here](/geyser/supported-hosting-providers/) for a list of supported providers). - -## Termux (Android) -Please read the disclaimer [here](/geyser/setup/#standalone-setup) before continuing. -1. Download and install [Termux](https://termux.com/) -2. Run `pkg install openjdk-17` -3. Run `wget https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/standalone/build/libs/Geyser-Standalone.jar` -4. Run `java -jar Geyser-Standalone.jar` - -OR - -We have an automated setup script for clean Termux installs, which might not work for all users. If the manual guide above does not work, try this. -Run this to start the download/install: -``` -curl https://gist.githubusercontent.com/rtm516/e3e07d6595ee41e05a38b03c0f4d7a80/raw/install.sh | bash -``` - -## NewTerm 2 (iOS) -**Note:** A jailbreak is required. You can find what jailbreak to use for your device [here](https://docs.google.com/spreadsheets/d/11DABHIIqwYQKj1L83AK9ywk_hYMjEkcaxpIg6phbTf0/edit?usp=sharing). -1. Install [Filza File Manager](http://cydia.saurik.com/package/com.tigisoftware.filza/). -2. Install [NewTerm 2](https://chariz.com/get/newterm). -4. Download PojavLauncher's Java 16 JRE for iOS and install it using Filza [here](https://github.com/PojavLauncherTeam/PojavLauncher_iOS/releases/download/v16-openjdk/openjdk-16-jre_16.0.0+git20201217.8383f41-2_iphoneos-arm.deb). -3. Download this package containing modified java commands, and install it using Filza [here](https://cdn.discordapp.com/attachments/558829512633090048/834014323755319306/com.letschill.java_0.1_iphoneos-arm.deb) (Note: Not an official GeyserMC project, install at your own risk). -4. Open NewTerm 2 and run `wget https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/standalone` -5. Run `java -jar Geyser-Standalone.jar`. -6. Geyser should show up in the Friends tab inside Minecraft. - -**Note:** -Due to the iOS environment, if your device has low specs, iOS might end up killing NewTerm 2 while you're playing, stopping the server. There is no fix for that because of how iOS works. diff --git a/_docs/geyser/understanding-the-config.md b/_docs/geyser/understanding-the-config.md index ed3088c..4bd75a9 100644 --- a/_docs/geyser/understanding-the-config.md +++ b/_docs/geyser/understanding-the-config.md @@ -7,11 +7,11 @@ permalink: /geyser/understanding-the-config/ This page covers basic information about the Geyser config and what each option does. Though they are explained in the configuration itself, this explains what each option does in more detail. ## Bedrock Section -The options for Geyser on the Bedrock-facing end. Mostly contains options for how Bedrock edition will see the server. +The options for Geyser on the bedrock-facing end. Mostly contains options for how bedrock edition will see the server. -**`address`**: The address of Geyser on the Bedrock end. In most all scenarios, this should not need to be changed, unless you want to limit what IPs can connect to your server. Leave it at 0.0.0.0 (default), unless otherwise instructed in the setup guide. +**`address`**: The address of Geyser on the bedrock end. In most all scenarios, this should not need to be changed. -**`port`**: The port Geyser will run on. By default, it is 19132 in Bedrock. If you are using a server hosting provider, you may not have this port available to you - in which case, read the setup guide to proceed. +**`port`**: The port Geyser will run on. By default, it is 19132 in bedrock. **`clone-remote-port`**: Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock/UDP connections. This option makes the Bedrock port the same as the Java port every time you start the server. This option does not do anything on the Standalone version of Geyser. @@ -19,51 +19,45 @@ The options for Geyser on the Bedrock-facing end. Mostly contains options for ho **`motd2`**: The second line of the MOTD for Geyser. **Please keep in mind, this option will only work if Geyser is shown in the Friends tab!** -**`server-name`**: The world name that is shown in the top-right area of the pause menu and the settings menu. +**`server-name`**: The world name that is shown in the top-right area of the pause screen. -**`compression-level`**: An number value that represents how much to compress outgoing traffic. Can be any number from -1 to 9; any other value will be replaced with the nearest acceptable value. The higher the number, the more CPU processing that is used but with less bandwidth used. Default is 6. - -**`enable-proxy-protocol`**: 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. You do NOT need this for BungeeCord (and forks), Velocity, or Waterfall. - -**`proxy-protocol-whitelisted-ips`**: Disabled by default, and only enable this if you use "enable-proxy-protocol". A list of allowed PROXY protocol speaking proxy IP addresses/subnets. 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. Both IP addresses and subnets are supported. +**`compression-level`**: An number value that represents how much to compress outgoing traffic. Can be any number from -1 to 9; any other value will be replaced with the nearest acceptable value. The higher the number, the more CPU processing that is used but with less bandwidth used. ## Remote Section -Options for the remote (Java) server. +Options for the remote (java) server. **`address`**: The address of the Minecraft: Java Edition server you want to join. By default, this value is `auto`. By keeping it as `auto`, the address, port, and Floodgate support will be automatically configured. In standalone, keeping this as `auto` sets the remote address to 127.0.0.1. -**`port`**: The port of the Minecraft: Java Edition server you specified in the `address` section. For plugin versions, if address has been set to "auto", the port will also follow the server's listening port. +**`port`**: The port of the Minecraft: Java Edition server you specified in the `address` section. -**`auth-type`**: The authentication type of the Minecraft: Java Edition server. Valid options are `online`, `offline`, and `floodgate`. +**`auth-type`**: The authentication type of the Minecraft: Java Edition server. Valid options are `online`, `offline`, and `floodgate`. -**Please keep in mind, what you specify in the Geyser `auth-type` option MUST be the same as what the remote server has (with the exception of Geyser being in online mode and remote being in offline mode). You simply cannot join an online mode server without a genuine account. If you want to allow Minecraft: Bedrock Edition accounts to join without a Minecraft: Java Edition account, see the [Floodgate](/floodgate/) wiki page.** +**Please keep in mind, what you specify in the Geyser `auth-type` option MUST be the same as what the remote server has (with the exception of Geyser being in online mode and remote being in offline mode). You simply cannot join an online mode server without a genuine account. If you want to allow Minecraft: Bedrock Edition accounts to join without a Minecraft: Java Edition account, see the [Floodgate](https://github.com/GeyserMC/Floodgate/wiki/) wiki page.** **`use-proxy-protocol`**: Whether to enable PROXY/HAProxy protocol or not while connecting to the server. This is useful only when: - Your server supports PROXY protocol (it probably doesn't) - You run Velocity or BungeeCord with its respective option enabled. -- IF YOU DON'T KNOW WHAT THIS IS, DON'T TOUCH IT! **`forward-hostname`**: Forwards the hostname/IP address that the Bedrock client used to connect over to the Java server. This is designed to be used for forced hosts on proxies. ## General Options General Geyser options that are mostly specific to Geyser itself. -**`floodgate-key-file`**: 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.The key file path for Floodgate. Requires that you have [Floodgate](/floodgate/) installed and the `auth-type` set to `floodgate`. +**`floodgate-key-file`**: The key file path for Floodgate. Requires that you have [Floodgate](https://github.com/GeyserMC/Floodgate/wiki/) installed and the `auth-type` set to `floodgate`. -**`saved-user-logins`**: 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`. +**`userAuths`**: A section where you can put the authentication information for your Minecraft: Java Edition account for immediate login when joining Geyser. **It is advised you ONLY use this option if you are running Geyser locally and that ONLY you have access to the config as it requires you put your Minecraft: Java Edition credentials in plain text!** -Format: +If your Xbox account name was Notch, your Java email was `foobar2000@gmail.com` and your password was `hunter2`, you would fill this into the config: -```yml -saved-user-logins: - - jeb_ - - Dinnerbone ``` +userAuths: + Notch: # MCPE/Xbox username + email: foobar2000@gmail.com + password: "hunter2" + microsoft-account: true +``` + +Put two spaces before the username and four spaces before the email and password. **`command-suggestions`**: Bedrock clients freeze or crash when opening up the command prompt for the first time with a large amount of command suggestions. This config option disables command suggestions being sent to prevent any freezing. **Since 1.16.100:** command freezing and crashing has been largely reduced; you may no longer need this option disabled. @@ -71,17 +65,17 @@ saved-user-logins: **`passthrough-protocol-name`**: Relay the protocol name (e.g. BungeeCord [X.X], Paper 1.X) - this is only really useful when using a custom protocol name! This will also show up on sites like MCSrvStatus. -**`passthrough-player-count`**: If the current and max player counts should be relayed from the remote server. +**`passthrough-players`**: If the current and max player counts should be relayed from the remote server. -**`legacy-ping-passthrough`**: If enabled, manually pings the server by impersonating a Minecraft client instead of using the server's API. **This option should *only* be enabled if your MOTD or player count is not accurate,** as it can cause errors especially on BungeeCord. This option does nothing on Geyser Standalone. +**`legacy-ping-passthrough`**: If enabled, manually pings the server by impersonating a Minecraft client instead of using the server's API. **This option should *only* be enabled if your MOTD or player count is not accurate,** as it can cause errors especially on BungeeCord. This option does nothing on standalone. **`ping-passthrough-interval`**: How often the fake Minecraft client should attempt to ping the remote server to update information, in seconds (a setting of 1 will ping the server every second; a setting of 3 will ping the server every three seconds). Only relevant for standalone and legacy ping passthrough. Increase the number if you're getting timeout or BrokenPipe exceptions. -**`forward-player-ping`**: 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. - **`max-players`**: The maximum amount of players shown when pinging the server. This does not actually cap how many players can join the Geyser instance at this time. The number will visually increase when pinging if the amount of players is greater, as Bedrock clients will not even attempt to join a full server. -**`debug-mode`**: If debug messages should be printed in console. Useful if you run into an error and need more context. Yes, this will cause more messages, warnings or even errors in console - some packets aren't translated. +**`debug-mode`**: If debug messages should be printed in console. Useful if you run into an error and need more context. + +**`general-thread-pool`**: The amount of threads Geyser will be able to use. Higher is not always better :P. **`allow-third-party-capes`**: If third party (Optifine, 5zig, LabyMod, etc.) capes should be displayed to the bedrock player. @@ -91,47 +85,25 @@ saved-user-logins: **`show-coordinates`**: Bedrock Edition has an option to show coordinates in the top-left part of your screen. This setting enables or disables this. -**`disable-bedrock-scaffolding`**: Whether Bedrock players are blocked from performing their scaffolding-style bridging. - -**`always-quick-change-armor`**: Whether Bedrock players can right-click outside their inventory to replace armor in their inventory, even if the armor slot is already occupied (which Java Edition doesn't allow). - **`emote-offhand-workaround`**: Since Java Edition 1.9, clients have had the ability to switch the item in their mainhand and offhand with a keybind. Bedrock Edition does not have this ability, so this config option makes up for it, 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 -**`default-locale`**: The default locale to send to players if their locale could not be found. Check [this](/geyser/faq/#what-languages-does-geyser-support) page to find the code corresponding to your language. This option is disabled by default - to enable it, remove the "#" in front of the option. +**`default-locale`**: The default locale to send to players if their locale could not be found. Check [this](https://github.com/GeyserMC/Geyser/wiki/FAQ#what-languages-does-geyser-support) page to find the code corresponding to your language. + +**`chunk-caching`**: Cache chunks for each Bedrock player, adds support for additional sounds and fixing movement issues at the expense of slightly more RAM usage. This option is always on for Spigot as we can use the server's API to get block information at no expense. *Geyser does not recommend disabling this option.* **`cache-images`**: 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) **`allow-custom-skulls`**: Allows custom skulls to be displayed when placed. Keeping them enabled may cause a performance decrease on older/weaker devices. -**`max-visible-custom-skulls`**: 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. - -**`custom-skull-render-distance`**: A number value specifying the radius in blocks around the player in which custom skulls are displayed. 32 by default. - -**`add-non-bedrock-items`**: Whether to add (at this time, only) the furnace minecart as a separate item in the game, 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. This option requires a restart of Geyser in order to change its setting. - -**`above-bedrock-nether-building`**: 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-nether-bedrock-building`**: 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. **`force-resource-packs`**: 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. **`xbox-achievements-enabled`**: Allows Xbox achievements to be unlocked. **This disables certain commands so the Bedrock client can't "cheat" to get them; this cannot be worked around if you want to enable this**. Commands such as /gamemode and /give will not work from Bedrock with this enabled. -**`log-player-ip-addresses`**: Whether player IP addresses will be logged by the server. - -**`notify-on-new-bedrock-update`**: 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. - -**`unusable-space-block`**: 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 (minecraft:barrier is therefore the default value). Takes any Java Minecraft identifier, e.g. "minecraft:apple". - -## Metrics - -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/). To see Geyser Stats, see [here](https://bstats.org/plugin/server-implementation/GeyserMC/). - -**`enabled`**: If metrics are enabled - -**`uuid`**: UUID of the server, don't change this! - ## Advanced Options **`scoreboard-packet-threshold`**: 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 then limited to four updates per second. diff --git a/_docs/geyser/using-geyser-or-floodgate-as-a-dependency.md b/_docs/geyser/using-geyser-or-floodgate-as-a-dependency.md index 4e75abe..51ecb48 100644 --- a/_docs/geyser/using-geyser-or-floodgate-as-a-dependency.md +++ b/_docs/geyser/using-geyser-or-floodgate-as-a-dependency.md @@ -1,6 +1,6 @@ --- layout: page -title: Using Geyser or Floodgate as a dependency +title: Using geyser or floodgate as a dependency permalink: /geyser/using-geyser-or-floodgate-as-a-dependency/ --- @@ -9,19 +9,27 @@ To start, add the Open Collaboration repository to your project: ```xml opencollab-snapshot-repo - https://repo.opencollab.dev/main/ + https://repo.opencollab.dev/maven-snapshots/ + + false + + + true + ``` ## Using Geyser -Add Geyser's API codebase as a dependency: +*Please note: this information will be updated with a new API at a later point, but the old API structure will continue to work.* + +Add Geyser's common codebase as a dependency: ```xml - org.geysermc.geyser - api - 2.1.0-SNAPSHOT + org.geysermc + core + 2.0.0-SNAPSHOT provided ``` @@ -29,17 +37,17 @@ Add Geyser's API codebase as a dependency: To get a Geyser player, or check if a player is from Bedrock: ```java -GeyserConnection connection = GeyserApi.api().connectionByUuid(uuid); +GeyserSession session = GeyserConnector.getInstance().getPlayerByUuid(uuid); ``` -`connection` can be null if such a player does not exist on Geyser. +`session` can be null if such a player does not exist on Geyser. -`GeyserApi.api()` may be null until after the Geyser plugin enables. +`GeyserConnector.getInstance()` will be null until after the Geyser plugin enables. ## Using Floodgate -This page has a very simple primer for the Floodgate API. For a full breakdown, see [here](/floodgate/api/). +This page has a very simple primer for the Floodgate API. For a full breakdown, see [here](https://github.com/GeyserMC/Floodgate/wiki/FloodgateApi). Add Floodgate's API as a dependency: ```xml diff --git a/_docs/geyser/using-geyser-with-consoles.md b/_docs/geyser/using-geyser-with-consoles.md index 06a17c2..342aad9 100644 --- a/_docs/geyser/using-geyser-with-consoles.md +++ b/_docs/geyser/using-geyser-with-consoles.md @@ -6,8 +6,6 @@ permalink: /geyser/using-geyser-with-consoles/ All consoles can join third-party servers - including Geyser servers - with workarounds. Xbox One, Nintendo Switch, and PS4 systems can join third-party servers using a third-party program called BedrockConnect. For technical information about the program, including how to run your own setup, see [their GitHub repository](https://github.com/Pugmatt/BedrockConnect) (*This program is not affiliated with GeyserMC*). Other methods are also available for use. -There is also a tool anyone can set up that allows you to connect to the server via adding a user to your friends list, as well as a tool admins can set up that allows connecting from a linked account of a user on the server. This tool can be found [here](https://github.com/rtm516/MCXboxBroadcast). - **NOTE: The main IP used for BedrockConnect is often blocked on consoles, if you run into issues with internet connection or joining servers after changing your DNS, consider using either one of the other BedrockConnect servers on the [BedrockConnect Github Page](https://github.com/Pugmatt/BedrockConnect), or the [Public GeyserConnect](https://www.geyserconnect.net) which allows connecting to both Java and Bedrock servers.** # Xbox One @@ -45,12 +43,10 @@ If you have a PC, you can use [Phantom](https://github.com/jhead/phantom). ### Using an Android Device If you have an Android device, you have several options: -- ~~[Geyser Android app](https://github.com/GeyserMC/GeyserAndroid)~~ (Discontinued) -- [BedrockTogether](https://play.google.com/store/apps/details?id=pl.extollite.bedrocktogetherapp) -- [MC Lan Proxy (Trial)](https://play.google.com/store/apps/details?id=com.luzenna.mineproxydroidtrial) +- [Geyser Android app](https://github.com/GeyserMC/GeyserAndroid) +- [MC Lan Proxy (Trial)](https://discord.com/channels/613163671870242838/613194762249437245/770699493482037310) - [MC Lan Proxy (Paid)](https://play.google.com/store/apps/details?id=com.luzenna.mineproxydroid) - [MC Server Connector](https://play.google.com/store/apps/details?id=com.smokiem.mcserverconnector) -- [Tempest](https://play.google.com/store/apps/details?id=net.ahmed.tempest) ### Using an iOS device If you have an iOS 14+ device, you can use [BedrockTogether](https://apps.apple.com/app/bedrocktogether/id1534593376). diff --git a/_docs/other/community-geyser-projects.md b/_docs/other/community-geyser-projects.md index f8d7abb..86ad60b 100644 --- a/_docs/other/community-geyser-projects.md +++ b/_docs/other/community-geyser-projects.md @@ -17,21 +17,6 @@ A list of other utilities that are useful with Geyser or for developing Geyser-l Maintainer: [bundabrg](https://github.com/bundabrg) -## BedrockFormShop - -A Spigot shop plugin that uses Bedrock forms. - -* [GitHub](https://github.com/kejonaMC/BedrockFormShop) - -Creator: [KejonaMC](https://github.com/kejonaMC) - -## Bedrock Player Manager for Floodgate -A Spigot plugin that is able to run certain commands when a Bedrock player joins, or have Bedrock players able to bypass the anticheat, etc. - -* [Spigot page](https://www.spigotmc.org/resources/82278/) - -Creator: ofunny - ## BedrockSkinUtility This is a Fabric mod that allows you to view Bedrock capes from Java. @@ -39,20 +24,12 @@ This is a Fabric mod that allows you to view Bedrock capes from Java. Creator: [Camotoy](https://github.com/Camotoy) -## CreeperNation Skin API +## Bedrock Player Manager for Floodgate +A Spigot plugin that is able to run certain commands when a Bedrock player joins, or have Bedrock players able to bypass the anticheat, etc. -An SkinAPI that displays Java or Bedrock skins based on the UUID or username. +* [Spigot page](https://www.spigotmc.org/resources/82278/) -* [Website](https://docs.creepernation.net/skinapi) - -Creators: [creeperz653](https://github.com/creeperz653), [BlueTree242](https://github.com/BlueTree242) - -## CrossplatForms -A Spigot, BungeeCord, and Velocity plugin to create custom Bedrock Edition forms and inventory menus through configurations. -* [Spigot page](https://www.spigotmc.org/resources/101043/) -* [GitHub](https://github.com/kejonaMC/CrossplatForms) - -Creators: [Konicai](https://github.com/Konicai), [Jens](https://github.com/Jens-Co) +Creator: ofunny ## CustomCommandPrefix A Spigot plugin that allows users to enter commands starting with `.`, to work around Xbox achievements being disabled. @@ -73,17 +50,24 @@ Creator: [rtm516](https://github.com/rtm516) ## Floodgate-Skript Floodgate support for Skript. -* [GitHub](https://github.com/kejonaMC/floodgate-skript) +* [GitHub](https://github.com/Camotoy/floodgate-skript) Creator: [Camotoy](https://github.com/Camotoy) ## GeyserBlockJavaPlayers Plugin that blocks Java players from joining your Geyser server, so you can have a Bedrock only server that can use Spigot plugins. -* [GitHub](https://github.com/kejonaMC/GeyserBlockJavaPlayers) +* [GitHub](https://github.com/Camotoy/GeyserBlockJavaPlayers) Creator: [Camotoy](https://github.com/Camotoy) +## GeyserHub +A crossplay lobby plugin that provides server selector and command forms for both Bedrock Edition and Java Edition players. + +* [Github](https://github.com/ProjectG-Plugins/GeyserHub) + +Creators: [Jens](https://github.com/Jens-Co), [Konicai](https://github.com/Konicai) + ## GeyserPlaceholders Placeholders support for Geyser. @@ -94,10 +78,16 @@ Creator: [ImDaBigBoss](https://github.com/ImDaBigBoss) ## GeyserPreventServerSwitch Prevent Bedrock players from joining specific sub-servers on a proxy -* [GitHub](https://github.com/kejonaMC/GeyserPreventServerSwitch) +* [GitHub](https://github.com/Camotoy/GeyserPreventServerSwitch) Creator: [Camotoy](https://github.com/Camotoy) +## TydiumCraft Skin API +An API makes it easier for your Bedrock skin to be rendered and outputted! +* [Website](https://tydiumcraft.net/docs/skinapi) + +Creators: [Tydium](https://github.com/Tydium), [higbead](https://github.com/higbead), [gibbon27](https://github.com/gibbon27) + ## GeyserSkinManager Spigot and Bungee plugin to make Bedrock skins work; requires Geyser to be installed on the server. * [GitHub](https://github.com/Camotoy/GeyserSkinManager) @@ -107,25 +97,13 @@ Creator: [Camotoy](https://github.com/Camotoy) ## GeyserUpdater This is a Spigot/BungeeCord/Velocity plugin that can be used to automatically update Geyser. -* [GitHub](https://github.com/kejonaMC/GeyserUpdater) +* [GitHub](https://github.com/ProjectG-Plugins/GeyserUpdater) * [Spigot page](https://www.spigotmc.org/resources/88555/) Creators: [Jens](https://github.com/Jens-Co), [YHDiamond](https://github.com/YHDiamond), [Konicai](https://github.com/Konicai) -## Hurricane -Various workarounds for Geyser players that modify the server in order to achieve their goal. -* [GitHub](https://github.com/GeyserMC/Hurricane) - -Creator: [Camotoy](https://github.com/Camotoy) - ## SleepingServerStarter Small application that waits for a player to connect before launching actual minecraft server. * [GitHub](https://github.com/vincss/mcsleepingserverstarter) Creator: [Vincss](https://github.com/vincss) - -## TydiumCraft Skin API -An API makes it easier for your Bedrock skin to be rendered and outputted! -* [Website](https://tydiumcraft.net/) - -Creators: [Tydium](https://github.com/Tydium) diff --git a/_docs/other/developer-guide.md b/_docs/other/developer-guide.md index 580dd6b..fd440ef 100644 --- a/_docs/other/developer-guide.md +++ b/_docs/other/developer-guide.md @@ -12,7 +12,7 @@ permalink: /other/developer-guide/ ## Project layout * `bootstrap` is where we hold the specific platform code. So if you're porting Geyser to a new platform, or working with platform-specific code, you likely want to be in here. -* `core` is where connections are handled and the data conversion is done. The majority of Geyser work is held here. +* `connector` is where connections are handled and the data conversion is done. The majority of Geyser work is held here. # Compiler Tools @@ -39,7 +39,7 @@ The Bedrock Edition protocol is documented [here](https://wiki.vg/Bedrock_Protoc [debuginfo-be](https://github.com/Heath123/debuginfo-be) is a Spigot plugin that displays an overlay to Geyser clients with useful debug information, similar to the F3 screen in Java Edition. ## pakkit -pakkit is a GUI-based tool for intercepting packets between a server and client developed by Geyser contributor [circuit10/Heath123](https://github.com/Heath123/) built using Electron. It works for both Java Edition (using node-minecraft-protocol) and Bedrock (as a GUI wrapper for ProxyPass adding extra features). It supports features such as viewing packet data in JSON format, Edit and Resend and a hex view for raw packet data. You can download it from [here](https://github.com/Heath123/pakkit/releases/). It's currently WIP, so expect bugs. +pakkit is a GUI-based tool for intercepting packets between a server and client developed by Geyser contributor [circuit10/Heath123](https://github.com/Heath123/) built using Electron. It works for both Java Edition (using node-minecraft-protocol) and Bedrock (as a GUI wrapper for ProxyPass adding extra features). It supports features such as viewing packet data in JSON format, Edit and Resend and a hex view for raw packet data. You can download it from [here](https://ci.rtm516.co.uk/job/pakkit/job/master/). It's currently WIP, so expect bugs. ## ProxyPass ProxyPass is a tool for intercepting packets between a Bedrock server and client developed by the Cloudburst team. It can be found [here](https://github.com/NukkitX/ProxyPass) and the vanilla Bedrock server can be found [here](https://www.minecraft.net/en-us/download/server/bedrock/). diff --git a/_docs/other/discord-bot-usage.md b/_docs/other/discord-bot-usage.md deleted file mode 100644 index 501f81d..0000000 --- a/_docs/other/discord-bot-usage.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: page -title: Discord Bot Usage -permalink: /other/discord-bot-usage/ ---- - -Our discord bot provides some very useful toos to debug/issue track your server. We will go in-depth on how to use the bot commands and its tools. - -## Server Logs - -If you are having console errors or Geyser isn't functioning/starting up, server logs are very useful to find the root cause of why Geyser is not running. You can safely share your server logs with [mclogs](https://mclo.gs) as it will remove all IP addresses and other sensitive information from the logs. - -If you paste the logs URL into our Discord, our bot will analyze the error and will give a fix if there is one present like seen below. You can also paste the `latest.log` file into Discord. - -![Example of an error](https://cdn.discordapp.com/attachments/613194762249437245/1021787041257767042/Naamloos.png) - -## OCR - -OCR or Optical Character Recognition is something that our discord bot can process, which means if you upload a picture/image into our discord that contains an error like seen below the bot might be able to help you out with our issue. - -![Example of an error](https://cdn.discordapp.com/attachments/613194762249437245/1021784112878600263/unknown.png) - -## Ping Server - -If you are not sure if your server is reachable from the outside you can use our ping tool. Using the ping command in #bot-spam; /ping "serverip" as seen below, The bot will check if your server is online/reachable. When you are not running your server on default port: java 25565 and bedrock 19132 you will need to specify the port like /ping "serverip:serverport". - -If the bot returns `Unable to find Java/Bedrock server at the requested address`, your server either is not running/setup properly or your firewall is blocking the connection. More info on how to setup Geyser can be found on the [Geyser Setup page](/geyser/setup/). - -![Example of the ping command](https://cdn.discordapp.com/attachments/613194762249437245/1021790089367535697/unknown.png) - -## Provider List - -Some hosting providers have unique setup methods for Geyser. If you do not know how to setup Geyser on your provider you can either checkout the [Geyser Host Provider List](/geyser/supported-hosting-providers/) manually, or use our bot command `/provider "providername"` as seen below. - -![Example of the provider command](https://cdn.discordapp.com/attachments/613194762249437245/1021791367585857587/unknown.png) - -## Download Command - -Sends the download link of the chosen program/plugin. `/download "Geyser"` or `/download "ViaVersion"` and so on. - -## Leaderboard Command - -Provides a link to the Geyser Bot XP leaderboards. - -## Rank Command - -You can give yourself two types of roles on our discord, "GeyserNews" and "Testers". You can use the command `/rank "chosen rank"` to give one to yourself. - -## Queue Command - -Displays Current global api skin queue upload times. - - diff --git a/_docs/other/geyser-fabric.md b/_docs/other/geyser-fabric.md new file mode 100644 index 0000000..d3c2842 --- /dev/null +++ b/_docs/other/geyser-fabric.md @@ -0,0 +1,25 @@ +--- +layout: page +title: Geyser-Fabric +permalink: /other/geyser-fabric/ +--- + +# [Download here](https://ci.opencollab.dev/job/GeyserMC/job/Geyser-Fabric/job/java-1.18/lastSuccessfulBuild/artifact/build/libs/Geyser-Fabric-2.0.0-SNAPSHOT.jar) + +For the most part, Geyser-Fabric operates the same as other Geyser platforms. There are a couple of exceptions: + +- Geyser-Fabric is installed in the `mods` folder, and its config can be found in `config/Geyser-Fabric/config.yml` at the root of your server. +- Any mod that requires clientside installation in order to join the server will not permit Bedrock clients to join. +- Floodgate is currently not supported on Fabric. +- You must install the Fabric API mod from [here](https://www.curseforge.com/minecraft/mc-mods/fabric-api). + +The source code can be found [here](https://github.com/GeyserMC/Geyser-Fabric). + +### permissions.yml + +This file located in `config/Geyser-Fabric` controls what commands non-opped players (both Bedrock and Java) are able to run. Uncomment the commands you want any player to run. + +### Why a separate repository? + +- By maintaining a separate repository, we can support multiple Minecraft versions easier. +- Fabric is built around the Gradle build tool, while Geyser is built around the Maven build tool. diff --git a/_docs/other/geyserconnect.md b/_docs/other/geyserconnect.md index c46a4b7..3da39c8 100644 --- a/_docs/other/geyserconnect.md +++ b/_docs/other/geyserconnect.md @@ -10,7 +10,7 @@ GeyserConnect is a version of Geyser that allows you to join multiple servers us (For GeyserConnect to work you need an open UDP port, by default it's `19132`.) 1. Download the latest build from [Jenkins](https://ci.opencollab.dev/job/GeyserMC/job/GeyserConnect/job/master/) 2. Edit the config as needed -3. Start the server as you do with a normal Geyser install. EG: `java -Xms1024M -jar GeyserConnect.jar` (More info on [Creating a Startup Script](/geyser/creating-a-startup-script/)) +3. Start the server as you do with a normal Geyser install. EG: `java -Xms1024M -jar GeyserConnect.jar` (More info on [Creating a Startup Script](Creating-a-Startup-Script)) 4. Connect to it to make sure its all working. ## DNS and Docker diff --git a/_docs/other/geyseroptionalpack.md b/_docs/other/geyseroptionalpack.md index 969a601..50d7bff 100644 --- a/_docs/other/geyseroptionalpack.md +++ b/_docs/other/geyseroptionalpack.md @@ -3,12 +3,14 @@ layout: page title: GeyserOptionalPack permalink: /other/geyseroptionalpack/ --- -# [Download here](https://ci.opencollab.dev/job/GeyserMC/job/GeyserOptionalPack/job/master/lastSuccessfulBuild/artifact/GeyserOptionalPack.mcpack) + +**Download:** https://ci.opencollab.dev/job/GeyserMC/job/GeyserOptionalPack/job/master/lastSuccessfulBuild/artifact/GeyserOptionalPack.mcpack GeyserOptionalPack is a Bedrock resource pack that adds more features to Geyser to bring Bedrock Edition in line with Java Edition. A resource pack allows various features and bug fixes to be implemented in Bedrock, including: - Armor stand poses and arm/baseplate visibility - Illusioner texture +- Iron golem cracked texture - Missing particles, like sweep attack - Spectral arrow entity texture diff --git a/_docs/other/test-server.md b/_docs/other/test-server.md index 6cb7974..0d2cce9 100644 --- a/_docs/other/test-server.md +++ b/_docs/other/test-server.md @@ -9,16 +9,15 @@ permalink: /other/test-server/ - World size: 20k x 20k ### Infomation -Geyser has a test server for those who want to test how Java <-> Bedrock crossplay works on their device, and to see the limitations and restrictions. You can join from either Bedrock or Java, and the server has [Floodgate](/floodgate/) installed so you don’t need a Java account to join from Bedrock. +Geyser has a test server for those who want to test how Java <-> Bedrock crossplay works on their device, and to see the limitations and restrictions. You can join from either Bedrock or Java, and the server has [Floodgate](Floodgate) installed so you don’t need a Java account to join from Bedrock. If you can't build/destroy/interact with the world in the test server, run `/rtp` to get away from the protected spawn area. -If you have any questions or problems be sure to join our [Discord](https://discord.gg/geysermc)! +If you have any questions or problems be sure to join our [Discord](https://discord.geysermc.org)! ### Commands: - |Command|Desc| -|---|---| +|--|--| |`/rtp`|Teleport to a random location| |`/ll`|LandLord base command for managing land claims| |`/spawn`|Teleport to spawn| diff --git a/_includes/editable.html b/_includes/editable.html index 7a71523..e89d8b0 100644 --- a/_includes/editable.html +++ b/_includes/editable.html @@ -1,6 +1,6 @@ Edit this page - Create Wiki issue/bug report - Create Geyser issue/bug report + Create documentation issue + Create project issue diff --git a/_includes/feedback.html b/_includes/feedback.html index 0f7f804..dd0056f 100644 --- a/_includes/feedback.html +++ b/_includes/feedback.html @@ -1,4 +1,18 @@ -{% if site.feedback %} +{% if site.feedback %} diff --git a/_includes/footer.html b/_includes/footer.html index 93d0eab..1e78cca 100755 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,30 +1,37 @@
-
- +
+
+ © {{ 'now' | date: "%Y" }} {{ site.author }} All Rights Reserved + {% if site.privacy %}Privacy Policy{% endif %} +
diff --git a/_includes/head.html b/_includes/head.html index 4988034..7502826 100755 --- a/_includes/head.html +++ b/_includes/head.html @@ -30,8 +30,6 @@ - -