Jump to content

Forge 11.15.1 Minecraft 1.8.9


LexManos

Recommended Posts

Forge Version: 1.8.9-11.15.1.1722

Minecraft Version: 1.8.9

Downloads:

 

We all here have been working really hard to get the new Minecraft version, having re-written a large chunk of the decompiler, rendering system, mod interactions, registry handling, and much more. We are proud to present the first Recommended build of Forge for 1.8.9. Once I get back from Pax South this week I will be going through and pushing as many bug fixes and if needed another RB. But API wise this version is fairly stable.

We have many modders who already are updating to 1.8.9, and mods that are written for 1.8.8 will work on 1.8.9 just fine.

Some of these new systems are poorly documented, because you all know I suck at writing! So if there are things you wish to know on the modding end ask in the modder support section, or IRC and people will help you and hopefully get documentation at https://github.com/MinecraftForge/Documentation

 

Minecraft Forge 11.15.1 Changelog:

============================================================================

New:


  •  
  • New event to allow overriding of fuels recognized by vanilla fuel handling.
     
  • Enabled ModList GUI in game. Allowing for configurations in-game.
     
  • New Functional IMC messages support to allow more flexible inter-mod functions.
     
  • Merged Forge and FML event bus, simplifies events for modders.
     
  • Semi-Finalized SplashProgress API. Modders can now hook in and expand the progress bars during load.
     
  • MAJOR Game Registry cleanup, more flexible code allowing for potential exposure to modders.
     
  • New JLine intergration allowing tab-completion in commands as well as color codes in server console.
     
  • New Potion Registry, slowly moving away from IDs for another registry!
     
  • Made Potion.isBadEffect server and client side.
     
  • Increased console spam when mods do STUPID things {Coremods containing APIs}
     
  • New 'onLoad' method in TileEntity called after the TileEntity is added to the world.
     
  • Added EMERALD and SILVERFISH to GenerateMineable event.
     
  • More forcibly discourage modders from using FuildIDs, they should be using FluidNames.
     
  • New hook to allow blocks to define which faces in their neighbors get culled.
     
  • New hook to allow 'invisible' potion effects that are not rendered in-inventory.
     
  • New hook in item to override it's tooltip string.
     
  • New Block.addLandingEffects hook covering falling onto blocks.
     
  • Increased new model system interaction with older models.
     
  • New universal bucket model allowing for rendering an item with any fluid. Also allows Resource pack makers control of a single texture set for most buckets.
          A config option to enable this is defaulted to False.
     
     
  • Blocks are no longer erased from the registry if the mod isn't present. This means that modded blocks can potentially retain their IDs even if they are temporarily not present in the game. Currently TileEntity data associated with the block is erased.
     
  • Added an ability to register custom item variants, not ending with "#inventory". Should allow grouping multiple item models into 1 blockstate json.
     
  • New hook to customize slime particle spawming.
     
  • New default values for @SideProxy, nested ClientProxy and ServerProxy classes.
     
  • New get/setRegistryName function for items and blocks, and GameRegistry helper functions. STOP USING UNLOCALIZED NAME!
     
  • New simple ContainedDep mechanic to allow packing jars in mods, makes DepLoader even more redundant now.
     
  • Added progress bar to ModelLoader.
     
  • Implemented face culling for Item Models, improves performance.
     
  • Made WrongMinecraftVersionException and ModSortingException a bit easier to read in log files.
     
  • SRG named mods located in the mod folder during mod devlopment time will now load correctly. Easier mod intergration!
     
  • New GuiScreenEvent.BackgroundDrawnEvent for after backgrounds are drawn.
     
  • New hook to allow sleeping without solid bed block.
     
  • Skip hang detection on server load, potentially fixing slow loading mods killing the server.
     
  • New IItemHandler capability to sanitize Item interactions with TileEntities.
     
  • New EntityTravelToDimensionEvent.
     
  • New Model Animation system!

 

Bug Fix:


  •  
  • General code cleanup and deprecation culls with new decompiler changes.
     
  • Fixed skulls not placing on fences like vanilla
     
  • Fixed Client Login Issue when logging into a non existent dimension
     
  • Fixed incorrect position passes to Block.getExplosionResistance from entities.
     
  • Fixed client side onBlockDestroted hooks to sync with server.
     
  • Fixed bold fonts rendering incorrectly.
     
  • Fixed invalid positions for isAir/getLight calls.
     
  • Fixed some issues with fir tree generation.
     
  • Fixed forge lighting working incorrectly outside 0x1000000 coordinates.
     
  • Fixed duplicate faces in generated item mods.
     
  • Fixed lever placement issues.
     
  • Fixed mods throwing AbortExceptions not properly propogating the abort.
     
  • Fixed block placement around snow layers.
     
  • Fixed large mushroom generation.
     
  • Fixed World.getTileEntitiesIn potentially loading orphaned chunks.
     
  • Fixed internal server not stopping when exiting single player.
     
  • Fixed entity selections and entities with . in names.
     
  • Fixed language adaptor loading, allowing better support for aditional mod languages.
     
  • Fixed colored leather rendering.
     
  • Fixed generated item model faces orientations.
     
  • Fixed lighting values being incorrectly calculated in edge cases.
     
  • Fixed dispensors equipting armor incorrectly.
     
  • Fixed rendering issues with custom mod armors that are enchanted.
     
  • Potential fix for Netty log spam issue.
     
  • Fixed enchanting table incorrectly applying the same ecnahntment multiple times.
     
  • Fixed model lighting in some edge cases.
     
  • Fixed NPE in MultiLayerModel.
     
  • Fixed dependency resolution for models with custom data/textures.
     
  • Fixed registry issues that prevented connecting to a 1.8 Forge server.
     
  • Fixed vanilla bug related to spawning entities on top of fences.
     
  • Fixed the channel handler naming. It now uses the standard netty namer for it, by careful use of cunning reflection.
     
  • Fixed up persistent substitution.
     
  • Fixed ItemBlock remappings in registry causing errors.
     
  • Fixed random block position offset not applying correctly.
     
  • Fixed Button/Torch/Lever placement on stairs and slabs.
     
  • Fixed Forge-Type spawn eggs not spawning baby entities correctly.
     
  • Fixed color disabeling not working on the new Forge rendering pipeline.
     
  • Fixed TESRs rendering early breaking piston rendering.
     
  • Fixed lag issue related to fluid rendering.
     
  • Updated Forge logo to higher resolution GIF.
     
  • Fixed realms notification icon rendering on Mods button.
     
  • Fixed boss health bar rendering incorrectly when debug overlay is enabled.
     
  • Fixed some cases of URL detection in commands and messages.
     
  • Fixed implementation of IRetextureableModel in ItemLayerModel.
     
  • Fixed /give visual effect entity persisiting longer then intended.
     
  • Fixed GROUND item transform not persisting in block states.
     
  • Fixed GuiWrongMinecraft having wrong Log file name.
     
  • Fixed banners not droping the correct item when harvested using modded mechanics.
     
  • Fixed problem which meant runtime deobf to MCP names wasn't working. SRG named mods located in the mods dir of a dev environment will now load normally.
     
  • Fixed issue with LAN servers and custom packets.
     
  • Fixed TileEntity.shouldRefresh invalidating default TEs to often.
     
  • Fixed missing model error reporting, made block and item variants sort before loading, to make the splash screen info more useful.
     
  • Fixed items being dropped out of a GuiContainer when dealing with a slot outside of the xSize/ySize boundaries.

 

Major New Feature:

Capability System:


  • New Capability system allowing for more manageable world object features.
     
    When combined with @Optional this should address all issues of soft dependancy on mods/apis.
    This also addresses the issue of dynamic functionality in TileEntities/Entities.
     
    Current capability providers: TileEntity, Entity, ItemStack
     
    Also added INBTSerializeable, a generic interface for game objects that can be written to/from NBT tags.
     
    Vanilla capabilities will be coming soon, mostly on request and review.
    So start requesting capabiliteis on vanilla/Forge features.
     

  • IItemHandler Capability:
    See This Commit for more details and examples.

package net.minecraftforge.items;

import net.minecraft.item.ItemStack;

public interface IItemHandler
{
    /**
     * Returns the number of slots available
     *
     * @return The number of slots available
     **/
    int getSlots();

    /**
     * Returns the ItemStack in a given slot.
     *
     * The result's stack size may be greater than the itemstacks max size.
     *
     * If the result is null, then the slot is empty.
     * If the result is not null but the stack size is zero, then it represents
     * an empty slot that will only accept* a specific itemstack.
     *
     * <p/>
     * IMPORTANT: This ItemStack MUST NOT be modified. This method is not for
     * altering an inventories contents. Any implementers who are able to detect
     * modification through this method should throw an exception.
     * <p/>
     * SERIOUSLY: DO NOT MODIFY THE RETURNED ITEMSTACK
     *
     * @param slot Slot to query
     * @return ItemStack in given slot. May be null.
     **/
    ItemStack getStackInSlot(int slot);

    /**
     * Inserts an ItemStack into the given slot and return the remainder.
     * Note: This behaviour is subtly different from IFluidHandlers.fill()
     *
     * @param slot     Slot to insert into.
     * @param stack    ItemStack to insert
     * @param simulate If true, the insertion is only simulated
     * @return The remaining ItemStack that was not inserted (if the entire stack is accepted, then return null)
     **/
    ItemStack insertItem(int slot, ItemStack stack, boolean simulate);

    /**
     * Extracts an ItemStack from the given slot. The returned value must be null
     * if nothing is extracted, otherwise it's stack size must not be greater than amount or the
     * itemstacks getMaxStackSize().
     *
     * @param slot     Slot to extract from.
     * @param amount   Amount to extract (may be greater than the current stacks max limit)
     * @param simulate If true, the extraction is only simulated
     * @return ItemStack extracted from the slot, must be null, if nothing can be extracted
     **/
    ItemStack extractItem(int slot, int amount, boolean simulate);
}


  •  

 

Animation System:

New Animation system allowing blocks/tesrs the have a more universal way of animating.

68747470733a2f2f6661742e6766796361742e636f6d2f4661696e74456c61737469634166726963616e706f72637570696e652e676966

  • IAnimationStateMachine - state machine for animations; can load from json.
  • AnimationTESR - automatic TESR for animated models.
  • AnimationModelBase - same for entities.
  • ITimeValue - time-varying value, used to control animation parameters from code.
  • TESRs can now be batched - look at TESR.renderTileEntityFast + TE.hasFastRenderer.
  • RegionRenderCache is not accessible to TESRs and other client-side logic - MinecraftForgeClient.getRegionRenderCache.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • They were already updated, and just to double check I even did a cleanup and fresh update from that same page. I'm quite sure drivers are not the problem here. 
    • i tried downloading the drivers but it says no AMD graphics hardware has been detected    
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system  
    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.