本帖最后由 ustc_zzzz 于 2016-5-5 01:50 编辑
引言
Forge在昨天,也就是五月四日,发布了关于Minecraft 1.9的稳定版(1.9-12.16.1.1887)。
作者参考了国外开发者的变化统计,以及作者自己的发现,整理出了关于Forge with Minecraft 1.9的Mod开发引导。
该部分引导写得比较简略,而且内容可能也比较浅,不过对于1.8的Mod开发者快速上手1.9来说,也应该是足够了。
配置开发环境
从这里下载MinecraftForge的mdk:
解压后的目录应该是这个样子的:
复制代码
在该文件夹下打开命令行界面,输入:
OSX/Linux:
复制代码
Microsoft Windows:
复制代码
按照自己的IDE(Eclipse或IDEA)选择下一步配置:
OSX/Linux:
复制代码
Microsoft Windows:
复制代码
在IDE下打开就好了,这一步骤和1.8的开发过程是一样的。
物品和方块
和1.8一样,物品和方块均在preInit阶段注册,不过不一样的是,Forge提供了一个统一的接口,也就是GameRegistry#register方法。我们需要使用名为“setRegistryName”方法为方块和物品指定名称,比如1.8的物品注册是这样的:
复制代码
1.9变成了:
复制代码
在1.9,注册物品模型渲染也变得更方便了点,因为可以直接使用“getRegistryName”方法获取物品的注册名称了:
复制代码
在这里,作者还是建议物品和方块的注册名称(RegistryName)和非本地化名称(UnlocalizedName)分离,也就是这样:
复制代码
注册名称使用小写加下划线,而本地化名称使用小写驼峰式。
不过这里有一点需要注意,就是方块对应的物品需要手动注册了,也就是原先在1.8中是这样的:
复制代码
在1.9要注册两步:
复制代码
这提醒了Mod开发者需要手动注册方块对应的物品,不失为一件好事。
其实,除了物品和方块,Forge在Minecraft 1.9中还把很多对象收入了统一化的注册接口,包括:
这大大简化了一些之前的注册非常蹩脚的对象的注册。
事件
事件在1.9只有一些细微的变化,很多都是从1.8.9带过来的,也有一些从1.9新加的:
数据存储和同步
用于同步实体的DataWatcher被换成了EntityDataManager,可以使用一些既定的DataSerializer来指定数据序列化的方式,并使用EntityDataManager#register、EntityDataManager#set和EntityDataManager#get方法来方便地注册和管理。
有着悠久历史的IExtendedEntityProperties被删除了,取而代之的是来自1.8.9的Capability系统,该系统可以方便地存储实体、TileEntity和ItemStack的附加数据。
其他
最后附上此次更新的changelog:
引言
Forge在昨天,也就是五月四日,发布了关于Minecraft 1.9的稳定版(1.9-12.16.1.1887)。
作者参考了国外开发者的变化统计,以及作者自己的发现,整理出了关于Forge with Minecraft 1.9的Mod开发引导。
该部分引导写得比较简略,而且内容可能也比较浅,不过对于1.8的Mod开发者快速上手1.9来说,也应该是足够了。
配置开发环境
从这里下载MinecraftForge的mdk:
解压后的目录应该是这个样子的:
- forge-1.9-12.16.1.1887-mdk
- |-eclipse/
- |-gradle/
- |-src/
- |-.gitignore
- |-build.gradle
- |-gradlew
- |-gradlew.bat
- ...
在该文件夹下打开命令行界面,输入:
OSX/Linux:
- ./gradlew setupDecompWorkspace
Microsoft Windows:
- gradlew.bat setupDecompWorkspace
按照自己的IDE(Eclipse或IDEA)选择下一步配置:
OSX/Linux:
- ./gradlew eclipse
- ./gradlew idea
Microsoft Windows:
- gradlew.bat eclipse
- gradlew.bat idea
在IDE下打开就好了,这一步骤和1.8的开发过程是一样的。
物品和方块
和1.8一样,物品和方块均在preInit阶段注册,不过不一样的是,Forge提供了一个统一的接口,也就是GameRegistry#register方法。我们需要使用名为“setRegistryName”方法为方块和物品指定名称,比如1.8的物品注册是这样的:
- GameRegistry.registerItem(yourItem, "your_item_name");
1.9变成了:
- yourItem.setRegistryName("your_item_name");
- GameRegistry.register(yourItem);
在1.9,注册物品模型渲染也变得更方便了点,因为可以直接使用“getRegistryName”方法获取物品的注册名称了:
- Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0,
- new ModelResourceLocation(item.getRegistryName(), "inventory"));
在这里,作者还是建议物品和方块的注册名称(RegistryName)和非本地化名称(UnlocalizedName)分离,也就是这样:
- yourItem.setRegistryName("your_item_name");
- yourItem.setUnlocalizedName("yourAnotherUnlocalizedName");
注册名称使用小写加下划线,而本地化名称使用小写驼峰式。
不过这里有一点需要注意,就是方块对应的物品需要手动注册了,也就是原先在1.8中是这样的:
- GameRegistry.registerItem(yourBlock, "your_block_name");
在1.9要注册两步:
- yourBlock.setRegistryName("your_block_name");
- yourItemBlock = new ItemBlock(yourBlock);
- yourItemBlock.setRegistryName("your_block_name");
- GameRegistry.register(yourBlock);
- GameRegistry.register(yourItemBlock);
这提醒了Mod开发者需要手动注册方块对应的物品,不失为一件好事。
其实,除了物品和方块,Forge在Minecraft 1.9中还把很多对象收入了统一化的注册接口,包括:
- 生物群系(net.minecraft.world.biome.BiomeGenBase)
- 附魔(net.minecraft.enchantment.Enchantment)
- 药水效果(net.minecraft.potion.Potion)
- 药水(net.minecraft.potion.PotionType)
- 声音(net.minecraft.util.SoundEvent)
- 村民职业(net.minecraftforge.fml.common.registry.VillagerRegistry.VillagerProfession)
这大大简化了一些之前的注册非常蹩脚的对象的注册。
事件
事件在1.9只有一些细微的变化,很多都是从1.8.9带过来的,也有一些从1.9新加的:
- FMLCommonHandler.instance().bus()在1.8.9已经被弃用了,被合并进了MinecraftForge.EVENT_BUS。
- PlayerInteractEvent加入了双持的内容,被大大地细化了。
数据存储和同步
用于同步实体的DataWatcher被换成了EntityDataManager,可以使用一些既定的DataSerializer来指定数据序列化的方式,并使用EntityDataManager#register、EntityDataManager#set和EntityDataManager#get方法来方便地注册和管理。
有着悠久历史的IExtendedEntityProperties被删除了,取而代之的是来自1.8.9的Capability系统,该系统可以方便地存储实体、TileEntity和ItemStack的附加数据。
其他
- 一大堆复杂渲染的更新
- 1.9原版带来的神奇的掠夺物系统(Loot Tables)
- 从1.8.9合并来的矿物字典系统(其中还有作者的贡献哦~)
- 。。。(尚不全面,仍待补充)
最后附上此次更新的changelog:
cpw: Don't ignore rejects cpw: Add in mcp named patches and use them. Initial 1.9 setup. cpw: Add rejects with mcp names for application to main codebase. Let's roll? cpw: First few patches applied LexManos: net.minecraft.block.* patches LexManos: util, tileentity, stats, realms. Potions got an overhaul and out registry will need to be adapted. LexManos: Some import renames and compile error fixes, killed ~800. fry: Updated various block model patches. fry: A bunch of rendering rejects updated. fry: RendererLivingEntity, RenderEntityItem, RenderItem, RenderManager, LayerArmorBase; Item.getModel + ISmartItemModel are now inside ItemOverrideList; fix class rename in TESR patch. fry: EntityRenderer, most of RenderGlobal, minor fix to LayerBipedArmor. fry: tabs -> spaces. fry: FontRenderer fry: Fixed most errors in the model stuff, except for ModelLoader and b3d and obj getQuads/handleBlockState methods. LexManos: Some entity patches. CovertJaguar: Fix broken patches for EntityMinecart LexManos: Items done, <1000 errors whoot! LexManos: Small renames before bed. fry: GuiCreateWorld, GuiSlot, GuiUtilRenderComponents, GuiContainerCreative fry: GuiOverlayDebug, ItemModelMesher, RenderManager, Stitcher fixed + minor fixes in forge gui classes. fry: removed Item.getModel, functionality is now achieveable via ItemOverrides. fry: Updated raw types in ExtendedBlockState, fixed some ATs, updated some things that needed updating in model classes. fry: Chunk cpw: DedicatedServer IntegratedServer Adubbz: Updated the biome dictionary Squashed commits: [4064de6] Updated the biome dictionary LexManos: Enchantments, some world, Biomes, bucks, world/gen/features. Adubbz: Updated BiomeManager to 1.9 LexManos: Delete reject files i missed LexManos: More work on misc things. LexManos: World Patches work. fry: Fix various errors in text mods. fry: Fixed B3D loader, fixed some obvious errors in ModelLoader. cpw: LanguageManager NetHandlerPlayClient fry: ModelBox, PositionTextureVertex, TexturedQuad. Does anyone really use those on the server? cpw: ServerPinger PlayerList cpw: WorldServer: NOTE - ChestGenHooks has NOT been updated in accordance with plans for removing it GuiStats Fixup deletion of egg handling in entity registry? fry: Removed generics from IModel subinterfaces, add ed ModelProcessingHelper instead. fry: Model UV lock handling from the state to the model, fixed most compile errors in ModelLoader, disabled it (and ModelBakeEvent) until it's functional, fixed some errors in ForgeHooksClient. fry: Made OBJModel.java compile. LexManos: Fixed errrors in Fluids package. TODO: Make BlockLiquid implement IFluidBlock and REMOVE FluidContainerRegsitry. Everything *should* be able to use IFluidContainer directly. LexManos: Fishing is now a loot table no more need for FishingHooks. {LootTables still need to be evaludated if they need extra hooks, but thats later} Goodbye 44 compile errors! LexManos: Temporary hack to fix MCP mappings for param names we are using that is causing compile errors. LexManos: NetworkDispatcher/FMLProxyPacket 41 more errors cleaned. cpw: Some fixups for FML, and use the FML registry for potions cpw: Some more FML related fixups cpw: Fix up import in Potion cpw: Some client handler cleanup cpw: Remove two patches that aren't needed anymore cpw: Command fixups cpw: Few more compile fixups LexManos: More patch work, client patches. LexManos: 10 more rejects down. 98 errors 6 rejects left. fry: World fry: Most of ItemInWorldManager reject, various small error fixes. cpw: Some more forge code fixes cpw: Another compilation fix More patch tweaks for compilation errors. onItemUseTick takes an entity now, cos skellies use stuff too cpw: More fixups, removing chestgenstuff aggressively. Use loot tables. Any missing ones WILL be added by Mojang. cpw: Remove more chestgenhooks stuff. Clean up some more ATs cpw: Potion cleanup. Moar fixes! cpw: Finish world, chunkloading should work again? cpw: Another AT, for the player cpw: Fix up PlayerSP for the AT LexManos: Interaction hooks need to be re-added but compiles {Doesn't run} LexManos: Added bypass functions to Defaulted registry, DO NOT USE THIS MODDERS FORGE INTERNAL ONLY. And some other fixups for running. LexManos: Bump version info. Rather important. LexManos: Fixed position being shifted before being sent to shouldSideBeRendered. fry: Fix perspective transformations for left-handed items, disable ModelAnimationDebug until model loading is fixed. cpw: Fix race condition between server ticks and the netlogin code handshaking for FML cpw: Move the patch into the fml override handler, for less patch fry: Fix items rendering too low in first person. fry: Fixed (hopefully) perspective transformations for custom models too. cpw: Capture Biome Registry within FML fry: Fixed emply hand not rendering in first person. fry: Fixed incorrect rendering state caused by transparent rendering pass for entities. fry: Fixed armor rendering cpw: Switch to srg patches fry: Updated to latest mappings. Exc is broken, some anonymous classes didn't map to srg names. fry: Fixed some errors in forge.exc fry: First version of updated of ModelLoader, mostly works. fry: Big model loader refactoring: simplified a lot of things, broke some error reporting. Still generally works. LexManos: Update patches for fixed inner class suffeling in srg files. LexManos: We are based on 1.9 not 1.8.9 :D LexManos: Delete mcp patches. LexManos: PlayerManager updated. LexManos: Fix digging blocks in survival. LexManos: Fixed breaking of tall grass. It now uses fortune. Expanded grass seed hooks to allow Fortune. Potentially removing in future in favor of LootTables. vazkii: 1.9: Fixed registering armor materials through EnumHelper exploding 1.9 ArmorMaterial now requires a SoundEvent for the equip sound. fry: Fixed model error reporting, fixed model errors in test mods that shouldn't happen, fixed custom texture loading, made more things private/final. fry: Fixed incorrect rotations for items in the left hand. Closes #2548. fry: Fixed incorrect culling of mod TESRs. fry: Fixed EffectRenderer patch, closes #2547. fry: Removed imports in patches. fry: Fixed progress reporting for model loading. fry: Javadocs, small cleanup. LexManos: Remove our entity position fixer. Vanilla fixed the bug in 1.9. LexManos: Fix vanilla bug where bows consumed tipped arrows in creative. LexManos: Fixed onUseStop being called twice {Bows firing twice} LexManos: Fixed Sand not falling. LexManos: Fixed NPE when sneak using a item. Adubbz: BlockColors and ItemColors no longer assume non-Vanilla id constancy. Added a getter for ItemColors. fry: Fixed MultiLayerModel not getting correct submodels; Unified the gui lighting of normal and custom models - diffuse lighting is now done in the pipeline, no need for IColoredBakedQuad anymore. fry: Fixed quads that don't need diffuse lighting getting it anyway. LexManos: Fix AT lines. fry: Fixed invalid index calculation in BakedQuadRetextured. fry: Fixed Block.doesSideBlockRendering, closes #2564. fry: Fixed outline shader rendering, closes #2560. fry: Fixed sprite not being passed to the quad builder for custom models. cordonfreeman: Fix for patch targetting the wrong field to change for failed pathfinding penalty iTitus: Fix the EntityPlayer patch In 1.8.9 the call goes to getDisplayNameString() so that any changes from the PlayerEvent.NameFormat event are being take into account. In this patch the call goes to func_70005_c_() which is the getter for the GameProfile name. I changed it back. Sorry if you do not want to accept it because it is a one-liner. vincent.lee: Fix #2555 diesieben07: Fix broken patch in EntityPlayer.updateRidden blay09: Fix KeyInputEvent only being fired if Keyboard.getEventKeyState() is false. It used to be called for both key-up and key-down states prior to 1.9, so I assume Vanilla's changes to F3 behavior broke the patch. matthewprenger: Pass exceptions thrown in mod event buses back to FML to handle apropriately vincent.lee: Fix double dropping of items. Closes #2549 cpw: Ignore classes directory cpw: Fix bucket test diesieben07: Fix EntityList.func_188429_b not supporting mod-entities, fixes spawn eggs, fixes #2581 CovertJaguar: Fix #2601 Minecart infinite acceleration gigaherz: Fix a condition that caused the enchantment table to roll invalid enchantments. fry: Switched animation system to capabilities, added animated item example, fixed state passing in MultiModel. fry: Separated model classes to client and common packages. fry: instance -> INSTANCE vincent.lee: Expose IItemHandler on vanilla entities fry: Implemented slightly more generic version of UVLock, re-enabled it for json models. Closes #2607. fry: Removed blockCenterToCorner from TRSRTransformation constructor. Closes #2461. fry: Ignore blocks/items with null registry name during model loading. Fixes NPE during resource reloading in worlds with removed blocks/items. fry: Made VertexBuffer.sortVertexData cleanup pointers after it's done. Closes #2528. fry: Added default left hand transforms for forge transform strings. Closes #2615. elpatricimo: Allow players sized smaller than 1 block to walk into small spaces Same as #2605 but for 1.9 branch LexManos: Rework DimensionManager for new DimensionType enum, replaces the old provider registry. Also fixed save folder issues with dimensions. Closes #2570 LexManos: Fix Chests not opening correctly with semi-solid blocks on top. LexManos: Fixed Item.shouldCauseReequipAnimation hook. LexManos: Add ShieldDecoration and Tipped arrows to recipe sorter. Closes #2613 LexManos: Exclude jna from termal tansformer. vincent.lee: Update according to suggestions LexManos: Fix pushing players inside blocks. LexManos: Make RenderLivingBase.add/remvoeLayer, Closes #2573 LexManos: Added support for custom dyes with Banners. Closes #2596 LexManos: Allow finite fluids to be drained correctly LexManos: Make OreDictionary.initVanillaEntries() private so that dumb modders will stop calling it. vincent.lee: Actually fix dupe drop LexManos: Fix swap animations for sure this time. fry: Added Capability.cast, to allow avoiding unchecked casts in ICapabilityProvider.getCapability LexManos: Update FML Entity Spawn packet for 1.9's location change. Closes #2567 LexManos: Fixed custom entities unique ids. LexManos: Fix typo causing biomes to be generated in wrong chunks. Closes #2632 fry: Show meaningful error if ModelLoaderRegistry is used before the missing model is initialized. fry: Register the animation Capability. No idea how it worked before at some point. iTitus: Add flashing update notification icon made by @gigaherz, closes #2582 It is added to the "Mods" button in the main menu and to out-of-date mods in the mod list (there it replaces the "U"). Also fixes a little typo. diesieben07: Fix BlockCrops.getDrops not respecting new age methods (for beetroots) diesieben07: Fix PopulateChunkEvent.Post not firing LexManos: New Builder class in BlockStateContainer. Makes building containers with both listed and unlisted properties cleaner. Make all methods of BiomeGenBase$BiomeProperties public so that modders can use that class outside subclasses. fry: Cleanup: removed IEEP, removed redundant casts, fixed imports, fixed typos. fry: Fixed isSideSolid causing infinite loops due to the call to getActualState. fry: Removed LanguageRegistry and CollectionWrapperFactory. fry: Removed RenderWorldEvent, encapsulated all public event fields. fry: Made some more public fields either private or final. fry: Disabled erroring block, fixed DynBucketTest.TestItem model. mezz: Make tooltips layout in the right direction, wrap if there is no room Same as #2649, but for Minecraft 1.9 fry: Fixed diffuse lighting not being applied if forge lighting pipeline is disabled, closes #2651 fry: Enabled diffuse lighting by default in UnpackedBakedQuad.Builder. fry: Fixed crosshair always being white, closes #2653. kashike: Replace Forge's `BlockPos#getImmutable` method with the included `BlockPos#toImmutable` (func_185334_h), while keeping the override in PooledMutableBlockPos to prevent mutable leaks. Also prevent a mutable blockpos leak in World#setTileEntity gigaherz: Add wrapper methods for IStorage#readNBT/writeNBT. mezz: Fix Block.getPickBlock returning an ItemStack with a null Item fry: Prevent missing model from loading multiple times. fry: Fixed StackOverflow caused by the previous commit, closes #2669. LexManos: Fix EntityPlayer still running old armor logic. Closes #2670 LexManos: Fix shrubs not generating correctly. Closes #2663 LexManos: Fix bows not animating properly when picking up ammo while using. Closes #2672 LexManos: Make NoteBlockEvent raw constructor protected to allow subclasses. Closes #2153 LexManos: Fix landing particles not showing up. Cloes #2661 me: Forward ItemBlock#addInformation to Block#addInformation tterrag1098: Add state param to canRenderInLayer hea3venmc: Fix remapped blocks being overriden with dummy air blocks. Closes #2491 cpw: Squashed commit of the following: commit b3b290aec9d3010a134859da6001ea28a96c2fdc Merge: c6ce6a0 d803f7d Author: cpw <[email protected]> Date: Fri Mar 25 13:28:04 2016 -0400 Merge branch 'RegistryRework' of https://github.com/LexManos/MinecraftForge into LexManos-RegistryRework Implement proper registry slaves. Should help with rollback related issues. Missing patch commit d803f7db76f65db9d27302c9804a643bc853dc22 Author: LexManos <[email protected]> Date: Tue Mar 22 03:36:14 2016 -0700 Update VillagerRegistry and use it. Should in theory make custom villagers work now. Using string version instead of int id for networking. commit eb5e5b4b42fdca26d2a104e4dc1e6a3ea3051a7b Author: LexManos <[email protected]> Date: Tue Mar 22 02:14:16 2016 -0700 More cleanup. commit edbc56b2ff314629d0e402709f3cf29fc79c4a3d Author: LexManos <[email protected]> Date: Tue Mar 22 02:05:23 2016 -0700 More cleanups, removed deprecated UniqueIdentifier {ResourceLocation now} commit e2df8d1be3c97601508f83dc97b0e8853fa1e271 Author: LexManos <[email protected]> Date: Tue Mar 22 01:29:19 2016 -0700 Stupid generics.... commit 46d57dc4677fa5ff3923e64eaccfb33d7e5aad8d Author: LexManos <[email protected]> Date: Tue Mar 22 01:00:25 2016 -0700 Some registry tweaking to provde a non-complicated API modders can use. cpw: Reconcile Block.patch cpw: Add registries for soundevents, enchantments and potiontypes MinecraftForge-2576 [1.9] SoundEvents (and Enchantments and PotionTypes) need a FML registry cpw: MinecraftForge-2683 InvocationTargetException for Forge 1820 for 1.9 cpw: MinecraftForge-2684 [1.9] New Registry ignores keys fry: Improved UV offset hackery - should fix most visible custom model seams. cpw: Support ResLocations for IMC cpw: Capture a vanilla freeze - will be used when FML connects to vanilla servers, soon LexManos: Fixed compile error in registry code with Eclipse. mezz: Add key binding modifiers and contexts. Same as #2674, but for Minecraft 1.9 Adubbz: Fixed mismatch registry names and mod ids LexManos: Properly deprecate and link the replacement methods in GameRegistry. Add helper method for registering a block with default ItemBlock because people keep complaining -.- fry: Changed generic signature of GameRegistry.register methods to work around the type inference bug; updated all example mods to the new block/item registration method. fry: Revert "Add key binding modifiers and contexts.", until it's fixed. This reverts commit 34c3af7e853d578c8e17e1f0cdf886251fad74ae. mezz: Re-Add key binding modifiers and contexts. mezz: Fix inability to attack while holding modifier keys mcjty1: Added DimensionManager.createProviderFor() to WorldClient constructor similar to what is done in WorldServer to make sure the correct provider is created client-side too. AEnterprise: onBlockHarvested is no longer called twice fry: Added the ability to change the printed model error count; Added printing of actual exceptions causing missing variants related to blockstate loading, closes #2689. fry: Made both exceptions occuring during item model loading print in the log; closes #2696. LexManos: Fix issue caused by setting spawnRadius to 0. Closes #2624 LexManos: Fixed EntityJoinWorldEvent not being fired for some entitites on Server Worlds. Closes #2685 LexManos: Fix improper logic in ItemHandlerHelper.giveItemToPlayer causing some items to not be added. Closes #2705 mezz: Add modifier support to vanilla keybindings. Add Orange conflict color for modifier/key conflicts (like Ctrl and Ctrl-Z conflicting) Related to #2692 vincent.lee: Player Interact Event Zaggy1024: Fixed using PlaySoundEvent to replace a sound with a PositionedSound causing an NPE due to the Sound field not being set by a call to ISound.createAccessor(SoundHandler). fry: Fixed mod languages not being loaded on the server. fry: Fixed some test mods not being marked as client-only. iTitus: Fix dynbucket item transformation. fry: Fixed zip being closed too early in the server language loading. fry: Fixed forge fluid having a collision box. kat.swales: Corrected CapabilityItemHandler.readNBT ignoring anything in slot 0 in 1.9 mezz: Fix #2717 Pick block hotkey not working in inventories mezz: Fix some plain keybinds not working when a modifier is active LexManos: Enhance some error logging related to OBJLoader issues, and RegistryEntries. LexManos: Cleanup OBJLoader parse function and fix issues related to JVM differences. Also fix support for sopme of the spec that was partially respected. LexManos: Fixed NPE in dedicated server languages. And fixed logger for main FML event bus. fry: Made forge fluids use smooth lighting. kashike: Remove @SideOnly(Side.CLIENT) from BossInfo/BossInfoServer methods These methods can also be used by the server (see BossInfoServer, it sends packets to the client but the methods are @SideOnly(Side.CLIENT)) LexManos: Fix potential desync between Forge's Villager profession and vanilla's int based system. LexManos: Fix being kicked from server when climbing ladders. matti.j.ruohonen: Fix ForgeChunkManager world unloading check (#2736) mezz: Add cancelable event for Potions shifting the gui position (#2667) Add cancelable event for Potions shifting the gui position matthewprenger: Don't use import static with net.minecraft classes. Using the latest MCP snapshots this causes an import conflict. (#2742) CrafterKina: make WorldSavedData implement NBTSerializable (#2745) mezz: Fix log spam from invalid key modifiers (#2746) LexManos: Expose a central place to access all of Vanilla and Forge's registries using the new registry API. iTitus: Fix forge:default-block transformation. (#2760) The first-person left-hand rotation was a little bit of. vincent.lee: Boss bar render event (#2701) Allow control over increment height LexManos: Fix NPE on shield break. Closes #2786 cpw: Add the new license text. Not yet applicable to forge. cpw: Update LICENSE-new.txt Clarification on infectivity cpw: Update LICENSE-new.txt Words cpw: Update LICENSE-new.txt Better words mezz: Close #2780 add CMD localization for Mac key bindings (#2792) bonii-xx: Fix SidedInvWrapper accessing wrong slots for setStackInSlot. (#2797) Fix DoubleChestItemHandler not implementing IItemHandlerModifiable LexManos: Fix sluggish scrolling on GuiScrollList's and fix small rendering issue with scroll bar on certian screen sizes. bloodmc: Only run block physics for TileEntities while capturing block placement. (#2803) Currently, all blocks placed by players that are not TE's run physics twice. Blocks that contain a TileEntity are not affected due to a check in 'ForgeHooks.onPlaceItemIntoWorld'. In order to fix the problem, 'Chunk.setBlockState' will now verify if blocks are being captured before running onBlockAdded and if so, only run physics if the block has a tileentity. This check also prevents blocks such as TNT's from running its physics (explosion) when event is cancelled. williewillus: Add Potion.renderHUDEffect (#2798) bloodmc: Call markDirty when restoring blocks with TileEntities. (#2809) This change makes sure the updated tileentity is saved properly within the chunk. AlexIIL: Fix TextureMap failing when registering a sprite's resource location twice (#2785) fry: Fixed custom fluid sufraces not rendering from the bottom. Closes #2800. fry: Make ChunkRenderDispatcher.countRenderBuilders configurable. Closes #2775. fry: Fixed cooldown overlay sometimes rendering opaque. Closes #2772. fry: Fixed villager profession not being set correctly on the client, and fixed custom village texture rendering. Closes #2766. LexManos: Fix withers breaking bedrock. Closes #2813 LexManos: Add a java version detection and nag system for users on Java 7 or below. Added detection of mods that rely on Java 8 and a graceful error screen. The nag screen will be shown once a day. It can be disabled by editing the forge.cfg. However it is HIGHLY recomended that user update to Java 8. LexManos: Remove usage of AsynchronousExecutor library in favor or a simpler implementation. cpw: Merge in a fix from 1.8.9 for rails |
沙发自占,可能会在这一楼补充(因为审核速度= =你懂的)。
没想到1.9mdk推荐版本出来了
顶{:10_492:}