]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Add litemod client side & dat loading mod code
authorirtimaled <irtimaled@gmail.com>
Fri, 29 Dec 2017 04:37:39 +0000 (20:37 -0800)
committerirtimaled <irtimaled@gmail.com>
Sat, 30 Dec 2017 05:06:39 +0000 (21:06 -0800)
java/com/irtimaled/bbor/litemod/LiteMod.java [new file with mode: 0755]
java/com/irtimaled/bbor/litemod/mixins/MixinChunk.java [new file with mode: 0644]
java/com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer.java [new file with mode: 0644]
java/com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer.java [new file with mode: 0755]
java/com/irtimaled/bbor/litemod/mixins/MixinKeyBinding.java [new file with mode: 0644]
java/com/irtimaled/bbor/litemod/mixins/MixinNetworkManager.java [new file with mode: 0644]
java/com/irtimaled/bbor/litemod/mixins/MixinWorldClient.java [new file with mode: 0644]
resources/litemod.json [new file with mode: 0755]
resources/mixins.bbor.json [new file with mode: 0644]
resources/mixins.bbor.refmap.json [new file with mode: 0644]

diff --git a/java/com/irtimaled/bbor/litemod/LiteMod.java b/java/com/irtimaled/bbor/litemod/LiteMod.java
new file mode 100755 (executable)
index 0000000..bdd1f86
--- /dev/null
@@ -0,0 +1,36 @@
+package com.irtimaled.bbor.litemod;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import com.mumfrey.liteloader.Tickable;
+import net.minecraft.client.Minecraft;
+
+import java.io.File;
+
+public class LiteMod implements Tickable  {
+    public LiteMod() {
+    }
+
+    @Override
+    public String getName() {
+        return "BoundingBoxOutlineReloaded";
+    }
+
+    @Override
+    public String getVersion() {
+        return "1.0.1";
+    }
+
+    @Override
+    public void init(File configPath) {
+        BoundingBoxOutlineReloaded.init();
+    }
+
+    @Override
+    public void upgradeSettings(String version, File configPath, File oldConfigPath) {
+    }
+
+    @Override
+    public void onTick(Minecraft minecraft, float partialTicks, boolean inGame, boolean clock) {
+        BoundingBoxOutlineReloaded.keyPressed();
+    }
+}
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinChunk.java b/java/com/irtimaled/bbor/litemod/mixins/MixinChunk.java
new file mode 100644 (file)
index 0000000..eadba89
--- /dev/null
@@ -0,0 +1,17 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+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 abstract class MixinChunk {
+    @Inject(method = "onLoad",
+            at = @At("RETURN"))
+    private void onLoaded(CallbackInfo ci) {
+        BoundingBoxOutlineReloaded.chunkLoaded((Chunk)(Object)this);
+    }
+}
\ No newline at end of file
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer.java b/java/com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer.java
new file mode 100644 (file)
index 0000000..9833c42
--- /dev/null
@@ -0,0 +1,21 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import com.mumfrey.liteloader.client.overlays.IEntityRenderer;
+import net.minecraft.client.renderer.EntityRenderer;
+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(EntityRenderer.class)
+public abstract class MixinEntityRenderer implements IEntityRenderer {
+    @Inject(method = "renderWorldPass",
+            at = @At(shift = At.Shift.BEFORE,
+                    value = "INVOKE_STRING",
+                    target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V",
+                    args = "ldc=hand"))
+    private void onRenderHand(int pass, float partialTicks, long timeSlice, CallbackInfo ci) {
+        BoundingBoxOutlineReloaded.render(partialTicks);
+    }
+}
\ No newline at end of file
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer.java b/java/com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer.java
new file mode 100755 (executable)
index 0000000..e23c038
--- /dev/null
@@ -0,0 +1,27 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.integrated.IntegratedServer;
+import net.minecraft.world.World;
+import net.minecraft.world.WorldType;
+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(IntegratedServer.class)
+public abstract class MixinIntegratedServer extends MinecraftServer {
+    public MixinIntegratedServer() {
+        super(null, null, null, null, null, null, null);
+    }
+
+    @Inject(method = "loadAllWorlds",
+            at = @At("RETURN"),
+            remap = false)
+    private void onLoadAllWorlds(String saveName, String worldNameIn, long seed, WorldType type, String generatorOptions, CallbackInfo ci) {
+        for (World world : this.worlds) {
+            BoundingBoxOutlineReloaded.worldLoaded(world);
+        }
+    }
+}
\ No newline at end of file
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinKeyBinding.java b/java/com/irtimaled/bbor/litemod/mixins/MixinKeyBinding.java
new file mode 100644 (file)
index 0000000..b7bd818
--- /dev/null
@@ -0,0 +1,26 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import net.minecraft.client.resources.I18n;
+import net.minecraft.client.settings.KeyBinding;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Overwrite;
+import org.spongepowered.asm.mixin.Shadow;
+
+import java.util.Map;
+
+@Mixin(KeyBinding.class)
+public abstract class MixinKeyBinding implements Comparable<KeyBinding> {
+    @Shadow
+    private static Map<String, Integer> CATEGORY_ORDER;
+
+    @Shadow
+    private String keyDescription;
+
+    @Shadow
+    private String keyCategory;
+
+    @Overwrite()
+    public int compareTo(KeyBinding p_compareTo_1_) {
+        return this.keyCategory.equals(p_compareTo_1_.getKeyCategory()) ? I18n.format(this.keyDescription).compareTo(I18n.format(p_compareTo_1_.getKeyDescription())) : ((Integer) CATEGORY_ORDER.getOrDefault(this.keyCategory, 0)).compareTo(CATEGORY_ORDER.getOrDefault(p_compareTo_1_.getKeyCategory(), 0));
+    }
+}
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinNetworkManager.java b/java/com/irtimaled/bbor/litemod/mixins/MixinNetworkManager.java
new file mode 100644 (file)
index 0000000..e108bc2
--- /dev/null
@@ -0,0 +1,21 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import net.minecraft.network.login.client.CPacketLoginStart;
+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(NetworkManager.class)
+public abstract class MixinNetworkManager {
+    @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V",
+            at = @At("RETURN"))
+    private void onLoaded(Packet<?> packetIn, CallbackInfo ci) {
+        if (packetIn instanceof CPacketLoginStart) {
+            BoundingBoxOutlineReloaded.playerConnectedToServer((NetworkManager)(Object)this);
+        }
+    }
+}
\ No newline at end of file
diff --git a/java/com/irtimaled/bbor/litemod/mixins/MixinWorldClient.java b/java/com/irtimaled/bbor/litemod/mixins/MixinWorldClient.java
new file mode 100644 (file)
index 0000000..e03412c
--- /dev/null
@@ -0,0 +1,22 @@
+package com.irtimaled.bbor.litemod.mixins;
+
+import com.irtimaled.bbor.client.BoundingBoxOutlineReloaded;
+import net.minecraft.client.multiplayer.WorldClient;
+import net.minecraft.world.World;
+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 abstract class MixinWorldClient extends World {
+    public MixinWorldClient() {
+        super(null, null, null, null, true);
+    }
+
+    @Inject(method = "sendQuittingDisconnectingPacket",
+    at = @At("RETURN"))
+    private void onDisconnecting(CallbackInfo ci) {
+        BoundingBoxOutlineReloaded.playerDisconnectedFromServer();
+    }
+}
diff --git a/resources/litemod.json b/resources/litemod.json
new file mode 100755 (executable)
index 0000000..ad93565
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "name": "bbor",
+  "displayName": "BoundingBoxOutlineReloaded",
+  "description": "Shows the bounding boxes of structures and features.",
+  "version": "1.0.1",
+  "author": "irtimaled",
+  "mcversion": "1.12.1",
+  "mixinConfigs": [
+    "mixins.bbor.json"
+  ]
+}
diff --git a/resources/mixins.bbor.json b/resources/mixins.bbor.json
new file mode 100644 (file)
index 0000000..8c7a41b
--- /dev/null
@@ -0,0 +1,19 @@
+{
+  "required": true,
+  "minVersion": "0.7.3",
+  "compatibilityLevel": "JAVA_8",
+  "target": "@env(DEFAULT)",
+  "package": "com.irtimaled.bbor.litemod.mixins",
+  "refmap": "mixins.bbor.refmap.json",
+  "mixins": [
+    "MixinIntegratedServer",
+    "MixinEntityRenderer",
+    "MixinChunk",
+    "MixinNetworkManager",
+    "MixinWorldClient",
+    "MixinKeyBinding"
+  ],
+  "injectors": {
+    "defaultRequire": 1
+  }
+}
diff --git a/resources/mixins.bbor.refmap.json b/resources/mixins.bbor.refmap.json
new file mode 100644 (file)
index 0000000..56feab2
--- /dev/null
@@ -0,0 +1,67 @@
+{
+  "mappings": {
+    "com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer": {
+      "loadAllWorlds": "Lchd;a(Ljava/lang/String;Ljava/lang/String;JLamz;Ljava/lang/String;)V"
+    },
+    "com/irtimaled/bbor/litemod/mixins/MixinNetworkManager": {
+      "sendPacket(Lnet/minecraft/network/Packet;)V": "Lgw;a(Lht;)V"
+    },
+    "com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer": {
+      "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V": "Lrl;c(Ljava/lang/String;)V",
+      "renderWorldPass": "Lbuq;a(IFJ)V"
+    },
+    "com/irtimaled/bbor/litemod/mixins/MixinWorldClient": {
+      "sendQuittingDisconnectingPacket": "Lbsb;O()V"
+    },
+    "com/irtimaled/bbor/litemod/mixins/MixinChunk": {
+      "onLoad": "Laxw;c()V"
+    },
+    "com/irtimaled/bbor/litemod/mixins/MixinKeyBinding": {
+      "compareTo": "Lbhy;a(Lbhy;)I"
+    }
+  },
+  "data": {
+    "notch": {
+      "com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer": {
+        "loadAllWorlds": "Lchd;a(Ljava/lang/String;Ljava/lang/String;JLamz;Ljava/lang/String;)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinNetworkManager": {
+        "sendPacket(Lnet/minecraft/network/Packet;)V": "Lgw;a(Lht;)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer": {
+        "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V": "Lrl;c(Ljava/lang/String;)V",
+        "renderWorldPass": "Lbuq;a(IFJ)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinWorldClient": {
+        "sendQuittingDisconnectingPacket": "Lbsb;O()V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinChunk": {
+        "onLoad": "Laxw;c()V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinKeyBinding": {
+        "compareTo": "Lbhy;a(Lbhy;)I"
+      }
+    },
+    "searge": {
+      "com/irtimaled/bbor/litemod/mixins/MixinIntegratedServer": {
+        "loadAllWorlds": "Lnet/minecraft/server/integrated/IntegratedServer;func_71247_a(Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Ljava/lang/String;)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinNetworkManager": {
+        "sendPacket(Lnet/minecraft/network/Packet;)V": "Lnet/minecraft/network/NetworkManager;func_179290_a(Lnet/minecraft/network/Packet;)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinEntityRenderer": {
+        "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V": "Lnet/minecraft/profiler/Profiler;func_76318_c(Ljava/lang/String;)V",
+        "renderWorldPass": "Lnet/minecraft/client/renderer/EntityRenderer;func_175068_a(IFJ)V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinWorldClient": {
+        "sendQuittingDisconnectingPacket": "Lnet/minecraft/client/multiplayer/WorldClient;func_72882_A()V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinChunk": {
+        "onLoad": "Lnet/minecraft/world/chunk/Chunk;func_76631_c()V"
+      },
+      "com/irtimaled/bbor/litemod/mixins/MixinKeyBinding": {
+        "compareTo": "Lnet/minecraft/client/settings/KeyBinding;compareTo(Lnet/minecraft/client/settings/KeyBinding;)I"
+      }
+    }
+  }
+}