baritone/src/main/java/baritone/bot/GameEventHandler.java

58 lines
1.7 KiB
Java
Raw Normal View History

2018-08-01 17:10:48 +00:00
package baritone.bot;
import baritone.bot.behavior.Behavior;
2018-08-01 17:10:48 +00:00
import baritone.bot.event.IGameEventListener;
2018-08-02 01:46:51 +00:00
import baritone.bot.event.events.ChatEvent;
2018-08-02 07:45:15 +00:00
import baritone.bot.event.events.ChunkEvent;
import net.minecraft.client.settings.KeyBinding;
import org.lwjgl.input.Keyboard;
2018-08-01 17:10:48 +00:00
import java.util.function.Consumer;
2018-08-01 17:10:48 +00:00
/**
* @author Brady
* @since 7/31/2018 11:04 PM
*/
2018-08-03 20:32:54 +00:00
public final class GameEventHandler implements IGameEventListener {
2018-08-01 17:10:48 +00:00
2018-08-03 20:31:33 +00:00
GameEventHandler() {}
2018-08-01 17:10:48 +00:00
@Override
public final void onTick() {
2018-08-02 07:45:15 +00:00
dispatch(behavior -> onTick());
}
@Override
public void onProcessKeyBinds() {
InputOverrideHandler inputHandler = Baritone.INSTANCE.getInputOverrideHandler();
// Simulate the key being held down this tick
for (InputOverrideHandler.Input input : InputOverrideHandler.Input.values()) {
KeyBinding keyBinding = input.getKeyBinding();
if (inputHandler.isInputForcedDown(keyBinding) && !keyBinding.isKeyDown()) {
int keyCode = keyBinding.getKeyCode();
if (keyCode < Keyboard.KEYBOARD_SIZE)
KeyBinding.onTick(keyCode < 0 ? keyCode + 100 : keyCode);
}
}
2018-08-02 07:45:15 +00:00
dispatch(behavior -> onProcessKeyBinds());
2018-08-01 17:10:48 +00:00
}
2018-08-02 01:46:51 +00:00
@Override
public void onSendChatMessage(ChatEvent event) {
2018-08-02 07:45:15 +00:00
dispatch(behavior -> onSendChatMessage(event));
}
2018-08-02 07:45:15 +00:00
@Override
public void onChunkEvent(ChunkEvent event) {
dispatch(behavior -> onChunkEvent(event));
}
private void dispatch(Consumer<Behavior> dispatchFunction) {
Baritone.INSTANCE.getBehaviors().stream().filter(Behavior::isEnabled).forEach(dispatchFunction);
}
}