Commit graph

1534 commits

Author SHA1 Message Date
Syst3ms
25e1b4769d
Data Attachment API (#3476)
* Data Attachment API

* javadoc

* Remove AttachmentSerializer & independent syncability and persistence

- removed AttachmentSerializer in favor of codecs
- renamed serializability to "persistence"
- made persistence and syncability independent switches
- reworked convenience registry methods to use Suppliers from the get-go

* Move some serialization-related methods to impl

- changed logger name

* rename Attachment to AttachmentType

* Added DefaultedAttachmentType and reworded Javadoc

* add warning in getAttached

* javadoc

* fix defaulted API

* Add unit tests

* remove DefaultedAttachmentType, add helper methods

bikeshedding inbound

* add more unit tests

* add testmod

it works

* stash syncing for a further PR

* missed license header

* address most reviews

* more reviews

* naming convention

* fix tyop

* fix invalid file name error

* simplify API in the absence of sync

It was established that the presence of a codec might be useful for other things than persistence, and while this seems to couple the two, the API can be changed later in a backward-compatible way if need be.

* couple codec with persistence

committing to the change I mentioned previously

* little fixes

* Fix mixins + requests

- Copy attachments on entity copy,& with a customizable flag in the case of player respawn
- Call relevant change-notifying methods when calling setAttached on BEs and chunks
- Change persistence key
- Fix mixin visibility

* Write tests for entity copy

* replace mixin by COPY_FROM event

* missed license header

* more advanced copy mechanics

- attachments require an EntityCopyHandler to be copied across entities
- a copy handler is automatically derived if there's a codec
- updated javadoc for chunk and BE targets

* Revert "more advanced copy mechanics"

This reverts commit 3f53b554fb.

* replaced complicated API by a stern warning

- also handled cross-world entity teleportation

* add gametest

* fix compilation

* flipped boolean

* forgot some more bools to flip

* requests

* fix FMJ

* fix BE mixin and add gametest

* add client player entity copying

* Use new mob conversion event

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
2024-01-19 11:14:33 +00:00
modmuss50
502a698e69 Bump version 2024-01-17 18:04:56 +00:00
deirn
bf1eca5483
fix login network addon not properly initialized (#3531) 2024-01-17 17:55:42 +00:00
modmuss50
e572f21602 Bump version 2024-01-15 13:54:42 +00:00
modmuss
a438717a2c Update to loom 1.5 (#3515)
* Update to loom 1.5

* Continue to use the mixin AP for now.

* Bump

(cherry picked from commit 05ec3fa1a9)
2024-01-15 13:41:00 +00:00
Jared
85d85a93b5
Don't tick gametests if the server isn't ticking (#3528)
* Don't tick gametests if the server isn't ticking

* Fix import order
2024-01-15 13:40:07 +00:00
modmuss
d6f2b0841c
Stack aware getFoodComponent (#3520)
* Stack aware `getFoodComponent`

Co-authored-by: Phoupraw <50520903+phoupraw@users.noreply.github.com>

* Back to redirects

---------

Co-authored-by: Phoupraw <50520903+phoupraw@users.noreply.github.com>
2024-01-15 13:39:30 +00:00
Syst3ms
44c0f8c656
Add mob conversion event (#3511)
* Add mob conversion event

* spacing

* use a smarter mixin strategy

* add pig and villager lightning triggers

* tyop

Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>

* handle tadpole -> frog conversion

- update javadoc to clarify the handled cases
- document keepEquipment parameter
- improve mixin handler names

---------

Co-authored-by: haykam821 <24855774+haykam821@users.noreply.github.com>
2024-01-15 13:39:14 +00:00
modmuss50
a462da68c6 Bump version 2024-01-11 20:47:56 +00:00
modmuss50
7eebb47af6 Exclude meta projects from main maven artifact.
This fixes being unable to depend on it in dev.
2024-01-11 20:46:52 +00:00
modmuss50
0fd1430e85 Bump version 2024-01-11 16:09:20 +00:00
Jason Penilla
679aae3c9a
add fabric-api-bom and fabric-api-catalog (#3487)
* feat: add fabric-api-bom and fabric-api-catalog

* spotlessApply

* Apply suggestions from code review

Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
Co-authored-by: Juuz <6596629+Juuxel@users.noreply.github.com>
2024-01-11 15:45:18 +00:00
deirn
b7e14635cf
fix local login query response handler not working (#3495) 2024-01-11 15:45:01 +00:00
ErrorCraft
a21facc05f
Add a system property for a custom output directory for gametest structures (#3509)
* Add a check for the output directory in the test command

* Fix style and add a run configuration with the output directory set

* Update fabric-gametest-api-v1/build.gradle

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
2024-01-11 15:44:46 +00:00
Jonathan Coates
82b1bb3ec3
Check for the correct BE type in the lookup API (#3510)
The block lookup API's registerForBlockEntities method currently just
registers the passed provider for each valid block for that block
entity.

However, in some situations (such as update suppression or a misbehaving
mod), the wrong block entity will be present for one of these blocks.
This means that the (incorrect) block entity will be passed off to the
provider. Providers (especially those registered with
registerForBlockEntity) will often blind-cast the supplied BE, leading
to crashes.

While the wrong BE being present is a bug, we should follow vanilla's
lead and handle this more gracefully. In this case, we just check
whether the correct BE type is present before forwarding it to the
main provider.
2024-01-11 15:44:32 +00:00
deirn
e8434230ce
fix jukebox state getting changed mid-transaction (#3517) 2024-01-11 15:44:19 +00:00
modmuss50
dbf67aaec0 Bump version 2024-01-05 18:26:37 +00:00
modmuss
875cc147cf
Fix race condition when handling unknown packets. (#3508) 2024-01-05 18:12:37 +00:00
modmuss50
1681346ec9 Bump version 2023-12-27 13:21:54 +00:00
Kevin
389931eb7a
Add Client After Block Break Event (#3367)
* Add clientside after block break event

* Update tests

* Checkstyle, of course

* Update Javadoc

* New Event

* Checkstyle 2 electric boogaloo

* Remove block entity parameter

* Refactor ClientPlayerBlockBreakEvents

* Update Javadoc
2023-12-27 12:59:01 +00:00
modmuss50
06274a4716 Test fix: Object Builder API's Testmod crashing on windows. Closes #3480 2023-12-27 12:58:09 +00:00
modmuss50
4ced05928d Fix sleeping direction always being null.
Closes #3470
Closes #3471
2023-12-16 10:32:34 +00:00
modmuss50
33cef71655 Bump version 2023-12-08 15:43:09 +00:00
modmuss
f4db263479
Update loom and Gradle (#3452) 2023-12-08 15:19:29 +00:00
modmuss
78d798af9d
Update to loader 0.15 (#3451) 2023-12-08 15:19:17 +00:00
deirn
8cf3df9c01 Copy untyped payload buffer on read/write (#3450)
* copy untyped payload buffer on read/write

* use the actual handler on junit tests

(cherry picked from commit 95a8ac5184)
2023-12-08 15:18:31 +00:00
Phoupraw
0e40ff486c Fix FluidStorageUtil#moveWithSound Play Sound (#3431)
* fix play sound

* Update fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/api/transfer/v1/fluid/FluidStorageUtil.java

* Fix chute testmod

---------

Co-authored-by: modmuss <modmuss50@gmail.com>
(cherry picked from commit 4944b5a5ee)
2023-12-08 15:18:29 +00:00
modmuss50
b46767fdfc 1.20.4 2023-12-07 22:02:02 +00:00
modmuss50
dc89771ba2 1.20.4-rc1 2023-12-06 17:20:08 +00:00
modmuss50
e5e39e755d 1.20.3-pre4 2023-11-29 22:28:22 +00:00
modmuss50
f6e85ac2bb 1.20.3-pre3
Just mapping updates
2023-11-27 16:17:03 +00:00
modmuss50
e0858cfb7b Bump version 2023-11-27 10:28:56 +00:00
deirn
901470e4e3 Only retain buffer on receiving side (#3446)
(cherry picked from commit e3b6950386)
2023-11-27 10:22:46 +00:00
modmuss50
00e49842c5 Bump version 2023-11-26 13:52:44 +00:00
deirn
bd733d6b9f Avoid serializing object-based payload into PacketByteBuf on the main thread (#3407)
* channeled network addon refactor

* checkstyle

* fix junit tests

* convert TypedPayload <-> UntypedPayload if necessary

* assert payload size

* add vm arg to force serialization

* change log level to info and make it single line

(cherry picked from commit 6225d43a70)
2023-11-26 13:09:47 +00:00
Technici4n
aaf9c9690c
Fix empty storage iterator returning views that become empty during iteration (#3423) 2023-11-26 13:00:57 +00:00
modmuss
de5c6cca0a
Fix registry resource conditions on loot tables. (#3432)
* Fix registry resource conditions on loot tables.

* assert we dont already have the DRM set on this thread.

* Use a sync map
2023-11-26 13:00:48 +00:00
modmuss50
1b2a41bc96 1.20.3-pre2 2023-11-22 15:24:46 +00:00
modmuss50
d49cb47876 Update generated TAWs. 2023-11-21 08:16:48 +00:00
modmuss50
ed814d36ba 1.20.3-pre1
Just a mappings update :)
2023-11-20 16:36:56 +00:00
modmuss50
7feff5da3e Fix creative inventory buttons showing without any modded item groups.
Also, a minor code cleanup from the port.
2023-11-17 17:55:40 +00:00
modmuss50
6f7ba8f277 23w46a 2023-11-16 17:01:20 +00:00
apple502j
a2e8758a92
23w45a porting fixes (#3421) 2023-11-16 16:11:10 +00:00
modmuss50
23e8616e74 23w45a 2023-11-08 16:26:36 +00:00
modmuss50
0f7e959b65 Bump version 2023-11-02 12:50:14 +00:00
Technici4n
d6f4a34e15
Fix log spam with multiple calls to combinedItemApiProvider (#3387) 2023-11-02 10:35:06 +00:00
Technici4n
6ed720cee5
Fix custom ingredient serialization with allowEmpty (#3389)
* Fix custom ingredient serialization with allowEmpty

* Remove custom First codec

* Fix checkstyle
2023-11-02 10:33:44 +00:00
modmuss
8ed13effa6 Network addon session refactor (#3394)
* refactor network addon session handling

* Check payload size

* Fix ClientLoginNetworkAddon does not handle unsuccessful query responses
Closes #3384

* Adjust some logging.

---------

Co-authored-by: deirn <deirn@bai.lol>
(cherry picked from commit bff13c8545)
2023-11-02 10:33:12 +00:00
Estecka
5aa6d9a6d4 Fix Doubles not being editable in the game-rule menu (#3397)
* Fix double gamerules rules not being editable in menu

* Updated `validate`'s javadoc

(cherry picked from commit a44e16a6dc)
2023-11-02 10:31:32 +00:00
modmuss50
f31bf881a9 23w44a 2023-11-01 17:00:09 +00:00