NeoBackports
Backports of various Neoforge / 1.21.1 features to 1.20.1 for easier maintenance between versions
介绍
A library for using neoforge 1.21.1 features and methods on forge 1.20.1
This mod is intended to be used as a library included with other mods. Currently, the only standalone features are blurred 1.21-style gui backgrounds. Manually installing a newer version than is packaged is only useful for fixing bugs
Current features include:
- Datamaps
- Data components
- Data attachments
- Stream codecs
- Blurred gui backgrounds (enabled with a built-in resourepack)
- DeferredHolders (and their subtypes)
- 1.21.1-style networking
- Recipe serializers with codecs
- useItemOn and useWithoutItem methods for blocks
… and a lot of convenience interface extensions
Q&A
- Why backport to 1.20.1? wouldn’t it make more sense to help devs port up instead of down?
- Making a lib for foward porting is fundamentally pointless, as it carries technical debt and would require porting the lib up every new version. Devs would never get used to new features, even when they are objectively better, and would make laggier and buggier mods. Doing it this way means we can satisfy the 1.20 crowd while still pushing them towards newer version
- This sounds like a synitra connector type mod, could it work that way?
- Theoretically, if I put a lot of work into it, it could make very tiny 1.21.1 mods run on 1.20.1, but the support would be extremely limited so it’s not work the time. TLDR: NO
Installation instructions
Since this lib uses interface injections, switching from ForgeGradle to ModDevGradle Legacy gradle plugin is required. Documentation here and a working MDK here
In build.gradle:
repositories {
// Some other repositories you might have...
maven {
url = 'https://nikdo53.github.io'
}
}
dependencies {
// Some other dependencies you might have...
jarJar(modImplementation("net.nikdo53:NeoBackports:${neobackports_version}"))
interfaceInjectionData("net.nikdo53:NeoBackports:${neobackports_version}")
}
In gradle.properties:
# Set to whatever is latest
neobackports_version=1.4.1
Technical differences
Features aren’t backported 1 to 1 (due to backend differences between versions) but should be similar enough for most mods to just work without major differences
Class names
In order to make the difference between original forge/vanilla classes and backported ones, backported classes get the “neo” suffix, for example:
- SmithingRecipe -> SmithingRecipeNeo
- PacketDistributor -> PacketDistributorNeo
- DeferredRegister -> DeferredRegisterTyped (this ones different cuz i forgot)
Data components/attachments
Unlike 1.21.1, these are just clever wrappers for existing features (item nbt and capabilities respectively), meaning that other mods not using this API should be able to access them like normal.
Datamaps
These have been (with permission) ported directly from neoforges code with minimal differences. Note that the login packet which handshaked known datamaps has been removed and non-mandatory are generally not supported. I might return to this in the future, but since this mod is required on both client and server, it’s probably not very useful (and 1.20.1 login packets are weird)
Stream codecs
The ByteBuf generic has been removed, since everything uses FriendlyByteBuf:
StreamCodec -> StreamCodec
The icon is a tibetan fox, it looks pissed cuz its been forced to use forge
常见问题
NeoBackports 支持哪些 Minecraft 版本?
NeoBackports 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
NeoBackports 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
Nikdo53 的其他作品
查看全部 →Starcatcher
一款拥有丰富鱼类和隐藏内容的钓鱼模组!
More Sniffer Flowers
嗅探兽花朵,但种类更多且确实有用
Tiny Multiblock Lib
A Tiny Lib for easy creation of Multiblocks with a built-in ghost system. Made to be packaged with other mods
评论
登录后评论和评分