* 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
ClosesMinecraftForge/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>
After internal discussion, it was decided that we need to include
"contributors" to the license header. This avoids claiming that the
Java source files are under the exclusive copyright ownership of Forge
LLC, which excludes contributors that still hold copyright ownership
over their contributions (but is licensed under the LGPLv2.1 as stated
in the Forge CLA).
Convert Forge to use Official mappings.
Mojang released their obfuscation mappings but we have not used them up until now due to wanting to get their license to be more explicitly permissive.
It is clear that their intent is to allow us to use their names for developing mods like this.
See the full wording, and our interpretation here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
Fix VoidFluidHandler.INSTANCE not being a instance of VoidFluidHandler. Closes#5602
Remove backwards compat code and make IItemHandler.isItemValid non-default. Closes#5598
Make Container.mergeItemStack respect target slot's max size when slot is non-empty. Closes#3498
Fix Shift clicking in Beacons with stacked items when fuel slot is empty.
Add the actual patches that I forgot.
Add simple implementations of IStorage and the factory methods.
Add ItemStackHandler. A simple IItemHandler implementaton.
return nulls, not throw nulls.
Move the vanilla wrappers to a separate class for now.
Minor clean ups of VanillaWrapper code.
Inline static methods.
Add comments.
Minor cleanup of code.
Remove redundant size field and add a validate slot index method.
Minor formatting issues.
Break early If stacksize to insert is 0.
Remove setByte() methods.
Throw exception if IItemHandler can't be modifyed in NBT loading.
Replace event handler with patches
Add capability to mine cart inventory entities.
Change formatting and registration of capability.
Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them.
Reduce patch sizes
Lazy initialization of the item handler for vanilla tiles.
Minor formatting changes.
Create a single vanilla chest item handler that will merge with adjacent chests when detected. Added hooks to reset the cached adjacent value when a block update is detected and when a chunk loads.
Revert "Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them."
This reverts commit 306d4a37fd0e8c8a0754411c013b750dfe8e2c87.
Fix furnace derp
Replace double chest code with a simpler method.
Vanilla wrappers implement IItemHandlerModifiable (since they are modifiable)
Minor code cleanups
Add an onContentsChanged() and onLoad() callback methods.to the default implementation.
Add slot as a parameter in the callback method.
Change IItemHandlerModifiable.setStackInSlot() to void, and added a note about not being intended for cross-mod use.
Improve ItemStackHandler handling of errored NBT.
Make the stacks array protected.
Fix a lot of derps in SlotItemHandler.
Fix derp in ItemStackHandler
Clarify comments on IItemHandler
ItemStackHandler no longer caches the stack array in local variable.
Clean up the Chests code to make intentions clearer
Vanilla hoppers have their cooldown activated when an item is inserted. Made this behavior part of an item handler (rather than the insertion code)
Fix mistake in ItemStackHandler
More documentation of potential edge cases in getStackInSlot()
Make limit checking more resiliant.