Skip to content

Commit 2bd5e47

Browse files
fix: init issues
1 parent 0cfd0eb commit 2bd5e47

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

common/src/main/java/pro/mikey/autoclicker/AutoClicker.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package pro.mikey.autoclicker;
22

3+
import com.google.common.base.Suppliers;
34
import com.google.gson.Gson;
5+
import it.unimi.dsi.fastutil.Pair;
46
import net.minecraft.ChatFormatting;
57
import net.minecraft.client.DeltaTracker;
68
import net.minecraft.client.KeyMapping;
@@ -9,11 +11,13 @@
911
import net.minecraft.client.player.LocalPlayer;
1012
import net.minecraft.client.resources.language.I18n;
1113
import net.minecraft.network.chat.Component;
14+
import net.minecraft.util.LazyLoadedValue;
1215
import net.minecraft.world.InteractionHand;
1316
import net.minecraft.world.entity.LivingEntity;
1417
import net.minecraft.world.item.ShieldItem;
1518
import net.minecraft.world.phys.EntityHitResult;
1619
import net.minecraft.world.phys.HitResult;
20+
import org.apache.commons.lang3.concurrent.LazyInitializer;
1721
import org.apache.logging.log4j.LogManager;
1822
import org.apache.logging.log4j.Logger;
1923
import org.lwjgl.glfw.GLFW;
@@ -24,6 +28,7 @@
2428
import java.nio.file.Files;
2529
import java.nio.file.Path;
2630
import java.nio.file.Paths;
31+
import java.util.function.Supplier;
2732

2833
public class AutoClicker {
2934
public static final String MOD_ID = "autoclicker";
@@ -32,8 +37,13 @@ public class AutoClicker {
3237
new KeyMapping("keybinding.open-gui", GLFW.GLFW_KEY_O, "category.autoclicker-fabric");
3338
public static final KeyMapping toggleHolding =
3439
new KeyMapping("keybinding.toggle-hold", GLFW.GLFW_KEY_I, "category.autoclicker-fabric");
35-
private static final Path CONFIG_DIR = Paths.get(Minecraft.getInstance().gameDirectory.getPath() + "/config");
36-
private static final Path CONFIG_FILE = Paths.get(CONFIG_DIR + "/auto-clicker-fabric.json");
40+
41+
private static final Supplier<Pair<Path, Path>> CONFIG_PATHS = Suppliers.memoize(() -> {
42+
Path configDir = Paths.get(Minecraft.getInstance().gameDirectory.getPath() + "/config");
43+
Path configFile = Paths.get(configDir + "/auto-clicker-fabric.json");
44+
return Pair.of(configDir, configFile);
45+
});
46+
3747
public static Holding.AttackHolding leftHolding;
3848
public static Holding rightHolding;
3949
public static Holding jumpHolding;
@@ -60,18 +70,19 @@ public void onInitialize() {
6070
}
6171

6272
public void clientReady(Minecraft client) {
63-
if (!Files.exists(CONFIG_FILE)) {
73+
var configPaths = CONFIG_PATHS.get();
74+
if (!Files.exists(configPaths.value())) {
6475
try {
65-
Files.createDirectories(CONFIG_DIR);
66-
Files.createFile(CONFIG_FILE);
76+
Files.createDirectories(configPaths.key());
77+
Files.createFile(configPaths.value());
6778
} catch (IOException e) {
6879
e.printStackTrace();
6980
}
7081

7182
this.saveConfig();
7283
} else {
7384
try {
74-
FileReader json = new FileReader(CONFIG_FILE.toFile());
85+
FileReader json = new FileReader(configPaths.value().toFile());
7586
Config config = new Gson().fromJson(json, Config.class);
7687
json.close();
7788
if (config != null && config.getHudConfig() != null) {
@@ -90,8 +101,9 @@ public void clientReady(Minecraft client) {
90101
}
91102

92103
public void saveConfig() {
104+
var configPaths = CONFIG_PATHS.get();
93105
try {
94-
FileWriter writer = new FileWriter(CONFIG_FILE.toFile());
106+
FileWriter writer = new FileWriter(configPaths.value().toFile());
95107

96108
new Gson().toJson(this.config, writer);
97109
writer.flush();

0 commit comments

Comments
 (0)