diff --git a/src/api/java/baritone/api/BaritoneAPI.java b/src/api/java/baritone/api/BaritoneAPI.java index 56a26745..bfdf60ff 100644 --- a/src/api/java/baritone/api/BaritoneAPI.java +++ b/src/api/java/baritone/api/BaritoneAPI.java @@ -29,6 +29,10 @@ import baritone.api.behavior.*; */ public class BaritoneAPI { + // General + private static final Settings settings = new Settings(); + + // Behaviors private static IFollowBehavior followBehavior; private static ILookBehavior lookBehavior; private static IMemoryBehavior memoryBehavior; @@ -55,6 +59,10 @@ public class BaritoneAPI { return pathingBehavior; } + public static Settings getSettings() { + return settings; + } + /** * FOR INTERNAL USE ONLY */ diff --git a/src/main/java/baritone/Settings.java b/src/api/java/baritone/api/Settings.java similarity index 98% rename from src/main/java/baritone/Settings.java rename to src/api/java/baritone/api/Settings.java index 87bd1812..6f0d668b 100644 --- a/src/main/java/baritone/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -15,9 +15,9 @@ * along with Baritone. If not, see . */ -package baritone; +package baritone.api; -import baritone.utils.Helper; +import net.minecraft.client.Minecraft; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.util.text.ITextComponent; @@ -32,6 +32,7 @@ import java.util.function.Consumer; * @author leijurv */ public class Settings { + /** * Allow Baritone to break blocks */ @@ -389,9 +390,11 @@ public class Settings { public Setting followRadius = new Setting<>(3); /** - * Instead of Baritone logging to chat, set a custom consumer. + * The function that is called when Baritone will log to chat. This function can be added to + * via {@link Consumer#andThen(Consumer)} or it can completely be overriden via setting + * {@link Setting#value}; */ - public Setting> logger = new Setting<>(new Helper() {}::addToChat); + public Setting> logger = new Setting<>(Minecraft.getMinecraft().ingameGUI.getChatGUI()::printChatMessage); public final Map> byLowerName; public final List> allSettings; diff --git a/src/api/java/baritone/api/utils/Logger.java b/src/api/java/baritone/api/utils/Logger.java new file mode 100644 index 00000000..c2f6c99a --- /dev/null +++ b/src/api/java/baritone/api/utils/Logger.java @@ -0,0 +1,27 @@ +/* + * This file is part of Baritone. + * + * Baritone is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Baritone is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Baritone. If not, see . + */ + +package baritone.api.utils; + +/** + * @author Brady + * @since 9/23/2018 + */ +public class Logger { + + +} diff --git a/src/main/java/baritone/Baritone.java b/src/main/java/baritone/Baritone.java index d3db4918..4f3e52f2 100755 --- a/src/main/java/baritone/Baritone.java +++ b/src/main/java/baritone/Baritone.java @@ -18,6 +18,7 @@ package baritone; import baritone.api.BaritoneAPI; +import baritone.api.Settings; import baritone.behavior.Behavior; import baritone.api.event.listener.IGameEventListener; import baritone.behavior.*; @@ -81,7 +82,11 @@ public enum Baritone { this.threadPool = new ThreadPoolExecutor(4, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<>()); this.gameEventHandler = new GameEventHandler(); this.inputOverrideHandler = new InputOverrideHandler(); - this.settings = new Settings(); + + // Acquire the "singleton" instance of the settings directly from the API + // We might want to change this... + this.settings = BaritoneAPI.getSettings(); + this.behaviors = new ArrayList<>(); { registerBehavior(PathingBehavior.INSTANCE); diff --git a/src/main/java/baritone/behavior/LookBehavior.java b/src/main/java/baritone/behavior/LookBehavior.java index 9d1a2e58..6086c536 100644 --- a/src/main/java/baritone/behavior/LookBehavior.java +++ b/src/main/java/baritone/behavior/LookBehavior.java @@ -18,7 +18,7 @@ package baritone.behavior; import baritone.Baritone; -import baritone.Settings; +import baritone.api.Settings; import baritone.api.behavior.ILookBehavior; import baritone.api.event.events.PlayerUpdateEvent; import baritone.api.event.events.RotationMoveEvent; diff --git a/src/main/java/baritone/utils/ExampleBaritoneControl.java b/src/main/java/baritone/utils/ExampleBaritoneControl.java index 1bcfd3a2..be9f6d3f 100644 --- a/src/main/java/baritone/utils/ExampleBaritoneControl.java +++ b/src/main/java/baritone/utils/ExampleBaritoneControl.java @@ -18,7 +18,7 @@ package baritone.utils; import baritone.Baritone; -import baritone.Settings; +import baritone.api.Settings; import baritone.api.pathing.goals.Goal; import baritone.behavior.Behavior; import baritone.api.event.events.ChatEvent; diff --git a/src/main/java/baritone/utils/Helper.java b/src/main/java/baritone/utils/Helper.java index b9b3f0eb..f4c8ae2d 100755 --- a/src/main/java/baritone/utils/Helper.java +++ b/src/main/java/baritone/utils/Helper.java @@ -99,9 +99,4 @@ public interface Helper { component.appendSibling(new TextComponentString(" " + message)); Baritone.settings().logger.get().accept(component); } - - default void addToChat(ITextComponent msg) { - mc.ingameGUI.getChatGUI().printChatMessage(msg); - } - }