lichess-bot-devs / lichess-bot

A bridge between Lichess bots and chess engines
GNU Affero General Public License v3.0
778 stars 450 forks source link

Problem with Jar files #230

Closed yodatk closed 4 years ago

yodatk commented 4 years ago

I have written a Uci Protocol chess Engine in kotlin, the executable is a jar file, which was tested and runs in arena. I have put the engine file in the "engine" subfolder, and edited the config file accordingly.

when trying to boot the lichess-bot.py, the engine connects to the game but doesnt make the first move, those line appear in -v mode: 2020-10-17 19:32:53,998: . /| . // o\ . || .) lichess-bot 1.1.5 . //__\ . )___( Play on Lichess with a bot

2020-10-17 19:32:54,020: Starting new HTTPS connection (1): lichess.org:443 2020-10-17 19:32:54,265: https://lichess.org:443 "GET /api/account HTTP/1.1" 200 None 2020-10-17 19:32:54,267: Welcome NissimEngine! 2020-10-17 19:32:54,267: You're now connected to https://lichess.org/ and awaiting challenges. 2020-10-17 19:33:24,711: Accept Bullet casual challenge from AlexanderHal(1704) 2020-10-17 19:33:24,714: Resetting dropped connection: lichess.org 2020-10-17 19:33:24,947: https://lichess.org:443 "POST /api/challenge/Rc3pOKAW/accept HTTP/1.1" 200 11 2020-10-17 19:33:24,948: --- Process Queue. Total Queued: 1. Total Used: 0 2020-10-17 19:33:24,950: --- Process Used. Total Queued: 0. Total Used: 1

but after making a move, the engine does not respond. and it does respond in arenna. I Have tried to wrap the Jar file with EXE (with launch4j) and still -> worked in arenna, but not in lichess-bot.py. when I am trying to use other EXE engines -> it works beautifly, so I know the problem is not the config.yml Am I Missing something? I am running the program on windows machine, with python 3.7.9.

Thanks!

MathPlayer commented 4 years ago

I get into the same issue with a C engine on macOS (works in local chess UIs, but not with lichess.bot.py).

yodatk commented 4 years ago

I forgot to share my solution to the problem (might not work for you, but worth trying) The uci command "movetime" I accidently parsed as "moveTime" with capital T. for some reason in arenna GUI it still works, but in lichess-bot.py it didn't. once I changed it from "moveTime" to "movettime" lichess worked like a charm. @MathPlayer Don't know if it's the same problem that happens to you, but worth checking out

MathPlayer commented 4 years ago

A different problem for me since my engine is using CECP (a.k.a Xboard/Winboard) as a protocol, but it's good to check out if there are such issues with mine as well. I guess this issue can be closed then since you found the problem in your engine's code, right?

yodatk commented 4 years ago

yep it was issue in my engine not in the lichess-bot code