diff --git a/src/api/java/baritone/api/event/events/TabCompleteEvent.java b/src/api/java/baritone/api/event/events/TabCompleteEvent.java index cf4c57a21..268cf62bf 100644 --- a/src/api/java/baritone/api/event/events/TabCompleteEvent.java +++ b/src/api/java/baritone/api/event/events/TabCompleteEvent.java @@ -18,12 +18,11 @@ package baritone.api.event.events; import baritone.api.event.events.type.Cancellable; -import baritone.api.event.events.type.Overrideable; /** * @author LoganDark */ -public class TabCompleteEvent extends Cancellable { +public final class TabCompleteEvent extends Cancellable { public final String prefix; public String[] completions; diff --git a/src/main/java/baritone/bot/UserManager.java b/src/main/java/baritone/bot/UserManager.java index 765a21e3c..b8d5fa558 100644 --- a/src/main/java/baritone/bot/UserManager.java +++ b/src/main/java/baritone/bot/UserManager.java @@ -27,10 +27,11 @@ import baritone.api.event.listener.AbstractGameEventListener; import baritone.api.utils.Helper; import baritone.bot.connect.ConnectionResult; import baritone.bot.handler.BotNetHandlerLoginClient; -import baritone.bot.spec.BotWorld; import baritone.bot.spec.BotEntity; +import baritone.bot.spec.BotWorld; import baritone.utils.accessor.IIntegratedServer; import baritone.utils.accessor.IThreadLanServerPing; +import net.minecraft.client.multiplayer.PlayerControllerMP; import net.minecraft.client.multiplayer.ServerAddress; import net.minecraft.client.multiplayer.ServerData; import net.minecraft.network.EnumConnectionState; @@ -52,7 +53,7 @@ import static baritone.api.bot.connect.ConnectionStatus.*; * @author Brady * @since 11/6/2018 */ -public enum UserManager implements IUserManager, Helper { +public enum UserManager implements IUserManager, AbstractGameEventListener, Helper { INSTANCE; private final List users = new CopyOnWriteArrayList<>(); @@ -60,30 +61,30 @@ public enum UserManager implements IUserManager, Helper { private final BotWorldProvider worldProvider; UserManager() { - // Setup an event listener that automatically disconnects bots when we're not in-game - BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().registerEventListener(new AbstractGameEventListener() { + BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().registerEventListener(this); + this.worldProvider = new BotWorldProvider(); + } - @Override - public final void onTick(TickEvent event) { - if (event.getState() == EventState.PRE) { - if (event.getType() == TickEvent.Type.OUT) { - UserManager.this.users.forEach(user -> UserManager.this.disconnect(user, null)); - } + @Override + public void onTick(TickEvent event) { + if (event.getState() != EventState.PRE) { + return; + } - UserManager.this.users.forEach(user -> { - if (user.getNetworkManager().isChannelOpen()) { - user.getNetworkManager().processReceivedPackets(); - } else { - user.getNetworkManager().handleDisconnection(); - } - }); - - UserManager.this.worldProvider.tick(); + this.users.forEach(user -> { + switch (event.getType()) { + case IN: { + ((PlayerControllerMP) user.getPlayerController()).updateController(); + break; + } + case OUT: { + this.disconnect(user, null); + break; } } }); - this.worldProvider = new BotWorldProvider(); + this.worldProvider.tick(); } /** diff --git a/src/main/java/baritone/bot/spec/BotEntity.java b/src/main/java/baritone/bot/spec/BotEntity.java index 87b46a37b..d81b0aff8 100644 --- a/src/main/java/baritone/bot/spec/BotEntity.java +++ b/src/main/java/baritone/bot/spec/BotEntity.java @@ -159,4 +159,9 @@ public final class BotEntity extends EntityPlayerSP { protected NetworkPlayerInfo getPlayerInfo() { return this.playerInfo == null ? (this.playerInfo = this.connection.getPlayerInfo(this.getUniqueID())) : null; } + + @Override + public boolean isAutoJumpEnabled() { + return false; + } }