Commit graph

1288 commits

Author SHA1 Message Date
Camotoy
1ead2900a3
Translate RAIN_STRENGTH to Bedrock client (#1151)
* Translate RAIN_STRENGTH to Bedrock client

Previously Geyser ignored RAIN_STRENGTH and instead relied on START_RAIN and STOP_RAIN only. This is unreliable on a vanilla server as these values are swapped around. This commit also implements thunder strength which was untranslated.

* Update rain code in JavaRespawnTranslator
2020-08-16 12:43:16 -05:00
rtm516
4af17df46f
Add support for sensitive data in dumps (#1149)
* Add sensitive dumps

* Add better arg handling and offline dumps

* Add sensitive parameters for plugin IPs

* Add sensitive property to the Bedrock remote address

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-08-15 16:06:50 -04: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
Camotoy
bf238f52c7
Update to latest MCProtocolLib (#1140) 2020-08-12 16:27:13 -04:00
Camotoy
1fb68dc9e3
LoginEncryptionUtils: Add proper string for no Xbox account (#1139) 2020-08-12 13:48:40 -05:00
RednedEpic
e2a9566926 Kick player with invalid chain data for additional security
The client should disallow players to join servers if they're not logged in, however this just adds a second layer of security in the event that it's somehow bypassed.
2020-08-12 10:42:02 -05:00
bundabrg
e02495ca7f
Fix Alex/Steve skins being sent incorrectly (#1135)
* Return permanent skins (alex/steve) when queried instead of returning an empty skin due to invalid lookup
* Fix Alex/Steve being shown incorrectly due to java signed integers

Co-authored-by: bundabrg <bundabrg@grieve.com.au>
2020-08-12 08:23:11 -05:00
Camotoy
fb5a894595
EntityUtils: Properly map 1.14 entity status effects (#1133)
Previously, Hero of the Village and Bad Omen effects were mapped to 0. This commit updates them to their proper Bedrock values.

Fixes #1129
2020-08-12 08:22:13 -05:00
bundabrg
fbf30a6059
Fix Skin Selfie (#1131)
Co-authored-by: bundabrg <bundabrg@grieve.com.au>
2020-08-11 23:06:32 -04:00
DoctorMacc
5db0e7898f
Bump MCProtocolLib 2020-08-11 14:33:37 -04:00
rtm516
41d299fae5
Change version number to 1.1.0 2020-08-11 19:10:48 +01:00
rtm516
016a5c04ea
Fix chat translation parameters not having color sometimes 2020-08-11 18:45:14 +01:00
DoctorMacc
31fec1d4bf
Update to 1.16.2 2020-08-11 12:35:45 -04:00
DoctorMacc
8b691d22d5
Add v408 as the default protocol
smh mojang
2020-08-11 12:16:18 -04:00
DoctorMacc
6ccf629a8a
Update to 1.16.2-rc2; add multiversion support 2020-08-11 10:00:14 -04:00
DoctorMacc
953fe8fec3
Update mappings 2020-08-11 09:09:29 -04:00
DoctorMacc
2dc71382e7
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.16.2 2020-08-11 09:07:23 -04:00
DoctorMacc
009381d9c7
Update for protocol v409 2020-08-11 09:06:28 -04:00
rtm516
b84986a502
Fix quotes breaking formatted message strings (#1118) 2020-08-10 21:44:20 +01:00
DoctorMacc
a676e86f6c
Remove debug line 2020-08-10 11:22:59 -04:00
rtm516
c7958af1db
Fix dust particles type (#1108) 2020-08-10 09:31:49 -05:00
Camotoy
9ac13f37b7
Update submodules (#1109) 2020-08-10 09:31:39 -05:00
rtm516
439027d510
Fix Shulker color and open state (#1113) 2020-08-10 09:31:08 -05:00
DoctorMacc
6e80f22ee9
Update to 1.16.2-rc1 2020-08-09 22:43:57 -04:00
Savagetechguy
3ef7e30230 Fix fire not extinguishing on server side when on bedrock
Fixes #875
Fixes #906
2020-08-08 17:59:03 -05:00
RednedEpic
04cf8b2a99 Fix javadoc errors 2020-08-08 17:56:15 -05:00
rtm516
0a5048232f
Add support for client side settings (#1035)
* Port code from #486

Co-authored-by: Luke <32024335+lukeeey@users.noreply.github.com>

* Fix and clean code and add default gamemode changing

* Clean copyright

* Remove direct modification of server, clean up code and add player list xuid fetching.

* Move to custom settings menu

* Move sendAdventureSettings to GeyserSession

* Add javadoc comments

* Add translation support

* Remove updated copyright

* Clean up

* Clarify some javadoc comments

* Remove obsolete code

* Update languages submodule

* Fix javadoc comments

* Fix compile

Co-authored-by: Luke <32024335+lukeeey@users.noreply.github.com>
Co-authored-by: Redned <redned235@gmail.com>
2020-08-08 17:41:12 -05:00
Camotoy
0fde30fc78
GeyserSession: always send naturalRegeneration=false gamerule (#1097)
This essentially gives the server full control over the health visual.
2020-08-08 16:50:49 -05:00
Camotoy
7df476183a
Implement proper mappings for pistons, dropper, dispenser (#1103)
This commit gets rid of the hacky workaround implemented for pistons, droppers and dispensers and actually implements the vanilla data values.
2020-08-08 16:50:32 -05:00
Camotoy
d49856cd7f
Change scoreboard errors to debug only (#781)
Prevents errors from occuring that don't stop operation of Geyser.
2020-08-07 14:10:26 -04:00
bundabrg
0ca1096f45
Fix Skin Caching and Fix Skin Restorer (#680)
* Fix Skin Caching

Changes:
* Instead of caching a skin based upon the player we cached it based upon the textureURL. This means multiple players with the same skin will benefit from the cache and more importantly will mean a player changing their skin will not get a false cache hit.
* This should fix all issues with SkinRestorer and will now correctly show the skin both to the player themselves and to other players

Closes #518

* Remove duplicated code

* Minimize playerlist updates

Changes:
* All async skin stuff will now just update skins and not be involved with sending the session to the player. This eliminates issues where the player list changes whilst an async task is occuring plus it means no invisible players while retrieving skin.
* Fix bug when retrieving cached skin

* When sending PlayerList packets ensure the skins have appropriate skinIds so the Bedrock client will cache hit/miss as needed

* Make sure to add and remove player when setting skin if they do not belong on the playerlist

* Make use of AuthData UUID when removing the player

* Revert removal of checking if entity is valid when initialized

This section is supposed to send all spawned entities in the java world to a player only after they've initialized. By removing this check it would also be sending entities that exist but are not spawned.

* Optimizations

Changes:
* Check for duplicate requests based on textureURL instead of player ID
* Don't use the PlayerSkinPacket. It duplicates the data sent in the PlayerListPacket and without it the players still get skin updates.

* Support caching of skins to disk based on configuration variable

If a skin is downloaded it will be saved to `cache/skins` using a base64 encoded filename of the textureUrl, if allowed by setting a non 0 value for the configuration variable `cache-skins`

When reading a skin we try load it from a cache file first before trying to download it.

We don't yet expire them but do update their last modification so we know which ones have been accessed.

* Update `config.yml` with cache-skins directive, defaulting to disabled

* Merge Fixes

* Cache all images instead of just skins

Changes:
* Move the image caching from skins to where images may get downloaded so this also covers capes and anything else that uses the same method of image retrieval
* Updated config value from `cache-skins` to `cache-images`
* Updated cache location from `cache/skins` to `cache/images`
* Images are stored in png format with a uuid. This may make debugging easier as they can be directly opened.

* Implement cached image expiry

If `cache-images` is set to a value greater than 0 then a scheduled task will occur once a day that will remove images with a modification date older than the value in days.

* Force skin changes as trusted

* Resolve PR queries

* Fix signed int causing issues calculating expiry time for images

* Reset Defaults to 0 and implement Google Timed Eviction cache for Images

* Add memory cache for Capes

Co-authored-by: Brendan Grieve <brendan.grieve@zepli.com.au>
Co-authored-by: bundabrg <bundabrg@grieve.com.au>
2020-08-07 12:33:21 -04:00
DoctorMacc
098a0e7993
Update to 1.16.2-pre2 2020-08-05 18:57:41 -04:00
rtm516
dea9329bb4
Update mappings submodule to fix 1.16 slabs and stonecutter (#1089) 2020-08-05 16:36:58 +01:00
DoctorMacc
e8df81167b
Merge latest master 2020-08-05 11:20:25 -04:00
AJ Ferguson
61dbcb0c80
Update effects mappings (#949)
* Update effects mappings

* Use STOP_RECORD as the default record instead of null

* Add comments

* Update mappings submodule

* Update MCProtocolLib and effects

* Change level event used for EVAPORATE effect

The bedrock client plays an additional sound when using CAULDRON_EXPLODE.
The java client does not play any sound.

* Update mappings submodule
2020-08-03 13:42:43 -08:00
Camotoy
11c713dc6f
JavaEntityMetadataTranslator: replace stack trace with concise warning (#1086)
* JavaEntityMetadataTranslator: replace stack trace with concise warning

Removes the stack trace given when a ClassCastException occurs and replaces it with a friendlier message. Class cast errors will happen since some servers send incorrect values, and apparently it is default Minecraft behavior to ignore them.

* Update languages submodule
2020-08-03 16:29:52 -05:00
AJ Ferguson
86f18c9392
Remove Y pos workaround in BedrockItemFrameDropItemTranslator (#1037) 2020-08-01 14:41:59 -04:00
Camotoy
07f3d45cc4
Check for display tag when translating anvil contents (#1073) 2020-08-01 11:57:25 -05:00
Camotoy
7fc14d8956
Add customizable MTU support (#1068)
* Add customizable MTU support

Fixes clients being unable to connect in rare instances.

* Make config.yml nicer
2020-07-31 19:47:23 -04:00
Arktisfox
54bee1f868
Small entity metadata fix, other player bow implementation (#685)
* Move blocking case to LivingEntity, and make other players bows animate.

This moves metadata ID 7 to LivingEntity, it's proper place. It also sets the 'USING_ITEM' flag which animates other players bows.

* Add skeleton aiming support

Skeletons don't have support of pushing their bows back on Bedrock, but this allows them to hold their arms up

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-07-30 22:10:55 -04:00
rtm516
f7ac078ead
Fix clone-remote-port (#1062) 2020-07-30 17:49:59 -05:00
Camotoy
238a3a8df1
Support immediate respawn gamerule (#970)
* Support immediate respawn gamerule

This commit now supports immediate respawn if the server enables it - both on the setting being applied on join and the setting being modified in-game. This also refactors the respawning process to more closely match BDS behavior - nothing broke in my testing but more testing is needed.

* Reuse spawned variable instead of creating new variable
2020-07-30 15:31:12 -05:00
Camotoy
a4339be212
Only send metadata update once per Java metadata packet (#1022)
While this doesn't fix any bugs, it may be a slight performance enhancement as we aren't sending multiple packets per one Java entity metadata packet.
2020-07-30 15:15:07 -05:00
Camotoy
9097f8547b
Add rabbit jumping animation (#1027)
* Add rabbit jumping animation

This isn't perfect as Bedrock uses a duration and Java just sends the jumping animation. There may be something else missing from the puzzle piece.

* Remove debug line
2020-07-30 15:12:09 -05:00
bundabrg
784cb73301
Test if slot 50 used and under what conditions. (#1028) 2020-07-30 15:11:35 -05:00
bundabrg
11300254f0
Fix Anvil renames by trying a component first then fallback to plain text (#1052)
Closes #1039
2020-07-30 15:10:43 -05:00
rtm516
b10e5d5af3
Clean copyright message and update all files (#1053) 2020-07-30 15:10:15 -05:00
rtm516
50346a95cd
Update closest color conversion (#1057)
ViaVersion altered their color conversion to fix an issue and this just copies those changes
2020-07-30 15:09:53 -05:00
toinouH
427cb69a14
clone-remote-port option Updated (#1061)
* Added clone remote port option for bukkit, bungee and velocity

* Added clone remote port option for sponge

* Changed clone-remote-port description in config.yml

* Update config.yml

Updated config.yml to include a better description of the clone-remote-port option

* Updated GeyserSpongePlugin

An incorrect port was being edited before (remote instead of bedrock)

* Update config.yml

Co-authored-by: TeaNoDonuts <blackalegator@gmail.com>
2020-07-30 15:09:40 -05:00
rtm516
600c54d89d
Add translation badge and remove manual remapping of language codes (#1060) 2020-07-30 15:07:59 -05:00
rtm516
118747c66b
Move MEGABYTE to a constant (#1059) 2020-07-30 17:40:53 +01:00
rtm516
0c3a6f1a6a
Check if the passenger is null before trying to update metadata (#1001)
* Check if the passenger is null before trying to update metadata

* Fix variable name
2020-07-30 12:19:26 -04:00
rtm516
b7f0780a56
Fix duplicate info and add more info to dumps (#1058)
* Fix duplicate info and add more info to dumps

* Add gui to standalone dump info
2020-07-30 11:59:42 -04:00
DoctorMacc
bf07f1a9ba
Update to 1.16.2-pre1 2020-07-29 21:05:18 -04:00
DoctorMacc
43c062c23c
Update to latest master 2020-07-29 16:25:42 -04:00
Camotoy
964432e4f8
Update submodules (#1047) 2020-07-28 21:01:58 -04:00
Camotoy
f5e78371be
Hide stack trace if an SRV record is unable to be found. (#1046) 2020-07-28 17:47:08 -05:00
Camotoy
fe75320d6d
Add WORLD_IMMUTABLE flag to spectator mode (#1034)
Prevents the client from trying to interact with blocks
2020-07-27 18:18:22 -04:00
AJ Ferguson
b9846fe797
Small inventory fixes (#1029)
* Increase minimum delay between closing and opening a new window

* Fix potential crash when opening player inventory
2020-07-27 11:17:55 -04:00
bundabrg
d03f56e7e8
Fix Merchant Inventory Transaction (#1017) 2020-07-25 23:06:06 -04:00
Camotoy
5c2a225533
Check for null when looking for SRV (#1025) 2020-07-25 17:21:13 -05:00
Phillipp W
af484a425b
SRV resolving / Small Handshake rework (#968)
Handshake now uses the server address directly from the config and no longer the IP from a domain (Some servers use the address that is given during the handshake)
2020-07-25 13:42:43 -04:00
rtm516
64727db67b
Fix Wolf anger display (#1021) 2020-07-25 12:53:44 -04:00
bundabrg
fffac8a552
Fix Spawn position not using offset. (#1015) 2020-07-25 10:38:00 -04:00
DoctorMacc
523e304290
Update mappings 2020-07-24 16:45:44 -04:00
DoctorMacc
127bc39c53
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.16.2 2020-07-24 15:45:28 -04:00
AJ Ferguson
5b1116b15a
Creative items (#1013) 2020-07-24 15:42:15 -04:00
DoctorMacc
9a3a7ef50f
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.16.2 2020-07-24 10:48:00 -04:00
DoctorMacc
ae77388b2e
Allow compilation; update GeyserConnector 2020-07-24 10:45:36 -04:00
DoctorMacc
6b7dad1483
Update for protocol 408 and 20w30a 2020-07-24 10:39:10 -04:00
Camotoy
b103d86ff9
Fix buckets on desktop survival (#1003) 2020-07-23 14:37:14 -04:00
Camotoy
ad9184ad13
Update Adventure-Legacy dependency (#996) 2020-07-22 14:52:12 -04:00
Camotoy
b211b9da2e
Update entity status mappings (#995)
- Add support for LIVING_BURN entity status
- Properly send sheep graze event
2020-07-22 11:03:09 -04:00
ForceUpdate1
765efe8a33
Fix anvil item rename (#992)
* fix anvil item rename

* fix anvil item rename
2020-07-21 15:01:55 -05:00
rtm516
30c007d04b
Fix buckets not working on mobile (#767)
Desktop clients send an extra item use packet for buckets whereas mobile clients dont send the second use packet causing the issue as a ClientPlayerUseItemPacket doesn't get sent to the Java server.

Buckets on mobile may still be glitchy as the player must be directly facing the block they want to place liquid on.
2020-07-21 13:17:55 -04:00
D3ATHBRINGER13
8daf4ef2b7
Add piglin brutes (#989) 2020-07-20 19:45:38 -04:00
DoctorMacc
3b8d1758b3
Initial update for 20w29a 2020-07-20 19:02:18 -04:00
Camotoy
7bb297dd42
Update submodules (#979) 2020-07-20 14:34:19 +01:00
Camotoy
e5fc66d72f
Fix elytra flying in creative mode (#956)
Sending a ClientPlayerAbilitiesPacket allows the player to successfully fly.

This commit also removes the setting of the CAN_FLY entity flag on creative mode. This did not break anything in my testing.
2020-07-18 15:57:37 -05:00
Camotoy
221e5bd103
Disconnect client if using an invalid Mojang account (#975)
This commit supresses the NPE that was previously sent when using an invalid Mojang account. Instead, the Bedrock client is disconnected with an error message.
2020-07-18 15:56:12 -05:00
rtm516
64d5390800
Allow for returning of error messages (#955)
* Allow for returning of error messages

* Fix request not sending before error check
2020-07-14 18:58:09 -04:00
rtm516
ab116dcbc3
Update map colors to 1.16 (#947) 2020-07-14 02:18:30 -05:00
rtm516
04e73efd94
Fix enchantment conversion (#920)
* Fix java to bedrock enchantments

* Fix NBT conversion and add Soul Speed enchantment

* Remove unused import
2020-07-14 02:18:11 -05:00
AJ Ferguson
23f33881cd
Fix potion effect colors (#951) 2020-07-14 02:17:20 -05:00
Camotoy
c4db0e2e63
Manually disconnect client on LoginDisconnectPacket (#950)
The client will not get kicked on a LoginDisconnectPacket causing them to remain in an empty world perpetually.
2020-07-13 21:53:55 -04:00
RednedEpic
e7657c7d07 Fix enchantments for servers that don't namespace them (Fixes #897) 2020-07-11 19:52:20 -05:00
RednedEpic
5ceb4145ac Fix fireworks (Closes #917) 2020-07-11 19:40:26 -05:00
rtm516
485ba1b8a7
Check the name tag exists for anvil renaming to prevent an NPE (#936)
* Check the name tag exists for anvil renaming to prevent an NPE

* Fix item names being empty if display tag exists with no name
2020-07-11 21:58:12 +01:00
Camotoy
7757913c00
Update MCProtocolLib to fix cached chunks on non-Spigot (#937) 2020-07-11 16:47:21 -04:00
Camotoy
e942d7c553
Don't use player locale for outdated message. (#931)
Too early in the login cycle to grab it.

This commit also updates the languages submodule.
2020-07-11 12:51:10 -05:00
rtm516
5e5e3b0d28
Add a User-Agent to the rest of the web requests (#932) 2020-07-11 12:22:02 -05:00
Savagetechguy
4daa568311
Fixed Villager Position when Sleeping (#933)
* Update Entity.java

* Switched to VillagerEntity.java and added indents and whitespace

* Fix indents and whitespace and changed to pattern and matcher

* Clean up indentation problems

Co-authored-by: Savagetechguy <jakehorner@gmail.com>
Co-authored-by: Redned <redned235@gmail.com>
2020-07-11 12:20:03 -05:00
Camotoy
3e0cb28a63
Fix scoreboard prefix/suffix translation errors (#929)
Uses getTranslatedBedrockMessage() instead of getBedrockMessage().

Fixes #923.
2020-07-10 14:14:54 -04:00
rtm516
5e664882b1
Fix no gravity falling block entities (#927)
* Fix no gravity falling block entities

Co-authored-by: AJ Ferguson <AJ-Ferguson@users.noreply.github.com>

* Add spacing

Co-authored-by: AJ Ferguson <AJ-Ferguson@users.noreply.github.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-07-10 09:43:52 -05:00
rtm516
225e2a9fb8
Make a copy of the players list when disconnecting them all on shutdown (#928) 2020-07-10 09:43:30 -05:00
rtm516
67c2b37337
Fix version checking on older Java versions (#926)
* Fix version checking on older Java versions
We add a useragent header to stop cloudflare blocking the default Java useragent

* Explain why we need the user agent

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-07-10 00:50:08 +01:00
Camotoy
cbb2586fba
Don't throw a stack trace when detecting for GUI (#919) 2020-07-08 18:44:10 -04:00
Camotoy
9cc468cee9
Remove debug string 2020-07-08 12:42:20 -04:00
DoctorMacc
bfdc452e3e Add emote support for Bedrock-to-Bedrock players 2020-07-08 12:38:54 -04:00
DoctorMacc
fe254380dc Clean up some TODOs 2020-07-08 12:36:26 -04:00
DoctorMacc
915ad2d057 Update languages submodule 2020-07-08 11:31:09 -04:00
DoctorMacc
83ae3199c9 Update languages submodule 2020-07-08 11:10:40 -04:00
DoctorMacc
21ea1f2408 Update MCProtocolLib to fix #836 2020-07-07 20:14:50 -04:00
DoctorMacc
40032987fa Add magma cube jumping visual 2020-07-07 19:27:12 -04:00
DoctorMacc
0cea703b46 Save ItemEntry classes for items 2020-07-07 16:40:19 -04:00
rtm516
5f6566ad0e Move to dynamic item ID mapping in ItemRegistry 2020-07-07 16:23:21 +01:00
rtm516
c2be7a181d Fix Piglin bartering animation (Fixes #863) 2020-07-07 16:11:52 +01:00
rtm516
a16deb269a Fix exact color matches not being formatted correctly (Fixes #912) 2020-07-07 15:09:24 +01:00
rtm516
75f2891ec0 Fix map_uuid nbt type 2020-07-07 14:47:56 +01:00
rtm516
8807d5d9c6 Fix banner block patterns 2020-07-07 14:30:33 +01:00
DoctorMacc
f9760b721c Don't process the display tag if it's empty 2020-07-07 08:30:11 -04:00
AJ Ferguson
50176e10a8 Fix inabilty to place items into brewing stand 2020-07-06 23:44:39 -08:00
DoctorMacc
f68632f433 Block-related updates
- Fix block breaking animation
- Fix block breaking particles
- Don't initialize Geyser's chunk cache if using Spigot
2020-07-06 21:38:10 -04:00
RednedEpic
24f9651cc6 Convert map of players to list (may address #833) 2020-07-06 20:11:34 -05:00
AJ Ferguson
699402e635 Fix bug with maps 2020-07-06 15:52:38 -08:00
rtm516
c454e443df Fix maps with negative IDs causing out of bounds errors 2020-07-06 23:36:31 +01:00
rtm516
ba736575f7 Fix RGB colors on signs causing chunk issues, fix items names not being displayed correctly 2020-07-06 23:36:04 +01:00
DoctorMacc
545dfa38f0 JavaUpdateTileEntityTranslator improvements
- Remove the use of deprecated functions
- Check for empty NBT (fixes errors on CubeCraft)
2020-07-06 16:22:07 -04:00
DoctorMacc
82c6276794 Move back to using the main repository for MCProtocolLib 2020-07-06 15:19:48 -04:00
rtm516
7e51040a8e Fix fallback locale not loading 2020-07-06 14:41:55 +01:00
James Harrison
3cdc208174
Update MinecraftCapes endpoints (#907)
Updates the mccapes endpoints with the new domain.
2020-07-06 09:26:00 -04:00
theminecoder
66570a623d
Fix scoreboards bleeding into other servers (#902) 2020-07-06 08:10:36 -05:00
rtm516
b0e291edc4 Fix version checking and add failed language string 2020-07-06 12:18:14 +01:00
rtm516
ad751ecb5b Fix ping passthrough throwing errors on unknown properties (Fixes #903) 2020-07-06 11:18:17 +01:00
Camotoy
afcf1e3acd
Change versioning to match supported Bedrock version; add versioning command (#730)
* Change versioning to match supported Bedrock version

Line up Geyser's versioning to match with the highest/currently supported Bedrock version for future tracking of older Geyser versions.

* Add version command

* Fix DEV check for version command

* Remove SNAPSHOT

* Update languages submodule

Co-authored-by: rtm516 <ryantmilner@hotmail.co.uk>
2020-07-05 21:38:24 -04:00
DoctorMacc
ca4d827d28 Don't cause a recursion error if Geyser can't find the locale 2020-07-05 21:13:28 -04: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
d1e5960d69 Send a dimension change upon join game packet now sent by bungeecord on 1.16 2020-07-05 18:33:05 -05:00
RednedEpic
69d7db4493 Update mappings submodule 2020-07-05 17:18:33 -05:00
RednedEpic
da1674c8d6 Update to Cloudburst NBT 2.0 2020-07-05 15:59:44 -05:00
DoctorMacc
4062f1ee55 Fix flower pots and item frames 2020-07-05 00:03:51 -04:00
RednedEpic
8ac5d6e13d Fix memory leak in legacy ping passthrough (Fixes #674, #813) 2020-07-04 16:35:48 -05:00
RednedEpic
cc2bbc675f Update mappings submodule 2020-07-04 13:08:36 -05:00
DoctorMacc
a7fbe995f8 Add comment and check for null when removing passengers 2020-07-04 10:26:32 -04:00
rtm516
da96a5b19c Fix Strider cold state when riding and removing of the RIDING flag when a parent is killed 2020-07-03 22:55:54 +01:00
AJ Ferguson
ab71bf0727 Fix bug when dropping items from an open inventory 2020-07-03 12:18:35 -08:00
rtm516
61072948b9 Add GUI to standalone 2020-07-02 20:10:43 -04:00
DoctorMacc
699ae0b88e Set strider entity offset properly if not a player entity 2020-07-01 20:27:39 -04:00
DoctorMacc
c17f21eedc Fix respawn bugs - hopefully for good
Thanks to @bundabrg for spotting this one.
2020-07-01 12:28:03 -04:00
rtm516
0f342c1e80 Update mappings to fix fences and plant stems 2020-07-01 14:26:00 +01:00
DoctorMacc
51dfda1c91 Clean up formatting 2020-07-01 08:22:21 -04:00
DoctorMacc
81651cfac5 Add support for 3D biomes; fix Nether biome display 2020-06-30 20:39:21 -04:00
rtm516
c804a6edfb Fix respawning and death not being registered on the client 2020-06-30 17:08:22 +01:00
rtm516
e7fae53552 Fix Strider shaking 2020-06-30 13:51:44 +01:00
rtm516
a9bb8745f5 Fix Zombified Piglin fire flicker 2020-06-30 13:20:03 +01:00
DoctorMacc
ba6adc988b Strider mounting fixes; update mappings
This commit refactors health visual logic to make it a global system for each living entity.
2020-06-29 21:34:01 -04:00
AJ Ferguson
eb3bde15a7 Fix stored enchantments accidentally being dropped 2020-06-29 16:59:02 -08:00
AJ Ferguson
95144266d2 Handle int tag for enchantment level 2020-06-29 16:59:02 -08:00
rtm516
7710261b70 Add Loadstone Compass tracking 2020-06-30 00:52:32 +01:00
DoctorMacc
4c89a8e303 Return to using Protocol develop branch 2020-06-29 17:52:59 -04:00
DoctorMacc
fc4a87a9c9 Fix blocks not updating 2020-06-29 16:46:29 -04:00
DoctorMacc
ebc1f13e9b Update dependencies ('item marked as non-null' error is fixed') 2020-06-29 16:03:54 -04:00
AJ Ferguson
e77f2b5dbb Drop long array nbt tag when translating to bedrock 2020-06-29 10:59:51 -08:00
rtm516
d394cc6280 Update entity metadata 2020-06-29 15:37:54 +01:00
rtm516
91c33242c6 Fix baby states and collisions of 1.16 mobs 2020-06-29 14:40:06 +01:00
rtm516
70009c4bf9 Clean chat code and fix skins 2020-06-29 13:50:16 +01:00
DoctorMacc
f2f59e4e37 Fill in renamed villager trading values (villager trading UI now opens) 2020-06-28 23:44:38 -04:00
AJ Ferguson
12d5982c57 Anvil fixes 2020-06-28 16:14:57 -08:00
rtm516
f5da962f6f Fix disconnect message formatting 2020-06-28 23:38:27 +01:00
AJ Ferguson
c2c64fd1cf Fix some recipes with multiple ingredient options 2020-06-28 13:33:38 -08:00
RednedEpic
8e8bc2817a Return if sound is null and update mappings 2020-06-28 12:35:17 -05:00
D3ATHBRINGER13
980e82a2d9
Replace Bukkit with Spigot (#831) 2020-06-28 10:52:53 -05:00
Tim203
2df3d4cbca
Update to the latest MCProtocolLib commit 2020-06-28 16:44:57 +02:00
rtm516
9569416124 Fix chat formatting and team colors 2020-06-28 14:57:41 +01:00
AJ Ferguson
1410b67189 Update mappings submodule
Fixes shulker boxes
2020-06-27 22:36:41 -08:00
DoctorMacc
6e94428f60 Non-working smithing table inventory support 2020-06-28 01:53:35 -04:00
AJ Ferguson
e3e8bb2799 Fix first item of creative inventory not showing 2020-06-27 20:47:10 -08:00
AJ Ferguson
2e0eb6dfb7 Fix creative item list 2020-06-27 15:26:16 -08:00
Tim203
8f763dfc5f
Move common stuff used only by connector and bootstrap to connector 2020-06-28 00:27:00 +02:00
Tim203
dd1747cae9
Updated the mappings and fixed building 2020-06-27 23:47:52 +02:00
rtm516
7743f6d718
Add dump command (#808)
* Add dump command
Adds a command to collect and dump infomation about the Geyser install and bootstrap and submit it to a dumps site.

* Finalize URL; misc. fixes; add 'architecture' param

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-06-27 11:36:48 -04:00
DoctorMacc
75f470cb33 Fix creative items 2020-06-27 11:35:02 -04:00
rtm516
5b147f8dd1 Fix en_us locale downloading (#809)
Fixes occasional inventories not working because of being unable to read the locale.
2020-06-27 02:00:10 -04:00
endevrr
d516dc5b90
Update Mappings (#816)
* Relocate Reflections Dependency

* Update some mappings
2020-06-27 01:00:35 -04:00
AJ Ferguson
ba9129129c Quick inventory fixes. WIP
Temporary. The inventory system will be rewritten very soon.
2020-06-26 18:51:09 -08:00
rtm516
17a1e82eca Add closest color mapping for RGB chat colors 2020-06-26 23:33:38 +01:00
DoctorMacc
54f6fada12 Remove try/catch from BlockTranslator and ItemTranslator 2020-06-26 11:15:21 -04:00
DoctorMacc
e60f47f65d Fix zombified piglins 2020-06-25 22:52:48 -04:00
DoctorMacc
409293f1db Add new 1.16 entities 2020-06-25 22:32:04 -04:00
DoctorMacc
6f2bf659a9 Update JavaEntityEquipmentTranslator for Java 1.16 2020-06-25 21:53:51 -04:00
DoctorMacc
bb630dc867 Update PotionMixData 2020-06-25 12:03:20 -04:00
DoctorMacc
06fa0de793 Add translator for PacketViolationWarningPacket 2020-06-25 11:16:36 -04:00
DoctorMacc
bd16925bab Update mappings repository 2020-06-25 11:11:21 -04:00
DoctorMacc
71aada1df3 Fix dimension switching; add static references to new Java dimensions 2020-06-24 20:27:27 -04:00
DoctorMacc
a964befef2 Merge branch 'feature/1.16' of https://github.com/GeyserMC/Geyser into feature/1.16 2020-06-24 18:23:02 -04:00
AJ Ferguson
f0aaebc0ec Bump block state version 2020-06-24 14:14:20 -08:00
DoctorMacc
1572ac20f1 Update mappings repository 2020-06-24 17:53:26 -04:00
DoctorMacc
8be0c4b27e Update some entity properties based on wiki.vg 2020-06-24 16:40:42 -04:00
DoctorMacc
60fa43c739 Update Bedrock resources dumped by @bundabrg 2020-06-24 14:19:57 -04:00
DoctorMacc
b34dc05c1d Uncomment JavaDeclareCommandsTranslator and update 2020-06-24 12:16:30 -04:00
DoctorMacc
78df56c7a0 Update for 1.16.1 2020-06-24 11:14:11 -04:00
DoctorMacc
3ea1059a62 Update for 1.16 2020-06-23 09:34:12 -04:00
DoctorMacc
0471fa89f4 Bedrock 1.16 updating part 2 (Doesn't work) 2020-06-22 21:21:42 -04:00
DoctorMacc
ea1a9e5427 Bedrock 1.16 updating part 1 2020-06-22 20:11:09 -04:00
DoctorMacc
56f9330a2d Remove ServerSpawnWeatherEntityPacket 2020-06-21 19:22:59 -04:00
DoctorMacc
63244ade53 Rename Geyser-Bukkit to Geyser-Spigot 2020-06-21 16:27:42 -04:00
DoctorMacc
427f4ef83d Merge master into Spigot rename 2020-06-21 16:21:47 -04:00
DoctorMacc
b9ccabb3bb According to all known laws of aviation, bees exist 2020-06-20 22:46:09 -04:00
DoctorMacc
117cdf282d Begin updating Geyser. Requires manual MCProtocolLib compile 2020-06-20 22:24:45 -04:00
DoctorMacc
dbe1755a8e Update mappings repository 2020-06-20 18:28:07 -04:00
DoctorMacc
1015b830ce Merge branch 'master' of https://github.com/GeyserMC/Geyser into mcprotocollibupdate 2020-06-20 17:50:00 -04:00
bundabrg
e66f57f9f0
Provide a platform independent method of retrieving the datafolder (#769)
* Provide a platform independent method of retrieving the datafolder

* LocaleUtils now uses datafolder

* Make use of Path instead of File

Changes:
* Rename getDataFolder() to getConfigFile() and update to return a Path in each bootstrap

* Rename filePath to tmpFilePath

* Update Velocity configFile to configFile Path
2020-06-20 12:54:40 -05:00
Camotoy
100d7b7759
Add villager interactive tag (#788)
* Add villager interactive tag

This adds a button/controller guide for villager trading, if the villager is able to trade.

* Use a broader variable for metadata
2020-06-20 13:44:40 -04:00
Camotoy
effd7602af
Clarify Bedrock remote address change (#787)
There's no reason for most users to try changing this.
2020-06-19 13:39:40 -05:00
rtm516
47cadc7689 Fix json data in chat 2020-06-19 19:29:01 +01:00
DoctorMacc
65f61ec703 Finish block state changes 2020-06-19 09:06:29 -04:00
rtm516
5eb7c9d1dc
Add a setter to the auth type to allow for changing at runtime (#784)
This is mainly for GeyserConnect but may be useful in other cases
2020-06-19 08:50:10 -04:00
rtm516
ad4c1ff0c7 Update Message system 2020-06-19 11:57:34 +01:00
DoctorMacc
d6119375b2 (Incomplete) Update MCProtocolLib 2020-06-18 21:44:50 -04:00
Camotoy
9369b20209
Add 1.9+ PvP 'Cooldown' (#768)
* Add 1.9+ PvP 'Cooldown'

This commit adds a subtitle that acts as the Java cooldown. This is an optional feature disabled in the config with `show-cooldown`. This does not appear on plugins that use OldCombatMechanics.

* No need to bump up the config version; I was just tested with OldCombatMechanics

* Use simpler casting

* Use session variable of lastHitTime for theoretically better performance

* Reuse attribute value calculation from AttributeUtils

* Remove unused imports

* Revert config version update in config.yml
2020-06-16 19:03:28 -05:00
Camotoy
256c62ce88
Entity (mostly rotation) fixes (#675)
* Entity (mostly rotation) fixes

    This PR adds:

    - Pig health displaying. Doesn't fix pigs being able to be controlled
    - Entity rotation is *mostly* correct. Villagers and sitting cats still seem to be odd but the ender dragon works great.

* Remove debug line

* Abstract rotation updating to functions per-entity

* Don't include changes from other projects

* Minor improvements

* Make updateRotation and updatePositionAndRotation cleaner

* Javadoc
2020-06-16 18:58:06 -05:00
rtm516
a6f91d5e15
Fix maps not loading in sometimes (#758)
* Fix maps not loading in sometimes
Adds a default map ID so the map item isnt invisible on bedrock.
Respond to the MapInfoRequestPacket so the image loads on first join.

* Remove debug log

* Add comments
2020-06-15 14:24:52 -04:00
Sirawit Thaya
649cf28399
Fixed incorrectly arguments parsing (#773) 2020-06-15 11:20:38 +01:00
DoctorMacc
cc3b4c3eda Merge latest master; copy over old Geyser-Bukkit configs 2020-06-11 16:39:29 -04:00
Camotoy
7fcd8f2daf
Fix block entities on older versions (#756)
* Fix block entities on older versions

This commit solves two problems related to block entities on older versions:

- Occasionally, tags would contain the ID under a StringTag with an empty value, and not the ID tag.
- The block entity regex did not account for block entity tags that were already in a Bedrock-compatible format (BlockEntity)

* Move BLOCK_ENTITY_TRANSLATIONS to BlockEntityTranslator
2020-06-10 18:02:29 -05: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
7231758a19
Prevent swimming animation from appearing on older servers (#692)
The swimming animation could be played on older servers since that was a legacy value for using an item.
2020-06-10 17:52:36 -05:00
rtm516
a5eba85880
Add ServerPlayerListDataPacket to ignored packets (#755)
This packet handles the header and footer of the scoreboard, therefore this does not exist in bedrock.
2020-06-10 17:52:07 -05:00
6e127edfd6
Stop using TrigMath class (#753)
* Stop using TrigMath class

* Use MathUtils
2020-06-09 14:50:21 +02:00
1da130ab07
Fix initial movement speed (#751)
Bedrock clients move very fast by default until they get an attribute packet correcting the speed.
2020-06-08 08:13:25 -04:00
DoctorMacc
afb12e923b Show villager display name 2020-06-06 00:04:05 -04:00
DoctorMacc
4c5d80e2e9 Update to latest master 2020-06-05 22:52:11 -04:00
rtm516
ccb44f604e
Fix query not following normal MC standards (#736)
Changed the query token generation to generate a 4 byte int represented as a null terminated string
2020-06-04 20:04:38 -04:00
AJ Ferguson
1d8995efe6
Add minimum delay between closing and opening a new window (#735)
Should fix new windows not showing up with some plugins like Lottery.
2020-06-04 14:49:32 -04:00
Camotoy
69a4cd3860
Use static commit of MCProtocolLib (#734)
This prevents changes upstream from immediately affecting Geyser workflow. This also removes the CodeMC repository in favor of Jitpack (which can use the commit hash as a version).
2020-06-03 22:57:36 -04:00
rtm516
5fca5d5ef5
Fix position of non-marker invisible armour stands (#697)
This adds the height of the armour stand to the position if its invisible and not a marker to counteract the scale being 0 therefore having a wrong nametag position
2020-06-03 21:12:16 +01:00
rtm516
5eef265f80
Fix display of some more entities (#726)
* Fix display of Evoker and Evoker Fangs

* Fix spawner minecart display

* Centeralise custom blocks for spawner and furnace minecarts

* Add comment explaining class
2020-06-02 18:16:04 -05:00
rtm516
a91eaa7821
Add item name translation (#559)
* Added item name translation

* Change to more appropriate NPE catch

* Remove whitespace

* Switch from try/catch to null checking

* Update mappings

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-06-02 16:33:37 -04:00
AJ Ferguson
3d357af739
Inventory Fixes (#602)
* Fix edge case when shift clicking an output slot

* Don't send window close packet if window is already closed

* Limit amount of window close packets sent to the client

Fixes hidden inventory bar bug

* Restrict user from unusable chest inventory slots

* Fix crafting table slot mappings

* Always send cursor update
2020-06-02 08:48:26 -08:00
Camotoy
18891a22f1
Check for instance of TranslationMessage (#722)
Checks for class of custom name ID in case it's translation message.
2020-06-02 10:45:33 -04:00
AJ Ferguson
05024dde8c
Don't manually grab MCProtocolLib's dependencies (#720)
* Don't manually grab MCProtocolLib's dependencies

* Add netty-resolver-dns and exclude netty-all
2020-06-01 22:19:16 -04:00
rtm516
5bb345daa6
Fix new minecart with block breaking furnace minecart display (#717)
This handles DISPLAY_ITEM and related properties separately on furnace minecarts in order to prevent overwriting furnace minecart graphics.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-06-01 15:59:46 -04:00
rtm516
ac5ab229f9
Fix Ender Crystal collision and explosion effects (#716)
Fixed the collision box being non-existent for ender crystals and fixed explosion effects not being displayed properly
2020-06-01 15:57:27 -04:00
Camotoy
215e5a7e21
Add custom minecart metadata (#713)
Adds display item, offset, and enable values.
2020-05-31 21:47:54 -04:00
rtm516
b8615874f9
Add furnace minecart (#712)
Adds the display of the furnace minecart, functions as expected.
2020-05-31 21:46:36 -04:00
Camotoy
b8a3009c9d
Ignore all downstream packet errors (#693)
* Ignore all downstream packet errors

Instead of kicking the client off because of an error, we simply display a logger warning and suppress the error.

* If debug mode, print stacktrace
2020-05-30 17:31:20 -05:00
Camotoy
64e3204611
Implement translator for AdventureSettingsPacket (#691)
* Implement translator for AdventureSettingsPacket

The AdventureSettingsPacket is translated into ClientSettingsPacket so the MAY_FLY and FLYING flags are sent to the server. This fixes double-jumping on some servers that rely on the client sending their flying information through this packet.

* Remove top-secret code analysis
2020-05-29 18:56:21 -05:00
5c8f6eb184
Fix relative teleports (#688) 2020-05-29 15:11:38 -04:00
rtm516
3f76ae1d48
Add ignore for ServerKeepAlivePacket (#664)
This packet is already handled by MCProtocolLib for us.

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-05-28 11:43:31 -04:00
rtm516
1a92f6974c
Add byte conversion to allow int NBT values for Fireworks (#681)
Firework NBT data might be either an int or byte and bedrock only takes it as a byte.

Co-authored-by: Arktisfox <65837019+Arktisfox@users.noreply.github.com>
2020-05-28 11:38:23 -04:00
DoctorMacc
2dc755ca98 Rename Geyser-Bukkit to Geyser-Spigot
Despite the Bukkit suffix being correct in terms of the API, the name causes some people to download CraftBukkit instead of Spigot or Paper. All internal references to Bukkit have been renamed to Spigot.
2020-05-26 10:05:25 -04:00
Camotoy
14fcd77925
Fix entities stacking on top of each other when mounted (#660)
The offset was being called but not properly saved to a variable. The check will also not apply if there is only one mounted entity.
2020-05-25 22:43:29 -05:00
bundabrg
a929c411d2
Use authData UUID when sending playerlist packets to the client (#654)
Bedrock knows its own UUID and when it receives the Java uuid it will either crash (MCEE) or add a ghost player onto the playerlist (Bedrock).
This change will check if an entity is the client and if so replace the entities UUID with the AuthData UUID.

A refactor of JavaPlayerListEntryTranslator was also done as I got confused each time what it was doing so it is now hopefully a bit clearer and also fixes the case where an entity is removed but still exists on the server (Vanished).
2020-05-25 22:39:57 -05:00
bundabrg
cc6c7fe78d
When spawning don't add the player offset (#655)
Fixes falling when logging in
2020-05-25 22:35:26 -05:00
Arktisfox
0178492b59
Fix some book translation failures (#661)
Book pages can be sent as plain text rather than JSON. The text library doesn't use lenient parsing, so this fails, and the book isn't visible in the inventory.

This will convert the text into JSON if it's not already, before feeding it to the text library.
2020-05-25 21:19:37 -04:00
rtm516
d0545c57c4
Fix some fireworks colors and NPE of there is no NBT (#650)
Adds Bukkit colors and an additional NPE check
2020-05-25 17:57:10 -04:00
RednedEpic
6b68bbb413 Large refactoring to item translator and registry/util classes
- Merged ItemTranslator and ItemStackTranslator together.
- Split ItemTranslator into two classes: ItemTranslator and ItemRegistry. The registry is where items are registered, and the translator class is where item translation takes place.
- Made most of ItemTranslator's methods static and removed the initialization in Toolbox.
- Moved a handful of registry classes previously ending with 'Utils' to a 'Registry' class to be more fitting for the term.
- Moved inventory and block entity registration out of Translators.
- Renamed Translators to PacketTranslatorRegistry.
- Yeeted Toolbox.
- Minor cleanups and small refactors.
2020-05-24 20:07:05 -05:00
RednedEpic
7154e1c816 Strip Minecraft identifier when playing non-mapped sounds to allow for bedrock-exclusive sounds to be played 2020-05-24 14:56:05 -05:00
rtm516
3a39e9afee
Added Crossbow nbt translator (#590)
They still infinitely reload but they correctly track if they have data in now.
2020-05-24 15:51:30 -04:00
RednedEpic
0215220ac1 Fix spectator mode 2020-05-24 14:46:36 -05:00