Commit Graph

157 Commits

Author SHA1 Message Date
chris 95d65350e4
Project wide syntax/annotation cleanup (#4238)
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-12-05 18:54:42 -05:00
chris 308f293021
Fix potential issue with the settings form - coordinate showing might change while we are in the settings menu (#4324) 2023-12-04 01:44:06 +01:00
Kas-tle 0f50a3cbe6
Re-implement subchunk v9 with proper index (#4287)
* Re-implement subchunk v9 with proper index

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* typo in comment

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-11-28 20:33:07 -08:00
Kas-tle 8d2ebcf69b
Reduce Frequency of Crashes Due to Dispensers, Droppers, and Chiseled Bookshelves (#4248)
* Revert to subchunk v8; reduces freq of #4240

* Full resolution
2023-10-26 08:16:24 -07:00
Kas-tle 3fa35b2cb9
Restrict game packets to state; Closes #4191 (#4210)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-10-12 06:02:57 -07:00
chris 7983448ce6
Remove Mojang account sign-in option (#4147)
* Remove Mojang auth

* Yeet Connector wrapper, ensure that empty config arrays (e.g. saved user logins) are empty lists instead of null to avoid NPE exceptions
2023-10-03 01:12:54 +02:00
Konicai c2cd99c829
Support Java 1.20.2 (#4112)
* Initial pass for 1.20.2, compiling
* Remove unused level events
* handle null GameProfile in ClientboundPlayerInfoUpdatePacket
* Handle level events BRUSH_BLOCK_COMPLETE and EGG_CRACK
* Account for null tag in DecoratedPotBlockEntityTranslator
* Explicitly show that 1.20.31 is supported
2023-09-29 17:14:49 -04:00
Spongecade 5276a1e2ba
Update Minecraft Wiki links to new domain (#4151) 2023-09-27 07:55:54 -07:00
chris 806ec35a84
Feature: Allow client-side "game settings" menu gamemode/difficulty changes (#4062)
Removes difficulty/Gamemode settings from the custom server settings form since these are now present in the client side settings.
2023-09-09 00:34:19 +02:00
chris 3ec591509c
Fix forced zoom issue when switching into spectator mode (#4093)
* init: spectator mode support

* properly set second abilitylayer for spectator mode

* Fixes https://github.com/GeyserMC/Geyser/issues/3318 by not sending changed flags in spectator mode
2023-09-06 18:13:19 -04:00
Kas-tle 9ddfdf9374
Add support for custom blocks and skulls (#3505)
* Super cursed custom skulls custom block

* Rename some stuff

* Attempt to clean up some code

* Remove skull translation events and define custom blocks for custom skulls

Clean up skull block translation a bit

* Auto generate skull resource pack

Change `davchoo` to `geyser` in geometry

* Add config options for custom blocks and custom skull blocks

* Fix formatting and names for player skulls

* Use block states more efficiently for custom skulls

21 block states vs 48 block states

* Clean up custom block api a bit

* Apply some suggestions from Camotoy

* Move custom skull config stuff to its own file

Custom skulls can now be added by username, uuid, and textures

Move skull nbt stuff from requestTexturesFromUsername to
SkullBlockEntityTranslator
Add requestTexturesFromUUID

* Update custom block nbt for v534

* Disable collision box & selection box when box is empty

Fix incorrect collision names used in CustomBlockComponentsBuilder

* Add custom block stuff to provider registry loader

* More API changes

Convert CustomBlockPermutation into a record
Change materialInstances in CustomBlockComponents Builder to
materialInstance
Reuse box components in CustomSkull

* Convert skull floor geometries into a template

Should be easier to modify in needed in the future.

* Crop and reorder skull textures to eliminate unused space

Should reduce memory & storage usage for Bedrock clients

* Revert "Crop and reorder skull textures to eliminate unused space"

This reverts commit 15fd5353e1.

* Use identifier from CustomBlockData in SkullResourcePackManager

* Fix isIncorrectHeldItem check for custom skull blocks

Add defaultBlockState to CustomBlockData

* Fix adding duplicate block states for custom blocks with 0 properties

Remove defaultBlockState CustomBlockState field from
GeyserCustomBlockData since it creates a circular reference

* Add basis for overriding Bedrock block states

Fix missing providers when used in GeyserDefineCustomBlocksEvent

* Fix custom blocks in 1.19.50

* Decouple mappings from items

* Decouple mappings from items

* Null check

* Move to CustomBlockRegistryPopulator

* Remove name_hash from blocksTag/vanillaBlockStates

Fixes creative inventory contents with custom blocks registered

* Limit Bedrock versions to 1.19.40+

Custom blocks were released in 1.19.40

* Un-revert Crop and reorder skull textures to eliminate unused space

Should reduce memory & storage usage for Bedrock clients

Bug with top face flipping + per-face uv's was fixed in 1.19.40+
https://bugs.mojang.com/browse/MCPE-160073
Geometry is still offset by 0.5 to prevent lighting bugs

* Add validation custom block components and s/lightFilter/lightDampening/

Also validate custom block names

* Add display name component and add toggle for client block placing

The display name component allows blocks to use other locale keys.
placeAir will prevent the client from placing the default block state.

* Begin parsing block mappings (still much to do!)

* CustomBlockMapping stores block w/ all states

* Mappings almost :/

* Ok now they work at least

* Read most mapping components

* Block mappings mostly done

* Translate block item

* Add docs for custom blocks

* Add tags

* More docs

* Accidentally added name comp.

* Fix collide box and warn for >16 props

* add registerBlockItemOverride event + refactor

* Inventory overrides for multistate bedrock blocks

* Implement all remaining block components

* Minor cleanup and javadocs

* Update custom skull config example

* Address @Camotoy's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix light_emission and light_dampening components

* Remove redundant populate method and remove BLOCKS_JSON after last use

* Fix inventories with block state overrides not opening

* API event for skull blocks & let register via URL

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Use skin hash instead of URL

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @davchoo's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Rework MappingsReader_v1 to avoid passing maps around

* Treat all properties as string properties

There isn't a real need to check for boolean and int properties

* Fix block registry scan in MappingsReader

* Skin hashes can have less than 64 characters?

* Include entry when logging exceptions from block mappings

* Submodule

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix block break speeds thanks to @Camotoy

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Temporarily fix build on eclipse so I may work...

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Custom tool breakspeed by server; Closes #3348

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Account for if custom skulls are added on 1st run

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Initial framework for extended collision boxes

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Add some notes for the extended collision box impl

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* We have our extended collision registry

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Notes for me

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Extended collision boxes almost work

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Extended collision boxes actually work

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Consider all hitboxes in calculation

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* X is mirrored...

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Extended collision boxes are much improved

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Upstream fallout

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @Redned235's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Oops my bad that makes no sense :)

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Ext collision box chunk translation optimization

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Trunc skinhash to 32 chars due to 80 char limit

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Use new transformation cmpnt vs legacy rotation

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* keep arr null on get extcolstor

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Properly handle if extended collision box is below

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Less ugly (realized it can go here)

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Prevent 2x placement due to extended collision box

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Properly build on eclipse via indra

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Ensure enough bits in bedrockData for paletteIDs

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix not needed whitespace

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Update license headers to 2023

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Use release indra over snapshot

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Revert "Update license headers to 2023"

This reverts commit f750059e8e.

* Account for collisions in chunk section y0 layer

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix extended collision @ air section bottom

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @davchoo's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @rtm516's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* More @rtm516's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @Camotoy's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Update javadocs

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @davchoo's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Lock extended collision to section

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Clear ext col even when air

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Let override vanilla items in creative inventory

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Avoid creating 12 HashSets for every overrided block state

* Super minor nitpicks + Custom Skull NBT fix

* Check custom skull is within Bedrock bounds

Fixes NPE with custom skulls above y=320 or below y=-64

* Add static builder methods to match CustomItemData API

* Upstream

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Initial API setup for modded blocks (no impl yet)

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* More work on nonvanilla blocks (nonfunctional)

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix compile

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Update submodules

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Modded reg so far (not done)

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Add non-vanilla registration and fix a few bugs

* Fixes for non-vanilla blocks

* Remove import

* CustomRegPop. go1st for now; must split for modded

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address silent change to geo component for blocks

Co-Authored-By: Unoqwy <pm@unoqwy.dev>
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Seperate bedrock, vanilla, & nonvanilla block reg

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Single event

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Impl MaterialInstance as builder per @Redned235

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Added creative category enum & added some missing overrides (#7)

* Add material instance to provider registry

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* oops

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix case of correctBedrockIdentifier not found

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Fix docs

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address @Camotoy's review

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address review from @davchoo

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Set namespace of custom blocks vs ident direct

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Address review from @rtm516

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* One more

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Remove rogue space

* Geo component as builder

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* use super name

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Bump version

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: davchoo <davchoo@users.noreply.github.com>
Co-authored-by: davchoo <4722249+davchoo@users.noreply.github.com>
Co-authored-by: Unoqwy <pm@unoqwy.dev>
Co-authored-by: RednedEpic <redned235@gmail.com>
Co-authored-by: ImDaBigBoss <67973871+ImDaBigBoss@users.noreply.github.com>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2023-08-21 16:04:08 -07:00
chris 706d1b9627
Fix smithing tables on pre-1.20 servers (#4056) 2023-08-16 22:42:17 -04:00
Kas-tle 941275586d
Use chunk version 9 (#4040)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-08-07 08:01:10 -07:00
chris b1f04a9012
Allow custom unusable-space blocker item (#4038)
* Allow the "unusable-space-block" to be a custom item (specified by bedrock identifier)

* add space for log error

* don't use ugly atomic reference
2023-08-06 17:22:05 -07:00
chris b17191b553
Fix /playsound command by stripping only the Minecraft namespace (#3956)
Fixes https://github.com/GeyserMC/Geyser/issues/3953
2023-07-21 22:25:09 -04:00
chris d1357df8f5
fix https://github.com/GeyserMC/Geyser/issues/3938 (#3947) 2023-07-06 10:19:02 -07:00
Konicai ff05c98690
Camera shake and fog effect api (#3931) 2023-07-02 17:00:46 -04:00
Tim203 99671960d0
Merge remote-tracking branch 'origin/master' into jwt-changes
# Conflicts:
#	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/util/LoginEncryptionUtils.java
2023-06-27 12:12:31 +02:00
Konicai 8aed471ba0
Fix serverbound hanging sign updates (#3904) 2023-06-22 18:05:07 -04:00
chris 903e61f1a3
Exposing resourcepack loading to api (#3696)
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
Co-authored-by: RednedEpic <redned235@gmail.com>
2023-06-16 20:39:53 -05:00
RednedEpic 1b0d03824a Update Protocol and RakNet 2023-06-13 22:09:00 -05:00
Amberichu f55d84321a
New entity mount offsets (#3861)
* Add missing entities to getMountedHeightOffset and getHeightOffset

* Fix mount offset on Camels for more than 1 passenger

* Fix mount offset for Shulkers on Bamboo boats and minecarts with stuff

Also fix mount offsets for minecart and boat passengers

* Combine

* More missing mount offsets

* Fix mount offsets for entities riding players
2023-06-11 13:32:42 -04:00
Konicai 049d64d34d
Leniency when trimming incoming sound ids (#3852) 2023-06-09 21:30:03 -04:00
Redned b78ca431b6
Merge pull request #3817 from GeyserMC/feature/1.20 2023-06-07 10:47:44 -05:00
RednedEpic 13c9063368 Update to use protocol 589 and other 1.20 updates 2023-06-07 09:44:18 -05:00
Redned b3a66dbe29
Something looked wrong... 2023-06-04 22:43:56 -05:00
Redned 23cdde5cc6
Drop any namespace for incoming sounds
Fixes custom sounds defined through a resource pack.
2023-06-04 22:40:09 -05:00
Tim203 c5d4b86564
Prepare for changes made in CloudburstMC/Protocol#205 2023-06-03 11:47:50 +02:00
Konicai f712d4dd81 Bump Protocol and update imports of org.cloudburstmc.protocol.bedrock.data.definitions 2023-05-23 16:34:50 -04:00
Konicai df5092d32f Take width of hanging signs into account 2023-05-18 00:58:27 -04:00
Camotoy 8849fd7018
Revert "Revert "Drop support for versions less than 1.19.80 (#3758)""
This reverts commit d93f3dd1f5.
2023-05-11 12:38:49 -04:00
Camotoy d93f3dd1f5
Revert "Drop support for versions less than 1.19.80 (#3758)"
This reverts commit 7b05ca3c41.
2023-05-11 12:38:11 -04:00
Konicai 7b05ca3c41
Drop support for versions less than 1.19.80 (#3758) 2023-05-11 12:36:19 -04:00
RednedEpic a0b63abc6e Warn on outdated Java version 2023-05-08 19:08:40 -05:00
Camotoy b66088e434 TEMPORARY fix for chunk memory leaks 2023-04-24 23:48:05 -04:00
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 e2535108e6
Folia support and preparations for future changes 2023-03-30 15:44:55 -04:00
apex_ 10c2e51da4
Fix closing inventory confirmation behavior (#3587) 2023-03-03 09:09:52 -05:00
Camotoy 95d10fb7fc Don't throw an AssertionError on failed locale download
Fixes #3589
2023-03-02 18:40:40 -05:00
Camotoy e50226132f
Fix more issues of chunks not appearing 2023-02-23 13:11:18 -05:00
Camotoy 6a6a601efc Notify on disconnect when a new Geyser update is available 2023-02-15 00:01:33 -05:00
SupremeMortal 1769f2a85c
Merge branch 'master' into feature/protocol-3.0 2023-02-14 22:09:48 +00:00
Camotoy 3f4ed67597
Add Item classes to partially replace ItemMapping. Part 1? 2022-12-29 15:10:40 -05:00
Camotoy 08c15a86ec
You can connect now. Command translation doesn't work though. 2022-12-23 16:18:48 -05:00
Camotoy 933f0dfe74
Merge branch 'master' of https://github.com/GeyserMC/Geyser into dev 2022-12-21 19:24:17 -05:00
Camotoy fcd5fe1341
Wrong method call on previous commit 2022-12-21 00:37:48 -05:00
Camotoy 98069cff83
Fix certain sounds not correctly playing
Fixes #3463
2022-12-21 00:35:03 -05:00