Jump to content

Curle

Members
  • Posts

    200
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Curle

  1. Forge Version: 38.0.6

    Minecraft Version: 1.18

    Downloads:

    However, as this is the start of a new version, it is recommended that you check the Downloads Page and use the latest version to receive any bug fixes.

    Intro:

    1.17 was a stepping stone, and 1.18 is the real target.

    The culmination of the Caves & Cliffs update, with few real code changes from 1.17 except those required to plug in the new biome system.

    This is our new Latest version.

    As we had some time before the release, we handled some refactors beforehand. Those will be listed here.

    Changelog:

    Refactors (not comprehensive):

    • 99% of the fmllegacy package. Most classes were simply moved from x.y.fmllegacy.z to x.y.z.
    • All instances of Gui -> Screen (GuiOpenEvent -> ScreenOpenEvent, for example)
    • GuiScreenEvent -> ScreenEvent, GuiOverlayDebugForge -> ForgeDebugScreenOverlay
    • All instances of GameMode -> GameType (ClientPlayerChangeGameModeEvent -> ClientPlayerChangedGameTypeEvent, for example)
    • All instances of MatrixStack -> PoseStack (DrawSelectionEvent.matrix -> DrawSelectionEvent.poseStack, for example
    • All instances of KeyBinding -> KeyMapping (ClickInputEvent.keyBinding -> ClickInputEvent.keyMapping, for example
    • All instances of World -> Level
    • All instances of WorldType -> WorldPreset (ForgeHooksClient.getDefaultWorldType -> ForgeHooksClient.getDefaultWorldPreset, for example
    • All instances of NBT -> Tag (BlockSnapshot.getNbt -> BlockSnapshot.getTag, for example)
    • All instances of Container -> Menu (IForgeContainerType -> IForgeMenuType, for example)
    • PlaySoundEvent.sound -> PlaySoundEvent.originalSound
    • PlaySoundEvent.result -> PlaySoundEvent.sound
    • SoundEvent.manager -> SoundEvent.engine
    • SoundEvent.SoundSourceEvent.source -> SoundEvent.SoundSourceEvent.channel
    • FOVUpdateEvent -> FOVModifierEvent
    • EntityViewRenderEvent.FOVModiier -> EntityViewRenderEvent.FieldOfView
    • InputUpdateEvent -> MovementInputUpdateEvent
    • InitScreenEvent.{...Widget...} -> {...Listener...}
    • ForgeItemTagsProvider.func_240521_a_Colored -> copyColored
    • MobSpawnInfoBuilder -> MobSpawnSettingBuilder
    • BasicTrade -> BasicItemListing
    • ModelLoader -> ForgeModelBakery
    • ForgeWorldTypeScreens -> ForgeWorldPresetEditors
    • StackList -> MultItemValue

    Removals:

    • Entire Animation API
    • IForgeTextureAtlasSprite
    • IForgeItem.{showDurabiityBar, getDurabilityForDisplay, getRGBDurabilityForDisplay}
    • ForgeHooksClient.refreshResources
    • ModelBuilder.gui3d
    • BlockInfo.{updateShift, getShx, getShy, getShz}
    • CapabilityInject
    • CapabilityManager.register
    • ConditionalAdvancement.processConditions
    • IForgeItem.isShield
    • IForgeStructureFeature.{getDefaultSpawnList, getDefaultCreatureSpawnList}
    • Forge's Constants class
    • VanillaResourceType
    • ForgeHooksClient.worldRenderPass (+ accessor)
    • ForgeHooksClient.{preDraw, postDraw, getColorIndex}
    • ScrollPanel.drawBackground
    • Screen.{RenderToolTip, RenderComponentToolTip}
    • ResourceManager.getResourceType
    • LootPool.bonusRolls
    • ForgeConfig - selectiveResourceReload
    • PotionEvent.PotionAddedEvent
    • ClientHooks
    • ModFileResourcePack
    • ResourcePackLoader.getResourcePackFor
    • ResourcePackLoader.IPackInfoFinder
    • ServerLifecycleHooks.buildPackFinder
    • IResourceType
    • ReloadRequirements
    • CommandSetDimension
    • Like 1
  2. Forge Version: 37.1.0

    Minecraft Version: 1.17.1

    Downloads:

    Intro:

    It's been a long time coming, but this is the final release for 1.17 as we move onto 1.18.

    This marks the deprecation of 1.17 and the sustainance of 1.16 as our LTS version.

    Changelog:

    New:

    • Added a new tag-based tool system, based on a new ToolAction type.
    • Added compatibility with shears and shields to the above tool system
    • Added a new capabilities system that isn't based on annotations.
    • Added a RegisterCapabilitiesEvent.
    • Added a PlayerPermissionChangedEvent to monitor for /op usage.
    • Added a RegisterClientReloadListenersEvent.
    • Added the EntityRenderersEvent.[RegisterLayerDefinitions && RegisterRenderers && AddLayers] events for more conrol over entity rendering.
    • Added a RegisterShadersEvent for custom render shaders with the new pipeline.
    • Added onDatapackSyncEvent for sending extra information to the client from a server.
    • Added EntityEvent.EnteringSection to replace the old EnteringChunk event.
    • Added custom pack finders - AddPackFindersEvent + PathResourcePackAdded a new Tooltip event system
    • Added RenderStateShard hooks
    • Added hooks for custom boat models & textures.
    • Added a forceSystemNanoTime config option to alleviate performance issues with the glfwGetTime method.
    • Added an AT to make Features.Decorators public for modders
    • Added a hook for custom sweep ranges in weapons.
    • Added "remove" lists to tag datagenerators
    • Added lazy capabilities for ItemStacks to increase performance.
    • Added canConnectRedstone hooks to BlockState for futher connection customization
    • Added back linear filtering options for text rendering.
    • Added a GUI stacking system.
    • Added ForgeSpawnEggItem that can handle EntityTypes lazily to work around registry order issues.
    • Added hooks in AdvancementProvider
    • Added hooks for worldgen extensibility in Noise based classes.
    • Added the entity cause to the PotionAddedEvent
    • Added a way to see the fullPots map in FlowerPotBlock
    • Added hooks to ScrollPanel to make it easier to use in a mod.
    • Added deprecation on Forge's Constants class with a notice to use vanilla's constants.
    • Added extra mouse event hooks so that things handled by the game can be listened for

    Fixes:

    • Fix entities entering a pathfinding loop and spinning in circles.
    • Fix ProjectileImpactEvent bugs caused by using generics unnecessarily.
    • Fix installer breaking when there's a space in the installation path
    • Fix syncing of custom ingredients
    • Fix pairs of apostrophes being removed from ForgeInternationalizaton strings
    • Fix pickblock for items that have multiple blocks
    • Fix initializeClient methods running in datagenerators
    • Fix pet death message being sent when it is cancelled by event.
    • Fix custom WoodTypes causing signs to break
    • Fix waterlogged blocks displaying air for a frame when broken
    • Fix non-flammable blocks with a flammable material catching fire next to lava
    • Fix Part Entities not working.
    • Fix spectating Part Entities not working.
    • Fix WorldEvent.Load not firing before chunks are created in the overworld.
    • Fix death message for tamed animals
    • Fix issues in BackgroundScanHandler related to poor disk IO
    • Fix an infinite loop when dismounting in EntityMountEvent
    • Fix render pipeline having issues with small cubes.
  3. If you want the more future proof in-code solution that doesn't require an arbitrary hardcoded string interpolation,
     

    .withStyle(ChatFormatting.GOLD)

    this call on the `TextComponent` will color it. You can use any ChatFormatting enum constant, including ones that are added after the fact, and you don't have to consult some table on the internet to find what you want.

  4. That means a jar file somwhere got corrupted in the download.

    Go to your user home folder (C:/Users/<username> on Windows, /home/<username> on Linux, /Users/<username> on MacOS) and delete the folder named .gradle

    This'll delete everything it downloaded and hopefully give you a clean slate to get it going.

  5. 1.17 shipped with a game breaking bug that means any mod which contains a datapack (almost every mod ever made!) will cause the game to crash to desktop.

    There is no advantage for anyone if we release a version of Forge for 1.17.

    We are not going to.

     

  6. Forge Version: 37.0.0

    Minecraft Version: 1.17.1

    Downloads:


    It's time!

    The first release of 1.17 is ready!
    Before you dive in, we have to address some things.

    We were planning to release this sooner, but real-life matters and the update to Java 16 meant we were waiting for other projects to conclude before we can release.
    It is not the fault of any one person or project, this delay was caused by a number of factors.
    However, enough waiting has occured, and we want to put this in the hands of the players.
     

    Notice

    This is an *early access beta* build. Nothing here is final, it's merely an introduction for modders to get used to the new features.
    We have lots of changes still to come, but the main things are here. The FML peel, the game test system, Java 16 features..


    Java 16 and Modules

    Almost every Java 16 feature is open to mods. Go ham.
    However, modules are a bit of a pain to use.

    If you do use the module-info system in your mod, make sure you fully understand what it is and how it is exposed to other modules (mods) at compile time.
    Currently, module-infos will be ignored at runtime but NOT at compile time.
    Our ongoing advice is to not develop your mod as a module.
     

    Extra mentions

    Additionally, mixins.
    Mixins do not work with the new Modlauncher yet, and we are waiting for Mumfrey to review and update Mixin.
    Once he gives us the go ahead that it is stable and supports the new systems, we'll ship it again.
    As such, we're going to release the first few builds of Forge without them.
     

    LTS

    As a reminder, once 1.17 is released, 1.16 and 1.15 become joint LTS versions - 1.15 is now in grace.
    In 1 month (22nd August 2021), 1.15 will be dropped altogether.
    We plan that once 1.18 releases, 1.16 will stay as LTS and 1.17 will be dropped, but this is just a plan and is not solid.
     

    ForgeGradle

    ForgeGradle 5 just had a Recommended Build. There will be no breaking changes in the tool until the next minor version.
    1.16 and 1.17 now also use ForgeGradle 5 by default, to make it easier for modders that use both versions and don't wish to deal with the mess that is Java 16 support.
    ForgeGradle still follows the even-odd versioning, where odd minor versions (5.1, 5.3. 5.5...) have no breaking changes, and even minor versions (5.2, 5.4, 5.6...) are breaking/development phases.

    This system may seem strange at first, but it helps us remove unnecessary technical debt.
    I recommend hardcoding the version to 5.1.+ (or see the new default MDK buildscript) to avoid unwanted breakages in your project.
     

    FML

    FML and the Modlauncher system was designed for Java 9+ modularity from the start - using modules is something we have been intending to do from day one.
    However, there are a few complications with integrating with such an unnecessarily complicated system as Java modularity, so the internal FML APIs are not solid.

    Any mod interfacing with the FML APIs before the RB may encounter crashes with the next update, as we figure out where things belong and move them accordingly.
    Anything inside these packages are liable to be moved, changed, or removed on any minor update before the first RB:

    • net.minecraftforge.fmlclient
    • net.minecraftforge.fmllegacy
    • net.minecraftforge.fmlserverevents

    However, once it's all finished, we can properly reimplement things like native API exposure for mods via package exports, native jar-in-jar loading, etc.
    Lots of cool opportunities for modules in mods.
     

    Forge Repo Structure

    With the FML Peel complete, the structure of the Forge repos has become a bit more complex;
    There are many subprojects, each containing a part of the whole project.

    A main part of this is to facilitate the new fmlonly configuration - where the modloader can be built without the API.
    This can theoretically enable modding on snapshots, given a small amount of work done on the backend.
     

    Installers and the Server

    <TECHNICAL>

    Due to the way the module system works in Java, the server now launches in a much different way.
    It is no longer feasible to provide a single executable jar like was done before, so we use a workaround:

    When you install a server, you'll see two run scripts (one for linux and mac, one for Windows) and argument files.
    The arguments are added in the order:

    java @user_jvm_args.txt @forge_args.txt <user game args>

    As you can tell by the name, only the user_jvm_args.txt file is are intended to be modified by the end user.
    </TECHNICAL>

    There is a written example provided by me in the user_jvm_args file that explains the most commonly used arguments (-Xmx, -Xms).
    Tutorials for creating a server will no longer work on Forge >=37.0. You must use one of the command files (.bash / .sh) provided, or the game will not be able to load.

    Closing thoughts

    With all that said, we're looking forward to having people play with Forge. Remember, if you see any bugs, feel free to report them here (the forums), our Discord server or on the issue tracker.

    Happy Modding!

  7. Okay, let's take this slowly.

    Exit Code 0 is game terms for "something went wrong". 
    Without knowing exactly what caused the problem, there's no way anybody here can diagnose the issue.

    Luckily, the game makes a log of what's going on and the problems it encounters when loading.

    So, when you're looking at the mods folder, you need to go up one folder (into .minecraft) and then into the "logs" folder.
    There should be a whole bunch of files here with weird names, but I need the one called simply "debug", or on some computers, "debug.log".

    There are a bunch of files that end with .gz, those are archives of old logs and won't help determine what's going on here.
     

    Once you find the debug log file, you can either attach it in a message here for us to read, or if you like saving us some time, you can open it (with notepad or something) and copy-paste its contents into pastebin - but remember to paste the URL it sends you to once you save it, into here.

    Try not to copy-paste the full log into a message here, that takes forever to scroll through. The ways I suggested make it easier for us to search for the problem with external tools.
     

  8. ... You think Forge is bad because it can't load a proprietary zip as a mod?
    That zip is an FTB modpack metadata. It contains no information about actual mods.
    There's literally nothing Forge can do with that file.
    It's impossible for everything except the FTB launcher (and maybe MultiMC) to do anything with it...

    You can like, open the zip. It contains a list of the mods you need to download. In text format.

×
×
  • Create New...

Important Information

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