]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Update for Forge 1.12.2 1.0.13-1.12.2-forge
authorirtimaled <irtimaled@gmail.com>
Wed, 26 Jun 2019 03:46:21 +0000 (20:46 -0700)
committerIrtimaled <irtimaled@gmail.com>
Sun, 11 Aug 2019 00:29:52 +0000 (17:29 -0700)
33 files changed:
build.gradle
src/main/java/com/irtimaled/bbor/Main.java [deleted file]
src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java
src/main/java/com/irtimaled/bbor/forge/ForgeClientChannelHandler.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/forge/ForgeClientProxy.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/forge/ForgeCommonProxy.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/forge/ForgeConfigFactory.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/forge/ForgeMod.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/forge/ForgeServerChannelHandler.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/install/Installer.java [deleted file]
src/main/java/com/irtimaled/bbor/launch/ClientTweaker.java [deleted file]
src/main/java/com/irtimaled/bbor/launch/ServerTweaker.java [deleted file]
src/main/java/com/irtimaled/bbor/launch/Tweaker.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinKeyBinding.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/server/MixinMinecraftServer.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerInteractionManager.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerList.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/world/MixinWorldServer.java [deleted file]
src/main/java/com/irtimaled/bbor/mixin/world/chunk/MixinChunk.java [deleted file]
src/main/resources/mcmod.info [new file with mode: 0644]
src/main/resources/mixins.bbor.json [deleted file]
src/main/resources/profile.json [deleted file]

index 17578867c21782b5e0721df2955445fdaaf2fbaa..271fdaa4fc062f63ad1e5e401db7798481253231 100644 (file)
@@ -1,19 +1,15 @@
 buildscript {
     repositories {
         jcenter()
-        maven { url 'https://repo.spongepowered.org/maven' }
-        maven { url 'https://jitpack.io' }
         maven { url 'https://files.minecraftforge.net/maven' }
     }
     dependencies {
         classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
-        classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
     }
 }
 
-apply plugin: 'net.minecraftforge.gradle.tweaker-client'
+apply plugin: 'net.minecraftforge.gradle.forge'
 apply plugin: 'java'
-apply plugin: 'org.spongepowered.mixin'
 
 group 'com.irtimaled'
 version project.buildVersion + '-' + project.mcVersion
@@ -22,37 +18,18 @@ 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
+    version = '1.12.2-14.23.5.2838'
     mappings = 'snapshot_20171003'
     runDir = 'run'
-    tweakClass = 'com.irtimaled.bbor.launch.ClientTweaker'
     makeObfSourceJar = false
 
     replace "@VERSION@", project.version
-    replaceIn "com/irtimaled/bbor/Main.java"
+    replaceIn "com/irtimaled/bbor/forge/ForgeMod.java"
 
     replace "@MC_VERSION@", project.mcVersion
-    replaceIn "com/irtimaled/bbor/Main.java"
-}
-
-mixin {
-    defaultObfuscationEnv notch
-    add sourceSets.main, 'mixins.bbor.refmap.json'
+    replaceIn "com/irtimaled/bbor/forge/ForgeMod.java"
 }
 
 sourceSets {
@@ -63,12 +40,11 @@ sourceSets {
 }
 
 processResources {
-    filesMatching('profile.json') {
+    filesMatching('mcmod.info') {
         expand([
-                'version'      : project.version,
-                'mcVersion'    : project.mcVersion,
-                'tweakClass'   : project.minecraft.tweakClass,
-                'formattedTime': new Date().format("yyyy-MM-dd'T'HH:mm:ss'-08:00'")
+            'version': project.version,
+            'mcVersion': project.mcVersion,
+            'formattedTime': new Date().format("yyyy-MM-dd'T'HH:mm:ss'-08:00'")
         ])
     }
 
@@ -78,11 +54,8 @@ processResources {
 
 jar {
     finalizedBy reobfJar
-    manifest.attributes(
-            'Main-Class': 'com.irtimaled.bbor.Main'
-    )
 
-    classifier = 'vanilla'
+    classifier = 'forge'
 }
 
 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 (file)
index 1f34b1d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.irtimaled.bbor;
-
-import com.irtimaled.bbor.install.Installer;
-
-public class Main {
-    public static void main(String... args) {
-        Installer.install("@VERSION@", "@MC_VERSION@");
-    }
-}
index 23c4cc0a1b000ca214f6d0ee0ca760bc22952f0e..52581ca85daa6c4865805294f79baf41fc955bdf 100644 (file)
@@ -24,7 +24,7 @@ public class SettingsScreen extends GuiScreen {
     private String title;
     private Set<IRenderableControl> controls = new HashSet<>();
 
-    SettingsScreen(GuiScreen lastScreen, int tabIndex) {
+    public SettingsScreen(GuiScreen lastScreen, int tabIndex) {
         this.lastScreen = lastScreen;
         this.tabIndex = tabIndex;
     }
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeClientChannelHandler.java b/src/main/java/com/irtimaled/bbor/forge/ForgeClientChannelHandler.java
new file mode 100644 (file)
index 0000000..83a0ed3
--- /dev/null
@@ -0,0 +1,67 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import com.irtimaled.bbor.common.EventBus;
+import com.irtimaled.bbor.common.messages.*;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.PacketBuffer;
+import net.minecraft.network.play.server.SPacketCustomPayload;
+import net.minecraft.network.play.server.SPacketSpawnPosition;
+
+public class ForgeClientChannelHandler extends SimpleChannelInboundHandler<Packet<?>> {
+    private final NetworkManager networkManager;
+
+    ForgeClientChannelHandler(NetworkManager networkManager) {
+        this.networkManager = networkManager;
+    }
+
+    @Override
+    protected void channelRead0(ChannelHandlerContext ctx, Packet<?> msg) {
+        if (msg instanceof SPacketCustomPayload && handle((SPacketCustomPayload) msg)) {
+            return;
+        }
+        if (msg instanceof SPacketSpawnPosition) {
+            handle((SPacketSpawnPosition) msg);
+        }
+        ctx.fireChannelRead(msg);
+    }
+
+    private boolean handle(SPacketCustomPayload msg) {
+        String channelName = msg.getChannelName();
+        if (!channelName.startsWith("bbor")) {
+            return false;
+        }
+        PacketBuffer data = null;
+        try {
+            data = msg.getBufferData();
+            PayloadReader reader = new PayloadReader(data);
+            switch (channelName) {
+                case AddBoundingBox.NAME: {
+                    EventBus.publish(AddBoundingBox.getEvent(reader));
+                    break;
+                }
+                case RemoveBoundingBox.NAME: {
+                    EventBus.publish(RemoveBoundingBox.getEvent(reader));
+                    break;
+                }
+                case InitializeClient.NAME: {
+                    EventBus.publish(InitializeClient.getEvent(reader));
+                    networkManager.sendPacket(SubscribeToServer.getPayload().build());
+                    break;
+                }
+            }
+
+        } finally {
+            if (data != null)
+                data.release();
+        }
+        return true;
+    }
+
+    private void handle(SPacketSpawnPosition msg) {
+        ClientInterop.updateWorldSpawnReceived(msg.getSpawnPos());
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeClientProxy.java b/src/main/java/com/irtimaled/bbor/forge/ForgeClientProxy.java
new file mode 100644 (file)
index 0000000..f28ec8a
--- /dev/null
@@ -0,0 +1,59 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.client.ClientProxy;
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import com.irtimaled.bbor.client.keyboard.KeyListener;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.network.NetworkManager;
+import net.minecraftforge.client.event.ClientChatEvent;
+import net.minecraftforge.client.event.RenderWorldLastEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.InputEvent;
+import net.minecraftforge.fml.common.network.FMLNetworkEvent;
+import org.apache.commons.lang3.ArrayUtils;
+import org.lwjgl.input.Keyboard;
+
+public class ForgeClientProxy extends ForgeCommonProxy {
+    private ClientProxy clientProxy;
+
+    @Override
+    void init() {
+        clientProxy = new ClientProxy();
+        clientProxy.init();
+        Minecraft.getMinecraft().gameSettings.keyBindings = ArrayUtils.addAll(Minecraft.getMinecraft().gameSettings.keyBindings, KeyListener.keyBindings());
+    }
+
+    @SubscribeEvent
+    public void onKeyInputEvent(InputEvent.KeyInputEvent evt) {
+        int keyCode = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey();
+        boolean down = Keyboard.getEventKeyState();
+        KeyListener.setKeyBindState(keyCode, down);
+    }
+
+    @SubscribeEvent
+    public void renderWorldLastEvent(RenderWorldLastEvent event) {
+        EntityPlayerSP player = Minecraft.getMinecraft().player;
+        ClientInterop.render(event.getPartialTicks(), player);
+    }
+
+    @SubscribeEvent
+    public void clientConnectionToServerEvent(FMLNetworkEvent.ClientConnectedToServerEvent evt) {
+        NetworkManager networkManager = evt.getManager();
+        networkManager.channel().pipeline().addBefore("packet_handler", "bbor", new ForgeClientChannelHandler(networkManager));
+
+        ClientInterop.connectedToRemoteServer(networkManager);
+    }
+
+    @SubscribeEvent
+    public void clientDisconnectionFromServerEvent(FMLNetworkEvent.ClientDisconnectionFromServerEvent evt) {
+        ClientInterop.disconnectedFromRemoteServer();
+    }
+
+    @SubscribeEvent
+    public void clientChatEvent(ClientChatEvent event) {
+        String message = event.getMessage();
+        if (ClientInterop.interceptChatMessage(message))
+            event.setMessage("");
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeCommonProxy.java b/src/main/java/com/irtimaled/bbor/forge/ForgeCommonProxy.java
new file mode 100644 (file)
index 0000000..4a3171e
--- /dev/null
@@ -0,0 +1,76 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.common.CommonProxy;
+import com.irtimaled.bbor.common.interop.CommonInterop;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.world.World;
+import net.minecraft.world.WorldServer;
+import net.minecraftforge.event.world.BlockEvent;
+import net.minecraftforge.event.world.ChunkEvent;
+import net.minecraftforge.event.world.WorldEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.PlayerEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+
+public class ForgeCommonProxy {
+    void init() {
+        new CommonProxy().init();
+    }
+
+    @SubscribeEvent
+    public void worldEvent(WorldEvent.Load event) {
+        World world = event.getWorld();
+        if (world instanceof WorldServer) {
+            CommonInterop.loadWorld((WorldServer) world);
+        }
+    }
+
+    @SubscribeEvent
+    public void chunkEvent(ChunkEvent.Load event) {
+        if (event.getWorld() instanceof WorldServer) {
+            CommonInterop.chunkLoaded(event.getChunk());
+        }
+    }
+
+    @SubscribeEvent
+    public void playerLoggedInEvent(PlayerEvent.PlayerLoggedInEvent evt) {
+        if (evt.player instanceof EntityPlayerMP) {
+            EntityPlayerMP player = (EntityPlayerMP) evt.player;
+            NetworkManager networkManager = player.connection.netManager;
+            networkManager.channel().pipeline().addBefore("packet_handler", "bbor", new ForgeServerChannelHandler(player));
+
+            CommonInterop.playerLoggedIn(player);
+        }
+    }
+
+    @SubscribeEvent
+    public void playerLoggedOutEvent(PlayerEvent.PlayerLoggedOutEvent evt) {
+        EntityPlayer player = evt.player;
+        if (player instanceof EntityPlayerMP) {
+            CommonInterop.playerLoggedOut((EntityPlayerMP) player);
+        }
+    }
+
+    @SubscribeEvent
+    public void worldTickEvent(TickEvent.WorldTickEvent event) {
+        if (event.phase == TickEvent.Phase.END &&
+                event.world instanceof WorldServer) {
+            CommonInterop.worldTick((WorldServer) event.world);
+        }
+    }
+
+    @SubscribeEvent
+    public void serverTickEvent(TickEvent.ServerTickEvent event) {
+        if (event.phase == TickEvent.Phase.END)
+            CommonInterop.tick();
+    }
+
+    @SubscribeEvent
+    public void blockBreakEvent(BlockEvent.BreakEvent event) {
+        Block block = event.getState().getBlock();
+        CommonInterop.tryHarvestBlock(block, event.getPos(), event.getWorld());
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeConfigFactory.java b/src/main/java/com/irtimaled/bbor/forge/ForgeConfigFactory.java
new file mode 100644 (file)
index 0000000..95976dc
--- /dev/null
@@ -0,0 +1,29 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.client.gui.SettingsScreen;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraftforge.fml.client.IModGuiFactory;
+
+import java.util.Set;
+
+public class ForgeConfigFactory implements IModGuiFactory {
+    @Override
+    public void initialize(Minecraft minecraft) {
+    }
+
+    @Override
+    public boolean hasConfigGui() {
+        return true;
+    }
+
+    @Override
+    public GuiScreen createConfigGui(GuiScreen guiScreen) {
+        return new SettingsScreen(guiScreen, 0);
+    }
+
+    @Override
+    public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() {
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeMod.java b/src/main/java/com/irtimaled/bbor/forge/ForgeMod.java
new file mode 100644 (file)
index 0000000..a113140
--- /dev/null
@@ -0,0 +1,28 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.common.interop.CommonInterop;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.fml.common.Mod;
+import net.minecraftforge.fml.common.SidedProxy;
+import net.minecraftforge.fml.common.event.FMLInitializationEvent;
+
+@Mod(modid = ForgeMod.MODID, name = ForgeMod.NAME, version = ForgeMod.VERSION, acceptedMinecraftVersions = ForgeMod.MCVERSION, acceptableRemoteVersions = "*", guiFactory = "com.irtimaled.bbor.forge.ForgeConfigFactory")
+public class ForgeMod {
+    static final String MODID = "bbor";
+    static final String NAME = "BoundingBoxOutlineReloaded";
+    static final String VERSION = "@VERSION@";
+    static final String MCVERSION = "@MC_VERSION@";
+
+    @Mod.Instance()
+    public static ForgeMod instance;
+
+    @SidedProxy(clientSide = "com.irtimaled.bbor.forge.ForgeClientProxy", serverSide = "com.irtimaled.bbor.forge.ForgeCommonProxy")
+    public static ForgeCommonProxy proxy;
+
+    @Mod.EventHandler
+    public void load(FMLInitializationEvent evt) {
+        MinecraftForge.EVENT_BUS.register(proxy);
+        CommonInterop.init();
+        proxy.init();
+    }
+}
diff --git a/src/main/java/com/irtimaled/bbor/forge/ForgeServerChannelHandler.java b/src/main/java/com/irtimaled/bbor/forge/ForgeServerChannelHandler.java
new file mode 100644 (file)
index 0000000..b46c46e
--- /dev/null
@@ -0,0 +1,34 @@
+package com.irtimaled.bbor.forge;
+
+import com.irtimaled.bbor.common.interop.CommonInterop;
+import com.irtimaled.bbor.common.messages.SubscribeToServer;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.client.CPacketCustomPayload;
+
+public class ForgeServerChannelHandler extends SimpleChannelInboundHandler<Packet<?>> {
+    private final EntityPlayerMP player;
+
+    ForgeServerChannelHandler(EntityPlayerMP player) {
+        this.player = player;
+    }
+
+    @Override
+    protected void channelRead0(ChannelHandlerContext ctx, Packet<?> msg) {
+        if (msg instanceof CPacketCustomPayload && handle((CPacketCustomPayload) msg)) {
+            return;
+        }
+        ctx.fireChannelRead(msg);
+
+    }
+
+    private boolean handle(CPacketCustomPayload msg) {
+        if (!msg.getChannelName().equals(SubscribeToServer.NAME))
+            return false;
+
+        CommonInterop.playerSubscribed(player);
+        return true;
+    }
+}
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 (file)
index d0f6a21..0000000
+++ /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()) { // 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);
-    }
-}
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 (file)
index 2da11f3..0000000
+++ /dev/null
@@ -1,21 +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<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;
-    }
-}
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 (file)
index f214d0d..0000000
+++ /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 (file)
index 4659d9e..0000000
+++ /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 {
-    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]);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java b/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java
deleted file mode 100644 (file)
index 852e408..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.irtimaled.bbor.mixin.client;
-
-import com.irtimaled.bbor.client.ClientProxy;
-import com.irtimaled.bbor.client.keyboard.KeyListener;
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.main.GameConfiguration;
-import net.minecraft.client.settings.KeyBinding;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.Redirect;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(Minecraft.class)
-public class MixinMinecraft {
-    private ClientProxy clientProxy;
-
-    @Inject(method = "<init>", at = @At("RETURN"))
-    private void constructor(GameConfiguration configuration, CallbackInfo ci) {
-        CommonInterop.init();
-        clientProxy = new ClientProxy();
-    }
-
-    @Inject(method = "init", at = @At("RETURN"))
-    private void init(CallbackInfo ci) {
-        clientProxy.init();
-    }
-
-    @Redirect(method = "runTickKeyboard", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/KeyBinding;setKeyBindState(IZ)V"))
-    private void setKeyBindState(int keyCode, boolean pressed) {
-        if (!KeyListener.setKeyBindState(keyCode, pressed)) {
-            KeyBinding.setKeyBindState(keyCode, pressed);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java b/src/main/java/com/irtimaled/bbor/mixin/client/entity/MixinEntityPlayerSP.java
deleted file mode 100644 (file)
index 5a6237b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.irtimaled.bbor.mixin.client.entity;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.entity.EntityPlayerSP;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(EntityPlayerSP.class)
-public abstract class MixinEntityPlayerSP {
-    @Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
-    private void sendChatMessage(String message, CallbackInfo ci) {
-        if (ClientInterop.interceptChatMessage(message))
-            ci.cancel();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java b/src/main/java/com/irtimaled/bbor/mixin/client/gui/MixinGuiOptions.java
deleted file mode 100644 (file)
index e420af6..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.irtimaled.bbor.mixin.client.gui;
-
-import com.irtimaled.bbor.client.gui.SettingsScreenButton;
-import net.minecraft.client.gui.GuiButton;
-import net.minecraft.client.gui.GuiOptions;
-import net.minecraft.client.gui.GuiScreen;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(GuiOptions.class)
-public class MixinGuiOptions extends GuiScreen {
-    @Inject(method = "initGui", at = @At("RETURN"))
-    private void initGui(CallbackInfo ci) {
-        //shuffle middle buttons up by 12 px to make space
-        int top = this.height / 6 + 42;
-        int bottom = this.height / 6 + 168;
-        for (GuiButton button : buttonList) {
-            if (button.y >= top && button.y < bottom)
-                button.y -= 12;
-        }
-        this.addButton(new SettingsScreenButton(199, this.width / 2 - 155, top + 84, 150, "BBOR", this));
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/multiplayer/MixinWorldClient.java
deleted file mode 100644 (file)
index d6f77fc..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.client.multiplayer;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.multiplayer.WorldClient;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(WorldClient.class)
-public class MixinWorldClient {
-    @Inject(method = "sendQuittingDisconnectingPacket", at = @At("RETURN"))
-    private void sendQuittingDisconnectingPacket(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerLoginClient.java
deleted file mode 100644 (file)
index e4d462b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.irtimaled.bbor.mixin.client.network;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.network.NetHandlerLoginClient;
-import net.minecraft.network.NetworkManager;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(NetHandlerLoginClient.class)
-public abstract class MixinNetHandlerLoginClient {
-    @Shadow
-    @Final
-    private NetworkManager networkManager;
-
-    @Inject(method = "handleLoginSuccess", at = @At(value = "RETURN"))
-    private void handleLoginSuccess(CallbackInfo ci) {
-        ClientInterop.connectedToRemoteServer(networkManager);
-    }
-
-    @Inject(method = "onDisconnect", at = @At("HEAD"))
-    private void onDisconnect(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java b/src/main/java/com/irtimaled/bbor/mixin/client/network/MixinNetHandlerPlayClient.java
deleted file mode 100644 (file)
index 6f8e1a0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.client.network;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.network.NetHandlerPlayClient;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(NetHandlerPlayClient.class)
-public class MixinNetHandlerPlayClient {
-    @Inject(method = "onDisconnect", at = @At("HEAD"))
-    private void onDisconnect(CallbackInfo ci) {
-        ClientInterop.disconnectedFromRemoteServer();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java b/src/main/java/com/irtimaled/bbor/mixin/client/renderer/MixinEntityRenderer.java
deleted file mode 100644 (file)
index 1b66b33..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.irtimaled.bbor.mixin.client.renderer;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.EntityRenderer;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(EntityRenderer.class)
-public class MixinEntityRenderer {
-    @Shadow
-    @Final
-    private Minecraft mc;
-
-    @Inject(method = "renderWorldPass", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", args = "ldc=hand", shift = At.Shift.BEFORE))
-    private void render(int pass, float partialTicks, long finishTimeNano, CallbackInfo ci) {
-        if (pass % 2 == 0) {
-            ClientInterop.render(partialTicks, this.mc.player);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java b/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinGameSettings.java
deleted file mode 100644 (file)
index 322af81..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.irtimaled.bbor.mixin.client.settings;
-
-import com.irtimaled.bbor.client.keyboard.KeyListener;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.settings.GameSettings;
-import net.minecraft.client.settings.KeyBinding;
-import org.apache.commons.lang3.ArrayUtils;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-import java.io.File;
-
-@Mixin(GameSettings.class)
-public abstract class MixinGameSettings {
-    @Shadow
-    public KeyBinding[] keyBindings;
-
-    @Shadow
-    public abstract void loadOptions();
-
-    @Inject(method = "<init>(Lnet/minecraft/client/Minecraft;Ljava/io/File;)V", at = @At("RETURN"))
-    private void init(Minecraft minecraft, File file, CallbackInfo ci) {
-        keyBindings = ArrayUtils.addAll(keyBindings, KeyListener.keyBindings());
-        this.loadOptions();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinKeyBinding.java b/src/main/java/com/irtimaled/bbor/mixin/client/settings/MixinKeyBinding.java
deleted file mode 100644 (file)
index 168ca9a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.irtimaled.bbor.mixin.client.settings;
-
-import com.irtimaled.bbor.client.ClientProxy;
-import net.minecraft.client.settings.KeyBinding;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-
-import java.util.Map;
-
-@Mixin(KeyBinding.class)
-public class MixinKeyBinding {
-    @Final
-    @Shadow
-    private static Map<String, Integer> CATEGORY_ORDER;
-
-    static {
-        CATEGORY_ORDER.put(ClientProxy.Name, 0);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/client/MixinCPacketCustomPayload.java
deleted file mode 100644 (file)
index 1519a7c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.client;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import com.irtimaled.bbor.common.messages.SubscribeToServer;
-import net.minecraft.network.NetHandlerPlayServer;
-import net.minecraft.network.play.INetHandlerPlayServer;
-import net.minecraft.network.play.client.CPacketCustomPayload;
-import net.minecraft.util.ResourceLocation;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-@Mixin(CPacketCustomPayload.class)
-public class MixinCPacketCustomPayload {
-    @Shadow
-    private String channel;
-
-    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/INetHandlerPlayServer;processCustomPayload(Lnet/minecraft/network/play/client/CPacketCustomPayload;)V"))
-    private void processPacket(INetHandlerPlayServer netHandlerPlayServer, CPacketCustomPayload packet) {
-        if (this.channel.equals(SubscribeToServer.NAME)) {
-            CommonInterop.playerSubscribed(((NetHandlerPlayServer) netHandlerPlayServer).player);
-        } else {
-            netHandlerPlayServer.processCustomPayload(packet);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketCustomPayload.java
deleted file mode 100644 (file)
index 43669c8..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.common.EventBus;
-import com.irtimaled.bbor.common.messages.*;
-import net.minecraft.client.network.NetHandlerPlayClient;
-import net.minecraft.network.PacketBuffer;
-import net.minecraft.network.play.INetHandlerPlayClient;
-import net.minecraft.network.play.server.SPacketCustomPayload;
-import net.minecraft.util.ResourceLocation;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-@Mixin(SPacketCustomPayload.class)
-public abstract class MixinSPacketCustomPayload {
-    @Shadow
-    private String channel;
-
-    @Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/INetHandlerPlayClient;handleCustomPayload(Lnet/minecraft/network/play/server/SPacketCustomPayload;)V"))
-    private void processPacket(INetHandlerPlayClient netHandlerPlayClient, SPacketCustomPayload packet) {
-        if (this.channel.startsWith("bbor:")) {
-            PacketBuffer data = null;
-            try {
-                data = packet.getBufferData();
-                PayloadReader reader = new PayloadReader(data);
-                switch (this.channel) {
-                    case InitializeClient.NAME: {
-                        EventBus.publish(InitializeClient.getEvent(reader));
-                        ((NetHandlerPlayClient) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build());
-                        break;
-                    }
-                    case AddBoundingBox.NAME: {
-                        EventBus.publish(AddBoundingBox.getEvent(reader));
-                        break;
-                    }
-                    case RemoveBoundingBox.NAME: {
-                        EventBus.publish(RemoveBoundingBox.getEvent(reader));
-                        break;
-                    }
-                }
-            } finally {
-                if (data != null)
-                    data.release();
-            }
-        } else {
-            netHandlerPlayClient.handleCustomPayload(packet);
-        }
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java b/src/main/java/com/irtimaled/bbor/mixin/network/play/server/MixinSPacketSpawnPosition.java
deleted file mode 100644 (file)
index 6fcabe1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.irtimaled.bbor.mixin.network.play.server;
-
-import com.irtimaled.bbor.client.interop.ClientInterop;
-import net.minecraft.network.play.server.SPacketSpawnPosition;
-import net.minecraft.util.math.BlockPos;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(SPacketSpawnPosition.class)
-public abstract class MixinSPacketSpawnPosition {
-    @Shadow
-    private BlockPos spawnBlockPos;
-
-    @Inject(method = "processPacket", at = @At("RETURN"))
-    private void afterProcessPacket(CallbackInfo ci) {
-        ClientInterop.updateWorldSpawnReceived(spawnBlockPos);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/server/MixinMinecraftServer.java b/src/main/java/com/irtimaled/bbor/mixin/server/MixinMinecraftServer.java
deleted file mode 100644 (file)
index 6c2a90d..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.irtimaled.bbor.mixin.server;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.world.WorldServer;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(MinecraftServer.class)
-public class MixinMinecraftServer {
-    @Shadow
-    public WorldServer[] worlds;
-
-    @Inject(method = "initialWorldChunkLoad", at = @At("HEAD"))
-    private void initialWorldChunkLoad(CallbackInfo ci) {
-        CommonInterop.loadWorlds(worlds);
-    }
-
-    @Inject(method = "tick", at = @At("RETURN"))
-    private void tick(CallbackInfo ci) {
-        CommonInterop.tick();
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerInteractionManager.java b/src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerInteractionManager.java
deleted file mode 100644 (file)
index 09a5480..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.irtimaled.bbor.mixin.server.management;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.block.Block;
-import net.minecraft.server.management.PlayerInteractionManager;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-
-@Mixin(PlayerInteractionManager.class)
-public class MixinPlayerInteractionManager {
-    @Shadow
-    public World world;
-
-    @Inject(method = "tryHarvestBlock", at = @At("HEAD"))
-    private void tryHarvestBlock(BlockPos pos, CallbackInfoReturnable<Boolean> cir) {
-        Block block = this.world.getBlockState(pos).getBlock();
-        CommonInterop.tryHarvestBlock(block, pos, world);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerList.java b/src/main/java/com/irtimaled/bbor/mixin/server/management/MixinPlayerList.java
deleted file mode 100644 (file)
index 6eeb201..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.irtimaled.bbor.mixin.server.management;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.server.management.PlayerList;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(PlayerList.class)
-public class MixinPlayerList {
-    @Inject(method = "playerLoggedIn", at = @At("RETURN"))
-    private void playerLoggedIn(EntityPlayerMP player, CallbackInfo ci) {
-        CommonInterop.playerLoggedIn(player);
-    }
-
-    @Inject(method = "playerLoggedOut", at = @At("HEAD"))
-    private void playerLoggedOut(EntityPlayerMP player, CallbackInfo ci) {
-        CommonInterop.playerLoggedOut(player);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/world/MixinWorldServer.java b/src/main/java/com/irtimaled/bbor/mixin/world/MixinWorldServer.java
deleted file mode 100644 (file)
index 99fbfde..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.world;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.world.WorldServer;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(WorldServer.class)
-public class MixinWorldServer {
-    @Inject(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/village/VillageCollection;tick()V", shift = At.Shift.AFTER))
-    private void afterVillageTick(CallbackInfo ci) {
-        CommonInterop.worldTick((WorldServer) (Object) this);
-    }
-}
diff --git a/src/main/java/com/irtimaled/bbor/mixin/world/chunk/MixinChunk.java b/src/main/java/com/irtimaled/bbor/mixin/world/chunk/MixinChunk.java
deleted file mode 100644 (file)
index 7eb0476..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.irtimaled.bbor.mixin.world.chunk;
-
-import com.irtimaled.bbor.common.interop.CommonInterop;
-import net.minecraft.world.chunk.Chunk;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(Chunk.class)
-public class MixinChunk {
-    @Inject(method = "onLoad", at = @At("RETURN"))
-    private void onLoad(CallbackInfo ci) {
-        CommonInterop.chunkLoaded((Chunk) (Object) this);
-    }
-}
diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info
new file mode 100644 (file)
index 0000000..86f635a
--- /dev/null
@@ -0,0 +1,18 @@
+[
+  {
+    "modid": "bbor",
+    "name": "BoundingBoxOutlineReloaded",
+    "description": "Shows the bounding boxes of structures and features.",
+    "version": "${version}",
+    "mcversion": "${mcVersion}",
+    "url": "https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/2345401",
+    "updateUrl": "",
+    "authorList": [
+      "irtimaled"
+    ],
+    "credits": "Thanks to 4poc & KaboPC.",
+    "logoFile": "",
+    "screenshots": [],
+    "dependencies": []
+  }
+]
diff --git a/src/main/resources/mixins.bbor.json b/src/main/resources/mixins.bbor.json
deleted file mode 100644 (file)
index 4b6b316..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "required": true,
-  "minVersion": "0.7.11",
-  "compatibilityLevel": "JAVA_8",
-  "target": "@env(DEFAULT)",
-  "package": "com.irtimaled.bbor.mixin",
-  "refmap": "mixins.bbor.refmap.json",
-  "mixins": [
-    "network.play.client.MixinCPacketCustomPayload",
-    "server.MixinMinecraftServer",
-    "server.management.MixinPlayerInteractionManager",
-    "server.management.MixinPlayerList",
-    "world.MixinWorldServer",
-    "world.chunk.MixinChunk"
-  ],
-  "client": [
-    "client.MixinMinecraft",
-    "client.entity.MixinEntityPlayerSP",
-    "client.gui.MixinGuiOptions",
-    "client.multiplayer.MixinWorldClient",
-    "client.network.MixinNetHandlerLoginClient",
-    "client.network.MixinNetHandlerPlayClient",
-    "client.renderer.MixinEntityRenderer",
-    "client.settings.MixinGameSettings",
-    "client.settings.MixinKeyBinding",
-    "network.play.server.MixinSPacketCustomPayload",
-    "network.play.server.MixinSPacketSpawnPosition"
-  ]
-}
diff --git a/src/main/resources/profile.json b/src/main/resources/profile.json
deleted file mode 100644 (file)
index aa4252d..0000000
+++ /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