Commit graph

120 commits

Author SHA1 Message Date
modmuss50
9ff28f4026
Split client only code into its own sourceset. (#2179)
A common source of crashes on modded Minecraft servers comes from modders accidently calling client only code from the client, this PR is another large step towards elimitating that.

This PR has been months in the making and years in the planning, requiring major changes to Loom & Loader. In recent Minecraft versions Mojang has made it easier than ever to cleanly split the jar, going against the status-quo of merging the client and server into one jar.

From the start we have designed Fabric to have a very clear split between client and common (client & server) code. Fabric has always encoraged keeping client only code seprate from the server, this can be seen at a fundamental level with the entrypoints in Loader. Fabric API's have all been designed with this mind.

This PR provides a compile safety net around Fabric API using client only code on the server. Even though there are almost 400 changed files, minimal changes beyond moving the files were required to achieve this in Fabric API, thanks to the effort of all contributors in the past.

These changes should not affect modders or players in anyway, a single "universal" jar is still produced. Im happy to awnswer any questions.
2022-05-21 16:26:46 +01:00
modmuss50
23acfcd6a1 Update mappings. 2022-05-20 18:56:00 +01:00
modmuss50
55043e695a 1.19-pre1 2022-05-18 19:16:52 +01:00
modmuss50
56447d9b95 22w17a 2022-04-27 20:48:57 +01:00
modmuss50
8eae451042 22w15a 2022-04-13 19:03:57 +01:00
modmuss50
0c7c3953f9 Merge remote-tracking branch 'origin/1.18.2' into 1.19 2022-04-10 17:20:49 +01:00
Algeseven
7b0f312611
Make @see refer to the right class (#2085) 2022-04-10 16:27:32 +01:00
modmuss50
09a7afff2f 22w13a 2022-03-31 18:38:32 +01:00
modmuss50
a67d2aa505 22w12a 2022-03-24 20:18:23 +00:00
Player
c8c49daef7 Update mappings 2022-03-23 01:15:45 +01:00
Player
7463d67c85 22w11a 2022-03-18 00:33:37 +01:00
modmuss50
801ec85b51 Fix checkstyle issues missed after merging. 2022-03-03 18:36:57 +00:00
modmuss50
2873dd5713 1.18.2-pre2 2022-02-21 16:22:21 +00:00
modmuss50
58afd26713
1.18.2-pre1 Biome API (#2010)
* Fix BiomeSelectors.tag

* Update fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/api/biome/v1/BiomeSelectionContext.java

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

* Checkstyle

* Port Biome API

Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
2022-02-21 11:58:35 +00:00
modmuss50
5a05a77ac9 22w07a 2022-02-16 19:24:00 +00:00
modmuss50
55dca1a4f3 Update mappings. 2022-02-16 18:14:59 +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
54e5b2eccb 22w05a
Remove 1.18.1 support.
2022-02-02 18:34:04 +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
shartte
b02b2d58e3
Move biome modification into the MinecraftServer constructor (#1966)
* Move biome modification into the MinecraftServer constructor to have access to the actual level generation settings for the level.

* Move biome modification into the MinecraftServer constructor to have access to the actual level generation settings for the level.

* Move biome modification into the MinecraftServer constructor to have access to the actual level generation settings for the level.

* Ensure the feature ordering in BiomeSource is updated after modifying biomes.

* Don't use var

* Use the opportunity to check the real chunk generators for
the specified structure.
2022-01-30 18:57:57 +00:00
modmuss50
ded849a999 Revert "Add some useful worldgen transitive access-wideners. (#1844)"
This reverts commit c8c981c1db.
2021-12-03 13:49:32 +00:00
modmuss50
c8c981c1db
Add some useful worldgen transitive access-wideners. (#1844)
* Add a handful of useful transitive access wideners for world gen.

* Require loaded 0.12

* Add some more.
2021-12-03 13:35:07 +00:00
Player
3ac43d9577 Revert Mixin compatibilityLevel bump, bump versions 2021-11-17 03:29:11 +01:00
modmuss50
a217a6d0d4 Fix post merge/port biome api 2021-11-16 18:57:46 +00:00
shartte
0f02669fd0
Restored the state of the biome api to what it was during the snapshots. Migrated from accessors to AWs. (#1834) 2021-11-16 18:45:37 +00: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
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
168f4a3be2 Bump version 2021-10-31 11:13:10 +00:00
modmuss50
edf35c6176 Make dimension API stable. Remove usage of @Deprecated for experimental modules. 2021-10-31 10:59:59 +00:00
modmuss50
af0cec4081
Add features to the allowed features set. Fixes features not spawning when added via the biome api. (#1796) 2021-10-31 10:41:16 +00:00
modmuss50
0b944752fc 21w43a 2021-10-27 20:48:33 +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
d1937ce458 21w40a 2021-10-07 16:10:04 +01:00
modmuss50
6eb8b35a31 21w39a 2021-09-29 20:03:16 +01:00
modmuss50
dc3d5c4769 21w38a 2021-09-23 18:30:50 +01:00
modmuss50
8f2c3e04fb Bump version 2021-09-21 11:41:06 +01:00
shartte
04a230163e
Biome API without Overworld for now [1.18] (#1732)
* Restore Biome API as far as possible. Removed Overworld Biome additions for now until a new API can be worked out while the Vanilla changes stabilize.

* Now with more checkstyle.
2021-09-20 17:37:52 +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
cbda9318cd
Update Gradle/Loom and mappings. (#1692)
* Update Gradle/Loom and mappings.

* Fix deprecations and enforce

* Review feedback

* More cleanup and deprecation fixes.
2021-08-31 14:00:20 +01:00
modmuss50
b06cb95bac Bump version 2021-08-24 18:52:24 +01:00
deirn
647b9e3efb
Add biome tag selector (#1640)
* Move biome modifications after datapack loaded

* Biome tag selector
2021-08-24 17:44:19 +01:00
deirn
0d6db0fc9d
Move biome modifications after datapack loaded (#1571) 2021-08-24 17:43:51 +01:00
modmuss50
3fe74aa162 Bump version 2021-08-18 18:39:11 +01:00
Maity
f3747de3d0
Fix typo (#1637) 2021-08-17 19:07:42 +01:00
Player
c345aea85c Fix biome testmod accessor mixin being clientside despite used by the server 2021-06-10 16:02:56 +02:00
Player
9e521e1377 Fix biome modifications not being applied (matching/porting bug)
Co-authored-by: frqnny <45723631+frqnny@users.noreply.github.com>
2021-05-27 04:20:34 +02:00
modmuss50
5d08011ac3 Bump version 2021-05-25 18:33:34 +01:00
TelepathicGrunt
f37e715554 Fixed Biome Modification API not working for datapack provided biomes (#1463)
* Fixed Biome Modification API not working for json biome

* upgraded test to add to all deserts and added json biome. (note the test mod won't load the json biome tho. Make it into a datapack so it works)

* switched set of rgeistrykeys to set of biome instances

* added datapack as backup to test mod

* removed unused imports

* removed the biome json file from the test mod's data folder
2021-05-25 18:26:43 +01:00
modmuss50
a02b4463f9 21w19a 2021-05-12 20:23:04 +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
41a6855274 21w10a 2021-03-10 19:21:48 +00:00
modmuss50
1eb2670e8a 21w05a 2021-02-03 19:53:20 +00:00
modmuss50
36b77c3e9f 21w03a 2021-01-20 19:50:47 +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
f1dfa4ca83 Bump version 2020-11-15 19:58:59 +00:00
RedstoneParadox
7271fb4047 End Biomes Api [1.16] Take Two (#1164)
* Create EndBiomes.java

* Revert "Create EndBiomes.java"

This reverts commit 4d1736fad9.

* Revert "Revert "Create EndBiomes.java""

This reverts commit 673c508d82.

* Rename ContinentalBiomeEntry to WeightedBiomeEntry

* Complete API for adding biomes to the end

* Mixin to end biome source

* Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry"

This reverts commit 849197e15d18c26af2a6f2aa1766b7d73d9a7144.

* Revert "Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry""

This reverts commit c2aa4ab097eb3daed71e82d4e77142671ed04316.

* Create SimpleLayerRandomnessSource for use with end biome source mixin

* Renamed MAIN region to MAIN_ISLANDS

* Create test mod

* Added pickFromNoise method to WeightedBiomePicker

* Javadoc and licensing info

* Comply with checkstyle

* Internalize EndRegion

* Added stretching when getting the biome for the end

* Rename EndBiomes to TheEndBiomes to be consistent with yarn mappings

* Fix typo

Courtesy of i509VBC

Co-authored-by: i509VCB <i509vcb@gmail.com>

* Add @Unique to private fields in MixinTheEndBiomeSource

* Made end test biome consistent in style with previous test

Courtesy of i509VBC

Co-authored-by: i509VCB <i509vcb@gmail.com>

* Fix imports

* Didn't know test mods needed to follow the checkstyle

* SimpleLayerRandomnessSource's random is now use to instantiate its noise sampler

* A very important note

* Update javadoc for adding biomes to the Main Island region

* Remove method that is leftover from when EndRegion was part of the API

* Ported 1.16.1 biomes-api-v1 to 1.16.2.
Public API changes:
- Removed flagging biomes as suitable for player spawns since that is now handled in the Biome Builder.
- Changed API over to RegistryKey's, not because it's necessary, but because it is more ergonomic since Vanilla Biomes in BuiltInBiomes are now all exposed as keys, rather than instances.

* Increase memory size to fix build failures.

* Add the ability to add modded dimensions to the regions of the end.

* Hopefully fixed everything that went wrong during the rebase

* Update fabric-biome-api-v1.mixins.json

* Finally got custom end biomes to generate

* Thanks for nothing, GitHub Desktop

* Bad GitHub Desktop

* Bad newline no cookie

* Got everything to follow the checkstyle

* Bring branch up-to-date with main repo (#11)

* Revert "Bring branch up-to-date with main repo (#11)"

This reverts commit dc47106241.

* Remove some stuff that's not supposed to be there

* Fix git silliness

* Update FabricBiomeTest.java

* TheEndBiomes is now Deprecated to match OverworldBiomes and NetherBiomes

* Update some checkNotNull messages

* Change the noise scale when replacing end biomes

* Bad space no cookie

* Remove unnecessary code

* Remove unused imports

* Set up InternalBiomeData to treat End Midlands and End Barrens as border biomes

* Changed the API to reflect midlands and barrens biomes being considered border biomes

* Start work on getting the new system fully working

* Finally got everything working and cleaned up the Javadoc

* Fixed checkstyle violations

* Fix checkstyle violations again

* Drop fabric_ prefix

* Calling SimpleLayerRandomnessSource#nextInt() now throws an exception

* If the midlands or barrens biome picker is null, the replacement key defaults to the vanilla one

* Fix usage of vanilla identifier

* Update MixinTheEndBiomeSource.java

* Fix checkstyle violations

Co-authored-by: i509VCB <i509vcb@gmail.com>
Co-authored-by: Sebastian Hartte <sebastian@hartte.de>
2020-11-15 19:46:07 +00:00
modmuss50
574324acca Revert "End Biomes Api [1.16] (#830)"
This reverts commit a2bb17cf
2020-11-13 19:07:40 +00:00
modmuss50
5d548eda2d Revert "Fix end biome test mod crashing."
This reverts commit de647a4c
2020-11-13 19:07:29 +00:00
modmuss50
de647a4cd6 Fix end biome test mod crashing. 2020-11-13 18:45:21 +00:00
RedstoneParadox
a2bb17cf40 End Biomes Api [1.16] (#830)
* Create EndBiomes.java

* Revert "Create EndBiomes.java"

This reverts commit 4d1736fad9.

* Revert "Revert "Create EndBiomes.java""

This reverts commit 673c508d82.

* Rename ContinentalBiomeEntry to WeightedBiomeEntry

* Complete API for adding biomes to the end

* Mixin to end biome source

* Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry"

This reverts commit 849197e15d18c26af2a6f2aa1766b7d73d9a7144.

* Revert "Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry""

This reverts commit c2aa4ab097eb3daed71e82d4e77142671ed04316.

* Create SimpleLayerRandomnessSource for use with end biome source mixin

* Renamed MAIN region to MAIN_ISLANDS

* Create test mod

* Added pickFromNoise method to WeightedBiomePicker

* Javadoc and licensing info

* Comply with checkstyle

* Internalize EndRegion

* Added stretching when getting the biome for the end

* Rename EndBiomes to TheEndBiomes to be consistent with yarn mappings

* Fix typo

Courtesy of i509VBC

Co-authored-by: i509VCB <i509vcb@gmail.com>

* Add @Unique to private fields in MixinTheEndBiomeSource

* Made end test biome consistent in style with previous test

Courtesy of i509VBC

Co-authored-by: i509VCB <i509vcb@gmail.com>

* Fix imports

* Didn't know test mods needed to follow the checkstyle

* SimpleLayerRandomnessSource's random is now use to instantiate its noise sampler

* A very important note

* Update javadoc for adding biomes to the Main Island region

* Remove method that is leftover from when EndRegion was part of the API

* Ported 1.16.1 biomes-api-v1 to 1.16.2.
Public API changes:
- Removed flagging biomes as suitable for player spawns since that is now handled in the Biome Builder.
- Changed API over to RegistryKey's, not because it's necessary, but because it is more ergonomic since Vanilla Biomes in BuiltInBiomes are now all exposed as keys, rather than instances.

* Increase memory size to fix build failures.

* Add the ability to add modded dimensions to the regions of the end.

* Hopefully fixed everything that went wrong during the rebase

* Update fabric-biome-api-v1.mixins.json

* Finally got custom end biomes to generate

* Thanks for nothing, GitHub Desktop

* Bad GitHub Desktop

* Bad newline no cookie

* Got everything to follow the checkstyle

* Bring branch up-to-date with main repo (#11)

* Revert "Bring branch up-to-date with main repo (#11)"

This reverts commit dc47106241.

* Remove some stuff that's not supposed to be there

* Fix git silliness

* Update FabricBiomeTest.java

* TheEndBiomes is now Deprecated to match OverworldBiomes and NetherBiomes

* Update some checkNotNull messages

* Change the noise scale when replacing end biomes

* Bad space no cookie

* Remove unnecessary code

* Remove unused imports

* Set up InternalBiomeData to treat End Midlands and End Barrens as border biomes

* Changed the API to reflect midlands and barrens biomes being considered border biomes

* Start work on getting the new system fully working

* Finally got everything working and cleaned up the Javadoc

* Fixed checkstyle violations

* Fix checkstyle violations again

* Drop fabric_ prefix

* Calling SimpleLayerRandomnessSource#nextInt() now throws an exception

Co-authored-by: i509VCB <i509vcb@gmail.com>
Co-authored-by: Sebastian Hartte <sebastian@hartte.de>
2020-11-13 18:32:04 +00:00
modmuss50
df3673f0bc 20w46a 2020-11-11 20:18:14 +00:00
modmuss50
8367596d56 Bump Version 2020-10-30 20:44:41 +00:00
shartte
f5a9be8988
Biome Modification API (#1097)
* Biome Modification API

* Improved docs on Mixins.

* Added convenience methods to select biomes by mob-spawns, and added a top-level convenience method to add new spawns.

* Checkstyle fixes.

* Replace a reference to DRM with DynamicRegistryManager

* Replaced integer order with phase-based ordering.

* Changed to @Deprecated

* Checkstyle fix

* Added category selector.
2020-10-30 20:08:54 +00:00
shartte
c29459abaf
Ported 1.16.1 biomes-api-v1 to 1.16.2 (#1053)
* Ported 1.16.1 biomes-api-v1 to 1.16.2.
Public API changes:
- Removed flagging biomes as suitable for player spawns since that is now handled in the Biome Builder.
- Changed API over to RegistryKey's, not because it's necessary, but because it is more ergonomic since Vanilla Biomes in BuiltInBiomes are now all exposed as keys, rather than instances.

* Changed to CheaterCode's mixin for modifying the nether biomes, saving us one accessor.

* Move Bonanza

* Finished moving and updating of the module, added experimental markers.

* Adjusted experimental notes.

* Finished rename from biomes-v1 to biome-api-v1

* Reverted memory settings in preparation for loom-0.5
2020-09-18 18:11:51 +01:00