Jump to content

[1.6.4][Forge][API] Simplicity API~Making modding with Forge simpler!


Recommended Posts

Posted

                                        WARNING:

This mod is for modders only, unless you have a mod that requires this API to run.

 

--------------------------------------------------------------------------------------------------------------------------------------------------

 

Hey guys, this is my new API called "Simplicity". Basicaly, the point of this is to simplify Forge code for modders into one-line of code. For example, if you were to create a block with Forge, you would have to type:

public static Block testBlock = new Block(1000, Material.rock).setHardness(1F).setResistance(5F).setStepSound(Block.soundPowderFootstep).setLightValue(0.5F).setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("testBlock").setTexturePath("cobblestone");

@EventHandler
public void preInit(FMLInitializationEvent event){
LanguageRegistry.addName(testBlock, "new block");
}

@EventHandler
public void init(FMLInitializationEvent event){
GameRegistry.registerBlock(testBlock);
}

 

See? It takes up alot of time, space, and just overall makes your classes look...messy. With this API, to do the SAME thing, you'll type:

public static Block testBlock = getNewAdvancedBlock(1F, 5F, 0.5F, "new block", "cobblestone", CreativeModeTabs.BLOCK.tab, StepSounds.POWDER.tab);

 

And your done! You dont need to add the names, register the block, or anything, this takes care of it for you. You dont even need the "preInit" or "init" methods if you dont want to. I probably could make four new blocks in the time in takes to make just one without this. If your creating a new class for a customized block, there's interfaces that you can use to import all the methods like "onBlockActivated" and "onEntityCollidedWithBlock", so you dont have to go to other classes to copy/paste the code from.

 

My friend MrrGingerNinja will be uploading some tutorials for this in the next few days. If you guys like this mod, ill definitely will be adding more to this API!

---------------------------------------------------------

Features:

-Find the next avalible block/item ID without looking to see if you used that ID already.

-Easily create new blocks & items with a single line of code.

-Create a new CreativeTab with a single line of code, WITHOUT creating any new classes.

-Specify your mod's info, WITHOUT creating a mcmod.info file or mod metadata, again with only one line of code.

----------------------------------------------------------

Download:

*Download coming soon* (in a few hours)

----------------------------------------------------------

 

Thanks everyone! Hope you enjoy!

 

~Geforce132

 

Potato's have skin. I have skin. Therefore, i am a potato.

 

Follow me on Twitter!

http://www.twitter.com/I_Mod_Minecraft

Posted

Very cool, but tbh i spent too much time coding to make use of it. shame

 

Hope newer coders can make use of your API

Communication is a vital tool, in the game industry you won't go anywhere without it. People are either going to learn to talk, or move on.

Posted

Why?

Your api is simply a wrapper function that calls the other methods....

It's helpful if people call those methods a lot, but it's 3 lines of code, not really useful to write an entire 'API' for...

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } }  
    • All versions of Minecraft Forge suddenly black screen even without mods (tried reinstalling original Minecraft, Java, updating drivers doesn't work)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

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