Commit Graph

499 Commits

Author SHA1 Message Date
David Choo dc810f1d39
Fix break time while submerged in water (#3110)
* Fix break time while submerged in water

* Review stuff

* LAYERS -> LEVELS
2022-07-02 21:17:14 -04:00
RednedEpic f9fd7cb831 Fix Geyser not working in IDE 2022-07-02 12:42:31 -05:00
RednedEpic b5eb27693f Use an immutable view in GeyserDefineCommandsEvent
Methods to properly register/unregister commands are provided in the command manager
2022-07-02 12:30:23 -05:00
ImDaBigBoss 36c49a7256
Custom item support for extensions (#2822)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-07-02 12:50:16 -04:00
AJ Ferguson f2f894b1d1
Fix IronGolem cracked texture and sound (#3103)
* Update mappings submodule

* Set IronGolem maxHealth to 100 by default

Fixes cracked texture on vanilla servers

* Add detail to comment
2022-06-30 17:40:30 -04:00
Camotoy 13e8b59ed0
Quick fix for NPE in SystemChatTranslator
This won't matter in 1.19.1 so.
2022-06-30 16:53:55 -04:00
David Choo 5d29bda7eb
Fix incorrect patterns in loom and DecoderException in beacons (#3090)
* Fix DecoderException when setting beacon effect

* Fix incorrect patterns applied in loom and remove old version stuff
2022-06-26 19:12:43 -04:00
Camotoy 00603c5239
Fix creeper primed sound 2022-06-26 18:45:47 -04:00
Camotoy 2ea50116cf
Forward cooldowns for shields and goats
These are server-controlled as of 1.19. Ender pearls and chorus fruit still appear to be client-controlled.
2022-06-24 23:13:35 -04:00
David Choo 9ea22042eb
Fix some item interactions (#3083)
* Remove Bedrock only banner patterns from the creative inventory

* Add sound for tadpole bucket

* Fix lily pad and frogspawn placing on mobile/single stacks

* Workaround? Fix? for bucket usage on mobile

* Simplify math and update position+rotation whenever ServerboundUseItemPacket is sent

* Rotate the player back after using an item and fix glass bottles

* ITEM_USE actionType 1 does not need the rotation fix

Increase delay for look back

* Add some checks

* Prevent buckets and spawn eggs from being unintentionally placed when interacting with special blocks

As of 1.19 Bedrock no longer sends a PlayerActionPacket with action=BLOCK_INTERACT. Bedrock now sends action=ITEM_USE_ON_START before and action=ITEM_USE_ON_STOP after using an item on a block. However, this is not useful as it is sent for all block interactions.

* Fix inventory transactions being rejected after restoreCorrectBlock

The held item's netId is always 0 in the InventoryTransactionPacket.

* Touch ups

* Fix lookAt for different poses and sneaking + cauldron + bucket interactions

Fix boat items being desynced when placing them very close to collision
Fix bottles being desynced when tapping above water

Resend the held item if we do encounter a desync

* Avoid getting blockstate twice and fix comment

* Use generated interaction data

* Fix glass bottles being double filled and phantom water bottles/water buckets

* Don't update the entire inventory on useItem

* Use Geyser's inventory copy for check

* Use ItemTranslator#getBedrockItemMapping to avoid NBT translation

* mappings

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-06-24 16:48:28 -04:00
Camotoy 60327339d6
Indicate support for Bedrock 1.19.2 2022-06-23 21:24:26 -04:00
AJ Ferguson 18f6836c15
Set default Warden heartBeatDelay to 40 (#3071) 2022-06-18 15:32:51 -04:00
Xamyr fef0401add
Fixed armorstand passenger yOffset (#2976) 2022-06-17 22:15:31 -04:00
AJ Ferguson 71c489b462
Add missing villager entity events (#3063) 2022-06-17 12:25:49 -04:00
Camotoy 37d6fd8abf
Add an option to disable compression for Geyser clients 2022-06-16 19:18:11 -04:00
Camotoy 5b67c78785
Allow Minecraft locales to be loaded even if offline 2022-06-16 17:14:47 -04:00
David Choo 5e1769d2bd
Translate goat horns (#3057) 2022-06-15 22:55:11 -04:00
Camotoy ea21e0323a
Map correct glass sounds
Fixes #3049
2022-06-15 21:38:10 -04:00
Camotoy 7739e8097e
Another locale string to pick up on for outdated servers 2022-06-15 19:59:27 -04:00
Camotoy 4405989b81
Fix compiling 2022-06-15 18:36:55 -04:00
Camotoy ddd2262380
Custom chat types at login are valid
Fixes https://github.com/GeyserMC/Geyser-Fabric/issues/55
2022-06-15 18:32:27 -04:00
rtm516 aa097ecdc4
Fix java style queries responding incorrectly (#3051) 2022-06-14 19:51:45 -04:00
ImDaBigBoss db003293e9 Merge master 2022-06-12 10:33:32 +02:00
Camotoy 162aff4978
Better handle chat packets sent before login 2022-06-10 10:27:07 -04:00
Camotoy f1a12d1feb
Bump mappings and MCProtocolLib 2022-06-09 18:34:25 -04:00
Camotoy 72a9df58e0
Properly support differently setup chat registries
ViaVersion has two entries in its fake chat registry that are not in the same order as Java. This commit supports that properly and renders subtitled text correctly.

Resolves #3023
2022-06-08 22:30:34 -04:00
ImDaBigBoss 4e2f74481b Updated to 1.19 2022-06-08 14:09:14 +02:00
Camotoy c8856d487d
Compile too 2022-06-06 22:56:08 -04:00
Camotoy a397f55e8b
Add goat horn count 2022-06-06 21:06:02 -04:00
Tim203 378aa6ed99
Updated changes for latest Geyser version 2022-06-07 00:31:29 +02:00
Tim203 d8b63b9310
Merge remote-tracking branch 'origin/feature/1.19-bedrock' into feature/floodgate-packet
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java
#	core/src/main/java/org/geysermc/geyser/util/PluginMessageUtils.java
2022-06-07 00:25:17 +02:00
Tim203 5fe24ac867
Merge remote-tracking branch 'origin/feature/1.19-bedrock' into feature/cumulus-1.1
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/session/cache/AdvancementsCache.java
2022-06-07 00:14:43 +02:00
Tim203 86d0200960
Re-added the old sendForm methods 2022-06-06 10:03:39 +02:00
Camotoy 09fb6bf3ba
Fix direct connection and ensure connecting doesn't block 2022-06-05 18:38:29 -04:00
Tim203 94445a5222
Re-added the old sendForm methods 2022-06-06 00:25:45 +02:00
RednedEpic bcc68ee4b5 Update to latest MCPL changes 2022-06-05 13:12:36 -05:00
Camotoy 3ac2c981a7
Swap pitch and volume for warden heartbeat 2022-06-02 18:57:33 -04:00
davchoo 2e3e7c6949
Fix sonic boom duration ticking below zero 2022-05-31 15:15:15 -04:00
davchoo 365f8cf7e3
Translate Warden sonic boom event
Bump Protocol to fix Sonic boom flag
2022-05-31 14:58:40 -04:00
Camotoy eb23a46887
Fix frog color translation 2022-05-31 14:51:21 -04:00
Camotoy 81bb6f124e
e 2022-05-31 14:26:08 -04:00
Camotoy 196742a597
Set entities silent client-side, and more
Add warden entity events. Fix up other things.
2022-05-31 14:25:15 -04:00
Camotoy bf4e1d5be7
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.19-bedrock 2022-05-31 10:52:10 -04:00
Camotoy c83eb7f142
Print CPU name in dump if possible 2022-05-30 14:51:03 -04:00
davchoo 9133008e18
Translate ClientboundSoundEntityPacket
Used by allay, frog, and a few other mobs.
Move common code to SoundUtils
Update mappings
2022-05-30 14:38:03 -04:00
Camotoy a3cdfc5306
Use correct type for entity metadata 2022-05-29 21:11:10 -04:00
Camotoy e43a143bf4
Remove obsolete chunk writing code 2022-05-29 20:39:14 -04:00
Camotoy 7a0a6795d0
Remove now-obsolete sign workaround. Yay. 2022-05-29 20:31:54 -04:00
davchoo f79a3ef2f7
Bump Protocol version to fix command suggestions
Fix assert that occurs on Bedrock after typing /
2022-05-29 18:56:54 -04:00
Tim203 bd1cc26bf3
Use new Cumulus methods 2022-05-29 23:39:40 +02:00
Camotoy cbba0d3a75
Update biome mappings 2022-05-29 11:59:32 -04:00
Tim203 84bcadc687
Converted the new forms 2022-05-28 23:45:35 +02:00
Tim203 d4ecd2bd72
Merge remote-tracking branch 'origin/master' into feature/cumulus-1.1
# Conflicts:
#	ap/pom.xml
#	api/base/pom.xml
#	api/geyser/pom.xml
#	api/pom.xml
#	bootstrap/bungeecord/pom.xml
#	bootstrap/pom.xml
#	bootstrap/spigot/pom.xml
#	bootstrap/sponge/pom.xml
#	bootstrap/standalone/pom.xml
#	bootstrap/velocity/pom.xml
#	common/pom.xml
#	core/pom.xml
#	core/src/main/java/org/geysermc/geyser/session/cache/AdvancementsCache.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java
#	core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java
#	pom.xml
2022-05-28 17:09:20 +02:00
Camotoy b10ce16506
The wild update experiment is no longer necessary 2022-05-27 22:44:03 -04:00
davchoo 87320f0a78
Fix player head yaw for moveAbsolute teleport
Fixes SkullPlayerEntity rotation
Remove redundant? overrides
2022-05-27 19:03:12 -04:00
davchoo 7b9a98aa09
Add croaking and using tongue poses to frog 2022-05-27 13:59:37 -04:00
Camotoy 1afc8ee77b
Map Darkness status effect 2022-05-27 13:27:10 -04:00
davchoo 528e8d6f67
Add effects for sculk shrieker and sculk catalyst. Translate vibration particle
Bumps NBT version to 2.2.1 for LevelEventGenericPacket
2022-05-27 11:55:00 -04:00
davchoo f079ee430b
Fix missing startup debug logs on Standalone 2022-05-27 02:03:45 -04:00
Camotoy 3898e4f7e6
add Swift Sneak enchantment to known enchantments 2022-05-26 20:05:02 -04:00
davchoo 41cd7f4574
SoundEvent and ParticleEvent are now combined 2022-05-26 19:57:45 -04:00
Camotoy 4a9eec4c54
Implement last death position translation 2022-05-26 19:34:27 -04:00
Camotoy 85800eb32b
Tadpole 2022-05-26 18:52:04 -04:00
Camotoy e2ce553d3a
Warden time 2022-05-26 18:41:19 -04:00
davchoo a70f1bc003
Reinforced deepslate can't be moved by pistons 2022-05-26 18:09:27 -04:00
Camotoy 83c309711e
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.19-bedrock 2022-05-26 18:05:39 -04:00
Camotoy d74b0e236d
Fix encoding SpawnParticleEffectPacket for 1.18.30+ 2022-05-26 18:04:58 -04:00
Camotoy 29c819fe21
Implement allay, plus some interaction fixes 2022-05-26 17:51:55 -04:00
davchoo 4b9055c252 Add new PaintingTypes 2022-05-26 16:27:54 -04:00
Camotoy 59cb0c07c2
Start implementing frogs. Ribbit. 2022-05-26 16:22:53 -04:00
davchoo 2c77306937 Use new toasts for advancements and simplify advancement form response 2022-05-26 13:13:06 -04:00
Camotoy 9183897d52
Implement chest boat 2022-05-26 13:11:39 -04:00
davchoo 66a7efaa96 Yeet 1.18.30 and old palette stuff 2022-05-25 22:11:35 -04:00
davchoo c5de293373 Allow 1.19.0 to join and use new block mappings 2022-05-25 21:50:50 -04:00
Camotoy 1a7b57018e
Chat messages now show up correctly. 2022-05-25 21:48:38 -04:00
Camotoy ebf18cfb28
Switch all Position instances to Vector3i 2022-05-25 19:17:49 -04:00
Camotoy 193fa23146
Paintings work 2022-05-25 18:44:33 -04:00
Camotoy bbf45b6a4c
Compiles; provide your own mappings for now 2022-05-25 15:55:15 -04:00
Camotoy 5339127105 Start work on 1.19 2022-05-24 16:16:40 -07:00
David Choo 38625312a1
Prevent max health from being set below 0 (#2980)
* Prevent max health from being set below 0

* Add more detail to comment
2022-05-21 11:54:32 -04:00
Camotoy 8c9d1fe09f
Allow language file overrides
By placing a locale file in `languages/ll_CC.properties`, any strings in that file will take priority over Geyser's own.
2022-05-15 14:23:52 -04:00
Camotoy b885e22fa3
Always show the world border at least five blocks away
Previously, no indication that the world border exists would show if warning blocks was set to 0.
2022-05-15 13:52:18 -04:00
David Choo b33cc512b4
Add custom skull render distance (#2751)
* Add player skull render distance

* Improve updateVisibleSkulls a bit

Avoid rechecking visibility on small movements

* Periodically despawn unused skull entities

* Don't hide skull entity for position/rotation changes

Prevents flickering for skulls that are rotating

* Update visible skulls when a skull is removed

* Only update on removal if an entity is assigned

* No need to check for skull in ChunkUtils

Update copyright year

* Avoid rechecking all skulls when a skull is added/removed

* Allow skull render distance and number to be configured

Renamed some fields to better match their values

* Compare texture property directly from GameProfile

* Remove unnecessary blockState field from SkullPlayerEntity

* Use binarySearch for insertion

Wait for player movement before loading skulls

* Allow culling to be disabled by setting max-visible-custom-skulls to -1

* Only remove skulls in inRangeSkulls when culling is enabled

* Add suggestions from review

* Merge the for loops in updateVisibleSkulls

* Fix skulls being leaked on chunk unload
2022-05-14 15:12:18 -04:00
RednedEpic fbaa6c1f5f Remove entity work from main extension branch for now 2022-05-07 10:11:21 -05:00
Camotoy f38c1fbc0f
Spigot: programmatically add Geyser permissions and fix reloading 2022-05-06 15:32:43 -04:00
Camotoy 05e98c3a10
Fix edge case in health code since 1.18.30
Fixes #2957
2022-05-04 15:54:19 -04:00
RednedEpic 59d5a6469c Add support for modifying identifiers through the AvailableEntityIdentifiersPacket
This is the first of many commits that address adding support for custom entities through the Geyser API.
2022-05-01 12:25:24 -05:00
RednedEpic 4ae9bdf4b9 Merge branch 'master' into feature/extensions 2022-05-01 09:44:47 -05:00
Camotoy 31a84ea302
Remove unused set 2022-04-30 20:42:29 -04:00
Camotoy e66014af9e
Fix lava and snow cauldrons looking wrong
Fixes #2955
2022-04-30 20:40:34 -04:00
Camotoy 8a1799e0e3
Remove block tag adding to villager trading
Fixes sugar cane being untradeable.
2022-04-29 13:24:58 -04:00
Camotoy 3035527be2
Indicate 1.18.31 support for Geyser
This uses the same protocol version as 1.18.30, so no further changes are required.
2022-04-27 20:04:13 -04:00
Camotoy 074d60d5b0
Add system locale and encoding to Geyser dumps 2022-04-25 15:13:09 -04:00
RednedEpic 7f0e5b409f Optimizations to extension loading 2022-04-24 14:53:47 -05:00
RednedEpic 7c8bf330a9 Fix loading multiple extensions (Closes #2826) 2022-04-24 14:37:44 -05:00
RednedEpic 735697b553 Allow loading extensions in dev environment 2022-04-24 14:17:15 -05:00
Camotoy 0d1fedbdbf
Fix instances of resizing global biome palettes
Fixes #2744
2022-04-24 13:58:34 -04:00
RednedEpic 9af6f948fe Publish extensions branch 2022-04-24 12:07:50 -05:00
RednedEpic f2e606c0f3 Rename HYBRID AuthType back to FLOODGATE 2022-04-24 11:42:17 -05:00
RednedEpic 43f23674d6 Merge branch 'master' into feature/extensions
# Conflicts:
#	ap/pom.xml
#	api/base/pom.xml
#	api/geyser/pom.xml
#	api/pom.xml
#	bootstrap/bungeecord/pom.xml
#	bootstrap/pom.xml
#	bootstrap/spigot/pom.xml
#	bootstrap/sponge/pom.xml
#	bootstrap/standalone/pom.xml
#	bootstrap/velocity/pom.xml
#	common/pom.xml
#	core/pom.xml
#	core/src/main/java/org/geysermc/geyser/configuration/GeyserJacksonConfiguration.java
#	core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java
#	core/src/main/java/org/geysermc/geyser/session/GeyserSession.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockFilterTextTranslator.java
#	pom.xml
2022-04-24 11:23:26 -05:00
Tim203 2f54bf0e14
Rotation fixes (#2396)
* Should fix some rotation issues

* Some more changes

* Small changes

* Fixed merge conflicts and updated other classes that changed

* Added translation for the LookAt packet
2022-04-23 13:57:32 -05:00
Camotoy c36b98d778
Make completed advancement color easier to read
Resolves #2937
2022-04-22 20:16:22 -04:00
Camotoy 7ea14c1a03 Don't send the SetHealthPacket clientbound
Seems like this can cause the client to break in 1.18.30, and we already send the health as an attribute.
2022-04-22 18:06:38 -04:00
Camotoy 5a94bdae5a
oops 2022-04-21 22:24:41 -04:00
Camotoy 05d74ebd3e
Fix signs for Bedrock 1.18.30
Fixes #2944
2022-04-21 22:23:00 -04:00
Camotoy 575fe98c0f
Fix anvils for 1.18.30 Bedrock 2022-04-20 21:39:35 -04:00
Konicai 03b067e23e
Merge master into extensions (#2941)
* Don't always store cert/client data used for skin uploaded

This takes up a decent 30K of memory that we don't use after the skin is uploaded. The GameProfileTranslator cannot be run more than once per session.

* Make all moon phases visible

The fix to prevent integer overflows also prevented moon phases from being visible until now.

Fixes #2927

* SetTimeTranslator: cast from long on the entire modulus

This should fix some inaccuracies with time on older worlds.

* Bump version; drop 1.17.40; support 1.18.30

* Actually bump to 2.0.3-SNAPSHOT

* Fix message being sent still if a single escape character is sent

* Replace instances of configs using `generateduuid` for Metrics

* Fix some merge mistakes

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-04-20 21:37:50 -04:00
Camotoy e923325246
Fix stonecutters for Bedrock 1.18.30
Also add an option in debug mode to not log pings in the event they're spammy.
2022-04-20 21:22:02 -04:00
Camotoy 137eb3ece8
Replace instances of configs using `generateduuid` for Metrics 2022-04-19 10:18:50 -04:00
Camotoy af08488d1e
Fix message being sent still if a single escape character is sent 2022-04-18 21:30:44 -04:00
Camotoy cf8114543e Bump version; drop 1.17.40; support 1.18.30 2022-04-17 19:53:06 -04:00
Camotoy 0803c5d9af
SetTimeTranslator: cast from long on the entire modulus
This should fix some inaccuracies with time on older worlds.
2022-04-12 19:42:41 -04:00
Camotoy 98db9c6948
Make all moon phases visible
The fix to prevent integer overflows also prevented moon phases from being visible until now.

Fixes #2927
2022-04-12 19:04:09 -04:00
Camotoy cb8858fc42
Don't always store cert/client data used for skin uploaded
This takes up a decent 30K of memory that we don't use after the skin is uploaded. The GameProfileTranslator cannot be run more than once per session.
2022-04-11 15:44:15 -04:00
Camotoy 1ebc3fd8f6
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/extensions 2022-04-07 19:22:46 -04:00
Camotoy 1d3eebc678
Add recent Paper check and new vanilla check for block placement
Fixes #2917
2022-04-04 21:03:43 -04:00
Camotoy d6cb5bd52d
ItemMappings: use array for ItemMapping class 2022-04-04 14:08:35 -04:00
Camotoy fb26e263cc
Be more resilient with different enchantment NBT types
Fixes #2911
2022-04-01 15:20:30 -04:00
Camotoy 2a05dd57ff
Don't store GameProfile class of players
This stores repetitive information, and also we don't currently use the signature, so it's wasted memory.
2022-03-30 22:30:49 -04:00
Camotoy 7a5321b78f
Hmm what print line? 2022-03-29 14:38:15 -04:00
Camotoy f78d2d3d2a
Fix ghost items when taking items out of a furnace 2022-03-29 14:36:58 -04:00
Camotoy 238be40c6a
No need to reset when a set times packet is just about to be sent 2022-03-25 20:30:33 -04:00
Camotoy f639be6362
Better handling of fake cooldown
Because of Bedrock limitations, if a player has text background opacity enabled, they'll see an empty section where the title is usually displayed as the fake cooldown is shown. This commit minimizes the time that is shown by clearing the text as soon as possible. Reference issue: https://github.com/GeyserMC/Geyser/issues/1710

This commit also removes starting the fake cooldown process if the client switches to an inventory slot with the same Java ID.
2022-03-25 20:22:39 -04:00
Camotoy 877301a500
Remove locator map from creative menu; show some map colors
Java allows any map color but Bedrock only allows a few, so we take what we can get.

Fixes #2617
2022-03-23 16:21:04 -04:00
Camotoy b7de1b668f
Remove unused NibbleArray class 2022-03-23 13:57:58 -04:00
Camotoy 24b0f83742
Change banner item translator into NBT-specific translator
Since we don't need to change any other item properties, this removes a builder hack that had to be implemented.
2022-03-23 13:57:25 -04:00
Camotoy 780218d39d
Consolidate NoteblockBlockEntityTranslator behavior
It was only used in one place that could better use existing code.
2022-03-22 23:03:37 -04:00
Camotoy 10383d31ab
Replace show coordinates string
Use the one built into Bedrock for less maintenance.
2022-03-22 23:01:00 -04:00
RednedEpic b26879f76c Add deprecated annotaiton so gradle stops complaining 2022-03-19 23:24:57 -05:00
RednedEpic 95747d5649 Add maxPlayers API 2022-03-19 22:35:41 -05:00
RednedEpic f8e9662665 Add BedrockListener API and fix other stuffs 2022-03-19 22:30:12 -05:00
RednedEpic 9939a26a5b Add RemoteServer API 2022-03-19 21:55:29 -05:00
RednedEpic 02cda38259 Merge remote-tracking branch 'origin/master' into feature/extensions-gradle 2022-03-19 20:48:14 -05:00
RednedEpic 4455dc0ded Merge remote-tracking branch 'origin/feature/extensions' into feature/extensions-gradle 2022-03-19 20:39:59 -05:00
Konicai 87d70be10d
Register `floodgate:transfer` plugin channel (#2896)
* Register floodgate:transfer channel

* Don't warn on unknown channel
2022-03-19 19:56:34 -05:00
Hancho1577 b81ad3f0db
Prevent async task pool from being full (#2894)
Fixes #2883
2022-03-19 09:45:19 -04:00
Camotoy 732fd90d48
Missed instance of Outdated server 2022-03-18 23:31:25 -04:00
Konicai f8e983887e
Add method in Connection API for transferring connections (#2891) 2022-03-18 18:59:32 -04:00
Camotoy b36ec79bbb
Update languages submodule 2022-03-18 10:51:36 -04:00
Camotoy 607e97f988
More descriptive disconnect messages for outdated Java servers 2022-03-18 10:51:22 -04:00
Camotoy 0829b5cd4e
Replicate Bedrock shield behavior more accurately
If the player swings, then they cannot be holding their shield at the same time.

Also fixes an animation edge case with other players.
2022-03-15 13:34:56 -04:00
Camotoy 7f5d81772b Fix inability to toggle sitting of parrots 2022-03-10 15:16:08 -05:00
Camotoy d0d01714aa Remove unlockedRecipes storage
This has been unused, and for the time being we aren't going the packet route that would use these.
2022-03-09 23:09:48 -05:00
Camotoy 9c0b9f1975 Show attribute suggestions in commands 2022-03-07 13:58:09 -05:00
Camotoy 9154a4571c Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/extensions 2022-03-06 20:35:04 -05:00
Camotoy a1bb4343a3 Update languages submodule 2022-03-05 22:33:43 -05:00
Camotoy 8388a4830e Simplify disconnection logging
A disconnect message will always be printed, but not more than once.
CLOSED_BY_REMOTE_PEER -> Bedrock client disconnected (hopefully slightly less vague)
If a message is sent from the server, the log will now indicate their disconnection reason.
2022-03-05 22:32:38 -05:00
Camotoy 50bed6a2be Use a dummy legacy event hover serializer
This reduces computation processing needing, since Bedrock doesn't have any hover text ability. This also fixes a 1.8 bug where villager titles would not process correctly - by having a dummy serializer, a recent MCProtocolLib update would not stop the window packet from processing.
2022-03-05 22:15:25 -05:00
Camotoy edbb946d97 Indicate Geyser supports 1.18.10 AND .12 2022-03-04 23:24:38 -05:00
Camotoy c977e36368
Deprecate userAuths in favor of a saved token system 2022-03-03 18:52:26 -05:00
Camotoy 17fb38e567
This method can be final 2022-03-01 22:50:11 -05:00
Camotoy e163301d23
Fix StackOverflow possibility with undead horses 2022-03-01 15:44:13 -05:00
Camotoy 0fd903e0a0
Pending Microsoft Authentication changes for GeyserConnect 2022-02-28 10:24:27 -05:00
Camotoy 65b68087b8
Bump Geyser to 2.0.2 and Java to 1.18.2 2022-02-28 10:07:45 -05:00
RednedEpic 6321ecc166 Initial move to gradle 2022-02-27 16:38:55 -06:00
Camotoy a435288bdf
Properly map lit deepslate redstone ore 2022-02-26 20:10:07 -05:00
turikhay d0220a9b71
Allow single-device Microsoft authentication (#2688)
By default, there is a two-minute delay if you disconnect so you can authenticate your Microsoft account.

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-02-26 15:45:56 -05:00
Camotoy dfbb5897b9
Update mappings 2022-02-25 13:48:34 -05:00
Camotoy b4b5cea42d
Implement offhand support when interacting with entities
By simulating the exact processing that Java Edition does on the client-side, we can achieve full packet parity with Java when interacting with an entity.
2022-02-25 11:02:18 -05:00
Camotoy 9b8e1372c1
Work around dropping items from other slots
Fixes #2846
2022-02-25 10:31:00 -05:00
Camotoy 7d1ec5c41a
Support offhand interactions with entities 2022-02-24 22:49:10 -05:00
Camotoy 7bd5b59565
Allow the Jigsaw to operate correctly on 1.14.4
Fixes #2852
2022-02-21 21:19:19 -05:00
Camotoy 619ce53c50
Javadoc fix for Registries.RECIPES 2022-02-21 20:51:31 -05:00
Camotoy 811ae178c9
Store recipes in a more compact GeyserRecipe type
This prevents us from storing some unnecessary data.

Also removes some 1.11 recipe compatibility code that is essentially unusable.
2022-02-21 16:11:51 -05:00
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 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
Tim203 53de9f4a31
Deploy the Cumulus changes for Geyser so Floodgate can use them 2022-01-26 12:10:15 +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
Tim203 3011d89db6
Update Geyser to use the latest features of Cumulus 1.1 2022-01-22 12:20:52 +01: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 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
Tim203 9c672c9919
Packet ids can't be negative 2021-12-16 21:58:40 +01:00
Tim203 a4399f0c1e
Implemented Floodgate's 'packet' plugin message 2021-12-16 00:19:51 +01: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