Code Monkey home page Code Monkey logo

geyser's Introduction

Geyser

License: MIT Discord Crowdin

Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition, closing the gap from those wanting to play true cross-platform.

Geyser is an open collaboration project by CubeCraft Games.

What is Geyser?

Geyser is a proxy, bridging the gap between Minecraft: Bedrock Edition and Minecraft: Java Edition servers. The ultimate goal of this project is to allow Minecraft: Bedrock Edition users to join Minecraft: Java Edition servers as seamlessly as possible. However, due to the nature of Geyser translating packets over the network of two different games, do not expect everything to work perfectly!

Special thanks to the DragonProxy project for being a trailblazer in protocol translation and for all the team members who have joined us here!

Currently supporting Minecraft Bedrock 1.20.40 - 1.20.80 and Minecraft Java 1.20.4

Setting Up

Take a look here for how to set up Geyser.

YouTube Video

Links:

What's Left to be Added/Fixed

  • Near-perfect movement (to the point where anticheat on large servers is unlikely to ban you)
  • Some Entity Flags

What can't be fixed

There are a few things Geyser is unable to support due to various differences between Minecraft Bedrock and Java. For a list of these limitations, see the Current Limitations page.

Compiling

  1. Clone the repo to your computer
  2. Navigate to the Geyser root directory and run git submodule update --init --recursive. This command downloads all the needed submodules for Geyser and is a crucial step in this process.
  3. Run gradlew build and locate to bootstrap/build folder.

Contributing

Any contributions are appreciated. Please feel free to reach out to us on Discord if you're interested in helping out with Geyser.

Libraries Used:

geyser's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geyser's Issues

Error when translating ServerEntityMetadataPacket including AbstractHorseEntity

Describe the bug
Whenever I am connecting to the java server from bedrock, this error occasionally appears in the console. I got this error 26 times during the ~40 minutes the server was running. Feel free to change the title of this issue of you have a better fitting title.

To Reproduce
I'm not 100% sure what is causing this error. But looking at the stack trace, it seams like it's a problem with horses.

Expected behavior
No error appears

Server version
Paper/PaperMC/PaperSpigot 1.14.4
/version output: "This server is running CraftBukkit version git-Spigot-56f8471-ccd47a5 (MC: 1.14.4) (Implementing API version 1.14.4-R0.1-SNAPSHOT)"

Geyser version
1.0-SNAPSHOT
I downloaded the jar on 1 december 2019 at 11:43 (CET). So I think that means I have Jenkins #137

Bedrock version
1.13.3

Error

java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer
	at org.geysermc.connector.entity.living.AbstractHorseEntity.updateBedrockMetadata(AbstractHorseEntity.java:43)
	at org.geysermc.connector.entity.living.ChestedHorseEntity.updateBedrockMetadata(ChestedHorseEntity.java:45)
	at org.geysermc.connector.network.translators.java.entity.JavaEntityMetadataTranslator.translate(JavaEntityMetadataTranslator.java:46)
	at org.geysermc.connector.network.translators.java.entity.JavaEntityMetadataTranslator.translate(JavaEntityMetadataTranslator.java:34)
	at org.geysermc.connector.network.translators.Registry.translate(Registry.java:54)
	at org.geysermc.connector.network.session.GeyserSession$1.packetReceived(GeyserSession.java:207)
	at com.github.steveice10.packetlib.event.session.PacketReceivedEvent.call(PacketReceivedEvent.java:51)
	at com.github.steveice10.packetlib.tcp.TcpSession.callEvent(TcpSession.java:143)
	at com.github.steveice10.packetlib.tcp.TcpSession$3.run(TcpSession.java:343)
	at java.lang.Thread.run(Thread.java:745)

Unable to connect to world

Hi all - thank you so much for making this project and developing this code. We've recently been awarded an NSF grant to help kids learn about exoplanets though Minecraft simulations and our current server, based on Java/Bukkit, will need to be able to host hoards of helpless children with access to only Minecraft PE. I've been working on setting up a Geyser this weekend with no luck. Here's what all I've tried:

-Geyser build 108 from Oct 18; prior to this Dragon Proxy (0.0.2-snapshot and 3.4.6)
-Our regular Bukkit server 1.14.4, a temporary blank/default Forge server on 1.12.2 and a temporary default vanilla Minecraft server on 1.14.4
-Minecraft PE on Android and iOS 1.12.1
-No ports are on our server are nonstandard, no firewalls, regular connections all work fine
-Confirmed connecting PE devices to another Geyser-forwarded server and it worked okay

I'm using the following settings in the configuration file:

bedrock:
  # The IP address that will listen for connections
  address: 0.0.0.0
  # The port that will listen for connections
  port: 19132
  # The MOTD that will be broadcasted to Minecraft: Bedrock Edition clients
  motd1: "Fab Lab Test"
remote:
  # The IP address of the remote (Java Edition) server
  address: 192.17.189.137
  # The port of the remote (Java Edition) server
  port: 25565

  # Authentication type. Can be offline, online, or hybrid (see the wiki).
  auth-type: online

Neither Minecraft PE install can see any info about the server and gives the "Unable to connect to world" response when we attempt to force it. I've attached my config file here, I'm not sure what else to do. Any suggestions?

I realize you probably get silly newbies like my self asking for help often, I'd be happy to help make a guide or tutorial to help folks get past the issue I'm having if we're able to figure out what it is!

Recalculating position too often

Describe the bug
Geyser is trying to recalculate the position of the player while the player is joining and was flying before.
Seemingly it tries to get the player one block down at a time until he is at z: 64 and then up again to ground level.

To Reproduce
Steps to reproduce the behavior:

  1. Log in and fly a bit above the ground
  2. Log out
  3. Log in again
  4. Geyser CPU usage spikes to 100%, player gets teleported down slowly

Expected behavior
Instant teleported to ground, no teleport at all when player is in creative mode or flying.

Server version
1.14.4 Paper

Geyser version
Not yet

Bedrock version
The current version, 1.12 I guess?

Additional context
Maybe a config option to disable the movement check is enough, like the Java server has it.

Auto jump not working

Describe the bug
Auto jump not working

Expected behavior
Player is supposed to be automatically elevated up the next near block they intend to go up. This is a normal behavior for (PE)

Server version
1.14.4

Geyser version
"SNAPSHOT 1"

Bedrock version
1.12.1

Missing Block Mappings

This is just a list of missing block mappings that don't properly translate to bedrock.

Fixed Mappings

  • Leaves
  • Flowers
  • Heads
  • Cracked Stone Bricks
  • Certain Log Directions (unconfirmed)
  • Certain Stair Directions (unconfirmed)
  • Block Entities (Chest, Furnace, Flower Pot, Skull, etc.)

respawning issues

totem of undying is very broken and respawing it self this Is reminder to redned and the others

love you guys in a mainly way XD

sheeps dont got collor

Describe the bug
title is very clear

To Reproduce
Steps to reproduce the behavior:
go look for sheep there all whitw

Expected behavior
that sheeps have collor gray pink blue etc

Server version
1.15.1 paper

Geyser version
Jenkins latest

Bedrock version
1.14.1

Additional context
Add any other context about the problem here.

Unable to join after first join

has disconnected for reason CLOSED_BY_REMOTE_PEER [0m
[37;1mInsaneLegacy883 has disconnected from remote java server on address
because of java.lang.IllegalStateException: Connection has been closed�[0m

"Login failed: Authentication error: Access Token can not be null or empty" (plus better Documentation)

First of all, when i try to connect to geyser with mcpe, i get "Login failed: Authentication error: Access Token can not be null or empty." I'm assuming I've been doing something wrong.
I ran Geyser using sudo java -jar Geyser.jar and set the config.yml to reflect the address of the JE server and changed the ip to my local address so i can connect from my iPad. However, trying to connect results in said error. (I can see the error on my JE server logs and my Geyser logs, so my iPad is trying to connect to the Geyser proxy).

Second of all, you should give the link to the precompiled Jenkins site on the GitHub README instead of just on the Discord server. (And also document what Geyser actually is, b/c at first I thought it was a paper plugin like protocol support but for mcpe.)

Client crashes immediately after successful login

After successful authentication using the latest build from the chunks branch (bd8a00b), Minecraft crashes on the client's side whilst the server spans "Sent chunk packet!" till it says the user timed out.

I've experienced this on both the latest edition of MCBE on both Android and iPhone.

Disconnection from server when touching honey block

Describe the bug
A disconnection from server when touching honey block

To Reproduce
Steps to reproduce the behavior:

  1. Touch the honey block (and try to slide down or jump on it)
  2. Get the crash with error 'io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: Value 53 has no mapping for key class com.github.steveice10.mc.protocol.data.game.entity.EntityStatus.'

Expected behavior
A normal Honey Block's behavior

Screenshots
Annotation 2020-01-07 012734
Annotation 2020-01-07 012750
Annotation 2020-01-07 012759
Annotation 2020-01-07 012814

Server version
git-Paper-33 (MC: 1.15.1)

Geyser version
Build #159 from Dec 31

Bedrock version
1.14.1

enchantment wont show on bedrock but will on java

Describe the bug
the proxy won't display the name list for enchantment but the enchantments will still work

To Reproduce
Steps to reproduce the behavior:

  1. join your server on java and put enchantments on items
  2. join on bedrock minecraft
  3. hold the item
  4. the enchantments are not shown

Expected behavior
it should show the same or similar enchantments as on java minecraft

Screenshots
1.12 java
java
bedrock 1.14.1.5
bedrock

Server version
run / version

1.12.2 with spigot
plugins:
FastAsyncWorldEdit-bukkit-19.07.12-5cc5ce5-1277-22.3.0
viabackwards-all-2.4.0-SNAPSHOT
ViaVersion-2.2.2
ViaRewind-1.4.5
worldedit-bukkit-6.1.9 (3)

Geyser version
1.0-SNAPSHOT

Bedrock version
The version of your Minecraft pe
bedrock 1.14.1.5

[RPi3] Client crashes on server join

Describe the bug
When you run the proxy on an RPi3 with Java JDK 1.8.0_231, bedrock clients close when they receive map chunks.

To Reproduce
Steps to reproduce the behavior:

  1. Run Geyser on RPi3
  2. Connect whit any bedrock client (Android, Windows tested)
  3. Proxy shows /X.X.X.X:YYYYY tried to connect!
    3.1. Client don't receive map chunks: The client stays connected
    3.2 The proxy tries to send map chunks: The client closes without any error on the screen

Expected behavior
The client connects and receives the map chunks without closing.

Server version
PaperMC 1.15.1

Geyser version
I have tried the following versions:

  • Jenkins
  • Compiled from master
  • Floodgate patched version (someone uploaded on Discord)

Bedrock version
1.14.1

Additional context
The proxy was tested with the following versions of Java:
OpenJDK 8
OpenJDK 9
OpenJDK 11
Oracle JDK 8 (downloaded from web)

Chance of random kicked for flying on join

Describe the bug
When joining the server, randomly you will be kicked from the server for flying.

Expected behavior
No kick

Server version
1.14.4

Geyser version
"SNAPSHOT 1"

Bedrock version
1.12.1

Chunks Bug (common occurance, not consistent tho)

Describe the bug
Sometimes after joining the proxy, some chunks will appear empty and in some cases, invisible terrain all around you. (See screenshots below)

To Reproduce
Steps to reproduce the behavior:

  1. Join Proxy
  2. Look around
  3. Load chunks
  4. See error

Expected behavior
Chunks load & are visible + no missing sections of chunks

Screenshots
Click Here

Server version
Running Paper version git-Paper-31 (MC: 1.15.1) (Implementing API version 1.15.1-R0.1-SNAPSHOT)

Geyser version
Latest Commit (master branch)

Bedrock version
1.14.1.4

Additional context
Sometimes a relog will make chunks appear as normal again, the bug is inconsistent but it should still be fixed before a stable release.

BUG for the bedrock(mcpe)

Hi! I am from China, so my English is not very good.
Here are all the BUG
1.Stay in the Generating World(summon world)
2.The mode is visitor
3.The backpack is empty
4.Blocks cannot be placed
5.The BossBar is no display
6.The weather does not change.Such as rain
Can you add server transfer?
Thank you!

Bedrock client can not join the server.

Describe the bug
When I try Bedrock 1.13.2 join the server,it says "Outdated client,please use 1.13.2".
However,my Minecraft Bedrock Edition version is 1.13.2.

/223.104.146.241:42232 tried to connect!
Attempting to login using offline mode... authentication is
disabled.
Player connected with username PQguanfang
PQguanfang (logged in as: PQguanfang) has connected to remo
e java server on address mc.cloud6.fun
PQguanfang has disconnected from remote java server on addr
ss mc.cloud6.fun because of Outdated client! Please use 1.1
.2
Bedrock user with ip: /223.104.146.241 has disconnected for
reason CLOSED_BY_REMOTE_PEER

Movement Bug

if you walk on stairs and slaps carpit trought doors etc it will kick you back or you qil get stuck

this is still pressents on the latest geyser and and 1.13.1 (bedrock)
and 1.14 (bedrock probelly)

IP Binding

What feature do you want?
On startup or in properties, ability to set one OR MORE IPs to bind to. For instance, my server will have 4 NICs, I would like to set the server to bind to either 1 specific NIC or multiple NICs to reach across different networks.

Alternatives?
Any alternatives you have tryed

Baby Zombies show as adults in bedrock, entities don't show items in hand, armor, etc

Describe the bug
Baby mobs only show as adults. Items do not show in main hand, off hand, armour, etc

To Reproduce
Steps to reproduce the behavior:

  1. Spawn an baby mob
    Expected behavior
    I was expecting the mob to be an baby instead of an adult. I was also expecting mobs to have items in their main hand.

Screenshots

Geyser version
Jenkins

Bedrock version
1.13

Additional Info
Tamed entities do not show their tamed textures and data in bedrock.

Version support

Hope to add 1.13.0 support to bedrock, come on!
希望对基岩版增加1.13.0版本支持,加油!

kick on villager interaction

Describe the bug

When you try to interact(right click) with villagers, you get kicked from the server with following error message in the console:

quartzexpress has disconnected from remote java server on address 0.0.0.0 because of io.netty.handler.codec.DecoderException: java.lang.NullPointerException: secondInput is marked non-null but is null
Bedrock user with ip: /192.168.2.112 has disconnected for reason CLOSED_BY_REMOTE_PEER

To Reproduce

  1. Go to a village or spawn a villager
  2. Right click the villager
  3. See error

Expected behavior
No kick when interacting with villagers.

Screenshots
If applicable, add screenshots to help explain your problem.

Server version
1.15.1 vanilla

Geyser version
Build #165

Bedrock version
1.14.1

Additional context
Add any other context about the problem here.

Issues with the new remapper

Issues with the new remapper I found so far:

  • Some Leaves (Oak?) have no collision, you can walk/bug yourself inside of them
  • CPU usage is still very high and also spikes now when loading a new chunk
    jprofiler_2019-10-10_16-40-39
  • Water gets more transparent if you go near it and finally becomes invisible
  • Stairs have the collision of a normal full size block, you can only walk downwards. Steps work fine
  • Ladders do not work (but probably also do not work in the old remapper
  • Wall signs with text on them are invisible. Signs without text work fine
  • All blocks have no collision from below when flying/jumping into them
  • Pistons are missing the head
  • Prismarine lamps (how are they called? the underwater glowstone thingy) are still dirt

Decoder Exception

I updated to the latest commit on the master branch and whenever I log in with PE, I get

io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: Value minecraft:nbt_compound_tag has no mapping for key class com.github.steveice10.mc.protocol.data.game.command.CommandParser.

Invisible Chests On Relog

Describe the bug
Chests disappears on re-log

To Reproduce
Steps to reproduce the behavior:
Place chest;
re-log;
chest is invisible;
panic!

Expected behavior
Chest is not supposed to be invisible

Screenshots
Cannot, because they are invisible, lol

Server version
1.14.4

Geyser version
"SNAPSHOT 1"

Bedrock version
1.12.1

Invisible Armour Stands Visible to Bedrock Client

Describe the bug
Armour Stands that are invisible to Java Players are not invisible to bedrock Players

To Reproduce
Steps to reproduce the behavior:
Create/Summon an invisible Armour Stand

Expected behavior
Invisible Armour Stands not visible to Bedrock Clients

Server version
Paper spigot 1.15.1 Build 47

Geyser version
Jenkins Build 165

Bedrock version
1.14.1

Additional context
None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.