dispatchFunction) {
+ Baritone.INSTANCE.getBehaviors().stream().filter(Behavior::isEnabled).forEach(dispatchFunction);
+ }
+
+ private void drawChunkLine(int posX, int posZ, float partialTicks) {
+ GlStateManager.enableBlend();
+ GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
+ GlStateManager.color(1.0F, 1.0F, 0.0F, 0.4F);
+ GlStateManager.glLineWidth(2.0F);
+ GlStateManager.disableTexture2D();
+
+ Tessellator tessellator = Tessellator.getInstance();
+ BufferBuilder buffer = tessellator.getBuffer();
+ double d0 = mc.getRenderManager().viewerPosX;
+ double d1 = mc.getRenderManager().viewerPosY;
+ double d2 = mc.getRenderManager().viewerPosZ;
+ buffer.begin(3, DefaultVertexFormats.POSITION);
+ buffer.pos(posX - d0, 0 - d1, posZ - d2).endVertex();
+ buffer.pos(posX - d0, 256 - d1, posZ - d2).endVertex();
+ tessellator.draw();
+
+ GlStateManager.enableDepth();
+ GlStateManager.depthMask(true);
+ GlStateManager.enableTexture2D();
+ GlStateManager.disableBlend();
+ }
+}
diff --git a/src/main/java/baritone/bot/event/AbstractGameEventListener.java b/src/main/java/baritone/bot/event/listener/AbstractGameEventListener.java
similarity index 69%
rename from src/main/java/baritone/bot/event/AbstractGameEventListener.java
rename to src/main/java/baritone/bot/event/listener/AbstractGameEventListener.java
index 0dc821300..23fd18abf 100644
--- a/src/main/java/baritone/bot/event/AbstractGameEventListener.java
+++ b/src/main/java/baritone/bot/event/listener/AbstractGameEventListener.java
@@ -15,7 +15,24 @@
* along with Baritone. If not, see .
*/
-package baritone.bot.event;
+/*
+ * This file is part of Baritone.
+ *
+ * Baritone is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Baritone. If not, see .
+ */
+
+package baritone.bot.event.listener;
import baritone.bot.event.events.*;
diff --git a/src/main/java/baritone/bot/event/IGameEventListener.java b/src/main/java/baritone/bot/event/listener/IGameEventListener.java
old mode 100755
new mode 100644
similarity index 80%
rename from src/main/java/baritone/bot/event/IGameEventListener.java
rename to src/main/java/baritone/bot/event/listener/IGameEventListener.java
index 2563009f2..f72bebfe7
--- a/src/main/java/baritone/bot/event/IGameEventListener.java
+++ b/src/main/java/baritone/bot/event/listener/IGameEventListener.java
@@ -1,99 +1,116 @@
-/*
- * This file is part of Baritone.
- *
- * Baritone is free software: you can redistribute it and/or modify
- * it under the terms of the GNU 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Baritone. If not, see .
- */
-
-package baritone.bot.event;
-
-import baritone.bot.event.events.*;
-import io.netty.util.concurrent.GenericFutureListener;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.EntityPlayerSP;
-import net.minecraft.client.multiplayer.WorldClient;
-import net.minecraft.client.renderer.EntityRenderer;
-import net.minecraft.client.settings.GameSettings;
-import net.minecraft.network.NetworkManager;
-import net.minecraft.network.Packet;
-
-/**
- * @author Brady
- * @since 7/31/2018 11:05 PM
- */
-public interface IGameEventListener {
-
- /**
- * Run once per game tick before screen input is handled.
- *
- * @see Minecraft#runTick()
- */
- void onTick(TickEvent event);
-
- /**
- * Run once per game tick from before the player rotation is sent to the server.
- * @see EntityPlayerSP#onUpdate()
- */
- void onPlayerUpdate();
-
- /**
- * Run once per game tick from before keybinds are processed.
- *
- * @see Minecraft#processKeyBinds()
- */
- void onProcessKeyBinds();
-
- /**
- * Runs whenever the client player sends a message to the server.
- *
- * @see EntityPlayerSP#sendChatMessage(String)
- */
- void onSendChatMessage(ChatEvent event);
-
- /**
- * Runs before and after whenever a chunk is either loaded, unloaded, or populated.
- *
- * @see WorldClient#doPreChunk(int, int, boolean)
- */
- void onChunkEvent(ChunkEvent event);
-
- /**
- * Runs once per world render pass. Two passes are made when {@link GameSettings#anaglyph} is on.
- *
- * Note: {@link GameSettings#anaglyph} has been removed in Minecraft 1.13
- *
- * @see EntityRenderer#renderWorldPass(int, float, long)
- */
- void onRenderPass(RenderEvent event);
-
- /**
- * Runs before and after whenever a new world is loaded
- *
- * @see Minecraft#loadWorld(WorldClient, String)
- */
- void onWorldEvent(WorldEvent event);
-
- /**
- * Runs before a outbound packet is sent
- *
- * @see NetworkManager#dispatchPacket(Packet, GenericFutureListener[])
- */
- void onSendPacket(PacketEvent event);
-
- /**
- * Runs before an inbound packet is processed
- *
- * @see NetworkManager#dispatchPacket(Packet, GenericFutureListener[])
- */
- void onReceivePacket(PacketEvent event);
-}
+/*
+ * This file is part of Baritone.
+ *
+ * Baritone is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Baritone. If not, see .
+ */
+
+/*
+ * This file is part of Baritone.
+ *
+ * Baritone is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Baritone. If not, see .
+ */
+
+package baritone.bot.event.listener;
+
+import baritone.bot.event.events.*;
+import io.netty.util.concurrent.GenericFutureListener;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.client.multiplayer.WorldClient;
+import net.minecraft.client.renderer.EntityRenderer;
+import net.minecraft.client.settings.GameSettings;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+
+/**
+ * @author Brady
+ * @since 7/31/2018 11:05 PM
+ */
+public interface IGameEventListener {
+
+ /**
+ * Run once per game tick before screen input is handled.
+ *
+ * @see Minecraft#runTick()
+ */
+ void onTick(TickEvent event);
+
+ /**
+ * Run once per game tick from before the player rotation is sent to the server.
+ * @see EntityPlayerSP#onUpdate()
+ */
+ void onPlayerUpdate();
+
+ /**
+ * Run once per game tick from before keybinds are processed.
+ *
+ * @see Minecraft#processKeyBinds()
+ */
+ void onProcessKeyBinds();
+
+ /**
+ * Runs whenever the client player sends a message to the server.
+ *
+ * @see EntityPlayerSP#sendChatMessage(String)
+ */
+ void onSendChatMessage(ChatEvent event);
+
+ /**
+ * Runs before and after whenever a chunk is either loaded, unloaded, or populated.
+ *
+ * @see WorldClient#doPreChunk(int, int, boolean)
+ */
+ void onChunkEvent(ChunkEvent event);
+
+ /**
+ * Runs once per world render pass. Two passes are made when {@link GameSettings#anaglyph} is on.
+ *
+ * Note: {@link GameSettings#anaglyph} has been removed in Minecraft 1.13
+ *
+ * @see EntityRenderer#renderWorldPass(int, float, long)
+ */
+ void onRenderPass(RenderEvent event);
+
+ /**
+ * Runs before and after whenever a new world is loaded
+ *
+ * @see Minecraft#loadWorld(WorldClient, String)
+ */
+ void onWorldEvent(WorldEvent event);
+
+ /**
+ * Runs before a outbound packet is sent
+ *
+ * @see NetworkManager#dispatchPacket(Packet, GenericFutureListener[])
+ */
+ void onSendPacket(PacketEvent event);
+
+ /**
+ * Runs before an inbound packet is processed
+ *
+ * @see NetworkManager#dispatchPacket(Packet, GenericFutureListener[])
+ */
+ void onReceivePacket(PacketEvent event);
+}