From a827a6ccd733ef9f469362e88b4454a0f55230ab Mon Sep 17 00:00:00 2001 From: Irtimaled Date: Sun, 12 May 2019 20:42:29 -0700 Subject: [PATCH] Update for Rift 1.13.2 --- build.gradle | 3 +- src/main/java/com/irtimaled/bbor/Main.java | 18 ---- .../com/irtimaled/bbor/install/Installer.java | 101 ------------------ .../irtimaled/bbor/launch/ClientTweaker.java | 35 ------ .../irtimaled/bbor/launch/ServerTweaker.java | 13 --- .../com/irtimaled/bbor/launch/Tweaker.java | 47 -------- .../java/com/irtimaled/bbor/rift/Loader.java | 13 +++ .../irtimaled/bbor/server/ServerRunner.java | 80 -------------- .../bbor/server/ThrowableConsumer.java | 18 ---- src/main/resources/profile.json | 35 ------ src/main/resources/riftmod.json | 10 ++ 11 files changed, 25 insertions(+), 348 deletions(-) delete mode 100644 src/main/java/com/irtimaled/bbor/Main.java delete mode 100644 src/main/java/com/irtimaled/bbor/install/Installer.java delete mode 100644 src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java delete mode 100644 src/main/java/com/irtimaled/bbor/launch/ServerTweaker.java delete mode 100644 src/main/java/com/irtimaled/bbor/launch/Tweaker.java create mode 100755 src/main/java/com/irtimaled/bbor/rift/Loader.java delete mode 100644 src/main/java/com/irtimaled/bbor/server/ServerRunner.java delete mode 100644 src/main/java/com/irtimaled/bbor/server/ThrowableConsumer.java delete mode 100644 src/main/resources/profile.json create mode 100755 src/main/resources/riftmod.json diff --git a/build.gradle b/build.gradle index 55fa7ef..be61328 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,7 @@ repositories { } dependencies { + implementation('com.github.Chocohead:Rift:f76cf44d887d290782590c99770876393c924333:dev') { transitive = false } 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' @@ -82,7 +83,7 @@ jar { 'Main-Class': 'com.irtimaled.bbor.Main' ) - classifier = 'vanilla' + classifier = 'rift' } artifacts { diff --git a/src/main/java/com/irtimaled/bbor/Main.java b/src/main/java/com/irtimaled/bbor/Main.java deleted file mode 100644 index 0449b17..0000000 --- a/src/main/java/com/irtimaled/bbor/Main.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.irtimaled.bbor; - -import com.irtimaled.bbor.install.Installer; -import com.irtimaled.bbor.server.ServerRunner; - -import java.io.IOException; -import java.util.Arrays; - -public class Main { - public static void main(String... args) throws IOException { - if (args.length > 0 && args[0].equals("--server")) { - ServerRunner.run("@MC_VERSION@", Arrays.asList(args).subList(1, args.length)); - } else { - Installer.install("@VERSION@", "@MC_VERSION@"); - - } - } -} diff --git a/src/main/java/com/irtimaled/bbor/install/Installer.java b/src/main/java/com/irtimaled/bbor/install/Installer.java deleted file mode 100644 index 327a813..0000000 --- a/src/main/java/com/irtimaled/bbor/install/Installer.java +++ /dev/null @@ -1,101 +0,0 @@ -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()) { - String identifier = "\"bbor-" + mcVersion + "\""; - String contents = new String(Files.readAllBytes(profilesJson.toPath())); - if (contents.contains(identifier)) { - contents = contents.replaceAll(",\n?\\s*" + identifier + "\\s*:\\s*\\{[^}]*},", ","); - contents = contents.replaceAll(",?\n?\\s*" + identifier + "\\s*:\\s*\\{[^}]*},?", ""); - } - - String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); - - contents = contents.replaceAll("([}],\n?\\s*\"profiles\"\\s*:\\s*[{]\n?)", "$1" + - " " + 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" + - " },\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); - } -} diff --git a/src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java b/src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java deleted file mode 100644 index 1d833ea..0000000 --- a/src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.irtimaled.bbor.launch; - -import java.io.File; -import java.util.List; - -public class ClientTweaker extends Tweaker { - @Override - protected void addOptions(List args, File gameDir, File assetsDir, String profile) { - if (!isOptifineLoaded()) { - super.addOptions(args, gameDir, assetsDir, profile); - addArg("--gameDir", gameDir != null ? gameDir.getAbsolutePath() : null); - addArg("--assetsDir", assetsDir != null ? assetsDir.getPath() : null); - addArg("--version", profile); - } - } - - private boolean isOptifineLoaded() { - try { - Class cls = Class.forName("optifine.OptiFineTweaker"); - return cls != null; - } catch (Throwable e) { - return false; - } - } - - @Override - public String getLaunchTarget() { - return "net.minecraft.client.main.Main"; - } - - @Override - protected boolean isClient() { - return true; - } -} diff --git a/src/main/java/com/irtimaled/bbor/launch/ServerTweaker.java b/src/main/java/com/irtimaled/bbor/launch/ServerTweaker.java deleted file mode 100644 index f214d0d..0000000 --- a/src/main/java/com/irtimaled/bbor/launch/ServerTweaker.java +++ /dev/null @@ -1,13 +0,0 @@ -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"; - } -} diff --git a/src/main/java/com/irtimaled/bbor/launch/Tweaker.java b/src/main/java/com/irtimaled/bbor/launch/Tweaker.java deleted file mode 100644 index 3993efa..0000000 --- a/src/main/java/com/irtimaled/bbor/launch/Tweaker.java +++ /dev/null @@ -1,47 +0,0 @@ -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 { - private List args; - - @Override - public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { - this.args = new ArrayList<>(); - addOptions(args, gameDir, assetsDir, profile); - } - - void addArg(String name, String value) { - if (value != null) { - args.add(name); - args.add(value); - } - } - - protected void addOptions(List args, File gameDir, File assetsDir, String profile) { - this.args.addAll(args); - } - - @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]); - } -} diff --git a/src/main/java/com/irtimaled/bbor/rift/Loader.java b/src/main/java/com/irtimaled/bbor/rift/Loader.java new file mode 100755 index 0000000..bb20fb1 --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/rift/Loader.java @@ -0,0 +1,13 @@ +package com.irtimaled.bbor.rift; + +import org.dimdev.riftloader.listener.InitializationListener; +import org.spongepowered.asm.launch.MixinBootstrap; +import org.spongepowered.asm.mixin.Mixins; + +public class Loader implements InitializationListener { + @Override + public void onInitialization() { + MixinBootstrap.init(); + Mixins.addConfiguration("mixins.bbor.json"); + } +} \ No newline at end of file diff --git a/src/main/java/com/irtimaled/bbor/server/ServerRunner.java b/src/main/java/com/irtimaled/bbor/server/ServerRunner.java deleted file mode 100644 index 763c546..0000000 --- a/src/main/java/com/irtimaled/bbor/server/ServerRunner.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.irtimaled.bbor.server; - -import net.minecraft.launchwrapper.Launch; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; -import java.nio.channels.Channels; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class ServerRunner { - private static final Map VANILLA_SERVER_JARS = new HashMap<>(); - - private static final String[] LIBRARIES = { - "https://github.com/irtimaled/Mixin/releases/download/org/spongepowered/mixin/0.7.11-SNAPSHOT/mixin-0.7.11-SNAPSHOT.jar", - "https://repo1.maven.org/maven2/org/ow2/asm/asm/6.2/asm-6.2.jar", - "https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/6.2/asm-commons-6.2.jar", - "https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/6.2/asm-tree-6.2.jar", - "https://libraries.minecraft.net/net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar" - }; - - private static final ThrowableConsumer addURL; - - static { - VANILLA_SERVER_JARS.put("1.13.2", "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar"); - VANILLA_SERVER_JARS.put("1.13.1", "https://launcher.mojang.com/v1/objects/fe123682e9cb30031eae351764f653500b7396c9/server.jar"); - VANILLA_SERVER_JARS.put("1.13", "https://launcher.mojang.com/v1/objects/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar"); - - try { - Method method = URLClassLoader.class - .getDeclaredMethod("addURL", URL.class); - method.setAccessible(true); - addURL = url -> method.invoke(ClassLoader.getSystemClassLoader(), url); - } catch (ReflectiveOperationException e) { - throw new AssertionError(e); - } - } - - private static void addURLToClasspath(File file) throws MalformedURLException { - addURL.accept(file.toURI().toURL()); - } - - public static void run(String version, List args) throws IOException { - String serverJarUrl = VANILLA_SERVER_JARS.get(version); - - addURLToClasspath(getOrDownload(new File("."), serverJarUrl)); - for (String url : LIBRARIES) { - addURLToClasspath(getOrDownload(new File("libs"), url)); - } - - args = new ArrayList<>(args); - args.add("--tweakClass"); - args.add("com.irtimaled.bbor.launch.ServerTweaker"); - - System.out.println("Launching server..."); - Launch.main(args.toArray(new String[0])); - } - - private static File getOrDownload(File directory, String url) throws IOException { - String fileName = url.substring(url.lastIndexOf('/') + 1); - File target = new File(directory, fileName); - if (target.isFile()) { - return target; - } - target.getParentFile().mkdirs(); - - System.out.println("Downloading library: " + url); - new FileOutputStream(target).getChannel() - .transferFrom(Channels.newChannel(new URL(url).openStream()), 0, Long.MAX_VALUE); - - return target; - } -} diff --git a/src/main/java/com/irtimaled/bbor/server/ThrowableConsumer.java b/src/main/java/com/irtimaled/bbor/server/ThrowableConsumer.java deleted file mode 100644 index 77c0324..0000000 --- a/src/main/java/com/irtimaled/bbor/server/ThrowableConsumer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.irtimaled.bbor.server; - -import com.irtimaled.bbor.common.TypeHelper; - -import java.util.function.Consumer; - -public interface ThrowableConsumer extends Consumer { - @Override - default void accept(final T elem) { - try { - acceptThrows(elem); - } catch (final Throwable t) { - throw TypeHelper.as(t, RuntimeException.class, () -> new RuntimeException(t)); - } - } - - void acceptThrows(T elem) throws Throwable; -} diff --git a/src/main/resources/profile.json b/src/main/resources/profile.json deleted file mode 100644 index aa4252d..0000000 --- a/src/main/resources/profile.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "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 diff --git a/src/main/resources/riftmod.json b/src/main/resources/riftmod.json new file mode 100755 index 0000000..cb0b4fd --- /dev/null +++ b/src/main/resources/riftmod.json @@ -0,0 +1,10 @@ +{ + "id": "bbor", + "name": "Bounding Box Outline Reloaded", + "authors": [ + "Irtimaled" + ], + "listeners": [ + "com.irtimaled.bbor.rift.Loader" + ] +} -- 2.44.0