I try use mixing in vanilla server and get problem to use net.minecraft classes. I need to use net.minecraft.entity.player.EntityPlayer but gradle doesn’t see it. Which dependency should I add to use nms objects
So this isnt a straight forward answer.
Sponge Vanilla uses Mojang mappings, while Forge itself uses MVC mappings. While this shouldnt matter after its compiled, it does lead to different imports and may cause issues if your attempting to use forge specific or forge mods.
Lets start with the easy one.
P.S both these options officially require Java 8 - although i got the official way working on java 17 once a gradle build
was ran once
Official way
This will give you the mojang mappings.
Open your gradle.build file and add the plugin of
id("org.spongepowered.gradle.vanilla") version 0.2
Then provide the following properties
minecraft {
version("1.16.5")
runs {
server()
}
}
And thats it, build it
Unofficial way
This is the MVC mapping way which means you wont be able to talk to spongeCommon code, but will be able to talk to forge and other mods that are mapped with mvc.
- load the default for a forge mod
- add the sponge api as a dependency
This will boot it as a forge mod, but will have access to sponge api. If you want it to also run on sponge vanilla and it gets treated as a plugin, then do the following extra
- remove the forge mod loading file (cant remember what that file is) within the gradle build script
- add the
sponge_plugins.json
using gradle