package dev.kske.chess.uci; import dev.kske.chess.board.Move; /** * Project: Chess
* File: UCIListener.java
* Created: 19.07.2019
* * @since Chess v0.3-alpha * @author Kai S. K. Engelbart */ public interface UCIListener { /** * Identifies the name of the engine. * * @param name The name of the engine */ default void onIdName(String name) {} /** * Identifies the author of the engine. * * @param author The name of the engine's author */ default void onIdAuthor(String author) {} /** * The engine is ready in UCI mode. */ default void onUCIOk() {} /** * The engine has processed all inputs and is ready for new commands. */ default void onReadyOk() {} /** * The engine has stopped searching and has found the best move. * * @param move The best moves the engine has found */ default void onBestMove(String move) {} /** * The engine has stopped searching and has found the best move. * * @param move The best move the engine has found * @param ponderMove The move the engine likes to ponder on */ default void onBestMove(String move, Move ponderMove) {} /** * The engine will check the copy protection now. */ default void onCopyProtectionChecking() {} /** * The engine has successfully checked the copy protection. */ default void onCopyProtectionOk() {} /** * The engine has encountered an error during copy protection checking. */ default void onCopyProtectionError() {} /** * The engine will check the registration now. */ default void onRegistrationChecking() {} /** * The engine has successfully checked the registration. */ default void onRegistrationOk() {} /** * The engine has encountered an error during registration checking. */ default void onRegistrationError() {} /** * The engine sends information to the GUI. * * @param info Contains all pieces of information to be sent */ default void onInfo(UCIInfo info) {} /** * Tells the GUI which parameters can be changed in the engine. * * @param option Option object describing the parameter */ default void onOption(UCIOption option) {} }