buildscript {
repositories {
- jcenter()
- maven { url 'https://repo.spongepowered.org/maven' }
- maven { url 'https://jitpack.io' }
- maven { url 'https://files.minecraftforge.net/maven' }
+ mavenLocal()
+ mavenCentral()
+ maven {
+ name = "sonatype"
+ url = "https://oss.sonatype.org/content/repositories/snapshots/"
+ }
+ maven {
+ name = "forge"
+ url = "http://files.minecraftforge.net/maven"
+ }
+ maven {
+ name = 'sponge'
+ url = 'http://repo.spongepowered.org/maven'
+ }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
- classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
+ classpath 'org.spongepowered:mixingradle:0.5-SNAPSHOT'
}
}
-apply plugin: 'net.minecraftforge.gradle.tweaker-client'
-apply plugin: 'java'
+apply plugin: 'net.minecraftforge.gradle.liteloader'
apply plugin: 'org.spongepowered.mixin'
group 'com.irtimaled'
version project.buildVersion + '-' + project.mcVersion
archivesBaseName = 'BBOutlineReloaded'
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories {
- mavenCentral()
- maven { url 'https://libraries.minecraft.net/' }
- maven { url 'https://repo.spongepowered.org/maven/' }
- maven { url 'https://jitpack.io' }
-}
-
-dependencies {
- implementation('org.spongepowered:mixin:0.7.11-SNAPSHOT') { transitive = false }
- implementation('net.minecraft:launchwrapper:1.12') { transitive = false }
- implementation 'org.ow2.asm:asm:6.2'
- implementation 'org.ow2.asm:asm-commons:6.2'
-}
-
minecraft {
- version = project.mcVersion
- mappings = 'snapshot_20171003'
- runDir = 'run'
- tweakClass = 'com.irtimaled.bbor.launch.ClientTweaker'
- makeObfSourceJar = false
+ version project.mcVersion
+ mappings 'snapshot_20171003'
+ runDir 'run'
replace "@VERSION@", project.version
- replaceIn "com/irtimaled/bbor/Main.java"
+ replaceIn "com/irtimaled/bbor/litemod/LiteMod.java"
+}
- replace "@MC_VERSION@", project.mcVersion
- replaceIn "com/irtimaled/bbor/Main.java"
+sourceSets {
+ main {
+ ext.refMap = "mixins.bbor.refmap.json"
+ }
}
mixin {
defaultObfuscationEnv notch
- add sourceSets.main, 'mixins.bbor.refmap.json'
}
-sourceSets {
- main
- debug {
- compileClasspath += main.compileClasspath
- }
-}
-
-processResources {
- filesMatching('profile.json') {
- expand([
- 'version' : project.version,
- 'mcVersion' : project.mcVersion,
- 'tweakClass' : project.minecraft.tweakClass,
- 'formattedTime': new Date().format("yyyy-MM-dd'T'HH:mm:ss'-08:00'")
- ])
+litemod {
+ json {
+ name = "bbor"
+ displayName = "BoundingBoxOutlineReloaded"
+ description = "Shows the bounding boxes of structures and features."
+ version = project.version
+ author = "irtimaled"
+ mcversion = project.mcVersion
+ mixinConfigs += "mixins.bbor.json"
}
-
- inputs.property "version", project.version
- inputs.property "mcVersion", project.mcVersion
}
jar {
- finalizedBy reobfJar
- manifest.attributes(
- 'Main-Class': 'com.irtimaled.bbor.Main'
- )
-
- classifier = 'vanilla'
+ from litemod.outputs
}
-artifacts {
- archives jar
-}
+sourceJar.enabled = false
+
+afterEvaluate {
+ jar.baseName = project.archivesBaseName
+ jar.classifier = 'litemod'
+ jar.extension = 'jar'
+}
\ No newline at end of file
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip
+++ /dev/null
-package com.irtimaled.bbor;
-
-import com.irtimaled.bbor.install.Installer;
-
-public class Main {
- public static void main(String... args) {
- Installer.install("@VERSION@", "@MC_VERSION@");
- }
-}
+++ /dev/null
-package com.irtimaled.bbor.install;
-
-import javax.swing.*;
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-public class Installer {
- public static void install(final String version, final String mcVersion) {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Throwable t) {
- t.printStackTrace();
- }
-
- try {
- String osName = getOsName();
- File minecraftFolder = getMinecraftFolder(osName);
- File versionFolder = new File(minecraftFolder, "versions/BBOR-" + version + "/");
- versionFolder.mkdirs();
-
- File versionJson = new File(versionFolder, "BBOR-" + version + ".json");
- Files.copy(Installer.class.getResourceAsStream("/profile.json"), versionJson.toPath(), StandardCopyOption.REPLACE_EXISTING);
-
- try {
- File profilesJson = new File(minecraftFolder, "launcher_profiles.json");
- if (profilesJson.exists()) { // TODO: use gson instead
- String identifier = "\"bbor-" + mcVersion + "\"";
- String contents = new String(Files.readAllBytes(profilesJson.toPath()));
- if (contents.contains(identifier)) {
- contents = contents.replaceAll(",\n *" + identifier + ": \\{[^}]*},", ",");
- contents = contents.replaceAll(",?\n *" + identifier + ": \\{[^}]*},?", "");
- }
-
- String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
-
- contents = contents.replaceAll("(\n\\s*\"profiles\"\\s*:\\s*\\{)", "$1\n" +
- " " + identifier + ": {\n" +
- " \"name\": \"Bounding Box Outline Reloaded\",\n" +
- " \"type\": \"custom\",\n" +
- " \"created\": \"" + date + "T00:00:00.000Z\",\n" +
- " \"lastUsed\": \"2100-01-01T00:00:00.000Z\",\n" +
- " \"lastVersionId\": \"BBOR-" + version + "\"\n" +
- " },");
-
- Files.write(profilesJson.toPath(), contents.getBytes());
- }
- } catch (Throwable t) {
- t.printStackTrace();
- }
-
- try {
- String source = Installer.class.getProtectionDomain().getCodeSource().getLocation().getPath();
- if (source.startsWith("/") && osName.contains("win")) {
- source = source.substring(1);
- }
- File mainJar = new File(minecraftFolder, "libraries/com/irtimaled/bbor/" + version + "/bbor-" + version + ".jar");
- mainJar.getParentFile().mkdirs();
- Files.copy(Paths.get(source), mainJar.toPath(), StandardCopyOption.REPLACE_EXISTING);
- } catch (Throwable t) {
- t.printStackTrace();
- }
-
- JOptionPane.showMessageDialog(null,
- "Bounding Box Outline Reloaded " + version + " has been successfully installed!\n" +
- "\n" +
- "Re-open the Minecraft Launcher to see it in the dropdown.",
- "Bounding Box Outline Reloaded Installer", JOptionPane.INFORMATION_MESSAGE);
- } catch (Throwable t) {
- StringWriter w = new StringWriter();
- t.printStackTrace(new PrintWriter(w));
- JOptionPane.showMessageDialog(null,
- "An error occured while installing Bounding Box Outline Reloaded, please report this to the issue\n" +
- "tracker (https://github.com/irtimaled/BoundingBoxOutlineReloaded/issues):\n" +
- "\n" +
- w.toString().replace("\t", " "), "Bounding Box Outline Reloaded Installer", JOptionPane.ERROR_MESSAGE);
- }
- }
-
- private static File getMinecraftFolder(String osName) {
- File minecraftFolder;
- if (osName.contains("win")) {
- minecraftFolder = new File(System.getenv("APPDATA") + "/.minecraft");
- } else if (osName.contains("mac")) {
- minecraftFolder = new File(System.getProperty("user.home") + "/Library/Application Support/minecraft");
- } else {
- minecraftFolder = new File(System.getProperty("user.home") + "/.minecraft");
- }
- return minecraftFolder;
- }
-
- private static String getOsName() {
- return System.getProperty("os.name").toLowerCase(Locale.ROOT);
- }
-}
+++ /dev/null
-package com.irtimaled.bbor.launch;
-
-import java.io.File;
-import java.util.List;
-
-public class ClientTweaker extends Tweaker {
- @Override
- protected void addOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- addArg("--assetsDir", assetsDir.getPath());
- }
-
- @Override
- public String getLaunchTarget() {
- return "net.minecraft.client.main.Main";
- }
-
- @Override
- protected boolean isClient() {
- return true;
- }
-}
+++ /dev/null
-package com.irtimaled.bbor.launch;
-
-public class ServerTweaker extends Tweaker {
- @Override
- protected boolean isClient() {
- return false;
- }
-
- @Override
- public String getLaunchTarget() {
- return "net.minecraft.server.MinecraftServer";
- }
-}
+++ /dev/null
-package com.irtimaled.bbor.launch;
-
-import net.minecraft.launchwrapper.ITweaker;
-import net.minecraft.launchwrapper.LaunchClassLoader;
-import org.spongepowered.asm.launch.MixinBootstrap;
-import org.spongepowered.asm.mixin.MixinEnvironment;
-import org.spongepowered.asm.mixin.Mixins;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-public abstract class Tweaker implements ITweaker {
- public List<String> args;
-
- @Override
- public void acceptOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- this.args = new ArrayList<>(args);
- addArg("--version", profile);
- addOptions(args, gameDir, assetsDir, profile);
- }
-
- protected void addArg(String name, String value) {
- args.add(name);
- if (value != null) {
- args.add(value);
- }
- }
-
- protected void addOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- }
-
- @Override
- public void injectIntoClassLoader(LaunchClassLoader classLoader) {
- MixinBootstrap.init();
- Mixins.addConfiguration("mixins.bbor.json");
- MixinEnvironment.getDefaultEnvironment().setSide(isClient() ? MixinEnvironment.Side.CLIENT : MixinEnvironment.Side.SERVER);
-
- }
-
- protected abstract boolean isClient();
-
- @Override
- public String[] getLaunchArguments() {
- return args.toArray(new String[0]);
- }
-}
--- /dev/null
+package com.irtimaled.bbor.litemod;
+
+import com.irtimaled.bbor.client.ClientProxy;
+import com.irtimaled.bbor.common.interop.CommonInterop;
+
+import java.io.File;
+
+public class LiteMod implements com.mumfrey.liteloader.LiteMod {
+ @Override
+ public String getName() {
+ return "BoundingBoxOutlineReloaded";
+ }
+
+ @Override
+ public String getVersion() {
+ return "@VERSION@";
+ }
+
+ @Override
+ public void init(File configPath) {
+ CommonInterop.init();
+ new ClientProxy().init();
+ }
+
+ @Override
+ public void upgradeSettings(String version, File configPath, File oldConfigPath) {
+ }
+}
{
"required": true,
- "minVersion": "0.7.11",
+ "minVersion": "0.7.4",
"compatibilityLevel": "JAVA_8",
"target": "@env(DEFAULT)",
"package": "com.irtimaled.bbor.mixin",
+++ /dev/null
-{
- "inheritsFrom": "${mcVersion}",
- "id": "BBOR-${version}",
- "jar": "${mcVersion}",
- "time": "${formattedTime}",
- "type": "release",
- "arguments": {
- "game": [
- "--tweakClass",
- "${tweakClass}"
- ]
- },
- "mainClass": "net.minecraft.launchwrapper.Launch",
- "libraries": [
- {
- "name": "com.irtimaled:bbor:${version}",
- "url": "https://github.com/irtimaled/maven/releases/download/"
- },
- {
- "name": "org.spongepowered:mixin:0.7.11-SNAPSHOT",
- "url": "https://github.com/irtimaled/maven/releases/download/"
- },
- {
- "name": "org.ow2.asm:asm:6.2",
- "url": "http://repo1.maven.org/maven2/"
- },
- {
- "name": "org.ow2.asm:asm-commons:6.2",
- "url": "http://repo1.maven.org/maven2/"
- },
- {
- "name": "net.minecraft:launchwrapper:1.12"
- }
- ]
-}
\ No newline at end of file