diff --git a/build.gradle b/build.gradle index 749a836..e5611f9 100644 --- a/build.gradle +++ b/build.gradle @@ -40,6 +40,7 @@ loom { } dependencies { + implementation 'com.google.code.gson:gson:2.10.1' minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" diff --git a/src/main/java/me/leeeaf/oakclient/OakClient.java b/src/main/java/me/leeeaf/oakclient/OakClient.java index 9973a83..9399657 100644 --- a/src/main/java/me/leeeaf/oakclient/OakClient.java +++ b/src/main/java/me/leeeaf/oakclient/OakClient.java @@ -9,29 +9,33 @@ import me.leeeaf.oakclient.gui.ClickGUI; import me.leeeaf.oakclient.gui.module.ClickGUIModule; import me.leeeaf.oakclient.gui.module.HUDEditorModule; +import me.leeeaf.oakclient.systems.SaveHelper; import me.leeeaf.oakclient.systems.modules.Category; +import me.leeeaf.oakclient.utils.file.FileHelper; import me.leeeaf.oakclient.utils.io.KeyAction; +import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ModInitializer; import net.minecraft.client.MinecraftClient; -import org.lwjgl.glfw.GLFW; -import static me.leeeaf.oakclient.OakClientClient.mc; - -public class OakClient implements ModInitializer { +@net.fabricmc.api.Environment(net.fabricmc.api.EnvType.CLIENT) +public class OakClient implements ModInitializer, ClientModInitializer { public static String splashText = "OakClient"; + public static MinecraftClient mc; - - //TODO create Friends system private static ClickGUI gui; private boolean inited=false; @Override public void onInitialize() { Category.init(); EventBus.getEventBus().subscribe(this); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + SaveHelper.getInstance().saveAllSystems(); + })); } @EventSubscribe public void onKey(KeyEvent event){ + FileHelper.getInstance(); if(mc.currentScreen == null){ if (event.key==ClickGUIModule.keybind.getKey()){ gui.enterGUI(); @@ -56,4 +60,10 @@ public void onHudRender(HudRenderEvent event){ gui.render(); } } + + @Override + public void onInitializeClient() { + mc = MinecraftClient.getInstance(); + SaveHelper.getInstance().loadAllSystems(); //TODO if files does not exist everything explodes + } } diff --git a/src/main/java/me/leeeaf/oakclient/OakClientClient.java b/src/main/java/me/leeeaf/oakclient/OakClientClient.java deleted file mode 100644 index 57e555a..0000000 --- a/src/main/java/me/leeeaf/oakclient/OakClientClient.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.leeeaf.oakclient; - -import net.fabricmc.api.ClientModInitializer; -import net.minecraft.client.MinecraftClient; - -@net.fabricmc.api.Environment(net.fabricmc.api.EnvType.CLIENT) -public class OakClientClient implements ClientModInitializer { - public static MinecraftClient mc; - - @Override - public void onInitializeClient() { - mc = MinecraftClient.getInstance(); - } -} diff --git a/src/main/java/me/leeeaf/oakclient/event/EventBus.java b/src/main/java/me/leeeaf/oakclient/event/EventBus.java index 5540150..caebb28 100644 --- a/src/main/java/me/leeeaf/oakclient/event/EventBus.java +++ b/src/main/java/me/leeeaf/oakclient/event/EventBus.java @@ -6,8 +6,8 @@ public class EventBus { private static EventBus eventBus; - public static EventBus getEventBus(){ - if(eventBus == null){ + public static EventBus getEventBus() { + if (eventBus == null) { eventBus = new EventBus(); } return eventBus; @@ -16,7 +16,8 @@ public static EventBus getEventBus(){ private final HashMap, List> subscribersMap = new HashMap<>(); Comparator subscriberComparator; - private EventBus(){ + + private EventBus() { subscriberComparator = Comparator.comparingInt(EventSubscriber::getEventPriorityValue).reversed(); } @@ -25,16 +26,17 @@ private EventBus(){ public T post(T event){ List subscribers = subscribersMap.get(event.getClass()); if (subscribers != null) { - for (EventSubscriber subscriber : subscribers){ + for (EventSubscriber subscriber : subscribers) { subscriber.call(event); } } return event; } - public boolean subscribe(Object eventListener){ + + public boolean subscribe(Object eventListener) { boolean subscribed = false; - for(Method method : eventListener.getClass().getDeclaredMethods()){ - if(method.isAnnotationPresent(EventSubscribe.class) && method.getParameterTypes().length > 0){ + for (Method method : eventListener.getClass().getDeclaredMethods()) { + if (method.isAnnotationPresent(EventSubscribe.class) && method.getParameterTypes().length > 0) { insert(subscribersMap.computeIfAbsent(method.getParameterTypes()[0], k -> new ArrayList<>()), new EventSubscriber(method, eventListener)); subscribed = true; } @@ -42,15 +44,15 @@ public boolean subscribe(Object eventListener){ return subscribed; } - private void insert(List subscribers, EventSubscriber subscriber){ + private void insert(List subscribers, EventSubscriber subscriber) { int index = Collections.binarySearch(subscribers, subscriber, subscriberComparator); if (index < 0) { index = -index - 1; } - subscribers.add(index,subscriber); + subscribers.add(index, subscriber); } - public void unsubscribe(Object eventListener){ + public void unsubscribe(Object eventListener) { subscribersMap.values().forEach(subscribers -> subscribers.removeIf(subscriber -> subscriber.getListenerInstance().equals(eventListener))); } } diff --git a/src/main/java/me/leeeaf/oakclient/gui/setting/Setting.java b/src/main/java/me/leeeaf/oakclient/gui/setting/Setting.java index 584c6f1..900a943 100644 --- a/src/main/java/me/leeeaf/oakclient/gui/setting/Setting.java +++ b/src/main/java/me/leeeaf/oakclient/gui/setting/Setting.java @@ -30,6 +30,10 @@ public void setValue (T value) { this.value=value; } + public String getConfigName(){ + return configName; + } + @Override public String getDisplayName() { return displayName; @@ -44,7 +48,11 @@ public String getDescription() { public IBoolean isVisible() { return visible; } - + + public List> getSubSettingsInstances(){ + return subSettings; + } + public Stream> getSubSettings() { if (subSettings.size()==0) return null; return subSettings.stream().filter(setting->setting instanceof ISetting).sorted((a,b)->a.displayName.compareTo(b.displayName)).map(setting->(ISetting)setting); diff --git a/src/main/java/me/leeeaf/oakclient/mixin/BlockMixin.java b/src/main/java/me/leeeaf/oakclient/mixin/BlockMixin.java index 86b1aa4..3458515 100644 --- a/src/main/java/me/leeeaf/oakclient/mixin/BlockMixin.java +++ b/src/main/java/me/leeeaf/oakclient/mixin/BlockMixin.java @@ -1,6 +1,7 @@ package me.leeeaf.oakclient.mixin; import me.leeeaf.oakclient.systems.modules.Category; +import me.leeeaf.oakclient.systems.modules.world.AntiCactus; import me.leeeaf.oakclient.systems.modules.world.XRay; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -19,7 +20,7 @@ public class BlockMixin{ @Inject(method = "shouldDrawSide", at = @At("RETURN"), cancellable = true) private static void onShouldDrawSide(BlockState state, BlockView world, BlockPos pos, Direction side, BlockPos otherPos, CallbackInfoReturnable cir) { if(xRay == null){ - xRay = (XRay) Category.WORLD.getModules().filter(iModule -> iModule instanceof XRay).findFirst().orElse(null); + xRay = (XRay) Category.getModule(XRay.class); }else if(xRay.isEnabled().isOn()){ cir.setReturnValue(xRay.shouldRenderSide(state.getBlock())); } diff --git a/src/main/java/me/leeeaf/oakclient/mixin/ClientConnectionMixin.java b/src/main/java/me/leeeaf/oakclient/mixin/ClientConnectionMixin.java index 27f03fd..61f0c2c 100644 --- a/src/main/java/me/leeeaf/oakclient/mixin/ClientConnectionMixin.java +++ b/src/main/java/me/leeeaf/oakclient/mixin/ClientConnectionMixin.java @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ClientConnection.class) -public class ClientConnectionMixin { +public class ClientConnectionMixin { //TODO make all mixins abstract @Shadow private Channel channel; @@ -23,7 +23,7 @@ private void onSendPacketHead(Packet packet, CallbackInfo info) { } @Inject(at=@At("HEAD"), method = "channelRead0(Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;)V", cancellable = true) - private void onRecievePacketHead(ChannelHandlerContext channelHandlerContext, Packet packet, CallbackInfo ci){ + private void onReceivePacketHead(ChannelHandlerContext channelHandlerContext, Packet packet, CallbackInfo ci){ if (channel.isOpen() && packet != null) { if(EventBus.getEventBus().post(new PacketEvent.Receive(packet)).isCancelled()) ci.cancel(); } diff --git a/src/main/java/me/leeeaf/oakclient/systems/SaveHelper.java b/src/main/java/me/leeeaf/oakclient/systems/SaveHelper.java new file mode 100644 index 0000000..822531a --- /dev/null +++ b/src/main/java/me/leeeaf/oakclient/systems/SaveHelper.java @@ -0,0 +1,166 @@ +package me.leeeaf.oakclient.systems; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; +import me.leeeaf.oakclient.gui.setting.*; +import me.leeeaf.oakclient.systems.modules.Category; +import me.leeeaf.oakclient.systems.modules.Module; +import me.leeeaf.oakclient.utils.file.FileHelper; +import me.leeeaf.oakclient.utils.io.ChatLogger; +import me.leeeaf.oakclient.utils.io.JsonUtils; + +import java.awt.*; +import java.io.IOException; + +public class SaveHelper { + private static SaveHelper instance; + + private SaveHelper() { + } + + public static SaveHelper getInstance() { + if (instance == null) { + instance = new SaveHelper(); + } + return instance; + } + + public void saveAllSystems() { + saveModules(); + } + + public void loadAllSystems() { + loadModules(); + } + + private void saveModules() { + JsonObject json = new JsonObject(); + for (Category category : Category.values()) { + + category.getModules().forEach(module -> { + + JsonObject moduleJson = new JsonObject(); + JsonObject moduleSettingsJson = new JsonObject(); + for (Setting setting : ((Module) module).getSettingsInstances()) { + + JsonObject tempModuleSettingsJson = getSettingJson(setting); + JsonUtils.mergeJsonObject(moduleSettingsJson, tempModuleSettingsJson); + } + if (moduleSettingsJson.size() > 0) { //don't create "settings" key if module has no settings set + moduleJson.add("settings", moduleSettingsJson); + } + moduleJson.add("enabled", new JsonPrimitive(module.isEnabled() != null && module.isEnabled().isOn())); + json.add(module.getDisplayName(), moduleJson); + }); + } + try { + FileHelper.getInstance().writeToFile(json.toString(), "modules.json"); + } catch (IOException e) { + ChatLogger.error("Couldn't write to file modules.json!"); + } + } + + private JsonObject getSettingJson(Setting setting) { + JsonObject settingJson = new JsonObject(); + + if (setting.getSubSettingsInstances().size() != 0) { + JsonObject subSettingJson = new JsonObject(); + for (Setting subSetting : setting.getSubSettingsInstances()) { + JsonUtils.mergeJsonObject(subSettingJson, getSettingJson(subSetting)); + } + settingJson.add("subSettings", subSettingJson); + } + + try { + if (setting instanceof BooleanSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((BooleanSetting) setting).getValue())); + } else if (setting instanceof IntegerSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((IntegerSetting) setting).getValue())); + } else if (setting instanceof DoubleSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((DoubleSetting) setting).getValue())); + } else if (setting instanceof ColorSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((ColorSetting) setting).getValue().getRGB())); + } else if (setting instanceof EnumSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((EnumSetting) setting).getValueIndex())); + } else if (setting instanceof KeybindSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((KeybindSetting) setting).getValue())); + } else if (setting instanceof StringSetting) { + settingJson.add(setting.getConfigName(), new JsonPrimitive(((StringSetting) setting).getValue())); + } + } catch (NullPointerException ignored) { + } + return settingJson; + } + + private void loadModules() { + String modulesJsonString = null; + try { + modulesJsonString = FileHelper.getInstance().readFromFile("modules.json"); + } catch (IOException e) { + ChatLogger.error("Couldn't read file modules.json!"); + return; + } + JsonObject modulesJson = JsonParser.parseString(modulesJsonString).getAsJsonObject(); + + for (String key : modulesJson.keySet()) { + Module module = Category.getModule(key); + if (module == null) { + continue; + } + + JsonObject value = modulesJson.getAsJsonObject(key); + + if (value.get("enabled").getAsBoolean() && module.isEnabled() != null) { + module.isEnabled().toggle(); + } + + if (value.has("settings")) { + JsonObject settings = value.getAsJsonObject("settings"); + + JsonObject subSettings = null; + + if (settings.has("subSettings")) { + subSettings = settings.getAsJsonObject("subSettings"); + } + + for (String settingKey : settings.keySet()) { + Setting setting = module.getSetting(settingKey); + if (setting != null) { + setSettingValue(setting, settings.get(settingKey)); + if (subSettings != null) { + for (String subSettingKey : subSettings.keySet()) { + Setting subSetting = setting.getSubSettingsInstances().stream() + .filter(subSettingInstance -> subSettingInstance.getConfigName().equals(subSettingKey)) + .findFirst() + .orElse(null); + if (subSetting != null) { + setSettingValue(subSetting, subSettings.get(subSettingKey)); + } + } + } + } + } + } + } + } + + private void setSettingValue(Setting setting, JsonElement value) { + if (setting instanceof BooleanSetting) { + ((BooleanSetting) setting).setValue(value.getAsBoolean()); + } else if (setting instanceof IntegerSetting) { + ((IntegerSetting) setting).setValue(value.getAsInt()); + } else if (setting instanceof DoubleSetting) { + ((DoubleSetting) setting).setValue(value.getAsDouble()); + } else if (setting instanceof ColorSetting) { + ((ColorSetting) setting).setValue(new Color(value.getAsInt())); + } else if (setting instanceof EnumSetting) { + ((EnumSetting) setting).setValueIndex(value.getAsInt()); + } else if (setting instanceof KeybindSetting) { + ((KeybindSetting) setting).setValue(value.getAsInt()); + } else if (setting instanceof StringSetting) { + ((StringSetting) setting).setValue(value.getAsString()); + } + } +} diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/FOVCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/FOVCommand.java index 3ca8193..bca739e 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/FOVCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/FOVCommand.java @@ -1,11 +1,10 @@ package me.leeeaf.oakclient.systems.commands.commands; -import me.leeeaf.oakclient.OakClientClient; import me.leeeaf.oakclient.systems.commands.Command; import me.leeeaf.oakclient.utils.io.ChatLogger; import net.minecraft.text.Text; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class FOVCommand extends Command { public FOVCommand() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/HelpCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/HelpCommand.java index 21ccf26..054e89d 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/HelpCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/HelpCommand.java @@ -4,7 +4,7 @@ import me.leeeaf.oakclient.systems.commands.CommandRegistry; import net.minecraft.text.Text; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class HelpCommand extends Command { public HelpCommand() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadCommand.java index d8f87e7..c66221b 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadCommand.java @@ -2,7 +2,7 @@ import me.leeeaf.oakclient.systems.commands.Command; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ReloadCommand extends Command { public ReloadCommand() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadSoundsCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadSoundsCommand.java index 29af496..571e33e 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadSoundsCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/ReloadSoundsCommand.java @@ -2,7 +2,7 @@ import me.leeeaf.oakclient.systems.commands.Command; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ReloadSoundsCommand extends Command { public ReloadSoundsCommand() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/SearchCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/SearchCommand.java index e167e15..0b5c0a7 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/SearchCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/SearchCommand.java @@ -9,7 +9,7 @@ import java.util.Arrays; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; import static me.leeeaf.oakclient.systems.modules.render.Search.searchTargets; public class SearchCommand extends Command { diff --git a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/XrayCommand.java b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/XrayCommand.java index 0f98c0e..39051bf 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/commands/commands/XrayCommand.java +++ b/src/main/java/me/leeeaf/oakclient/systems/commands/commands/XrayCommand.java @@ -10,10 +10,9 @@ import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import java.util.ArrayList; import java.util.Arrays; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; import static me.leeeaf.oakclient.systems.modules.world.XRay.blocksToRender; public class XrayCommand extends Command { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/Category.java b/src/main/java/me/leeeaf/oakclient/systems/modules/Category.java index b9782be..95f77de 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/Category.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/Category.java @@ -89,7 +89,15 @@ public static Module getModule(Class moduleClass){ return null; } - public static boolean toggleModuleByKeybind(int key){ + public static Module getModule(String moduleDisplayName){ + for(Category category : Category.values()){ + Module module = (Module) category.getModules().filter(iModule -> iModule.getDisplayName().equals(moduleDisplayName)).findFirst().orElse(null); + if(module!=null) return module; + } + return null; + } + + public static void toggleModuleByKeybind(int key){ for(Category category : Category.values()){ for(IModule module: category.getModules().toList()){ KeybindSetting keybindSetting = (KeybindSetting) module.getSettings() @@ -99,10 +107,9 @@ public static boolean toggleModuleByKeybind(int key){ if(module.isEnabled() != null){ module.isEnabled().toggle(); } - return true; + return; } } } - return false; } } diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/Module.java b/src/main/java/me/leeeaf/oakclient/systems/modules/Module.java index 6c06438..ae2f43b 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/Module.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/Module.java @@ -83,8 +83,16 @@ public void onEnable(){ public void onTick(){} + public List> getSettingsInstances(){ + return settings; + } + @Override public Stream> getSettings() { return settings.stream().filter(setting->setting instanceof ISetting).sorted(Comparator.comparing(a -> a.displayName)).map(setting->(ISetting)setting); } + + public Setting getSetting(String settingConfigName){ + return settings.stream().filter(setting -> setting.getConfigName().equals(settingConfigName)).findFirst().orElse(null); + } } diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoTotem.java b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoTotem.java index 12bbc4f..b590f40 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoTotem.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoTotem.java @@ -7,7 +7,7 @@ import net.minecraft.item.Items; import net.minecraft.screen.slot.SlotActionType; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class AutoTotem extends Module { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoWeb.java b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoWeb.java index 90c5276..bbdf845 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoWeb.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/AutoWeb.java @@ -11,7 +11,7 @@ import net.minecraft.item.Items; import net.minecraft.util.Hand; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class AutoWeb extends Module { private final BooleanSetting swapBack = new BooleanSetting("Swap back", "swapBack", "Swap back to previous item", () -> true, true); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Criticals.java b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Criticals.java index 90c172f..09f8001 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Criticals.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Criticals.java @@ -11,7 +11,7 @@ import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket; import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Criticals extends Module { public Criticals() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Killaura.java b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Killaura.java index 5565cc8..3b0b24e 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Killaura.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/combat/Killaura.java @@ -20,17 +20,14 @@ import java.util.Comparator; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Killaura extends Module { - private final DoubleSetting range = new DoubleSetting("Range", "Range", "Maximum range of attacksTEST", ()->true, 0, 6, 4.25); - private final BooleanSetting delay1_9 = new BooleanSetting("1.9 delay", "1.9 delay", "Should use 1.9 delay?", ()->true, true); - private final BooleanSetting attackThroughBlocks = new BooleanSetting("Through blocks", "Through blocks", "Should attack through blocks?", ()->true, false); - private final EnumSetting sortMethod = new EnumSetting<>("Sort method", "SortMethod", "How to sort entities", () -> true, SortMethod.HEALTH, SortMethod.class); + private final DoubleSetting range = new DoubleSetting("Range", "range", "Maximum range of attacksTEST", ()->true, 0, 6, 4.25); + private final BooleanSetting delay1_9 = new BooleanSetting("1.9 delay", "1.9Delay", "Should use 1.9 delay?", ()->true, true); + private final BooleanSetting attackThroughBlocks = new BooleanSetting("Through blocks", "throughBlocks", "Should attack through blocks?", ()->true, false); + private final EnumSetting sortMethod = new EnumSetting<>("Sort method", "sortMethod", "How to sort entities", () -> true, SortMethod.HEALTH, SortMethod.class); private final BooleanSetting rotate = new BooleanSetting("Rotate", "rotate", "Rotates towards target", ()->true, true); private final EnumSetting rotationMode = new EnumSetting<>("Rotation mode", "rotationMode", "How to rotate", ()->true, RotationMode.PACKET, RotationMode.class); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/exploit/XCarry.java b/src/main/java/me/leeeaf/oakclient/systems/modules/exploit/XCarry.java index d222df5..f485651 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/exploit/XCarry.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/exploit/XCarry.java @@ -8,7 +8,7 @@ import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class XCarry extends Module{ public XCarry() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Blink.java b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Blink.java index 1ab36c6..d2b00f4 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Blink.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Blink.java @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.List; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Blink extends Module{ private FakePlayer fakePlayer; diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Fly.java b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Fly.java index fc362ee..5a45196 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Fly.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Fly.java @@ -6,11 +6,11 @@ import net.minecraft.entity.EntityPose; import net.minecraft.util.math.Vec3d; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Fly extends Module { private int tickCounter; - public final IntegerSetting flySpeed = new IntegerSetting("Fly speed", "FlySpeed", "The speed at which you fly", ()->true,1,100,20); + public final IntegerSetting flySpeed = new IntegerSetting("Fly speed", "flySpeed", "The speed at which you fly", ()->true,1,100,20); public Fly() { super("Fly", "Allows the player to fly", ()->true, true, Category.MOVEMENT); settings.add(flySpeed); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Scaffold.java b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Scaffold.java index 4871830..5b22a75 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Scaffold.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/movement/Scaffold.java @@ -10,7 +10,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Scaffold extends Module { private final BooleanSetting airPlace = new BooleanSetting("AirPlace", "airPlace", "Allows placing blocks in air", ()->true, false); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiHunger.java b/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiHunger.java index 37c6358..e4177fa 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiHunger.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiHunger.java @@ -7,7 +7,7 @@ import me.leeeaf.oakclient.systems.modules.Module; import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class AntiHunger extends Module { private final BooleanSetting pauseInLiquids = new BooleanSetting("Pause in liquids", "pauseInLiquids", "Pause module in liquids", ()->true, true); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiKnockback.java b/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiKnockback.java index 6ad9101..50e3b13 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiKnockback.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/player/AntiKnockback.java @@ -11,15 +11,15 @@ import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.ExplosionS2CPacket; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class AntiKnockback extends Module{ - private final IntegerSetting velXZ_setting= new IntegerSetting("XZ velocity", "XZvelocity", "Horizontal velocity to keep", ()->true, 0, 100, 0); - private final IntegerSetting velY_setting= new IntegerSetting("Y velocity", "Yvelocity", "Vertical velocity to keep", ()->true, 0, 100, 0); + private final IntegerSetting velXZ_setting= new IntegerSetting("Horizontal velocity", "horizontalVelocity", "Horizontal velocity to keep", ()->true, 0, 100, 0); + private final IntegerSetting velY_setting= new IntegerSetting("Vertical velocity", "verticalVelocity", "Vertical velocity to keep", ()->true, 0, 100, 0); private final BooleanSetting explosions = new BooleanSetting("Explosions", "explosions", "Reduces knockback from explosions", ()->true, true); - private final IntegerSetting explosions_velXZ_setting= new IntegerSetting("XZ velocity", "XZvelocity", "Horizontal velocity to keep", ()->true, 0, 100, 0); - private final IntegerSetting explosions_velY_setting= new IntegerSetting("Y velocity", "Yvelocity", "Vertical velocity to keep", ()->true, 0, 100, 0); + private final IntegerSetting explosions_velXZ_setting= new IntegerSetting("XZ velocity", "explosionHorizontalVelocity", "Horizontal velocity to keep", ()->true, 0, 100, 0); + private final IntegerSetting explosions_velY_setting= new IntegerSetting("Y velocity", "explosionVerticalVelocity", "Vertical velocity to keep", ()->true, 0, 100, 0); public AntiKnockback() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/player/ChestStealer.java b/src/main/java/me/leeeaf/oakclient/systems/modules/player/ChestStealer.java index 2c7da95..e15a57e 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/player/ChestStealer.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/player/ChestStealer.java @@ -11,7 +11,7 @@ import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.SlotActionType; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ChestStealer extends Module { private Timer delayTimer = new Timer(); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/player/Freecam.java b/src/main/java/me/leeeaf/oakclient/systems/modules/player/Freecam.java index f6b73c0..5b7535e 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/player/Freecam.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/player/Freecam.java @@ -14,10 +14,10 @@ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.util.math.Vec3d; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Freecam extends Module { - private final IntegerSetting flySpeed = new IntegerSetting("Fly speed", "FlySpeed", "The speed at which you fly", ()->true,1,100,20); + private final IntegerSetting flySpeed = new IntegerSetting("Fly speed", "flySpeed", "The speed at which you fly", ()->true,1,100,20); private final BooleanSetting chunkCulling = new BooleanSetting("Chunk culling", "chunkCulling", "Disable chunk culling (renders every chunk)", ()->true, true); public Freecam() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/player/NoFall.java b/src/main/java/me/leeeaf/oakclient/systems/modules/player/NoFall.java index 3c3f881..f9cbde5 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/player/NoFall.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/player/NoFall.java @@ -9,20 +9,11 @@ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; public class NoFall extends Module{ + public NoFall() { super("NoFall", "Prevents you from taking fall damage", ()->true, true, Category.PLAYER); } - @Override - public void onDisable() { - EventBus.getEventBus().unsubscribe(this); - } - - @Override - public void onEnable() { - EventBus.getEventBus().subscribe(this); - } - @EventSubscribe public void onPacketSend(PacketEvent.Send event) { if(event.packet instanceof PlayerMoveC2SPacket){ diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/render/ESP.java b/src/main/java/me/leeeaf/oakclient/systems/modules/render/ESP.java index 6c30a64..859ffaf 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/render/ESP.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/render/ESP.java @@ -18,7 +18,7 @@ import java.awt.*; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ESP extends Module { private final DoubleSetting widthSetting = new DoubleSetting("Width", "width", "Width of tracers", ()->true, 0.1,5,1.5); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Fullbright.java b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Fullbright.java index f51d5a4..0d2ca01 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Fullbright.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Fullbright.java @@ -5,7 +5,7 @@ import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Fullbright extends Module { public Fullbright() { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Search.java b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Search.java index 32fbdf5..b85f58a 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Search.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Search.java @@ -20,7 +20,7 @@ import java.util.HashSet; import java.util.Set; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Search extends Module { private final DoubleSetting widthSetting = new DoubleSetting("Width", "width", "Width of tracers", ()->true, 0.1,5,1.5); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Tracers.java b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Tracers.java index f04fac2..0e0ba84 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/render/Tracers.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/render/Tracers.java @@ -19,7 +19,7 @@ import java.awt.*; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class Tracers extends Module { private final DoubleSetting widthSetting = new DoubleSetting("Width", "width", "Width of tracers", ()->true, 0.1,5,1.5); diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/world/EntityOwner.java b/src/main/java/me/leeeaf/oakclient/systems/modules/world/EntityOwner.java index c4add45..eda73cc 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/world/EntityOwner.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/world/EntityOwner.java @@ -19,7 +19,7 @@ import java.util.Objects; import java.util.UUID; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class EntityOwner extends Module { diff --git a/src/main/java/me/leeeaf/oakclient/systems/modules/world/XRay.java b/src/main/java/me/leeeaf/oakclient/systems/modules/world/XRay.java index 10ef8d5..3364069 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/modules/world/XRay.java +++ b/src/main/java/me/leeeaf/oakclient/systems/modules/world/XRay.java @@ -8,10 +8,10 @@ import java.util.ArrayList; import java.util.Arrays; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class XRay extends Module { - public static ArrayList blocksToRender = new ArrayList<>(Arrays.asList( + public static ArrayList blocksToRender = new ArrayList<>(Arrays.asList( //TODO save in files Blocks.DIAMOND_ORE, Blocks.COAL_ORE, Blocks.LAPIS_ORE diff --git a/src/main/java/me/leeeaf/oakclient/systems/renderer/text/TextRenderer.java b/src/main/java/me/leeeaf/oakclient/systems/renderer/text/TextRenderer.java index 1872b4b..f4ba80d 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/renderer/text/TextRenderer.java +++ b/src/main/java/me/leeeaf/oakclient/systems/renderer/text/TextRenderer.java @@ -8,7 +8,7 @@ import net.minecraft.util.Formatting; import net.minecraft.util.math.Matrix4f; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class TextRenderer { diff --git a/src/main/java/me/leeeaf/oakclient/systems/social/SocialManager.java b/src/main/java/me/leeeaf/oakclient/systems/social/SocialManager.java index a8a23a7..4e8a285 100644 --- a/src/main/java/me/leeeaf/oakclient/systems/social/SocialManager.java +++ b/src/main/java/me/leeeaf/oakclient/systems/social/SocialManager.java @@ -5,7 +5,7 @@ import java.util.HashMap; import java.util.Map; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class SocialManager { private static final Map relationshipMap = new HashMap<>(); diff --git a/src/main/java/me/leeeaf/oakclient/utils/EntityUtils.java b/src/main/java/me/leeeaf/oakclient/utils/EntityUtils.java index ca97753..939811b 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/EntityUtils.java +++ b/src/main/java/me/leeeaf/oakclient/utils/EntityUtils.java @@ -14,7 +14,7 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class EntityUtils { public static boolean isAttackable(Entity e) { return (e instanceof LivingEntity || e instanceof ShulkerBulletEntity || e instanceof AbstractFireballEntity) diff --git a/src/main/java/me/leeeaf/oakclient/utils/FakePlayer.java b/src/main/java/me/leeeaf/oakclient/utils/FakePlayer.java index ed3eb5b..04b7d77 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/FakePlayer.java +++ b/src/main/java/me/leeeaf/oakclient/utils/FakePlayer.java @@ -6,7 +6,7 @@ import java.util.UUID; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class FakePlayer extends OtherClientPlayerEntity { //TODO copy player proprieties (skin ecc) diff --git a/src/main/java/me/leeeaf/oakclient/utils/file/FileHelper.java b/src/main/java/me/leeeaf/oakclient/utils/file/FileHelper.java new file mode 100644 index 0000000..2556f7a --- /dev/null +++ b/src/main/java/me/leeeaf/oakclient/utils/file/FileHelper.java @@ -0,0 +1,39 @@ +package me.leeeaf.oakclient.utils.file; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static me.leeeaf.oakclient.OakClient.mc; + +public class FileHelper { + private final Path workingDir; + private static FileHelper instance; + + private FileHelper() { + workingDir = Paths.get(mc.runDirectory.getPath(), "OakClient/"); + if (!workingDir.toFile().exists()) { + workingDir.toFile().mkdirs(); + } + } + + public static FileHelper getInstance() { + if (instance == null) { + instance = new FileHelper(); + } + return instance; + } + + public String readFromFile(String fileName) throws IOException { + Path filePath = workingDir.resolve(fileName); + return Files.readString(filePath); + } + + public void writeToFile(String data, String fileName) throws IOException { + Path filePath = workingDir.resolve(fileName); + filePath.toFile().createNewFile(); + Files.write(filePath, data.getBytes()); + + } +} diff --git a/src/main/java/me/leeeaf/oakclient/utils/io/ChatLogger.java b/src/main/java/me/leeeaf/oakclient/utils/io/ChatLogger.java index 29ce9a3..bc0c12f 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/io/ChatLogger.java +++ b/src/main/java/me/leeeaf/oakclient/utils/io/ChatLogger.java @@ -3,7 +3,7 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ChatLogger { private static final Text logPrefix = Text.literal("[").append(Text.literal("Oak").formatted(Formatting.DARK_GREEN)).append(Text.literal("] ")); @@ -17,4 +17,12 @@ public static void log(Text message){ public static void error(Text message){ mc.player.sendMessage(errorPrefix.copy().append(message.copy().formatted(Formatting.RED))); } + + public static void error(String message){ + mc.player.sendMessage(errorPrefix.copy().append(Text.literal(message).formatted(Formatting.RED))); + } + + public static void log(String message){ + mc.player.sendMessage(logPrefix.copy().append(Text.literal(message))); + } } diff --git a/src/main/java/me/leeeaf/oakclient/utils/io/JsonUtils.java b/src/main/java/me/leeeaf/oakclient/utils/io/JsonUtils.java new file mode 100644 index 0000000..136cf89 --- /dev/null +++ b/src/main/java/me/leeeaf/oakclient/utils/io/JsonUtils.java @@ -0,0 +1,27 @@ +package me.leeeaf.oakclient.utils.io; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import java.util.Map; + +public class JsonUtils { + + public static void mergeJsonObject(JsonObject obj1, JsonObject obj2){ + for (Map.Entry entry : obj2.entrySet()) { + String key = entry.getKey(); + JsonElement value = entry.getValue(); + if (obj1.has(key)) { + JsonElement existingValue = obj1.get(key); + if (existingValue.isJsonObject() && value.isJsonObject()) { + mergeJsonObject(existingValue.getAsJsonObject(), value.getAsJsonObject()); + } else { + obj1.add(key, value); + } + } else { + obj1.add(key, value); + } + } + } +} diff --git a/src/main/java/me/leeeaf/oakclient/utils/player/InventoryUtils.java b/src/main/java/me/leeeaf/oakclient/utils/player/InventoryUtils.java index 3cbe98b..4fc1387 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/player/InventoryUtils.java +++ b/src/main/java/me/leeeaf/oakclient/utils/player/InventoryUtils.java @@ -5,7 +5,7 @@ import java.util.function.Predicate; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class InventoryUtils { public static int getItemSlotInHotbar(Item item){ diff --git a/src/main/java/me/leeeaf/oakclient/utils/player/RotationUtils.java b/src/main/java/me/leeeaf/oakclient/utils/player/RotationUtils.java index 0dbe1f0..9606287 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/player/RotationUtils.java +++ b/src/main/java/me/leeeaf/oakclient/utils/player/RotationUtils.java @@ -3,7 +3,7 @@ import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.util.math.MathHelper; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class RotationUtils { public static double getYaw(double x, double z) { diff --git a/src/main/java/me/leeeaf/oakclient/utils/world/BlockUtils.java b/src/main/java/me/leeeaf/oakclient/utils/world/BlockUtils.java index 798b110..fac98f0 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/world/BlockUtils.java +++ b/src/main/java/me/leeeaf/oakclient/utils/world/BlockUtils.java @@ -11,7 +11,7 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class BlockUtils { public static boolean place(BlockPos blockPos, int invSlot, Hand hand, boolean rotate, boolean checkEntities, boolean swingHand, boolean airPlace){ diff --git a/src/main/java/me/leeeaf/oakclient/utils/world/ChunkProcessor.java b/src/main/java/me/leeeaf/oakclient/utils/world/ChunkProcessor.java index 51550e6..ae0913d 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/world/ChunkProcessor.java +++ b/src/main/java/me/leeeaf/oakclient/utils/world/ChunkProcessor.java @@ -20,7 +20,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class ChunkProcessor { private ExecutorService executor; diff --git a/src/main/java/me/leeeaf/oakclient/utils/world/WorldUtils.java b/src/main/java/me/leeeaf/oakclient/utils/world/WorldUtils.java index eff34b6..6fce0a6 100644 --- a/src/main/java/me/leeeaf/oakclient/utils/world/WorldUtils.java +++ b/src/main/java/me/leeeaf/oakclient/utils/world/WorldUtils.java @@ -5,7 +5,7 @@ import java.util.ArrayList; import java.util.List; -import static me.leeeaf.oakclient.OakClientClient.mc; +import static me.leeeaf.oakclient.OakClient.mc; public class WorldUtils { public static List getLoadedChunks(){ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index bf29013..3a58d0b 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -13,7 +13,7 @@ "environment": "client", "entrypoints": { "client": [ - "me.leeeaf.oakclient.OakClientClient" + "me.leeeaf.oakclient.OakClient" ], "main": [ "me.leeeaf.oakclient.OakClient"