This repository has been archived on 2021-02-18. You can view files and clone it, but cannot push or open issues or pull requests.
chess/src/main/java/dev/kske/chess/uci/UCIListener.java

98 lines
2.2 KiB
Java

package dev.kske.chess.uci;
import dev.kske.chess.board.Move;
/**
* Project: <strong>Chess</strong><br>
* File: <strong>UCIListener.java</strong><br>
* Created: <strong>19.07.2019</strong><br>
*
* @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) {}
}