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);
- }
-
}