Commit Graph

52 Commits

Author SHA1 Message Date
Camotoy bc0cfde8f9
Set the minimum Java version to 16; drop Bedrock 1.17.0 (#2477) 2021-09-10 14:10:56 -04:00
Camotoy f22d286ea1
Add world border translation (#1839)
As Bedrock does not have world border support, this PR translates what the Java server sends us for a world border into particles and fog, while also preventing the Bedrock client from moving outside of the world border.

Co-authored-by: Luke <32024335+lukeeey@users.noreply.github.com>
Co-authored-by: ofunny <play@ofunny.world>
2021-09-09 21:27:38 -04:00
Camotoy 76399881a3
Use legacy DefaultEventLoopGroup constructor; label Geyser <-> Spigot connection thread 2021-08-16 22:33:14 -04:00
Camotoy 7ae91a40ec
Ensure every packet is ran on the same thread per player (#2473)
This removes a lot of concurrency checking that needs to be done, because there should be no way two packets can be handled at the same time.
2021-08-16 20:39:29 -04:00
Camotoy b95cd8e0c1
Query improvements
- Improved detection of query packet
- Don't initialize the QueryPacketHandler class until we verified we have query data
- Encode strings like the vanilla Minecraft server
2021-08-12 10:42:58 -04:00
Camotoy bb41c0f9ee
Add an option for setting Bedrock compression level (#2128) 2021-04-19 22:18:18 -04:00
Mark Vainomaa c4573bb73d
HAProxy PROXY protocol support for upstream connections (#1713)
* Ignore unknown properties on configuration subclasses

* Implement upstream PROXY protocol support
2021-02-17 18:25:41 -05:00
Camotoy 1f1d94aa81
Don't allow the sub-MOTD to be empty (#1933)
As of 1.16.210.59, the sub-MOTD cannot be blank: https://bugs.mojang.com/browse/MCPE-117979

This workaround will be implemented now so the widest range of Geyser versions will properly show a ping in 1.16.210 - better an 'outdated server' message than 'unable to connect to world.'
2021-02-15 21:41:11 -05:00
Camotoy f2550de633
Ping/MOTD changes required for 1.16.210.59 (#1931) 2021-02-15 12:57:18 -05:00
Camotoy 98b2a0e51b
Fix NPE with MOTD (#1921) 2021-02-12 14:16:29 -05:00
Camotoy 6aa74a2322
Allow server pong to appear if MOTDs are too long (#1445)
* Prevent server pong from appearing if MOTDs are too long

If the server MOTDs are 340 characters or longer, they will not appear. If this is the case, we trim each.

* Implement a more exact fix
2021-01-11 15:37:37 -05:00
Camotoy 186d94917a
Update copyright to 2021 (#1772)
* Update copyright to 2021

Free commit!

* These don't need a copyright

* Don't downgrade the mappings
2021-01-01 10:10:36 -05:00
qlow a173005767
Added IGeyserPingPassthrough#getPingInformation(InetSocketAddress) to make logging of the pinging IPs possible (#1633)
Co-authored-by: qlow <info@qlow.eu>
2020-12-07 14:04:50 -05:00
rtm516 512f8cd6c2
Rewrite message handling in MessageUtils to use Adventure (#1498)
* Rewrite message handling in MessageUtils to use Adventure

* Move to static Adventure commit to fix a bug

* Initial test implementation

* Add RGB downgrade test

* Move MessageUtils and rename

* Clean-up and fix tests

* Fixed sign and book content handling

* Fix blank signs causing NPEs

* Fix reset before message being stripped

* Add comment about the reset character

* Fix legacy style server motds

* Fix more messages being handled wrong

* Fix title packets being handled wrong

* Fix trailing formatting characters on the end of sign lines

* Add auto updating of Java locale files

* Add en_us locale updating and hash caching

* Changes to hash determining

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-11-16 23:57:57 +00:00
Camotoy 4bcf44638e
ConnectorServerEventHandler: set default packet handler (#1148)
This allows disconnect packets to be sent and kick unsupported versions of the game.
2020-08-13 09:56:03 -05:00
DoctorMacc 6ccf629a8a
Update to 1.16.2-rc2; add multiversion support 2020-08-11 10:00:14 -04:00
RednedEpic 24f9651cc6 Convert map of players to list (may address #833) 2020-07-06 20:11:34 -05:00
rtm516 cfaf4051b7
Add Translation support (#504)
Adds full multi-language support to any Bedrock-supported language.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-07-05 19:35:51 -04:00
RednedEpic 8ac5d6e13d Fix memory leak in legacy ping passthrough (Fixes #674, #813) 2020-07-04 16:35:48 -05:00
Tim203 8f763dfc5f
Move common stuff used only by connector and bootstrap to connector 2020-06-28 00:27:00 +02:00
rtm516 ad4c1ff0c7 Update Message system 2020-06-19 11:57:34 +01:00
Camotoy 34b367bfc3
Configuration updates (#653)
* Configuration updates

The main feature of this commit is switching Bukkit and BungeeCord to using Jackson configuration. This allows comments to load. Along with this, the Jackson configs have been consolidated into one abstract class, and a check is made to ensure auth-type cannot be set to Floodgate if Floodgate is not installed.

* Add deleted file; remove imports

* Re-add changing of Bukkit port

* Alphabetize import

* Alphabetize Bungee import

* Updates

* Swap values in GeyserJacksonConfiguration

* Add a null check for GeyserConnector in Bukkit's onDisable
2020-06-10 17:58:29 -05:00
Camotoy 99f69b3a7d
Rewrite Ping Passthrough (#468)
* Fix ping passthrough on BungeeCord

* Initial implementation of direct ping passthrough

* Finished implementation of direct ping passthrough

* Remove test for something else entirely

* Fix standalone

* Add config option for ping passthrough interval

* Use GeyserPingInfo to reduce methods

* Add querying; modify ping passthrough

* Add separate config options for passthrough MOTD and player counts

* Convert all plugin bootstraps to use internal ping events to that other plugins can handle ping modifications

* Small changes

* Fix invalid packet spawm

* Add legacy ping passthrough option

* Fix BungeeCord

* Proper UUID for BungeeCord, thanks @theminecoder

* Update config version and messages

* Merge master... again

* Add missing javadocs and minor changes

Co-authored-by: James Harrison <james@fasttortoise.co.uk>
Co-authored-by: theminecoder <theminecoder.dev@gmail.com>
Co-authored-by: Redned <redned235@gmail.com>
2020-05-23 16:50:04 -05:00
RednedEpic 31be608038 Add block break sounds for blocks with 0 hardness, and refactor some things
The refactors in this commit go a bit beyond the scope of what the sound/effects branch was meant to accomplish, however most of these changes are necessary so chunk caching could be reintroduced for the standalone version. The chunk caching here allows for us to get the block ID before the block was broken, and in the future allow us to implement newer features. Chunk caching is optional (and disabled by default) as on non-Bukkit versions, it can eat up a lot of RAM with many players online.
2020-04-29 15:01:53 -05:00
theminecoder 95e1eb2a63 Fix bedrock clients not able to connect when the client thinks the server is full 2020-04-15 14:04:53 +10:00
Ender 1f8a2c5765 Make the passthrough motd display correctly on clients
Before: https://i.e3ndr.xyz/?i=W63C
After: https://i.e3ndr.xyz/?i=SGKS
2020-03-17 17:55:11 -05:00
RednedEpic 52b23950ea Merge branch 'master' into plugin (should fix building) 2020-01-18 16:46:07 -06:00
RednedEpic dc594ee22c Update license headers
Certain headers for classes that are to be removed (e.g. plugin api) were not updated to prevent merge conflicts.
2020-01-08 21:05:42 -06:00
RednedEpic 0c24ffc629 Merge branch 'master' into plugin 2020-01-03 23:25:00 -06:00
RednedEpic 7d14d079ef Fix NPE with ServerInfo being null for ping passthrough 2020-01-02 12:37:30 -06:00
RednedEpic e38322a3ec Nuke plugin API
https://media.giphy.com/media/oe33xf3B50fsc/giphy.gif
2019-12-21 11:35:48 -06:00
RednedEpic 1c2ef99a54 Separate bootstrap and allow for Geyser to run on Bukkit (Addresses #54) 2019-12-01 15:16:52 -06:00
Redned a4b2a016f8 Set version for pong and StartGamePacket from bedrock packet codec 2019-11-02 15:58:50 -05:00
RednedEpic 7571df9903 Attempt to reduce memory usage and fix not being disconnected from Java 2019-10-16 13:55:05 -05:00
SupremeMortal c9be13d487
Fix AIOOBE and remove PlayerSession usage. 2019-09-13 15:45:55 +01:00
SupremeMortal ab55050d11
Close remote java connection when bedrock player leaves. 2019-09-13 14:37:31 +01:00
EOT3000 5318a664b8 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2019-08-05 22:05:56 -04:00
EOT3000 202e3e584c new remapper (: 2019-08-05 21:59:54 -04:00
RednedEpic 1d1cdd4f42 Set Ipv4 port for BedrockPong 2019-08-03 01:56:54 -05:00
RednedEpic 77ea4eda60 Encrypt bedrock packets 2019-07-24 17:53:42 -05:00
RednedEpic 657f12654b Add form API and other small changes 2019-07-23 18:16:25 -05:00
RednedEpic ff11a55884 Call the PingEvent 2019-07-23 11:53:39 -05:00
EOT3000 f0551727ca First Event! 2019-07-22 10:20:49 -04:00
RednedEpic 58819ea9ce Finish ping-passthrough option 2019-07-21 18:52:39 -05:00
RednedEpic 82f56a7c34 Code cleanups 2019-07-21 17:22:56 -05:00
RednedEpic d0347c537d Add debug option to prevent console spam 2019-07-21 16:18:20 -05:00
EOT3000 9ba14d9dc9 attempt crash fix/fix typo/others 2019-07-18 20:11:58 -04:00
EOT3000 c050ae240b attempt crash fix 2019-07-16 21:05:10 -04:00
EOT3000 266d374167 completely re-do console 2019-07-13 15:00:51 -04:00
EOT3000 7c74df2aa2 lambdas/more console output/random stuff I don't even remember 2019-07-12 16:59:36 -04:00