Commit graph

59 commits

Author SHA1 Message Date
LexManos
72be0c9ccd
ForgeDev 7
Co-authored-by: Jonathing <me@jonathing.me>
Co-authored-by: Paint_Ninja <PaintNinja@users.noreply.github.com>
2026-06-30 12:43:08 -07:00
LexManos
3da1b644d0
26.2 2026-06-17 19:35:27 -07:00
LexManos
047e5fe252
26.1 Update
Minecraft is now Unobfuscated and requires Java 25
Lots of changes/code cleanup.
See https://github.com/MinecraftForge/MinecraftForge-Experimental/tree/26.1-dev for non-squashed commits.

Co-authored-by: Paint_Ninja <PaintNinja@users.noreply.github.com>
2026-03-24 14:07:41 -07:00
LexManos
01bfc33b28
1.21.11 Mounts of Mayhem Release
Lots of rendering related changes, specifically for BackedQuad and IQuadTransformers.
Removed our deprecated model generators, modders should have been using vanilla's for a while.
2025-12-09 18:28:42 -08:00
Paint_Ninja
1b5ca64f20
Fix BusGroup.DEFAULT not being trimmed after mod loading completes, also trim mod BusGroups now too (#10721)
Saves some memory by trimming various backing collections of loaded EventBuses on the default BusGroup
2025-12-02 12:17:33 -08:00
Paint_Ninja
8f7fbc76e1 Simplify ModLoader#hasCompletedState, some more cleanup to FML internals 2025-10-11 13:43:14 +01:00
Paint_Ninja
8443262e39 Improve event javadocs based on community feedback, apply jSpecify to more events 2025-10-10 14:57:38 +01:00
LexManos
b0ccf1a480
Minecraft 1.21.9 update.
There a lot of performance improvements related to events.
  No more InheritableEvent for abstract events that you shouldn't add listeners to anyway, like EntityEvent. Use their sub-events.
  Made a lot more events records and interfaces. Mostly just a binary break, but has better performance.
  Mod bus posting methods are now static, no more ModLoader.get() for those.

ObjectHolder was removed, use RegistryObject.
Changed RuntimeEnumExtender to only target Minecraft classes. If you want other modders to interact with your API, use an Interface instead of Enum.
Moved some abstract event methods to only the relevant sub-events now, e.g. can no longer check the side of a ClientTickEvent, because it'll always be client

Rendering has changed a lot, they now batch most things together so that the game will render faster.
RenderHighlightEvent changed a lot

See https://github.com/MinecraftForge/MinecraftForge-Experimental/tree/1.21.9-dev for unsquashed commits.

Co-authored-by: Paint_Ninja <PaintNinja@users.noreply.github.com>
2025-10-01 13:05:12 -07:00
LexManos
5e8942e0a7
1.21.6 - New EventBus 7
A full rewrite and redesign of the library that offers much better performance, new features and fixes all previous design flaws
See the migration guide here: https://gist.github.com/PaintNinja/ad82c224aecee25efac1ea3e2cf19b91

Co-authored-by: Paint_Ninja <PaintNinja@users.noreply.github.com>
2025-06-18 02:53:58 -07:00
Paint_Ninja
63d0496cc4
Deprecate DistExecutor for removal (#10198) 2025-04-23 20:54:22 +01:00
Jonathing
d7293a78dc
Manage FileWatcher instance per ConfigFileTypeHandler (#10213) 2024-12-22 11:59:00 -08:00
LexManos
384286a453
Cleanup lifecycle transitions
Fix mod ordering for multi-mod jars
Make dependency resolution issues easier to debug/diagnose
2024-11-11 03:04:23 -08:00
LexManos
086bcb7148
1.21.3 update 2024-10-25 18:04:34 -07:00
RealMangoRage
419c349a1f
[1.21.1] Optionally supply FMLJavaModLoadingContext as a param to mod constructors (#10074)
Also made `FMLJavaModLoadingContext` extend `ModLoadingContext`. See the PR description for example usage.
2024-08-25 21:38:31 +01:00
Paint_Ninja
9714512c31
[1.21.1] ModLoading cleanup and optimisations (#10052) 2024-08-16 22:49:11 +01:00
LexManos
aa2f471e87
Bump Night Config, Should fix #9122 2024-06-14 08:37:07 -07:00
Paint_Ninja
3d9e12a71d
Cleanup FML Bindings (#10004) 2024-06-05 09:57:42 -07:00
Paint_Ninja
549dbe7df4
Minor cleanup to ModListScreen and VersionChecker (#9988) 2024-05-30 23:51:25 +01:00
LexManos
9a2bc1e7c2
Add File.exists check to ConfigFileTypeHandler. Closes #9976 2024-05-21 11:02:43 -07:00
LexManos
8848294210
Update SimpleChannel to make StreamCodecs easier (#9959)
Rework networking so that RegistryFriendlyByteBuf is useable for modders
Simple support for StreamCodec in SimpleChannel
Codecify all Forge packets
Make simpler builder pattern for SimpleChannel. Will eventually deprecate the old MessageBuilder as it's verbose and poorly written.

Co-authored-by: MrCrayfish <4958241+MrCrayfish@users.noreply.github.com>
Co-authored-by: Paint_Ninja <PaintNinja@users.noreply.github.com>
2024-05-07 22:53:14 -07:00
Paint_Ninja
e0dccae041
Improve mod loading errors (#9870) 2024-04-18 20:02:41 +01:00
LexManos
d21556a4da
Update licenser plugin, and re-run it. Closes #9855 2024-01-29 12:27:45 -08:00
Paint_Ninja
a4c26c9b2b
[1.20.x] More buildscript clean-up (#9845) 2024-01-19 20:54:15 +00:00
Paint_Ninja
f09fd1f05b
Make common DisplayTest registration tasks easier (#9822) 2023-12-27 08:57:02 -08:00
LexManos
d44d0b8edc
Support pack overlay system. Closes #9818 2023-12-13 14:42:49 -08:00
Paint_Ninja
8445f73b2d
Add clientSideOnly feature to mods.toml (#9804) 2023-12-11 13:10:33 -08:00
LexManos
6f9f0f0cfa
Revive executable jars for the dedicated server
This has a minor change to development time build scripts. So developers, check the MDK
2023-12-06 10:33:58 -08:00
LexManos
e34090c809
Buildscript cleanup and organization.
Updated to use newer libraries that reduce the command line arguments needed to run the game.
Fix issues in the SecureModule's classloader that caused resources to not be seen when they are on parent module layers.
2023-10-24 16:24:13 -07:00
LexManos
084effdadf
1.20.2-pre3 2023-09-12 12:34:59 -07:00
LexManos
4649f7af36
Rewrite networking. 2023-09-10 20:27:15 -07:00
cpw
7d0330eb08
Try and be a bit nicer about handling bad [feature] definitions (#9606)
* Try and be a bit nicer about handling bad [feature] definitions - they're single square bracket defined and require strings for feature bound values.

* Some more tweaks to the feature system to output useful and well formatted error messages when bounds fail. Requires SPI 7.0.1 and the language string "fml.modloading.feature.missing" has changed.

* Use immutable lists where possible and generally tidy things a bit
2023-06-28 22:27:59 -04:00
cpw
8c003dd965
More tweaks to the mod loading callbacks to make loading bars work better (#9585) 2023-06-22 20:36:09 +02:00
cpw
031d008826
This is an early display window system for forge. (#9558) 2023-06-19 13:01:45 +02:00
SizableShrimp
d8c84e2949 Forge 1.20
- Creative mode tabs are now a registry; the `BuildContents` event was renamed to `BuildCreativeModeTabContentsEvent` and moved it to its own class
- The pack format is now 15 for both resource packs and data packs
- `ScreenUtils` was deprecated in favor of a `GuiGraphics` extension
- Forge and the MDK were updated to Gradle 8 and FG6
- The Forge common config file was removed (it only contained the deprecated old fields for resource caching, which was removed in 1.19.3)
- Registry dummy entries were removed
- `RemappingVertexPipeline` was fixed to forward the `endVertex()` call
- Forge tool tags were removed in favor of vanilla ones

Co-authored-by: ChampionAsh5357 <ash@ashwork.net>
Co-authored-by: coehlrich <coehlrich@users.noreply.github.com>
Co-authored-by: Dennis C <11262040+XFactHD@users.noreply.github.com>
Co-authored-by: Matyrobbrt <matyrobbrt@gmail.com>
2023-06-07 20:55:09 -05:00
Dennis C
6ee20899bf
Log error when Sheets is class-loaded before registration is completed (#9475) 2023-05-29 13:47:04 -07:00
Joseph B
8abe9b6b0c
Add API for registering custom world preset editors (#9436) 2023-05-14 15:53:34 -05:00
Dennis C
3de22ffba3
Collect and log exceptions occurring in DeferredWorkQueue tasks (#9449) 2023-05-04 16:43:34 -07:00
Dennis C
684d36201f
Add option to completely hide a crash-callable depending on a runtime value (#9372) 2023-03-20 14:15:59 -07:00
LexManos
3fffc18729
Fix crouching while sprinting stopping the player when step height is modified. Closes #9376 2023-03-14 23:56:29 -07:00
cpw
50f325c8fe
Fix reloading event firing during server shutdown and add explicit unloading event instead (#9016) 2023-02-06 13:30:16 -08:00
SizableShrimp
8255d7aed3 Forge 1.19.3
Created a CreativeModeTabEvent to register creative mode tabs and populate entries per tab
Moved datapack registries to DataPackRegistryEvent.NewRegistry event instead of tying them to ForgeRegistry
Made it easier for mods to datagen datapack builtin entries with DatapackBuiltinEntriesProvider
Provided access to lookupProvider for datagen
Updated dependencies to match versions used by vanilla and update JarJar to 0.3.18
Added a test mod for the new CreativeModeTabEvent
Throws better error message for Forge registries in tag datagen
Deleted ForgeRegistryTagsProvider
Updated ClientChatReceivedEvent and ServerChatEvent for Mojang changes
Added patches for both sign related methods in ModelLayers
Changed RegisterShadersEvent to use ResourceProvider
Migrated old Mojang math types to JOML

Co-authored-by: Marc Hermans <marc.hermans@ldtteam.com>
Co-authored-by: LexManos <LexManos@gmail.com>
Co-authored-by: sciwhiz12 <arnoldnunag12@gmail.com>
Co-authored-by: coehlrich <coehlrich@users.noreply.github.com>
2022-12-08 01:45:22 -06:00
Marc Hermans
aae628cd18
Fix performance issue and logging when resource caching is enabled (#9029) 2022-10-12 12:00:25 -07:00
Emma, Cypress, Rose ⚘
2049096c6f
Add User-Agent header to requests made by the update checker (#8881)
Format: Java-http-client/<Java version> MinecraftForge/<ForgeVer> <ModId>/<ModVersion>
2022-07-20 10:57:57 -07:00
cpw
7bb97dafda
Add "send to mods in order" method to ModList and use it (#8759)
* Add "send to mods in order" method to ModList and use it in RegistryEvents and DataGen..
* Also preserve order in runAll
* Do better comparator thanks @pupnewfster
* postEvent as well.
2022-06-20 16:11:33 -04:00
Marc Hermans
5979636ee5
Jar-In-Jar (#8715) 2022-06-15 12:27:47 -07:00
cpw
e16f54eebe
Implement a simple feature system for Forge (#8670)
* Implement a simple feature system for Forge. Allows mods to demand certain features are available in the loading system. An example for java_version is provided, but not expected to be used widely. This is more targeted to properties of the display, such as GL version and glsl profile.

Requires https://github.com/MinecraftForge/ForgeSPI/pull/13 to be merged first in ForgeSPI, and the SPI to be updated appropriately in build.gradle files.

* rebase onto 1.19 and add in SPI update
2022-06-09 17:00:39 -04:00
cpw
27480c15fa
displayTest option in mods.toml (#8656)
* displayTest option in mods.toml
* "MATCH_VERSION" (or none) is existing match version string behaviour
* "IGNORE_SERVER_VERSION" accepts anything and sends special SERVERONLY string
* "IGNORE_ALL_VERSION" accepts anything and sends an empty string
* "NONE" allows the mod to supply their own displaytest using the IExtensionPoint mechanism.


* Update display test with feedback and added the mods.toml discussion in mdk.
2022-06-09 16:39:00 -04:00
cpw
0c35436217
Add method with pre/post wrap to allow setting/clearing mod context. (#8682)
Fixes ActiveContainer in ModContext not being present in registry events. Closes #8680
2022-06-08 08:38:53 -07:00
SizableShrimp
4ed9117799 Forge 1.19
* Bump pack.mcmeta formats
* 1.19 biome modifiers
* Mark ClientPlayerNetworkEvent.LoggedOutEvent's getters as nullable
* Add docs and package-info to client extension interfaces package
* Move RenderBlockOverlayEvent hooks to ForgeHooksClient
* Add package-infos to client events package
* Rename SoundLoadEvent to SoundEngineLoadEvent

This reduces confusion from consumers which may think the
name SoundLoadEvent refers to an individual sound being loaded rather
than the sound engine.
* Document and change SoundLoadEvent to fire on mod bus

Previously, it fired on both the mod bus and the Forge bus, which is
confusing for consumers.
* Delete SoundSetupEvent

Looking at its original implementation shows that there isn't an
appropriate place in the new sound code to reinsert the event, and the
place of 'sound engine/manager initialization event' is taken already by SoundLoadEvent.
* Perform some cleanup on client events

 - Removed nullable annotations from ClientPlayerNetworkEvent
 - Renamed #getPartialTicks methods to #getPartialTick, to be consistent
  with vanilla's naming of the partial tick
 - Cleanup documentation to remove line breaks, use the
  spelling 'cancelled' over
  'canceled', and improve docs on existing and
   new methods.
* Remove EntityEvent.CanUpdate

Closes MinecraftForge/MinecraftForge#6394
* Switch to Jetbrains nullability annotations
* New PlayLevelSoundEvent; replaces old PlaySoundAtEntityEvent
* Remove ForgeWorldPresetScreens
* Remove IForgeRegistryEntry
* Remove use of List<Throwable> in FML's CompletableFutures
* Add docs to mod loading stages, stages, and phases
* Gradle 7.4.2
* Use SLF4J in FMLLoader and other subprojects
* Switch dynamic versions in subprojects to pinned ones
* Switch ForgeRoot and MDK to FG plugin markers
* Configure Forge javadoc task

The task now uses a custom stylesheet with MCForge elements, and
configured to combine the generation from the four FML subprojects
(fmlloader, fmlcore, javafmllanguage, mclanguage) and the Forge project
into the javadoc output.
* Update docs/md files, for 1.19 update and the move away from IRC to Discord.
* Make "Potentially dangerous alternative prefix" a debug warning, not info.

Co-authored-by: Curle <curle@gemwire.uk>
Co-authored-by: sciwhiz12 <arnoldnunag12@gmail.com>
Signed-off-by: SizableShrimp <sizableshrimp@sizableshrimp.me>
2022-06-07 15:31:26 -05:00
Leon Linhart
bc0d7179cc
Update IExtensionPoint javadoc to be correct (#8568) 2022-05-03 18:38:28 +01:00