Commit graph

105 commits

Author SHA1 Message Date
modmuss50
55dca1a4f3 Update mappings. 2022-02-16 18:14:59 +00:00
modmuss50
682a9b7c63 Fix crash when remapping registries with unused raw ids. 2022-02-11 18:14:32 +00:00
modmuss50
d882b91555
Port to 22w06a (#1989)
This snapshot is possibly one of the most impactful for API we have ever had. This PR is an inital port to support 22w06a, stuff will be missing and broken. 

# Removed modules:
- fabric-mining-levels-v0 - Previously deprecated
- fabric-object-builders-v0 - Previously deprecated
- fabric-tag-extensions-v0
- fabric-tool-attribute-api-v1

# Modules with API breaking changes:
- fabric-biome-api-v1
- fabric-content-registries-v0
- fabric-data-generation-api-v1
- fabric-mining-level-api-v1
- fabric-object-builder-api-v1
- fabric-resource-conditions-api-v1
- fabric-structure-api-v1

# Impactful API changes:
### fabric-object-builder-api-v1
- Removed - FabricBlockSettings.breakByHand
- Removed - FabricBlockSettings.breakByTool  - Previously deprecated

# Notable changes

- fabric-registry-sync-v0 moves vanilla's new registry freezing to a later point in time, allowing mods to add to the registry during init.

# Known issues:
- ServerBugfixMixin used to fix https://bugs.mojang.com/browse/MC-195468 has not yet been ported.
2022-02-11 17:02:44 +00:00
modmuss50
4ebd8b2d9f Reduce log level for message logged when a vanilla or outdated api client joins. 2022-02-02 18:50:34 +00:00
modmuss50
d7c144a830
Migrate to SLF4j and update loom (#1960)
* Migrate to SLF4j and update loom

* Update loom

* Update to latest loom
2022-01-30 21:37:23 +00:00
deirn
befed49ea3 Registry sync packet compression II (#1853)
* Optimize registry sync packet

* Make sure that the id map is sorted by the raw id
Send the difference of the first raw id and the last raw id from the bulk before

* Add packet size log prints

* Use Boolean.getBoolean
Don't send sync packet if the player is the server host

* Use generic Map

* Multiple raw id bulk test

* Group object namespace first before grouping raw ids

* Revert "Add packet size log prints"

This reverts commit fcb8b71e

* RegistrySyncPacket -> RegistryPacketSerializer
Move RegistryPacketSerializer singleton to the interface

* Packet size log prints

* Sort raw id on each namespace group

* Use Identifier.DEFAULT_NAMESPACE

* Slice to multiple packet if necessary

* Make MAX_PAYLOAD_SIZE configurable
Make testmod registry bigger
Print buffer size in equality test

* Move static packet handler instance to RegistrySyncManager
Release combinedBuf before discarding it
Discard syncedRegistryMap after it's accessed

* Use PacketByteBufs to create buffers
2022-01-02 19:36:03 +00:00
shartte
533be9ba91
Fixes #1921: Synchronize BlockEntityType to the client since mods use the Vanilla mechanism for block entity updates since 1.18. (#1923) 2021-12-22 17:08:02 +00:00
Player
3ac43d9577 Revert Mixin compatibilityLevel bump, bump versions 2021-11-17 03:29:11 +01:00
modmuss50
e77d3ea62f 1.18-pre2 & Java 17 2021-11-16 18:41:10 +00:00
modmuss50
b4f4f6cda4 Update Loom and Loader. Cleanup/improve buildscript. 2021-11-12 15:02:54 +00:00
modmuss50
2e160e0f26 1.18-pre1: without the biome api 2021-11-11 19:01:49 +00:00
modmuss50
65d505fc8a Bump versions
All of the version need to be bumped due to fabric-api-base being updated, this highlights the need for a better solution.
2021-11-05 17:09:48 +00:00
modmuss50
01912dd2c6 Fix Registry.GAME_EVENT not being synced. 2021-10-19 16:56:43 +01:00
modmuss50
bb09662468 21w41a
Remove SurfaceBuilder related APIs.

Remove PersistentDynamicRegistryHandler as the bug (MC-202036) it fixed was fixed a few weeks ago.
2021-10-13 18:55:15 +01:00
modmuss50
c683a6555f Bump version 2021-10-07 13:02:52 +01:00
BasiqueEvangelist
21f792c9f8 Fix handling of orphaned registry entries (#1759)
* Fix handling of orphaned registry entries

* Fix handling of orphaned registry entries in RegistrySyncManager
2021-10-07 12:29:04 +01:00
modmuss50
6eb8b35a31 21w39a 2021-09-29 20:03:16 +01:00
modmuss50
8f2c3e04fb Bump version 2021-09-21 11:41:06 +01:00
shartte
d7a7efac01
Fix running game tests / build [1.18] (#1731)
* Fix running game tests.

* Fix dimension api bugfix mixin. Of note: The Vanilla bug is still present, and the bugfix still needed.

* Fix references to unmatched RegistryOps method.
2021-09-17 23:32:44 +01:00
modmuss50
5553aff888 21w37a: Compile pass 2021-09-17 18:42:42 +01:00
modmuss50
e2961fee74 Fix datapack driven worldgen not working on dedicated servers. Closes #1478 2021-06-13 00:50:44 +01:00
modmuss50
a02b4463f9 21w19a 2021-05-12 20:23:04 +01:00
modmuss50
f08a69e19f 21w18a 2021-05-05 19:53:16 +01:00
modmuss50
413ddf6456 21w14a - Mappings update 2021-04-07 18:46:09 +01:00
modmuss50
23b3c92ea9 21w13a 2021-03-31 20:52:51 +01:00
modmuss50
03bff30f22 21w11a 2021-03-17 19:14:28 +00:00
modmuss50
92519afafe Version bump 2021-01-19 19:38:22 +00:00
i509VCB
f8cf2bb436 Add custom value denoting module lifecycles. (#1253)
* Add custom value denoting module lifecycles.

* Make the module validation work.

My hand has been forced - we must use buildSrc since JsonSlurper is not available in main buildscript.

* Apply task to each project and dont cross projects

* A horrible hack

* Wait what

* It works now.

* Not needed

* Drop unneeded maven repo, cache map lookup

(cherry picked from commit daa38b3d82)
2021-01-19 18:54:23 +00:00
modmuss50
836e66a3f5 Fix build.
Opps ;)
2020-12-16 19:13:16 +00:00
modmuss50
1a369faf20 20w51a 2020-12-16 19:06:02 +00:00
modmuss50
d591fc0a7e Bump version 2020-12-12 16:49:45 +00:00
modmuss50
bb826c2c5b Fix registry sync being applied when its not supposed to be.
Fixes #1217
Fixes #1216
2020-12-12 16:48:39 +00:00
modmuss50
bee3a886d0 Bump version 2020-12-10 18:34:17 +00:00
i509VCB
fd11873744 Fabric Networking API V1 (#1081)
* Networking api v1

Some final docs?

Licenses and testmod

Fix a bunch o imports and make things work for v1 (v0 is bork)

Make the testmod pass checkstyle and work

Docs for v1

* Deprecate v0 and implement using v1

* Drop files down one package due to package check error

* Fix issue with channel registration, add another testmod

* jaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavadoc

* Make javadoc use `code`, move impl interface to package access

* this things

* Rename a few internal methods

* Mark all client side stuff client only, move client mixins

* Add null checks around the place, clarify some javadoc and method names

* Make FutureListeners uninstantiable

* Some internal nullable annotations

* An impl class I forgot to rename

* Some comments and clarify some client login handler javadoc

* Add a missing FunctionalInterface annotation

* Split play and login, move client stuff to right package

* No interface left behind

* Inline channel registries in api

* Login and play subpackages not needed

* Add helper method to create play custom packets

* hasGlobalChannel -> hasGlobalReceiver

* Just rename the collection method for now

* Inline PlayPacketSender into static methods

* Start on testmod idea for verifying dynamic registration

* Add client login events

* You don't say hello when talking to yourself.

Also more testmod stuff

* Make event names present tense

* Some javadoc and impl interface rename

* Change the test keybinding

* Begin working on dynamic reg

* Dynamic reg works, just need a lot of cleanup and reimpling global

* A few renames, readd global methods

* Try to reduce the amount of duplicate registration logic

* Reimplement dynamic accessors

* More impl

* Start reimplementing global receivers. Still very hacky solution.

* Reimplement some server global reciever stuff

* Add login init event for server login.

* Implement client login query start event

* Move event invocations into addon, don't dual register global recievers

* Finally reimplement global recievers for all networking phases

* A revelation: Send packets properly

This also finds the issue with screen getting the proper S2C channels, current on TODO list.

* Disconnect event does not need a packet sender

* Clarify, add methods to get channels net handler can recieve on client

* Unregister actually works now

* Bunch of null checks, add simpler login delay test for vanilla clients

* Add some debug logging entries, fix unregister on client's session reg

* Play channel event javadoc and rename login query handlers

* More channel -> channelName

* thisening

* Introduce the basics infrastructure for tracking global receivers

* Add more substantial javadoc to login connection events

* Javadoc, reimplement unreg methods on v0, 1 impl fix

* Implement tracking for global recievers

* Dont forget to start tracked sessions in 3/4 cases

* Global receiver docs and move methods in classes

* Complete null checks

* big boi javadoc part 1

* Finish the main javadoc, usage javadoc is left

* Set so has method is not needed

* Rename receiveable and sendable methods

* Add the two missing private ctors

* buildscript update to upstream

* Split out player finding stuff to networking player tracking API v1

Signed-off-by: liach <liach@users.noreply.github.com>

Forward v0 PlayerStream to new module, add entity track events

Rename module to player tracking

Well javadoc can make sense

Decide on tracking for the name

Update fabric-player-tracking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/player/tracking/v1/package-info.java

Co-authored-by: Erlend Åmdal <erlend@aamdal.com>
Remove exceptions from javadoc that are not thrown

javadoc fix again

Handle a case where the player manager happens to be null

rename player tracking to player lookup

Yeet

* Cherrypick #1092

* Remove some redundant client networking methods, rename `(un)register` to `(un)registerReceiver`

* Simplify access to dynamic reg on client

* Param shifting, let users get sender.

* Warning about time and distance units

* Make sure these are client only

* Fix control flow in ClientPlayNetworking#send

* Correct example code javadoc

* javadoc correction in server login

* Put login delay tests behind system property

Also remove unnecessary junk added by old module that was merged together.

* Fix ordering so channel registrations during `PHASE`_INIT work

* Fix prod bug and an oversight

* Fix login when connecting to dedicated server

* Update registry sync to v0 to prevent issue with reg sync hanging client

* this is done
2020-12-09 18:49:22 +00:00
modmuss50
18e7e5e181 Bump version 2020-11-24 19:54:57 +00:00
modmuss50
1fec9da3c8 Assign a new ID to client only registry entries when syncing. (#1179)
* Assign a new ID to client only registry entries when syncing.

Fixes #1165

* Cleanup + review comments
2020-11-24 19:52:26 +00:00
modmuss50
d7dacf3db0 Bump version 2020-11-21 18:53:21 +00:00
modmuss50
16a3a4a49a Fix MC-202036 - Shifting biome IDs (#1168)
* First pass on PersistentDynamicRegistryHandler, not tested

* Extra debugging + fix it not working

* Fix build

* Minor tweaks

* checkstyle ;)

* Improve comments + fix issues with tag reading/writing

* Simplify mixin
2020-11-21 18:50:12 +00:00
Thalia Nero
9f7a7423f3 Add module dependencies to maven POM (#1104) 2020-11-15 19:46:01 +00:00
modmuss50
a4467d2a9c Bump version 2020-10-27 18:36:48 +00:00
i509VCB
eacb8ba396
Update yarn mappings (#1127) 2020-10-22 18:54:44 +01:00
modmuss50
9f0fb4b8a2 Bump version 2020-10-11 21:18:28 +01:00
CheaterCodes
888073d094 renamed event method 2020-10-01 23:37:40 +02:00
CheaterCodes
811b763fc3 removed redundant supressions 2020-10-01 22:58:14 +02:00
CheaterCodes
bf575bf013
Merge branch '1.16' into dynregman 2020-10-01 22:54:51 +02:00
modmuss50
3c53fe33fe Version bump 2020-09-29 18:55:16 +01:00
shartte
ff71903321
Cleaned up use of Generics in registry-sync-v0 and used Registry#getKey where possible instead of reverse-lookup of the registry key. (#1082) 2020-09-29 18:48:23 +01:00
modmuss50
f8ac1db2b1 Version bump 2020-09-27 12:38:48 +01:00
Deximus-Maximus
5f10696617
Add @Nullable and friends (#1007)
* Boost to Loom 0.5
Add null related annotations

* Rearrange nullable to be overline

* Fix anno sorting for picky

* Add imports

* Address feedback

* Fix import
2020-09-27 12:10:02 +01:00
modmuss50
c1aa8ed8d7 Version Bump 2020-09-18 18:48:09 +01:00