Commit Graph

242 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 44af9da01d
Use axolotl tempt tag to determine axolotl food 2022-02-11 13:37:19 -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 354e87b747
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/extensions 2022-02-10 09:17:27 -05:00
Camotoy 559c5d655a
Allow smithing recipes to work again in 1.18.10 2022-02-09 15:08:58 -05:00
Camotoy 0479af7cd3
Restore ClickPlan double-simulation
This is used in some autocrafting situations. Oops.
2022-02-08 23:16:11 -05:00
Camotoy 0eed6025a6
Remove protocol checks referencing 1.17.30
These are now unnecessary.
2022-02-08 23:16:11 -05:00
Camotoy e73a4efe60
Fix build; bump to 2.0.1-SNAPSHOT 2022-02-07 12:38:28 -05:00
Camotoy 08a78731df
Drop 1.17.30 support; add support for 1.18.10.28 beta 2022-02-06 17:15:12 -05:00
Camotoy c295e47940
Ensure inventory affected slot is added in MOVE_TO_HOTBAR actions 2022-02-05 17:12:00 -05:00
Camotoy 9d908c5598
Create IntMappedRegistry to prevent boxing 2022-02-01 20:15:31 -05:00
Camotoy 7853e8c93f
Fix cache image task from last commit and make it work with reloading 2022-01-31 09:57:43 -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 da33811e3b
Init SkinProvider on Geyser startup
Prevents it from loading in the middle of the first Geyser player joining
2022-01-30 17:06:45 -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
Tim203 5ce2c113ae
Remove IPv6 scope if present 2022-01-28 13:08:10 +01:00
Camotoy f682cf1326
Yes, Geyser supports Bedrock 1.18.0/1/2. 2022-01-22 16:36:41 -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 001a1a7a15
Support proper dimensions for player dying pose 2022-01-19 19:30:45 -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
RednedEpic 5abf989139 Use lambda metadata factory for events
stonks
2022-01-16 22:52:27 -06:00
RednedEpic ac134b84f2 Remove onEnable, onDisable and onLoad and replace it with lifecycle events 2022-01-16 18:28:39 -06:00
RednedEpic 115b103628 Add extensions command 2022-01-16 16:35:27 -06:00
RednedEpic ac18ef6054 Remove adventure usage in API
Unfortunately due to various platforms we support not having adventure support, we are unable to fully implement adventure into our API without having issues with shading or conflicts with other plugins. May look into what we can do in regards to classloading in the future but unfortunately it may not be a possibility at this point in time to support adventure inside of the API.
2022-01-16 15:58:47 -06:00
RednedEpic 2277b98dfd Rename Priority to PostOrder 2022-01-16 15:16:52 -06:00
RednedEpic 30303d5f16 Implement support for adding Geyser subcommands 2022-01-16 15:09:53 -06:00
Camotoy f702fb45b4
Handle correct internal slot for swapping from inventory 2022-01-16 14:42:17 -05:00
RednedEpic b82c661688 Implement simple event system 2022-01-15 22:54:08 -06: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
RednedEpic 778f004d99 Slight cleanups and make Extension an interface 2022-01-15 16:27:35 -06:00
Camotoy 516d8e573e
Config option to disable Bedrock scaffolding/godbridging 2022-01-15 16:28:52 -05:00
Redned 3b088e81bc
Merge pull request #2761 from ImDaBigBoss/master
Geyser extension loading
2022-01-15 11:53:23 -06: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
ImDaBigBoss 0ccd85ccfb Use Geyser locale for log messages 2022-01-12 18:43:10 +01:00
ImDaBigBoss f8c173aae8 Actually did what Konicai wanted 2022-01-12 16:47:25 +01:00
ImDaBigBoss 8bb8e48a55 Fixed what Konicai asked 2022-01-12 16:40:51 +01:00
ImDaBigBoss f3a331981f Added extension dump data & make plugins be enabled on reload 2022-01-12 15:31:28 +01:00
ImDaBigBoss 805f7f666a Added javadocs & fixed API version & more 2022-01-12 13:50:54 +01: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
ImDaBigBoss 6757437193 Moved the extension into geyser-api 2022-01-10 20:01:36 +01:00
ImDaBigBoss bfe4c09290 Merge https://github.com/GeyserMC/Geyser 2022-01-10 18:47:37 +01:00
ImDaBigBoss 8627787ea9 Added basic extension loading 2022-01-10 18:45:26 +01: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
Redned c6c2ff99c3 Fix NPE and API contract breakage for Component deserialization 2021-12-29 10:29:48 -06:00
RednedEpic 61636f44aa Simulate Java chunk unloading by sending empty chunks
Closes #2725
2021-12-28 23:25:33 -06:00
RednedEpic 6742865bc5 Don't send UUID cape or ear requests if player is an NPC
Addresses #2722
2021-12-28 23:01:38 -06:00
Redned b23275ff6c Fix /geyser reload 2021-12-28 22:36:08 -06:00
Camotoy 2037a924bd
Update languages submodule 2021-12-27 13:58:28 -05:00
Camotoy 5d7e564d95
Update mappings 2021-12-26 23:58:19 -05:00
Camotoy 830baf06ca
Merge branch 'master' of https://github.com/GeyserMC/Geyser into biome-redefinition-1.18 2021-12-26 19:50:46 -05: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
Konicai 6cd8b3387c
Cleanup some ping passthrough stuff (#2726) 2021-12-22 23:05:56 -05:00
Camotoy 4c409f98f3 Properly implement piglin/hoglin dimension safety
Whether they shake or not is now controlled by the server, as implemented in Java Edition.
2021-12-20 22:54:34 -05:00
Camotoy fd955a66af Fix stack trace when coordinate_scale isn't a DoubleTag 2021-12-20 21:31:19 -05:00
Camotoy 2420e33149 Allow some invalid decompression handling 2021-12-20 20:55:29 -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
Camotoy 222c9d7a24 Switch to master branch of mappings 2021-12-18 22:48:28 -05:00
Camotoy d699e7d02b Update mappings
See #2710
2021-12-18 22:45:47 -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
Carbuino 67945ea447
Update the Bedrock Biome map for 1.18 2021-12-17 17:03:10 -07: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 117ebdd9c1
Remove extra semicolon 2021-12-13 13:24:58 -05:00
Camotoy 3d6dd6b8ac
Remove debug code 2021-12-11 16:06:47 -05:00
Camotoy 892855415b
Fix offset team colors
Fixes #2674
2021-12-11 16:05:12 -05:00
Camotoy 9d09a7e418
Display Java supported versions as list in dumps 2021-12-10 16:27:23 -05:00
Camotoy 1885a75d3c
Update version strings to indicate 1.18.1 support
Geyser 1.18 builds already support 1.18.1.
2021-12-10 11:15: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
David Choo ad5a98c859
Improve Statistics Form (#2667)
* Improve statistics form

Fix furnace minecart java identifier
Use clean Java identifier in times mined
Fix icons for statistic form

Show all generic statistics by initializing them to zero
Color every other line grey
Format numbers like on Java Edition

* Update for Java 16 and MCProtocolLib changes

* Sort all statistics alphabetically and color them.

* Update for MCProtocolLib changes

* Re-add clean java identifiers registry and properly fix block break statistics

Also translate before sorting >.>

* Use toLowerCase(Locale.ROOT)

* Use the format provided by MCProtocolLib

* Simplify condition

* Move statistics init and bump MCProtocolLib version
2021-12-07 20:05:44 -05:00
Camotoy b0baf1670d
Don't send inventories to the client before initialization
Fixes #2677
2021-12-07 14:51:58 -05:00
Camotoy 2953ea9513
Fix NPE when hovering over ender dragon 2021-12-06 15:06:53 -05:00
Kenox 1840172c8d
Fix custom merchant inventory not opening (#2672) 2021-12-06 10:43:36 -05:00
Camotoy 70ec77b1e3
Revert this particular change since it wasn't quite ready yet 2021-12-05 19:07:51 -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 f0213d4b8e
Minor fixes; add CPU count to dump 2021-12-03 20:26:20 -05:00
Camotoy 66819aee83
Null check for player textures in GameProfile
Fixes an issue with the ZNPCs plugin.
2021-12-03 19:24:22 -05:00
Camotoy 763743a845
Allow for implementations to provide a custom resource loader
This will allow Geyser-Fabric to work without resource loading issues. This commit also ensures try-with-resources is used anywhere a resource is accessed.
2021-12-03 11:01:06 -05:00
Camotoy 9084c59003
Fix regressions in player movement handling 2021-12-02 19:56:12 -05:00
Camotoy c3f146370e
Add a check/warning for outdated Floodgate versions 2021-12-02 10:26:19 -05:00
Camotoy 0daa697a4c
Comment/import fixes 2021-12-02 10:15:59 -05:00
Camotoy 6a77253ef2
Fix Bedrock proxy protocol support 2021-12-01 22:47:33 -05:00
Camotoy 35d8707ed6
Fix potential IndexOutOfBounds error with BlockDestructionPacket 2021-12-01 10:17:36 -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 1ce3709c79
Make this Javadoc checker happy 2021-11-30 11:27:39 -05:00
Camotoy d1f3032249
Remove extra println 2021-11-30 11:20:48 -05:00
Camotoy 7df013daf9
Merge remote-tracking branch 'origin/feature/floodgate-data-version' into feature/1.18 2021-11-30 11:09:16 -05:00
Tim203 091664e000
Removed time checker and added a header version system 2021-11-30 16:32:44 +01:00
Camotoy 2d79de4a6b
Bump to 1.18 release (won't work until Tuesday) 2021-11-29 22:32:09 -05:00
Camotoy 51330b8cda
Some changes for GeyserConnect 2021-11-29 22:04:02 -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
Camotoy eb7d71017c
Remove some unnecessary skin checks 2021-11-29 10:40:27 -05:00
Camotoy 2ae34b69af
Some command framework cleanup
Most notably, remove the synchronization on the commands map, which is unnecessary since it is not modified after startup.
2021-11-29 10:31:31 -05:00
Camotoy af8c26a4a5
Remove unnecessary version check for minecart furnace icon information
All supported protocols are now 1.17.30 or later.
2021-11-28 17:18:37 -05:00
Camotoy 9ba1efaa30 1.18 does not have its own block palette
Our logic to finding block palettes was just borked.
2021-11-28 11:03:45 -05:00
David Choo a305c22665
1.18 entity name and metadata changes (#2651)
* Fix amount & javaId being used before it is initialized

Fixes invisible falling blocks and incorrectly sized exp orbs

* Add missing item metadata to throwable items and fireballs

Renamed ItemedFireballEntity -> FireballEntity

* Renamed more EntityDefinitions to match MCProtocolLib

* Add some missing metadata and add null check

* Use entity type when possible in debug spawn message

Fallback onto classes simple name
Also don't register ENDER_DRAGON_PART

* Remove redundant entity identifiers and fix END_CRYSTAL and FISHING_BOBBER identifiers

minecraft:end_crystal -> minecraft:ender_crystal
minecraft:fishing_book -> minecraft:fishing_hook

* Cave spider should inherit metadata from spider

* Keep entity definitions in roughly alphabetical order

* Alphabetize entity definitions

* ABCs?

* Bump MCProtocolLib version
2021-11-26 23:03:46 -05:00
Camotoy 0d7bf7b71a Fix NPEs when loading in chunks with double chests 2021-11-26 21:05:14 -05:00
Camotoy 44083b80af Update to 1.18-rc3 2021-11-26 21:01:37 -05:00
Camotoy 404613520f Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.18 2021-11-26 11:13:33 -05:00
Camotoy ec34510417 Don't tie biome translation to Bedrock chunk section size
This allows biomes to be translated even if the block count is empty. Fixes some biome glitching.
2021-11-25 11:59:25 -05:00
Camotoy 8f1acf17f9 Update MCProtocolLib 2021-11-25 11:55:59 -05:00
Camotoy cef803af36 Update for PacketLib changes 2021-11-24 23:38:21 -05:00
Camotoy d8254cb0b2 Update for PacketLib changes 2021-11-24 19:42:55 -05:00
Camotoy e44b089e19 Update MCProtocolLib 2021-11-24 12:31:41 -05:00
Camotoy 64799b11b4 Update to latest PacketLib change 2021-11-24 11:27:44 -05:00
Camotoy 42aca7f00c Update to 1.18-pre8 2021-11-24 10:48:55 -05:00
Camotoy 822b1e698e Switch to a static MCProtocolLib commit 2021-11-24 10:26:40 -05:00
Camotoy b2d1212359 Bump Geyser to version 2.0.0-SNAPSHOT 2021-11-24 10:14:27 -05:00
Camotoy c200e3e6fa
Update mappings; remove unnecessary item workarounds 2021-11-23 14:22:44 -05:00
Camotoy e7ecda64f0
Use new 1.18 chunk encoding features 2021-11-23 11:21:54 -05:00
Camotoy daea2618c5
Update for MCProtocolLib changes 2021-11-23 10:55:20 -05:00
Camotoy 41ecb885bd
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.18 2021-11-22 22:47:58 -05:00
Camotoy 98816f1eaa
1.18 Bedrock properly works now 2021-11-22 22:37:22 -05:00
Camotoy 5acd9cd2c5
Some missed name changes 2021-11-22 22:14:41 -05:00
Camotoy c3eaee6267
Legacy API: return null if player is null 2021-11-22 16:32:17 -05:00
Camotoy 966c2155ad
API: change player class to Connection 2021-11-22 14:52:26 -05:00
RednedEpic 5b415cea68 Remove generic usage in Api 2021-11-21 20:18:00 -06:00
RednedEpic 83ddbd7d1a Initial api draft 2021-11-21 12:36:42 -06:00
RednedEpic 2c663e0ee5 The Great Refactor Part 3 - Entire project restructure 2021-11-20 17:29:46 -06:00
RednedEpic 3f5cb29ee0 The Great Refactor Part 2 - org.geysermc.connector -> org.geysermc.geyser 2021-11-20 15:34:30 -06:00
RednedEpic 0b5009b415 The Great Refactor Part 1 - connector -> core 2021-11-20 13:56:40 -06:00