GithubHelp home page GithubHelp logo

essentialgg / universalcraft Goto Github PK

View Code? Open in Web Editor NEW
51.0 6.0 12.0 632 KB

A Minecraft modding library designed to seamlessly support a single code base branching different Minecraft versions and LWJGL versions

License: GNU Lesser General Public License v3.0

Java 19.04% Kotlin 80.96%

universalcraft's Introduction

UniversalCraft

A full Java interop library that wraps Minecraft classes which allows you to write code for multiple versions at the same time. Built using ReplayMod's Preprocessor.

It also features a "standalone" edition, which can run GUIs without Minecraft so long as they only depend on UniversalCraft and not Minecraft directly. This can allow for a faster development loop (no need to wait a minute for Minecraft to start), automated testing without having to bootstrap a full Minecraft environment, and even development of completely standalone applications using the same toolkit (e.g. Elementa) as one is already familiar with from Minecraft development. See the standalone/example/ folder for a fully functional example.

Dependency

It's recommended that you include [Essential](link eventually) instead of adding it yourself.

In your repository block, add:

Groovy

maven {
    url = "https://repo.essential.gg/repository/maven-public"
}

Kotlin

maven(url = "https://repo.essential.gg/repository/maven-public")

To use the latest builds, use the following dependency format, use the build reference to find the correct replacements:

Forge
implementation("gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber")
Fabric

Groovy

modImplementation(include("gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber"))

Kotlin

modImplementation(include("gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber")!!)

Build Reference

Build Reference
mcVersion mcPlatform buildNumber
standalone N/A standalone
1.21fabric1.21-fabric
1.20.6fabric1.20.6-fabric
1.20.4forge1.20.4-forge
1.20.4fabric1.20.4-fabric
1.20.2forge1.20.2-forge
1.20.2fabric1.20.2-fabric
1.20.1forge1.20.1-forge
1.20.1fabric1.20.1-fabric
1.20fabric1.20-fabric
1.19.4forge1.19.4-forge
1.19.4fabric1.19.4-fabric
1.19.3forge1.19.3-forge
1.19.3fabric1.19.3-fabric
1.19.2forge1.19.2-forge
1.19.2fabric1.19.2-fabric
1.19.1fabric1.19.1-fabric
1.19fabric1.19-fabric
1.18.1forge1.18.1-forge
1.18.1fabric1.18.1-fabric
1.17.1forge1.17.1-forge
1.17.1fabric1.17.1-fabric
1.16.2fabric1.16.2-fabric
1.16.2forge1.16.2-forge
1.12.2forge1.12.2-forge
1.8.9forge1.8.9-forge

IMPORTANT!

If you are using forge, you must also relocate UC to avoid potential crashes with other mods. To do this, you will need to use the Shadow Gradle plugin.

Groovy Version

You can do this by either putting it in your plugins block:

plugins {
    id "com.github.johnrengelman.shadow" version "$version"
}

or by including it in your buildscript's classpath and applying it:

buildscript {
    repositories {
        gradlePluginPortal()
    }
    dependencies {
        classpath "gradle.plugin.com.github.jengelman.gradle.plugins:shadow:$version"
    }
}

apply plugin: "com.github.johnrengelman.shadow"

You'll then want to relocate UC to your own package to avoid breaking other mods

shadowJar {
    archiveClassifier.set(null)
    relocate("gg.essential.universal", "your.package.universal")
}
tasks.named("reobfJar").configure { dependsOn(tasks.named("shadowJar")) }
Kotlin Script Version

You can do this by either putting it in your plugins block:

plugins {
    id("com.github.johnrengelman.shadow") version "$version"
}

or by including it in your buildscript's classpath and applying it:

buildscript {
    repositories {
        gradlePluginPortal()
    }
    dependencies {
        classpath("gradle.plugin.com.github.jengelman.gradle.plugins:shadow:$version")
    }
}

apply(plugin = "com.github.johnrengelman.shadow")

You'll then want to relocate UC to your own package to avoid breaking other mods

tasks.shadowJar {
    archiveClassifier.set(null)
    relocate("gg.essential.universal", "your.package.universal")
}
tasks.reobfJar { dependsOn(tasks.shadowJar) }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.