diff --git a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java index 0765b48..8aa4efb 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/Respackopts.java @@ -65,16 +65,6 @@ public class Respackopts implements ClientModInitializer { } } - public static void load() { - try { - for (String s : resPackMetas.keySet()) { - load(resPackMetas.get(s).id); - } - } catch (Throwable e) { - e.printStackTrace(); - } - } - public static void load(String id) { Path q = p.resolve(id + ".json"); if (Files.exists(q)) { diff --git a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackEntryMixin.java b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackEntryMixin.java index e3ec440..08b4ddc 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackEntryMixin.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackEntryMixin.java @@ -38,14 +38,17 @@ public abstract class ResourcePackEntryMixin extends AlwaysSelectedEntryListWidg } } - @Inject(at = @At("TAIL"), method = "mouseClicked(DDI)Z") + @Inject(at = @At("RETURN"), method = "mouseClicked(DDI)Z", cancellable = true) public void mouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable info) { - if (this.isSelectable()) { - String k = pack.getDisplayName().asString(); - if (Respackopts.resPackMetas.containsKey(k) && respackopts$selected) { - Respackmeta meta = Respackopts.resPackMetas.get(k); - MinecraftClient c = MinecraftClient.getInstance(); - c.openScreen(Respackopts.factory.buildGui(meta.conf, meta.id, c.currentScreen, () -> Respackopts.forceRespackReload = true)); + if (!info.getReturnValue()) { + if (this.isSelectable()) { + String k = pack.getDisplayName().asString(); + if (Respackopts.resPackMetas.containsKey(k) && respackopts$selected) { + info.setReturnValue(true); + Respackmeta meta = Respackopts.resPackMetas.get(k); + MinecraftClient c = MinecraftClient.getInstance(); + c.openScreen(Respackopts.factory.buildGui(meta.conf, meta.id, c.currentScreen, () -> Respackopts.forceRespackReload = true)); + } } } } diff --git a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java index 278d22d..4b2c264 100644 --- a/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java +++ b/src/main/java/io/gitlab/jfronny/respackopts/mixin/ResourcePackManagerMixin.java @@ -56,8 +56,6 @@ public class ResourcePackManagerMixin { } } }); - Respackopts.save(); - Respackopts.load(); } private void respackopts$registerFields(JsonObject data, String id, String keyPrefix) {