Commit graph

59 commits

Author SHA1 Message Date
Camotoy
252348ebd8
Implement globe banner pattern translation
Co-Authored-By: Konicai <71294714+Konicai@users.noreply.github.com>
2022-02-19 12:07:30 -05:00
Camotoy
31fd57a58d
Also apply villager fix for consoles 2022-02-12 21:44:51 -05:00
Camotoy
0ca77233ed
oh no my extensive debugging setup 2022-02-10 20:15:46 -05:00
Camotoy
746cd94dd1
Fix villagers for 1.18.10
Includes working around pre-1.14 ONLY on pre-1.14 by checking the tags packet.

Fixes #2828
2022-02-10 20:14:52 -05:00
Camotoy
559c5d655a
Allow smithing recipes to work again in 1.18.10 2022-02-09 15:08:58 -05:00
Camotoy
0eed6025a6
Remove protocol checks referencing 1.17.30
These are now unnecessary.
2022-02-08 23:16:11 -05:00
David Choo
36afd3f2ec
Fix villager prices with demand price adjustments (#2767)
* Fix villager prices with demand price adjustments

* Don't cap second input/output item count

* Handle negative item counts properly

* Don't get item mapping twice

* Add null check to getItemTag
2022-01-30 19:26:31 -05:00
Camotoy
2d28ba0cb5
Several inventory and parity improvements
These changes fix up things that were missed with Java Edition inventory changes in 1.17 and 1.17.1. Working with the inventory in modern versions should be much nicer.
2022-01-30 11:15:07 -05:00
Camotoy
d0fa2d2b05
Don't send respawn code until Java is ready
Fixes #2668
2022-01-30 11:14:51 -05:00
Camotoy
14882534c0
Don't fully translate item data to compare net IDs
Just compare the item mappings of the two Java items. This should shave some NBT and display conversion processing time down.
2022-01-30 11:05:29 -05:00
Camotoy
1fba96c339
Address armor stand invisibility edge case
See https://github.com/GeyserMC/Geyser/issues/2780
2022-01-22 16:22:27 -05:00
Camotoy
e92633d657
Add an option to always quick-change armor
With thanks to f068217cb7/src/main/java/me/juancarloscp52/bedrockify/client/features/quickArmorSwap/ArmorReplacer.java for making me realize this was possible.

Currently disabled by default in the event that a server implementation also has this feature. May be enabled by default in the future.
2022-01-20 18:09:35 -05:00
Camotoy
6667a53bca
Better handling of invalid display tags 2022-01-19 19:44:46 -05:00
Camotoy
a6004af083
Minor cleanups 2022-01-19 19:30:54 -05:00
Camotoy
c1e4040cb6
Don't let Bedrock players send format character
See https://github.com/PaperMC/Paper/issues/7362
2022-01-17 16:10:56 -05:00
Camotoy
f702fb45b4
Handle correct internal slot for swapping from inventory 2022-01-16 14:42:17 -05:00
Camotoy
8a93f6a116
Send the client render distance to the server
Previously we've had discussions on if the render distance math should be tweaked like we do server -> client, but for now this is better than nothing and can be tweaked further in the future.
2022-01-15 20:29:00 -05:00
Camotoy
516d8e573e
Config option to disable Bedrock scaffolding/godbridging 2022-01-15 16:28:52 -05:00
David Choo
a39de7d7d2
Fix ArrayIndexOutOfBoundsException for worlds lower than -64 (#2759)
* Fix ArrayIndexOutOfBoundsException for worlds lower than -64

`chunkSize` is Java section count while `sectionCount` is the Bedrock section count

* Send biomes for air sections while also staying within limits

.-.

* Move protocol version check to variable
2022-01-14 14:57:59 -05:00
Camotoy
3b943f214c
Update comments 2022-01-13 20:03:38 -05:00
Camotoy
881352daaf
Recreate the death smoke particles to work around double death noises
Fixes #2363
2022-01-13 20:00:05 -05:00
Camotoy
1c11a2ef01
Partially revert previous commit and implement hotbar swap actions
1.16.5 does not cooperate well when an action is invalid, and this breaks hard when crafting.
2022-01-11 16:56:11 -05:00
Camotoy
a29e7731e8
Inventory fixes and state ID emulation
- Introduce a state ID incrementation emulation. This prevents the server from spamming back with tons of set content packets, and can instead reply with set slot packets.
- Fix what we were sending as a carried item in the ServerboundContainerClickPacket.
2022-01-10 22:55:27 -05:00
Tim203
3251d9010c
We're in 2022 now 2022-01-01 20:03:05 +01:00
Camotoy
d7eef7aaeb
Cache forms until the player has fully initialized 2021-12-29 14:20:34 -05:00
RednedEpic
7beedb46f8 Check for empty component in JavaSetTitleTextTranslator 2021-12-29 10:50:26 -06:00
RednedEpic
61636f44aa Simulate Java chunk unloading by sending empty chunks
Closes #2725
2021-12-28 23:25:33 -06:00
Camotoy
b70e2645c8
Allow dropping items from the creative menu in mobile
Fixes #2626
2021-12-26 12:07:38 -05:00
Camotoy
68c13c08fa
Fix some regressions in swim handling 2021-12-25 22:46:16 -05:00
Olivia
b134dd3b1c
fix: Return early in banner translation if tag is null (#2729) 2021-12-25 17:16:30 -05:00
David Choo
65aaa07493
Fix sneaking speed adjustment and bounding box (#2728)
* Fix sneaking speed adjustment and bounding box

Also remove redundant session variable in SessionPlayerEntity

* Add comment to valid field

* Hopefully fix crawling after swimming in water
2021-12-23 19:49:58 -05:00
Camotoy
6eb069cc13 Fix evoker fangs not being visible
Also implement sound when attacking
2021-12-20 19:59:12 -05:00
Camotoy
24f09e016d Entity IDs in Java Edition just need to be integers
We don't need to keep them as longs - this just reduces the amount of casting needing throughout the codebase.
2021-12-20 19:25:11 -05:00
Camotoy
15522aed52 Fix fishing rod behavior on Geyser players
Fixes #2716
2021-12-19 19:15:53 -05:00
Camotoy
71a975b805 Fix tooltip durability/NBT not being translated
Fixes #2706
2021-12-19 15:54:31 -05:00
David Choo
754bb42c19
Fix some mount offsets and strange behaviors with GSit (#2701)
* Prevent boats from floating when a Bedrock player rides in the back

* Update llama and shulker mount height offset

* Fix Trader llama mount offset

* Change passengers to an IntList

Also move rotation lock stuff to EntityUtils

* Allow EntityCache.getEntityByJavaId to return the session's player

Removes many checks from several translators.

* Fix mount offset on armorstands and area effect clouds

Also prevent area effect clouds from despawning when used as an invisible entity (used in GSit to offset players riding on other players)

* Update mount offsets on height changes

TODO test this

* Actually update vehicleId and optimize StriderEntity metadata update

* Don't hide marker armor stands and properly update mount offsets

* What?

* Remove y offset for Shulkers riding other entities

* Confirm teleports in the order received

This allows Bedrock players to move after standing up when using GSit

* Fix mount offset for riders on baby zoglins

* Cache only the latest teleport and confirm teleports immediately

* Fix crawling with GSit

* Inline var and undo respawn method

* Use Entity reference for vehicles

* Remove ridingVehicleEntity from GeyserSession

* Use Entity references for passengers and drop cachedPlayerEntityLinks

* Reuse variable and remove setVehicle(null)
2021-12-18 11:43:57 -05:00
Camotoy
967ee4f58d
Fix command descriptions merging 2021-12-13 22:25:08 -05:00
Camotoy
25921e1d67
Hide out-of-range entity metadata IDs
The vanilla Java client gracefully ignores these.
2021-12-13 13:25:51 -05:00
Camotoy
892855415b
Fix offset team colors
Fixes #2674
2021-12-11 16:05:12 -05:00
Luke
8c7a3d1822
Show the nether fog when using the nether height workaround (#2663) 2021-12-08 13:23:05 -05:00
Camotoy
046c93ffb0
Fix stonecutters for Bedrock 1.18 2021-12-08 09:23:23 -05:00
Camotoy
b0baf1670d
Don't send inventories to the client before initialization
Fixes #2677
2021-12-07 14:51:58 -05:00
Kenox
1840172c8d
Fix custom merchant inventory not opening (#2672) 2021-12-06 10:43:36 -05:00
Camotoy
e954d091b9
Prevent errors from simply being swallowed 2021-12-05 19:03:47 -05:00
RednedEpic
1d713cb34c Fix handling for null ContainerTypes
EnumMap does not permit null values.
2021-12-04 14:35:01 -06:00
RednedEpic
2e9ac9db7c Use EnumMap in InventoryTranslator for inventory translators 2021-12-04 14:17:26 -06:00
Camotoy
9084c59003
Fix regressions in player movement handling 2021-12-02 19:56:12 -05:00
Camotoy
3f296e32a1
Boss bar colors now work in Bedrock 1.18!! 2021-11-30 21:28:32 -05:00
Camotoy
75d1a6364c
Gracefully handle invalid block entity types 2021-11-30 15:06:47 -05:00
Camotoy
840318bd8b
Optimize MessageTranslator to not use regex
Regexes take up a performance penalty that we can circumvent by iterating over the legacy string once and applying the necessary workarounds.
2021-11-29 14:04:44 -05:00