Commit graph

147 commits

Author SHA1 Message Date
Camotoy
60de3187c6 Yeet NbtItemStackTranslator 2023-04-08 12:45:13 -04:00
Camotoy
503296a9cf Decrease final startup memory usage 2023-04-07 14:08:22 -04:00
Camotoy
b6113dfd31 Optimizations and regression fix 2023-04-06 21:47:37 -04:00
Camotoy
d9811d08e3 Merge remote-tracking branch 'origin/master' into feature/protocol-3.0 2023-04-06 13:26:28 -04:00
Camotoy
a7c04d5323
Fix #3619 2023-03-26 13:20:53 -04:00
David Choo
021ffe2d94
Update ringing bell block event logic (#3625)
Check for BellValue instead of a GenericBlockValue
Removes now unnecessary JAVA_BELL_ID from BlockStateValues
2023-03-19 11:30:56 -04:00
Camotoy
9609686eb3 Version out potion registry
The ID of (for example) redstone dust has shifted, meaning that our hack of re-using IDs no longer works.

Fixes #3620
2023-03-17 19:07:31 -04:00
Camotoy
03c0767965 Finish 1.19.4 support and add Bedrock 1.19.70 support 2023-03-14 15:37:57 -04:00
Camotoy
ee754c529b
Add implementation for ClientEmoteEvent
Also, a few random changes I've stored since forever.
2023-02-15 00:17:14 -05:00
SupremeMortal
1769f2a85c
Merge branch 'master' into feature/protocol-3.0 2023-02-14 22:09:48 +00:00
Camotoy
0bba18c726
Initial support for 1.19.60 Bedrock 2023-02-05 13:29:28 -05:00
Camotoy
c13cd3893f
Should replace repairMaterials in ItemMapping 2022-12-30 20:57:38 -05:00
Camotoy
3f4ed67597
Add Item classes to partially replace ItemMapping. Part 1? 2022-12-29 15:10:40 -05:00
Camotoy
7f38496d61
Return null if no definition found 2022-12-23 20:24:53 -05:00
Camotoy
e295f910c4
BlockMappings extends DefinitionRegistry 2022-12-23 19:40:42 -05:00
Camotoy
08c15a86ec
You can connect now. Command translation doesn't work though. 2022-12-23 16:18:48 -05:00
Camotoy
ebcb82c7e7
Fix custom item register message being printed twice 2022-12-23 12:18:09 -05:00
Konicai
4b847350b6
Protocol 3.0: ContainerType enum and registries (#3470)
* P3 Updates: ContainerType enum and registries

* Remove unused math import
2022-12-23 12:06:41 -05:00
Camotoy
3e778cdb49
Merge branch 'feature/protocol-3.0' of https://github.com/GeyserMC/Geyser into feature/protocol-3.0 2022-12-20 20:01:05 -05:00
Camotoy
4fe9aeca40
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/protocol-3.0 2022-12-20 19:47:45 -05:00
Konicai
2d3dd89162
Some misc fixes 2022-12-14 17:57:08 -05:00
Konicai
a988fbf290
Update inventory translators 2022-12-14 17:23:55 -05:00
Konicai
84248fa902
Merge remote-tracking branch 'upstream/master' into feature/protocol-3.0
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/entity/type/living/monster/EndermanEntity.java
#	core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java
#	core/src/main/java/org/geysermc/geyser/network/ConnectorServerEventHandler.java
#	core/src/main/java/org/geysermc/geyser/network/GameProtocol.java
#	core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java
#	core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/session/GeyserSession.java
#	core/src/main/java/org/geysermc/geyser/text/ChatTypeEntry.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCommandsTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaDisguisedChatTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaPlayerChatTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerInfoTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaExplodeTranslator.java
#	core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java
#	core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java
#	gradle/libs.versions.toml
2022-12-14 15:58:17 -05:00
Kas-tle
b27b1c86bd
Makes bows, crossbows, tridents, projectiles, and lighters registered as custom items function properly (#3420)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-12-11 13:15:49 -05:00
Camotoy
6876a90c3b
Lower size of BiomeDefinitionsPacket 2022-12-09 13:39:24 -05:00
Konicai
7d165e329b
Revert "Drop anything below 1.19.50"
This reverts commit 58eede37
2022-12-03 17:20:33 -05:00
Konicai
58eede37c0
Drop anything below 1.19.50 2022-12-02 00:28:24 -05:00
Konicai
92aa2059d2
Merge remote-tracking branch 'upstream/master' into JE-1.19.3 2022-12-01 22:00:57 -05:00
RednedEpic
8f96823048 Add support for Bedrock 1.19.50 (560) 2022-11-28 20:53:17 -06:00
Konicai
2f56f02477
Recipe fix thing 2022-11-22 18:58:34 -05:00
Kas-tle
7171ade0bd
Prevent double placement for custom block items (#3399) 2022-11-18 14:04:22 -05:00
RednedEpic
74798d8071 Remove old network code & use manual ping 2022-10-30 17:00:08 -05:00
RednedEpic
3f42d68f4e Update to latest Protocol changes & cleanup item registry populator 2022-10-30 11:34:08 -05:00
RednedEpic
a133308f51 It compiles! 2022-10-29 22:02:11 -05:00
RednedEpic
18e7db8c30 Start on update to Protocol 3.0 2022-10-29 19:23:21 -05:00
Camotoy
a612be60aa
Warn when custom item name begins with a digit 2022-10-21 14:09:17 -04:00
Camotoy
0e07991edf
Changes as I was randomly staring at the code 2022-10-17 23:36:46 -04:00
Camotoy
f59e33d749
Fix behavior of matching custom item predicates
Huge thanks to Kastle for helping me disect this behavior.

- The Unbreakable NBT tag is not the only source for determining if an item should be treated as unbreakable. The damage NBT is also taken into account.
- Custom item options must be processed in an ascending order.
- Multiple conditions may be necessary for an item to be selected.
- Conditions do not have to be exact. See the comments in CustomItemTranslator for an explanation.
- Added a test so we don't break this behavior in the future.
2022-10-10 15:40:07 -04:00
Camotoy
cb864b3c98 Fix NPE with furnace minecart with NBT data 2022-09-30 21:21:37 -04:00
Camotoy
1b6cfad5ad
Fix ghost blocks when insta-mining on 1.19+
Fixes #3113
2022-09-27 19:24:50 -04:00
Camotoy
55f7253a98
Let biomes NBT be parsed by 1.19.30 2022-09-21 12:27:16 -04:00
Camotoy
e64e12ff98
Initial support for 1.19.30 Bedrock 2022-09-14 21:17:08 -04:00
ImDaBigBoss
f1da9d7072 Allow events to be registered by any class
Supersedes & closes #3073

Co-authored-by: Redned <redned235@gmail.com>
2022-09-04 16:11:08 -05:00
RednedEpic
e5337b6298 Reintroduce GeyserDefineCommandsEvent and cleanup a few things 2022-09-04 13:08:17 -05:00
Tim203
13046a8602
Fixed building and switched event library 2022-08-13 22:48:12 +02:00
Konicai
259fed247a
Merge remote-tracking branch 'upstream/master' into ext-1.19.20-fixes
# Conflicts:
#	core/pom.xml
2022-08-09 19:27:25 -04:00
7man7LMYT
ef81bdeb6b
Update items to 1.19.20 (#3215)
* Update to 1.19.20

* Add 1.19.20 mapping

* Revert biome changes
2022-08-09 16:52:53 -04:00
Konicai
ee5e916112
Merge remote-tracking branch 'upstream/master' into ext-1.19.20
# Conflicts:
#	core/pom.xml
2022-08-09 14:36:54 -04:00
Camotoy
f74713c0ed
Initial support for 1.19.20 Bedrock 2022-08-07 12:09:54 -04:00
Konicai
aee43e68fa
Merge remote-tracking branch 'upstream/master' into feature/extensions
# Conflicts:
#	ap/pom.xml
#	api/base/pom.xml
#	api/geyser/pom.xml
#	api/pom.xml
#	bootstrap/bungeecord/pom.xml
#	bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java
#	bootstrap/pom.xml
#	bootstrap/spigot/pom.xml
#	bootstrap/sponge/pom.xml
#	bootstrap/standalone/pom.xml
#	bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java
#	bootstrap/velocity/pom.xml
#	common/pom.xml
#	core/pom.xml
#	core/src/main/java/org/geysermc/geyser/command/CommandManager.java
#	core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java
#	core/src/main/resources/languages
#	pom.xml
2022-08-02 00:01:05 -04:00
Camotoy
40fde6b046
Some nitpicks and cleaning up the provider API
The command changes here are not final. Internally we're discussing if we want to allow extensions to register root commands on platforms.
2022-07-26 18:33:39 -04:00
sctigercat1
467286060c
Update items to 1.19.10 (#3151)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-07-19 21:23:04 -04:00
Kas-tle
363d72da91
Merge remote-tracking branch 'origin/master' into feature/extensions 2022-07-12 05:26:52 +00:00
Camotoy
897c4dcfec
Changes 2022-07-09 18:39:02 -04: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
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
David Choo
5e1769d2bd
Translate goat horns (#3057) 2022-06-15 22:55:11 -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
3ac2c981a7
Swap pitch and volume for warden heartbeat 2022-06-02 18:57:33 -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
davchoo
41cd7f4574
SoundEvent and ParticleEvent are now combined 2022-05-26 19:57:45 -04:00
davchoo
a70f1bc003
Reinforced deepslate can't be moved by pistons 2022-05-26 18:09:27 -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
bbf45b6a4c
Compiles; provide your own mappings for now 2022-05-25 15:55:15 -04:00
RednedEpic
fbaa6c1f5f Remove entity work from main extension branch for now 2022-05-07 10:11:21 -05: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
8a1799e0e3
Remove block tag adding to villager trading
Fixes sugar cane being untradeable.
2022-04-29 13:24:58 -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
cf8114543e Bump version; drop 1.17.40; support 1.18.30 2022-04-17 19:53:06 -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
d6cb5bd52d
ItemMappings: use array for ItemMapping class 2022-04-04 14:08:35 -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
RednedEpic
9939a26a5b Add RemoteServer API 2022-03-19 21:55:29 -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
7d1ec5c41a
Support offhand interactions with entities 2022-02-24 22:49:10 -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
354e87b747
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/extensions 2022-02-10 09:17:27 -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
9d908c5598
Create IntMappedRegistry to prevent boxing 2022-02-01 20:15:31 -05:00
RednedEpic
778f004d99 Slight cleanups and make Extension an interface 2022-01-15 16:27:35 -06:00
Tim203
3251d9010c
We're in 2022 now 2022-01-01 20:03:05 +01: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
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
1ce3709c79
Make this Javadoc checker happy 2021-11-30 11:27:39 -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
Camotoy
c200e3e6fa
Update mappings; remove unnecessary item workarounds 2021-11-23 14:22:44 -05:00
Camotoy
98816f1eaa
1.18 Bedrock properly works now 2021-11-22 22:37:22 -05:00
Camotoy
966c2155ad
API: change player class to Connection 2021-11-22 14:52:26 -05: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