2018-08-01 17:10:48 +00:00
|
|
|
package baritone.bot;
|
|
|
|
|
2018-08-02 03:10:19 +00:00
|
|
|
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;
|
2018-08-02 01:25:23 +00:00
|
|
|
import net.minecraft.client.settings.KeyBinding;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
2018-08-01 17:10:48 +00:00
|
|
|
|
2018-08-02 03:10:19 +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-04 19:31:52 +00:00
|
|
|
GameEventHandler() {
|
|
|
|
}
|
2018-08-01 17:10:48 +00:00
|
|
|
|
|
|
|
@Override
|
2018-08-02 03:10:19 +00:00
|
|
|
public final void onTick() {
|
2018-08-04 19:31:52 +00:00
|
|
|
dispatch(Behavior::onTick);
|
2018-08-02 03:10:19 +00:00
|
|
|
}
|
2018-08-02 01:25:23 +00:00
|
|
|
|
|
|
|
@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 03:10:19 +00:00
|
|
|
|
2018-08-04 19:31:52 +00:00
|
|
|
dispatch(Behavior::onProcessKeyBinds);
|
2018-08-01 17:10:48 +00:00
|
|
|
}
|
2018-08-02 01:46:51 +00:00
|
|
|
|
|
|
|
@Override
|
2018-08-02 03:10:19 +00:00
|
|
|
public void onSendChatMessage(ChatEvent event) {
|
2018-08-04 19:31:52 +00:00
|
|
|
dispatch(behavior -> behavior.onSendChatMessage(event));
|
2018-08-02 03:10:19 +00:00
|
|
|
}
|
|
|
|
|
2018-08-02 07:45:15 +00:00
|
|
|
@Override
|
|
|
|
public void onChunkEvent(ChunkEvent event) {
|
2018-08-04 19:31:52 +00:00
|
|
|
dispatch(behavior -> behavior.onChunkEvent(event));
|
2018-08-02 07:45:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void dispatch(Consumer<Behavior> dispatchFunction) {
|
2018-08-02 03:10:19 +00:00
|
|
|
Baritone.INSTANCE.getBehaviors().stream().filter(Behavior::isEnabled).forEach(dispatchFunction);
|
|
|
|
}
|
2018-08-03 15:45:11 +00:00
|
|
|
}
|