- `20.4.101-beta` [1.20.x] Broaden generic restrictions on `RangedCrossbowAttackGoal` (#76) - `20.4.100-beta` Fix an unnecessary cast in EntityRenderersEvent.AddLayers (#510) - `20.4.99-beta` Fix fluid rendering logic erroneously vanilla overlay texture (#513) - `20.4.98-beta` Fix gametests running when the tick manager is not ticking normally. (#504) - `20.4.97-beta` Add a simple hook to allow custom fluid rendering (#501) - `20.4.96-beta` Bump MixinExtras to 0.3.3 (#502) - `20.4.95-beta` Fix the `/neoforge tps` command not taking into account the actual tick rate of the world (#500) - `20.4.94-beta` Fix custom baked quad generators producing tinted quads by default (#496) - `20.4.93-beta` [1.20.4] Add thread-safe side-band system for lighting driven by BlockEntity data (#464) - `20.4.92-beta` New Crowdin updates (#470) - `20.4.91-beta` Add conditional pack overlays (#483) See `GeneratingOverlayMetadataSection` for data generation. - `20.4.90-beta` Fix Crowdin link on readme (#488) [no ci] - `20.4.89-beta` Add withAlternative variant that supports MapCodecs (#478) Also move conditional codecs from NeoForgeExtraCodecs to their corresponding classes to prevent accidental eager class loading of a large number of classes when using helpers in NeoForgeExtraCodecs - `20.4.88-beta` Bump NG to fix the installer not working on Java 8 (#487) Fixes #479 - `20.4.87-beta` Fix `LootTableLoadEvent` being called for the empty table (#485) Fixes #474 - `20.4.86-beta` Add crowdin link in readme (#481) [no ci] - `20.4.85-beta` Make sure empty model data is not inserted into manager (#477) - `20.4.84-beta` Check registry aliases in registry.get(ResourceLocation) (#484) - `20.4.83-beta` [1.20.4] Snapshot ModelDataManager in RenderChunkRegion instead of exposing original ModelDataManager owned by ClientLevel (#433) - `20.4.82-beta` Fix misaligned patch in EntityType Settings (#448) - `20.4.81-beta` Allow attachments to capture a reference to their holder on construction (#462) See the new `AttachmentType.builder` and `AttachementType.serializable` methods. The constructor only receives `IAttachmentHolder` and must cast it to the expected type. - `20.4.80-beta` Create AttachmentHolder map lazily and reduce its default capacity (#469) To reduce the memory footprint of ItemStacks. - `20.4.79-beta` New Crowdin updates (#447) - `20.4.78-beta` Update NG and use newer installer versions (#468) - `20.4.77-beta` Expand particle bounding boxes by 1 unit in all directions when culling (#458) - `20.4.76-beta` Expose BlockBehaviour#propertiesCodec via AT (#461) - `20.4.75-beta` Fix finalize spawn playing ambient sounds for cancelled mob spawns (#460) This PR stops ambient mob sounds from playing if mob was spawn was cancelled via the `MobSpawnEvent.FinalizeSpawn` event, with this change also comes added benefit of mob spawning side effects not occurring if mob spawn was cancelled (wandering trader spawning llamas). If the mob spawn was cancelled we now discard the mob and return null from `EntityType.spawn`, this tells callers of the method that the entity failed to spawn, leading to side effects of initial spawn not occurring since the `mob` is now null. - `20.4.74-beta` NeoForge chunk generate command improvements (#452) Based on some additional feedback from: https://github.com/jaskarth/fabric-chunkpregenerator/pull/27 I removed the workaround fix radius check out of GenerationTask class and instead, added the missing x radius check into CoarseOnionIterator since that was the real original cause of the command going beyond 100% at times. I also removed scheduling the completable future in a server task runnable because that was an unneeded redirection by mistake. I also added comments to state which parts of the code is safe to be on off thread and which has to be on server to help future maintainability. Added correct executor to the runAsync call as well - `20.4.73-beta` Fix misplaced patch in Mob and prevent the addition of trailing spaces in patches (#451) - `20.4.72-beta` Fix NoClassDefFoundError on dedicated server (#455) - `20.4.71-beta` Add public getters for shaped recipe max width and height (#453) - `20.4.70-beta` Network refactoring (#277) - `20.4.69-beta` Add back Level data attachments (#435) The typical use case is to store non-persistent client-side data, or have similar handling for data on both the client and server side. The implementation for persistence is basically the same as for the pre-1.20.2 capabilities. - `20.4.68-beta` Add translations from Crowdin (#446) - `20.4.67-beta` Fix signature of simpleCookingRecipe in AT (#440) A parameter of type `AbstractCookingRecipe$Factory` was added to `RecipeProvider#simpleCookingRecipe` and `RecipeProvider#oreCooking`, so the access transformer entries needs to be changed as well. - `20.4.66-beta` Update Crowdin configuration file - `20.4.65-beta` Update FML to prevent the Netty exceptions from being logged (#442) - `20.4.64-beta` Add Crowdin configuration file (#439) - `20.4.63-beta` Fix seams on generated item models (MC-73186) (#437) This PR fixes the large seams on generated item models, fixing [MC-73186](https://bugs.mojang.com/browse/MC-73186) for these models. Non-generated models and models which entirely replicate the item model generation should be unaffected. - `20.4.62-beta` Fix EmptyModel.BAKED returning null quad list (#434) A `SimpleBakedModel` must always have a quad list for each face. If a `null` list is returned the game will typically crash (as I found out by using `EmptyModel.BAKED` in a mod of mine). - `20.4.61-beta` Infrastructure for PR publishing (#429) Adds the ability to publish PRs to GitHub Packages for testing purposes. - `20.4.60-beta` Remove conditional recipe serializer, use regular conditions instead (#427) - `20.4.59-beta` Bump CoreMods version. (#426) Update CoreMods version to 6.0.4 which uses the new SPI artifact. This fixes the duplicate SPI dependencies which caused a `NoClassDefFoundError` in certain situations. - `20.4.58-beta` [1.20.4] Reimplement ID offset on modded EntityDataSerializers (#425) This reimplements the ID offset previously applied to modded `EntityDataSerializer`s which was lost during the registry rework. Previously this was achieved by setting a minimum ID on the registry. Due to the modified vanilla registries not supporting that, the IDs of modded serializers now also start at 0 which leads to the client using the vanilla serializer corresponding to the ID of the modded one and potentially blowing up while deserializing the data item, i.e. by reading past the buffer's length. - `20.4.57-beta` Bump FML version and use the FML SPI artifact (#423) Update FML to 2.0.6 to include neoforged/FancyModLoader#60 Replace SPI dependency with the FML SPI artifact, since the old one was deprecated in neoforged/FancyModLoader#58 Fixes #407 - `20.4.56-beta` Add some more tests (#413) * More work on tests * Update LivingEntityEventTests.java * Test * Updates - `20.4.55-beta` Apply getDropItem AT to correct class (#419) The method was moved from AbstractMinecart to its superclass VehicleEntity. - `20.4.54-beta` Reinstate early return on empty block pick result (#420) Fixes #418 - `20.4.53-beta` Remove ban screen creation patch (#421) - `20.4.52-beta` Fix inconsistency between custom registry ID getters and the vanilla one (#414) - `20.4.51-beta` Remove glazed terracotta as farmland for `DESERT` plant type (#416) Fixes #306 by removing glazed terracotta as acceptable farmland for the `DESERT` plant type. Also includes a related fix to expand `DESERT` plant types to be plantable on both uncolored/raw terracotta and stained terracotta, to match with the plantability of dead bushes on both. (This only really matters for modded plants, because dead bushes extend `BushBlock` and therefore have their `mayPlaceOn` method called to allow placing on stained terracotta anyway.) - `20.4.50-beta` Correctly filter out hidden packs from unselected packs in pack selection screen (#415) - `20.4.49-beta` Add reason field support to mandatory deps (#397) - `20.4.48-beta` Replicate vanilla's loading progess bar better (#404) - `20.4.47-beta` Fix world deletion cancel not working (#408) When the deletion is canceled, the screen is still ConfirmScreen, so the `if` condition needs to also check for that alongside ProgressScreen (when deletion succeeds and there is at least one world left). Fixes #406 - `20.4.46-beta` Fix `GameTestHelper#forEveryBlockInStructure` including blocks that are not in the structure (#401) - `20.4.45-beta` Allow mods to not provide pack information (#400) - `20.4.44-beta` [1.20.4] Fix grouped mod datapacks being dropped when reloading data (#403) Fixes #402 - `20.4.43-beta` Make feature request template say NeoForge instead of Forge (#399) - `20.4.42-beta` [1.20.4] Improve NeoForge's chunk generation command (#364) Special thanks to Jasmine and Gegy for allowing us to use their Fabric Chunk Pregenerator as a basis for this PR. https://github.com/jaskarth/fabric-chunkpregenerator/tree/master Fixes #331 - `20.4.41-beta` Implement fluid handler support for cauldrons (#369) Cauldrons added by modders need to be registered to `RegisterCauldronFluidContentEvent` if they want to be part of this system. - `20.4.40-beta` Deprecate the mandatory field and add an incompatible/discouraged clause to mod dependency (#386) The `mandatory` field is now deprecated, and use of it will **crash** in a development environment. The field has been replaced with a `type` field, accepting a string with one of 4 possible values (case insensitive): - `required`: - default, will not allow the game to load _without_ the dependency - `optional`: will _allow_ the game to load without the dependency - `incompatible`: will _prevent_ the game from loading when the dependency is present - `discouraged`: will _show a warning_ when the dependency is present, but will continue loading For `incompatible` and `discouraged` a `reason` string field has been added that will be shown to users. Please use this field and provide descriptive reasons as to why your mod is incompatible with the other. Example: ```toml [[dependencies.mymod]] type="discouraged" # can be "incompatible" modId="othermod" versionRange="[1.4.3,)" # optional, will match any version by default reason="We conflict because the other mod does...." ``` - `20.4.39-beta` [1.20.4] Make player feet and eyes both need to be in swimmable fluid to swim (#379) Fixes #220 - `20.4.38-beta` [1.20.4] Make keybind menu have scrolling descriptions (#355) Resolves #126 - `20.4.37-beta` [1.20.4] Add trident throw and brushing tool actions (#351) Closes #190 - `20.4.36-beta` Add `copyOf` and `codecOf` utility methods to NonNullList (#392) - `20.4.35-beta` [1.20.4] Render demo mode remaining time text properly (#357) Fixes #166 - `20.4.34-beta` Fix loading named loot tables (#391) - `20.4.33-beta` [1.20.4] Rework how effects determine what they can be cured by (#350) Fixes #322 - `20.4.32-beta` TeamCity change in 'NeoForged / NeoForge' project: project was archived - `20.4.31-beta` Release with actions (#383) - `20.4.30-beta` Add StatAwardEvent (#389) - `20.4.29-beta` Add ItemStack parameter to customArrow method (#388) - `20.4.28-beta` [1.20.4 ] Fixed LootTableLoadEvent not being called and restore loot pool names (#344) Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com> - `20.4.27-beta` Disallow star imports (#387) - `20.4.26-beta` [1.20.4] Change how resource pack grouping works and group mod data packs - take 2 (#367) - `20.4.25-beta` [1.20.4] Fixed NeoForge pack version and description (Attempt 2) (#365) This is a **breaking change** because we are removing the obsolete server/resource pack numbers because vanilla allows us to specify version ranges. Mods can just say they can run on all versions and avoid the red highlighting in pack screens entirely. - `20.4.24-beta` Fix render bounds of more block entities (#384) Shulker box, end gateway, spawner, trial spawner and piston - `20.4.23-beta` Remove unsafe dispatch codec (#343) Modders should make sure that their dispatch targets are instances of MapCodecCodec. - `20.4.22-beta` [1.20.x] Fix Reach Issues (and eclipse compilation issues) (#346) Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com> - `20.4.21-beta` Make server configs used across saves by default (#376) The server config now defaults to being read from the normal `config` folder, but can be overridden by a file with the same path and name placed in `serverconfigs`. - `20.4.20-beta` Bump MixinExtras to 0.3.2 (#380) Fixes a fairly critical bug https://github.com/LlamaLad7/MixinExtras/releases/tag/0.3.2 - `20.4.19-beta` Actually prevent registering IModEvent handlers to the NeoForge bus (#377) - `20.4.18-beta` Have Fishing Rods call onPlayerDestroyItem when they break (#353) Resolves https://github.com/neoforged/NeoForge/issues/111 - `20.4.17-beta` [1.20.4] Made mod list search bar 2 pixels wider for consistency (#352) - `20.4.16-beta` Bump FML and address usages of deprecations (#375) - `20.4.15-beta` Use ID-only snapshot to revert to frozen registry state when leaving singleplayer or disconnecting from server (#372) - `20.4.14-beta` Remove obsolete obfuscation workaround in `Util` (#373) - `20.4.13-beta` Make tests reliable (#362) * Make tests reliable * Move over the caps test * Update ExtendedGameTestHelper.java * move one more test - `20.4.12-beta` Implemented new event ClientPauseUpdatedEvent (#315) - `20.4.11-beta` [1.20.4] Restore serversided onInteractEntityAt event firing (#366) Fixes #363 - `20.4.10-beta` Split mod logo filepath on slashes for mod list menu (#358) Fixes crash when non-root path is specified as mod logo - `20.4.9-beta` Use block's own position when calling canCatchFire in FireBlock (#359) Fixes https://github.com/neoforged/NeoForge/issues/302 Previously, the air position was passed to `canCatchFire`, causing inconsistent behavior. Now the block's own position is passed - `20.4.8-beta` Fixed NeoForge pack version and description (#361) Fixes https://github.com/neoforged/NeoForge/issues/278 Fixes https://github.com/neoforged/NeoForge/issues/360 - `20.4.7-beta` Unquote game dir in runs (#354) - `20.4.6-beta` Redirect crash reports to NeoForge discord instead of Forge forums - `20.4.5-beta` Re-introduce the FenceGateBlock patch (#345) * Reintroduce the fencegateblock patch * Close the gate with redstone * Other way around - `20.4.4-beta` Merge strict and partial NBT ingredients (#342) The new ingredient type is `neoforge:nbt`, partial by default. Add `"strict": true` to make it strict. The recommended JSON format for the NBT is the string format to preserve number primitive type information. - `20.4.3-beta` [20.4] Testing framework for test mods (#291) - `20.4.2-beta` Fix IAttachmentHolder#hasData(Supplier) not working with DeferredHolders (#340) - `20.4.1-beta` Cleanup `Explosion` patch (#339) `getPosition()` is replaced by `center()`, and `getExploder()` is replaced by `getDirectSourceEntity`. - `20.4.0-beta` 1.20.4 Update Update to the 1.20.4 Minecraft hotfix version - `20.3.8-beta` Fix GameTest server generating a full world (#333) It should generate an empty superflat works Should fix the massive slowdown on CI - `20.3.7-beta` Remove leftover IItemExtension sharetag methods (#332) - `20.3.6-beta` correct a bunch of block ctor ATs (#330) - `20.3.5-beta` [1.20.3] Fix render bounds of various BERs and add render bounds debug renderer (#327) - `20.3.4-beta` Remove share tag system (#329) - `20.3.3-beta` Add `addOptionalTag`, `addOptionalTags` methods accepting `TagKey` directly (#319) - `20.3.2-beta` Fix particles jittering when ticks are frozen (#326) - `20.3.1-beta` [20.3] Rework Capabilities: Split Data Attachments and Capabilities (#73) - `20.3.0-beta` Port to 1.20.3 Co-authored-by: Technici4n <13494793+technici4n@users.noreply.github.com> Co-authored-by: XFactHD Co-authored-by: Matyrobbrt Co-authored-by: coehlrich - `20.2.86` 1.20.2 stable release The other planned breaking changes like the networking rework and capabilities rework are now targeted for 1.20.3. - `20.2.85-beta` Bump FML and SJH (#318) - `20.2.84-beta` Ship MixinExtras (#303) * proof of concept for prod mixin extras jij * Make userdev work too * Tweak jarjar metadata template * Update * Update settings.gradle * Update gradle.properties * Update settings.gradle - `20.2.83-beta` Event for finer-grained control over using items on blocks (#296) - `20.2.82-beta` Deprecate mod id inference to prepare for the move of registration events to the Forge bus (#314) - `20.2.81-beta` Remove the `RecipeSerializer` patch (#313) The `fromNetwork` is not actually nullable, (and doing so would be weird API, as it may cause FBB desyncs), and the other comment was stale. - `20.2.80-beta` Bump dependencies (#311) Notable change: ATs can be declared in the `mods.toml` directly (see https://github.com/neoforged/FancyModLoader/commit/2e8cb5b399761398416c99ca3f5c3d3a54eef812). - `20.2.79-beta` TeamCity change in 'NeoForged / NeoForge' project: VCS roots of 'Build - Secondary Branches' build configuration were updated - `20.2.78-beta` Fix BER render bounding boxes of various blocks (#180) - `20.2.77-beta` [1.20.2] Reinstate chunk watch events (#285) - `20.2.76-beta` Fix and change chunk ticket registration (#286) No need to work with `ForcedChunkManager` anymore. Create a `TicketController` and register it to `RegisterTicketControllersEvent`. - `20.2.75-beta` Short-circuit the realms availability check in dev (#310) - `20.2.74-beta` Restore smelting result count and nbt extensions (#300) - `20.2.73-beta` [20.2] Fix some of the broken test data (#304) - `20.2.72-beta` [1.20.2] Add an event to register custom sprite source types (#77) - `20.2.71-beta` Cleanup vanilla bugfixes (#254) - `20.2.70-beta` Fix the `test runthis` command (#294) - `20.2.69-beta` Avoid O(n) complexity in MappedRegistry register methods (#279) - `20.2.68-beta` Fix issue link on TC (#301) - `20.2.67-beta` Reallow Warden melee attacks to disable shields (#297) - `20.2.66-beta` Make `ModConfigSpec.Range` public (#287) - `20.2.65-beta` Remove Neo's own PathPackResources (#284) - `20.2.64-beta` Rename certain DR subclass helpers as being 'simple' (#288) Affects `registerItem`, `registerBlock` and `registerBlockItem`. - `20.2.63-beta` [1.20.2] Band-aid fix connections between Neo and vanilla (#283) - `20.2.62-beta` Fix stack overflow when calling `.toString()` on resolved `RecursiveCodec` (#281) - `20.2.61-beta` Add support for optional geometry loaders (#282) - `20.2.60-beta` Update condition key, rewrite `ConditionalCodec` implementation and add tests (#251) Modders need to update from `"conditions"` to `"neoforge:conditions"` in their advancements, recipes, and datapack registry entry JSON definitions. - `20.2.59-beta` [20.2] Registry rework (#257) The Blogpost is available here: https://neoforged.net/news/20.2registry-rework/ --------- Co-authored-by: Minecraftschurli Co-authored-by: Dennis C Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com> - `20.2.58-beta` Move access change in AbstractButton to AT (#276) - `20.2.57-beta` Add Pointed Dripstone drip support to FluidTypes (#246) - `20.2.56-beta` Use `Entity#positionRider` to resync player with vehicle position (#272) - `20.2.55-beta` Allow blocks complete control over breaking sounds (#269) - `20.2.54-beta` Fix FakePlayer instantiation crashing the game (#271) - `20.2.53-beta` Remove redundant `getResource` call in DelegatingPackResources (#149) - `20.2.52-beta` Fix KeyMapping modifiers not being respected in conflicting bindings (#171) - `20.2.51-beta` Fix DeferredSpawnEggItem registering dispenser behaviors off-thread (#268) - `20.2.50-beta` [1.20.2] Use map backing the atlas instead of the atlas itself for liquid texture lookups (#266) Prevents crashes when a chunk is re-batched while reloading resources. - `20.2.49-beta` Fix worlds becoming unusable after custom dimension is removed (#172) - `20.2.48-beta` Use the correct namespace in mobeffectidfix patch (#267) - `20.2.47-beta` [1.20.2] Fix blending issues caused by item decorators (#241) Backup GL state in ItemDecoratorHandler instead of blindly disabling blending after decorators are rendered. - `20.2.46-beta` Fix milk bucket curing effects before advancement trigger (#170) - `20.2.45-beta` Add IForgeBakedModel::getModelData in BlockRenderDispatcher::renderBreakingTexture (#173) - `20.2.44-beta` Bump FML and NeoGradle to remove MC version from the prod jars (#263) - `20.2.43-beta` [1.20.x] Swapped codec of `EnvironmentScanPlacement` for `Direction` for less restrictions (#70) - `20.2.42-beta` Fix some issues with the README (#232) Signed-off-by: Imzxhir <98621617+Imzxhir@users.noreply.github.com> Co-authored-by: Technici4n <13494793+Technici4n@users.noreply.github.com> - `20.2.41-beta` Fixed ModelData not being passed to a `getQuads` call in `ModelBlockRenderer.tesselateWithoutAO` (#262) - `20.2.40-beta` Remove redundant zombie spawn chance config (#163) - `20.2.39-beta` Redo conditional recipe datagen (#250) - Remove `ConditionalRecipeBuilder`. - Add `RecipeOutput.withConditions(...)` to add conditions to recipes. - Use `dispatchUnsafe` for the attachment codec to avoid nesting values when it's unnecessary. - `20.2.38-beta` [1.20.2] Retain insertion order of tag entries (#258) * Retain insertion order of tag entries * Add comment about why insertion order must be retained - `20.2.37-beta` Fix entity loot datagen not using known types (#253) - `20.2.36-beta` Fix PotionBrewing.Mix#ingredient losing its public visibility (#255) - `20.2.35-beta` Correct a grammatical mistake within SUPPORT.md (#175) - `20.2.34-beta` Fix advancement existing file helper checks in datagen (#240) - `20.2.33-beta` Fix misplaced patch in FireBlock (#247) - `20.2.32-beta` Unbreak the MC-176559 fix (#145) - `20.2.31-beta` Allow datagen to use vanilla armor trim textures (#146) - `20.2.30-beta` [1.20.2] Fix waterlogged blocks being flammable (#244) - `20.2.29-beta` [1.20.2] Update NG and switch patches to auto-headers (#245) - `20.2.28-beta` Temporarily disable update checker for Neo itself (#242) - `20.2.27-beta` Fix mouse scroll events and scroll axis handling (#239) - `20.2.26-beta` Fix player renderer getter in EntityRenderersEvent.AddLayers (#237) - `20.2.25-beta` Remove unneeded `ItemPredicate` extra methods (#234) - `20.2.24-beta` Fix signed chat state de-sync caused by `execute run say` (#222) Fixes #186 - `20.2.23-beta` Fix imports in NeoForgeMod (#235) - `20.2.22-beta` Use Correct PoseStack in AFTER_LEVEL (#231) - `20.2.21-beta` Update FML (#233) - `20.2.20-beta` Improve accuracy of FluidType#canConvertToSource for vanilla fluids (#193) - `20.2.19-beta` [1.20.2] Fix ObjLoader leaking and using outdated ResourceManager (#203) - `20.2.18-beta` Use updated translation keys in commands/command arguments (#227) - `20.2.17-beta` Fix DebugLevelSource being off-by-one on grid height (#226) - `20.2.16-beta` Collapse TextureStitchEvent into a single post-stitch event (#208) - `20.2.15-beta` Fix switched armor points icons in HUD (#225) Fixes #224 - `20.2.14-beta` Fix shields being instantly broken (#213) A misapplied patch caused a call to stopUsingItem(), which blanks out the currently-using item, even if the shield didn't break. Fixes #211 - `20.2.13-beta` Fix switched air graphics in breathing bar (#219) - `20.2.12-beta` Tweak actions for PRs (#217) - `20.2.11-beta` Remove deleted build types from TC config (#221) - `20.2.10-beta` Remove TC PR checks (#216) - `20.2.9-beta` Use GitHub Actions for CI on PRs (#214) - `20.2.8-beta` Convert RenderTypes from BakedModel to their corresponding "moving render type" in the FallingBlockRenderer (#206) - `20.2.7-beta` Fix duplicate sprite expansion in FaceBakery (#207) - `20.2.6-beta` Suffix branch in version (#212) This makes installer and other artifacts from non-main branches distinguishable from artifacts of the main branches (e.g., 1.20.x). - `20.2.5-beta` Add changelog publication (#204) - `20.2.4-beta` Update issue_report.md (Forge -> NeoForge) (#178) - `20.2.3-beta` Release 20.2 - `20.2.2-beta` Disable the configuration cache. - `20.2.1-beta` Prepare for 20.2 release. - `20.2.0-beta` Bump AT and CoreMods