Camotoy
a1d167d5f1
Ensure skull operations are done on the player thread
2021-08-21 19:38:13 -04:00
Camotoy
ab540b1951
Ensure more entity tasks are run on the player session
2021-08-21 09:54:52 -04:00
Camotoy
89dde2aec3
Do a null check on downstream channel when sending packets
2021-08-19 12:37:14 -04:00
David Choo
57c0185b45
Prevent projectiles from blocking the player's vision ( #2472 )
...
Prevent Snowballs, Eggs, and other throwable projectiles from blocking the player's screen
2021-08-17 22:44:33 -04:00
Camotoy
3d04a957d0
Ensure that exceptions in player event loop are handled
...
Any stray exception means that the entire event loop comes crashing down.
2021-08-17 20:57:46 -04:00
Camotoy
76399881a3
Use legacy DefaultEventLoopGroup constructor; label Geyser <-> Spigot connection thread
2021-08-16 22:33:14 -04:00
Camotoy
7ae91a40ec
Ensure every packet is ran on the same thread per player ( #2473 )
...
This removes a lot of concurrency checking that needs to be done, because there should be no way two packets can be handled at the same time.
2021-08-16 20:39:29 -04:00
Camotoy
f4437e45a8
Attempt to make Geyser build
2021-08-16 14:00:12 -04:00
Camotoy
ac17963baa
Player effect cache cleanup
...
Only cache effects and not their values unless we actually use the value.
2021-08-16 11:53:56 -04:00
Camotoy
ce748990a4
Javadoc fix and tiny teleport optimization
2021-08-15 14:57:02 -04:00
Camotoy
5d90ba91f7
Move LoginSuccessPacket handling to its own translator
2021-08-14 12:52:35 -04:00
Camotoy
9f4c2ce5fc
Fix rare StackOverflowError in DeclareCommands
...
This behavior is exhibited with the NanoLimbo software version 1.2.2.
2021-08-13 23:56:44 -04:00
Camotoy
1afa22d5cf
Fix NPE with area effect cloud particles
2021-08-13 13:42:35 -04:00
Camotoy
25ff3661e3
Update version strings to add 1.17.11
...
This version has been supported; let's make it clear that it is.
2021-08-13 13:37:06 -04:00
Camotoy
919e84c23f
Don't try to connect to the remote server with invalid credentials
...
Fixes #2458
2021-08-12 14:35:26 -04:00
Camotoy
b95cd8e0c1
Query improvements
...
- Improved detection of query packet
- Don't initialize the QueryPacketHandler class until we verified we have query data
- Encode strings like the vanilla Minecraft server
2021-08-12 10:42:58 -04:00
Camotoy
0c5b39f35b
Intern strings and other values
...
This should reduce memory usage at startup by preventing multiple identicals objects being present in memory.
2021-08-11 20:16:10 -04:00
David Choo
fb5449d0d1
Fix extended world height client crash with 32+ section chunks ( #2441 )
2021-08-03 00:08:47 -04:00
David Choo
3eb73a5634
Fix powder snow and fish buckets ( #2437 )
2021-08-01 22:20:15 -04:00
Camotoy
20b183ddda
Fix horse variant color
...
Our old method broke with the 1.17.10 update.
2021-08-01 19:14:01 -04:00
Camotoy
3d50155ee3
Handle the server sending invalid biome IDs in chunks
...
Should hopefully address #2400 - the Java client handles invalid biome IDs and simply complains in its logs.
2021-07-31 16:34:24 -04:00
Camotoy
a197f60446
Move use-direct-adapters to system property
2021-07-31 13:54:51 -04:00
Camotoy
002be32bb3
Connect Geyser players directly to the server for plugin versions ( #2413 )
...
- Faster loading times and improved latency; Geyser no longer creates a physical TCP connection to join the server
- Less configuration: remote address and port are now irrelevant
- Accurate IP addresses without needing Floodgate.
Co-authored-by: Redned <redned235@gmail.com>
2021-07-31 12:52:49 -04:00
David Choo
1d04a61a46
Collision Registry ( #2430 )
...
* Fix trapdoor collision
* Add EqualsAndHashCode to all Collision subclasses and shift code around
EqualsAndHashCode are required on subclasses otherwise blocks will be assigned an incorrect collision instance. (Doors and trapdoors are mixed and ladder sometimes gets a DoorCollision instance).
Added protected constructor to BlockCollision to make boundingBoxes final.
Removed EmptyCollision because I don't think it is useful.
Moved conversion from ArrayNode to BoundingBoxes[] from OtherCollision to CollisionRegistryLoader
Removed regex from SnowCollision and use default bounding boxes.
* Deduplicate BlockCollision instances
* Create one set of bounding boxes for all BlockCollisions
* Don't depend on the player's block position in DoorCollision
* Fix dirt path position corrections
Grass paths were renamed to dirt path in 1.17
Fix position correction for y=1, y=2, y=255, and y=256
* Increase pushAwayTolerance depending on distance from origin
This should fix position corrections for blocks less than 1 unit in length/width at high coordinates.
This includes ladders after x 4096 or z 4096
Not too sure about the math here though
* Use ThreadLocal for position
Hopefully resolves concurrency issues
* Remove comment and add layer check to SnowCollision
2021-07-30 22:35:13 -04:00
Konicai
6f93bbfe21
Improvements to VillagerEntity ( #2412 )
...
* initial changes to villager
* touchup
* don't call getPos() twice
* whoops, better
2021-07-30 15:45:50 -05:00
Camotoy
8c95e26189
Fix experimental toggle'd biomes not accounting for chunk offset
2021-07-29 14:35:03 -04:00
Camotoy
7a99aa0ddf
Merge branch 'biomes'
2021-07-28 20:27:34 -04:00
Konicai
b86648332a
Auth type refactor in internal config ( #2410 )
2021-07-28 19:44:09 -04:00
Camotoy
5529a1cc1c
Fix spectator gamemode movement
...
- Don't allow the player to toggle flight status in spectator mode
- Fix weird flight movement when player was previously on the ground
- The player is always flying in spectator mode, no exceptions
2021-07-28 13:21:18 -04:00
Camotoy
4241b5463f
Fix mesa replacement biome
2021-07-27 23:01:38 -04:00
Camotoy
a5beebdffa
Add best-fit replacement biomes for custom biomes
2021-07-27 22:52:07 -04:00
Camotoy
8c96c3b11d
Biome reworkings
...
- Introduce biome mappings for having a constant reference between Java biome identifier and their Bedrock equivalents
- Don't assume biome IDs and instead listen to the server for biome IDs
- Ensure that only valid Bedrock biomes are sent. With the caves and cliffs experimental toggle, Bedrock will crash if an invalid biome ID is sent its way.
2021-07-27 20:29:27 -04:00
Camotoy
46cd26ffae
Don't cache non-locale assets in the LocaleUtils asset cache
...
Previously Geyser was storing a reference of every single asset hash provided by the server, including things like sound files. We never used this files, and their existence caused the amount of Asset classes present in Geyser to be over 3000. With this change, we only cache the 118 language files.
2021-07-25 10:11:53 -04:00
David Choo
c6589136bf
Fix movement against spawners ( #2409 )
2021-07-24 10:35:23 -04:00
Camotoy
a93f3119f6
Map bamboo jungle [hills] to their Bedrock ID
2021-07-23 21:42:08 -04:00
Camotoy
da66a01a9a
Fix possible NullPointerException in handling CanBreak/CanDestroy items
2021-07-23 21:28:28 -04:00
Camotoy
1b3191fd02
Update languages submodule
2021-07-23 20:16:02 -04:00
Camotoy
e840828763
Update the outdated strings to be more concise
2021-07-23 20:11:50 -04:00
Camotoy
f16f91f469
Check for outdated Java versions older than 16
2021-07-23 19:51:46 -04:00
Camotoy
11f048a065
Better logic for item updating on item entities
...
Specifically created to address InteractionVisualizer updating all metadata properties when updating the nametag - this commit prevents the item from jumping on updating. It also prevents the entity from being respawned if just the stack size updated.
2021-07-22 09:16:19 -04:00
Redned
c3f65b176d
Tweak README - Geyser is fine on production and has been for a while :)
2021-07-21 22:31:54 -05:00
Redned
0e30895302
More registry documentation, and remove unneeded clean identifiers registry
2021-07-21 22:18:31 -05:00
RednedEpic
9817dc932a
Merge branch 'feature/optimizations' into master
2021-07-21 21:44:49 -05:00
Redned
ef7c673276
Properly use CompleteableFuture for MSA auth
2021-07-21 21:39:30 -05:00
Redned
4a8e598c62
Document the registry system ( Closes #2387 )
2021-07-21 21:14:00 -05:00
David Choo
8f98162c69
Fix Item drop animation ( #2406 )
2021-07-21 21:48:59 -04:00
Camotoy
6b84e07c34
Consolidate left/right parrot checks into one boolean
...
The 1.17 update missed a couple of updates. Address the problem by only checking once.
Fixes #2402
2021-07-21 13:44:11 -04:00
Camotoy
41d15f3ec3
Optimize squid packet sending
...
Don't send a full MoveEntityAbsolutePacket when we can send a smaller MoveEntityDeltaPacket that only has rotation information.
2021-07-20 18:41:09 -04:00
David Choo
d7fbdaf93d
Fix Squid Animation ( #2398 )
2021-07-20 12:08:48 -04:00
Redned
1a0ac26398
Move leak detector to standalone bootstrap class
2021-07-18 17:44:08 -05:00
Redned
39324ce95d
Go back to normal thread for now using MSA auth, and only toggle leak detector on standalone
2021-07-18 17:41:47 -05:00
Redned
ae4e4397e3
Use a CompleteableFuture rather than constructing a new thread for logins
2021-07-18 17:04:16 -05:00
Redned
15863bdaef
Disable netty's resource leak detector if no level is set
2021-07-18 16:24:55 -05:00
Redned
95a1cbfa24
Some more micro optimizations
2021-07-18 15:43:04 -05:00
Redned
1ad952b581
Handle locale stuff downloading of main thread and add doc to Object2IntBiMap
...
Technically LocaleUtils is not thread safe and people running Geyser for the first time on slow internet connections may see some untranslated messages. However, we were seeing startup times of about 1+ minutes on these slow connections, and it's better that players see untranslated messages for a short period of time rather than having to wait over a minute for the program to start up.
Once the locale is installed, it doesn't need to be redownloaded again (unless there is a game update) and all translated messages will just work once this download is complete without clients needing to relog.
2021-07-18 15:20:40 -05:00
Redned
b4921132e1
Replace BiMap with an Object2IntBiMap
2021-07-18 14:43:17 -05:00
Redned
fde36a2234
Fix check for missing item mapping and update mappings submodule
2021-07-18 12:47:02 -05:00
Camotoy
0e72952e0b
Merge branch 'master' of https://github.com/GeyserMC/Geyser
2021-07-18 11:13:37 -04:00
David Choo
2766038db9
Update player bounding box in more scenarios ( #2377 )
...
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-07-18 10:58:08 -04:00
Camotoy
697f35f657
Specify the first and last relevant block runtime IDs for items
...
Improves startup time and processing
2021-07-17 18:09:55 -04:00
RednedEpic
ff280ef192
Replace Reflections usage with an annotation processor
...
Reduces jar size by about 1.5-2mb
2021-07-17 13:36:04 -05:00
Camotoy
80b8d18c31
Replace more instances of String#split with BlockUtils#getCleanIdentifier
2021-07-17 09:43:25 -04:00
David Choo
4e629feee8
Fix block unique Java IDs ( #2390 )
2021-07-17 09:33:38 -04:00
Camotoy
4844302883
Merge branch 'extended-world-height'
2021-07-16 20:21:43 -04:00
Camotoy
01873ea566
Change some comments
2021-07-16 20:18:13 -04:00
Camotoy
8e593a55a3
Adjust language strings for new options
2021-07-16 20:06:09 -04:00
Camotoy
f03a2dd317
Remove goat horn from creative menu; use proper sculk sensor item
2021-07-16 12:28:11 -04:00
Camotoy
7972f089d9
Oops
2021-07-15 20:51:35 -04:00
Camotoy
db1563aa79
Better estimate for new biome data size
2021-07-15 20:51:13 -04:00
Camotoy
3b55826d70
Make the ByteBuf in ChunkDataTranslator allocate a more decent size
2021-07-15 18:33:49 -04:00
Camotoy
99a7f9a012
Explain that yes, we have to write 32 biome palettes always
2021-07-15 18:31:47 -04:00
Camotoy
89370ef648
Explain new changes in BedrockMovePlayerTranslator
2021-07-15 18:27:43 -04:00
Camotoy
143464b5a9
Respect Javadoc's wishes
2021-07-15 18:12:08 -04:00
Camotoy
25edf41329
Some optimizations
...
- Fix recipe registry not using an int key-based map
- Versioned registries now use Fastutil more effectively
- Replace uses of String#split for block identifier manipulation with #indexOf and #substring
- Reuse Patterns in collision loader
2021-07-15 18:03:41 -04:00
Camotoy
11874aaa9b
Merge branch 'master' of https://github.com/GeyserMC/Geyser into extended-world-height
2021-07-14 22:00:23 -04:00
Camotoy
e5cb122db3
Use normal biome data for non-extended world height
2021-07-14 21:59:10 -04:00
Camotoy
d19ff657de
Ensure overworld constraints are used everywhere
2021-07-14 21:46:56 -04:00
Camotoy
feb64e08df
Fix biomes crashing and more (huge thanks to @dktapps
2021-07-14 21:14:53 -04:00
Camotoy
ba4e0cf5b9
Fix scaffolding and auto crafting
...
Fixes #2381
2021-07-14 09:33:34 -04:00
Camotoy
ac9da9a5a0
Fix flower pot updating
2021-07-13 21:47:13 -04:00
Camotoy
a1706365b9
Potted azaleas are now visible
2021-07-13 21:14:22 -04:00
Camotoy
c7d4130a44
Start of extended world height support
2021-07-13 20:48:45 -04:00
Camotoy
b2619fa7c7
Address some null pointers ( fixes #2378 , #2380 )
2021-07-13 18:12:55 -04:00
Redned
f7ef90278b
Implement a new registry system ( #2306 )
...
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-07-12 21:19:40 -04:00
Camotoy
887296ef78
Round up health attribute for all living entities ( fixes #2362 )
2021-07-09 10:28:03 -04:00
Camotoy
334e4fb059
Fix players being 'dead' even with half heart
2021-07-08 20:21:21 -04:00
Camotoy
92cd36d81f
Fix horse jump meter showing if not saddled
2021-07-08 18:55:28 -04:00
Camotoy
32bbd8ae1c
Attribute rewrite
...
This commit solves a couple issues:
- Entities that don't implement LivingEntity don't need to bother with attributes
- We don't need to cache all attributes for every entity
- Mounted entities' hearts were inconsistent
No entity as of this commit caches their attributes except for the player entity.
2021-07-08 10:30:59 -04:00
Camotoy
8edf36e063
Actually mark the squid as leashable
2021-07-06 21:39:54 -04:00
Camotoy
2d85505351
Mark new 1.17 mobs and squids as leashable
2021-07-06 21:38:30 -04:00
Camotoy
e162cd526c
Micro-optimizations in player entity code
2021-07-06 18:09:01 -04:00
Camotoy
438b39cb05
Update mappings to fix #1460
2021-07-06 15:37:19 -04:00
Camotoy
b407e8a748
Merge branch 'master' of https://github.com/GeyserMC/Geyser
2021-07-06 10:20:32 -04:00
Tim203
7bf4040308
Added new news types
2021-07-05 15:42:42 +02:00
Camotoy
605f56b895
Update to 1.17.1-rc1
2021-07-04 10:42:28 -04:00
Camotoy
74a5a4a366
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.17.1
2021-07-04 10:36:18 -04:00
Camotoy
7ae27c79e8
Ensure that the player never dimension switches to the same dimension
...
Fixes #2342
2021-07-01 08:48:22 -04:00
Camotoy
b757032457
Show iron golem attack animation
...
TODO: Do the same for the hoglin and zoglin - this requires more work with the hitbox.
2021-06-29 22:36:30 -04:00
Camotoy
afc1f48d5e
Use custom class for caching chunk data
...
Right now, our chunk cache stores the heightmap and biome data that the server sends, which we never use. This commit saves that data in a custom GeyserColumn class that only stores chunk data. In the future, it may also store NBT data.
2021-06-29 10:09:47 -04:00
David Choo
566394f798
Fix breaking animation while jumping ( #2335 )
...
* Update block break time after a CONTINUE_BREAK action
* Fix breaking animation time for some blocks
* Reuse Vector3f and add comment
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-06-28 19:26:02 -04:00
Camotoy
90fa5610f5
Finish my thought
2021-06-27 23:26:32 -04:00
Camotoy
ad5356472d
Create a new cached chunk when a block is created in an empty chunk
2021-06-27 23:25:51 -04:00
Camotoy
215ffc618f
Fix some SettingsUtils regressions
...
- Add the new 1.17 gamerules
- Don't hide exceptions in form responses
- Fix the settings form silently failing
- Fix some translation strings in the settings form
2021-06-27 19:57:53 -04:00
Camotoy
495eafc6e5
Work around axolotl buckets titled 'Bucket of '
...
Huge thanks to @SupremeMortal for figuring out the magic required NBT.
2021-06-25 14:47:01 -04:00
Camotoy
f9f74a0da8
Determine chunk Y offset on Java packet processing thread
...
Should stop NullPointerExceptions if the session closes before chunks are processed
2021-06-25 13:51:52 -04:00
Camotoy
71fe2621fc
Remove obsolete chunk merging
2021-06-23 16:48:56 -04:00
David Choo
0a0d84d779
Fix phantom scaling ( #2314 )
2021-06-23 13:39:57 -04:00
Camotoy
65c52f9ff0
Fix fishing rod durability ( fixes #1964 )
2021-06-21 18:51:43 -04:00
Camotoy
3a2cff7864
Clean up a bunch
...
Mostly checked with IntelliJ, but manually performed. The only issue I possibly anticipate is item name/lore issues, but the new method should be technically better.
2021-06-20 21:42:22 -04:00
Camotoy
c60600e0f9
Update to 1.17.1-pre1
2021-06-20 12:35:48 -04:00
Camotoy
683ac1c763
Fix spawn egg triggering twice in water
2021-06-19 20:33:07 -04:00
Camotoy
35450f7b78
Implement entity shaking when freezing and more
...
- When freezing ticks is at 140 or more, entities will shake
- Implement skeleton and zombie conversion shaking
2021-06-18 19:09:18 -04:00
caoli5288
3c9f628ac4
Fix item spawning up ( #2278 )
2021-06-16 19:23:01 -04:00
Camotoy
569c36680d
Remove debug statement
2021-06-16 19:12:18 -04:00
Camotoy
c4131428ea
Translate more new level events
2021-06-16 19:09:35 -04:00
Camotoy
2c9cd7ed02
Don't hardcode record IDs and fix records for 1.17
2021-06-16 11:05:10 -04:00
Camotoy
aba279fd1a
Fix cat scale :upside_down:
2021-06-16 10:26:28 -04:00
Camotoy
139167d090
Don't hardcode the bell block ID
2021-06-15 14:48:18 -04:00
Camotoy
f53c0cf73f
Fix nether brick item mapping
2021-06-15 13:02:18 -04:00
Camotoy
096c707a25
Don't look up git properties for news handler in development
2021-06-15 12:48:45 -04:00
Tim203
bae4906879
Don't always automatically restart the skin uploader
2021-06-12 14:22:58 +02:00
Camotoy
cc2d26dda8
Translate new world events
...
The copper-related ones do not show if the Bedrock player performs them. This will be fixed later.
2021-06-09 19:48:38 -04:00
Tim203
13f8b54d77
Close skin uploader on shutdown when using Floodgate
2021-06-10 00:52:57 +02:00
Camotoy
1df6e2151d
Show non-sensitive IPs in all dumps ( #2102 )
...
IPs such as 0.0.0.0 and 127.0.0.1 will now show in all dumps, regardless of if it's a full dump or not.
2021-06-09 09:01:03 -04:00
Tim203
60e6f8c162
Catch AssertionError
2021-06-08 15:31:50 +02:00
Tim203
7aa05426b6
Merge remote-tracking branch 'origin/feature/1.17' into feature/1.17
2021-06-08 15:29:35 +02:00
Camotoy
b2ef059aed
Merge branch 'feature/1.17' of https://github.com/GeyserMC/Geyser into feature/1.17
2021-06-08 08:57:50 -04:00
Camotoy
118f821281
Update mappings
2021-06-08 08:57:27 -04:00
Camotoy
01822672a5
Remove debug elements
2021-06-08 08:57:03 -04:00
Tim203
f0b8870a47
'on server started' should only work during the first check
2021-06-08 13:21:22 +02:00
Tim203
acc3a8222a
Check if item is active and added global items
2021-06-08 12:53:00 +02:00
Tim203
68cd2eb4f1
Moved Floodgate dump info to one class
2021-06-08 10:12:52 +02:00
Tim203
1eef152f43
Added Java Version to the metrics
2021-06-08 10:04:40 +02:00
Tim203
41c1be4262
Only listen for Geyser news
2021-06-08 08:17:12 +02:00
Camotoy
bb20afb123
Warn if server is using high/low dimension heights and remove translations on some strings
2021-06-07 23:09:42 -04:00
Camotoy
01d7648296
Implement new entity statuses and goat milk sounds
2021-06-07 19:16:36 -04:00
Camotoy
a2b3e1946d
Update lectern if updated via the WindowItemsPacket
2021-06-07 14:19:17 -04:00
Camotoy
8510451dde
We're not '1.16.4 - 1.16.5' anymore
2021-06-07 11:26:23 -04:00
Camotoy
ea237f20c9
Shulker attach position is now irrelevant, it seems
2021-06-06 21:39:39 -04:00
Camotoy
715b9ab4b5
Change item names if acting as a replacement
2021-06-06 19:48:49 -04:00
Camotoy
3cdc4c767d
Don't start if Floodgate is outdated
2021-06-06 19:01:16 -04:00
Camotoy
3835da288f
No need to cast here (thanks Konica)
2021-06-06 14:41:41 -04:00
Camotoy
9568a3a866
Merge remote-tracking branch 'origin/floodgate-2.0' into feature/1.17
2021-06-06 12:07:57 -04:00
Camotoy
207af5dffb
Listen to PlayerPositionRotationTranslator#dismountVehicle
2021-06-06 11:58:03 -04:00
Camotoy
19f8e2dfac
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.17
2021-06-06 11:42:59 -04:00
Camotoy
01ca2d3dcb
Pufferfish puff is indeed fixed
2021-06-06 11:38:54 -04:00
Camotoy
ef0503ede0
Properly implement freezing ticks
2021-06-06 11:36:11 -04:00
Konicai
632f84fcf8
Merge pull request #2095
...
* Add floodgate git properties to dump
* Merge remote-tracking branch 'upstream/floodgate-2.0' into floodgate-2.0
* Modify the dump to not break anything
* name changes to floodgate info in dump
* small adjustment to DumpInfo.java
* Merge remote-tracking branch 'upstream/floodgate-2.0' into floodgate-2.0
* remove duplicate import statements
* Update mappings
2021-06-06 16:59:47 +02:00
Camotoy
b2ebfc6803
Fix reload command ( fixes #2255 )
2021-06-06 10:19:24 -04:00
Camotoy
0162257d30
Glowing text on signs is Bedrock 1.17.10. :(
2021-06-06 09:55:38 -04:00