lichess-bot-devs / lichess-bot

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

Don't accept challenges automatically against a bot except when mode is casual #76

Closed fsmosca closed 5 years ago

fsmosca commented 6 years ago

Feature request: My bot is not designed to play against a bot, it is designed to play against humans. It is weak around 1800 CCRL 40/4, and I am not improving its strength instead am trying to make it weaker.

There are bots that challenges it on rated mode which I don't really like as I can test engine vs engine matches on my pc at anytime, so I have enough engine vs engine games. Bot that challenges it in casual mode is just fine of course.

Another idea could be to develop a lichess bot protocol altogether where bot and api will communicate. Example if there is a challenge to my engine named my_engine the api will send to my_engine,

challenge type bot name eeee rating n mode rated

where: type is the type of player can be [bot, human] eeee is the name of the engine challenging my_engine n is the rating of the eeee engine can be [none, integer] mode can be [rated, casual]

note that, challenge type bot name eeee rating n mode rated

can be expanded to include tc, example

challenge type bot name eeee rating n mode rated tc b32

where: tc value b32 can be a code, b32 = Blitz 3+2 b52 = Blitza 5+2

Or other coding system design, above is just an example.

my_engine understand this as eeee is challenging me and it is of type bot and has rating of n on a rated mode. With this info I can decide whether I will accept the challenge or decline it.

or if a human challenges my_engine, the api will send,

challenge type human name hhhh rating n mode rated

The bot my_engine can reply with, reply accept challenge type human name hhhh rating n mode rated

where: reply [accept, decline] would determine if the game is a go or not.

If reply value is accept, the api can proceed the match.

If value is decline, api will inform the challenger,

reply decline [some message]

This is just a general idea details is totaly different thing. Perhaps adapt existing rules in fics and probably improve it further.

tttony commented 6 years ago

What about an option like:

supported_matches:
  casual: "bot"
  rated: "human"

We can extend but for now will work

fsmosca commented 6 years ago

That is fine. But of course if you can do it, I welcome a human playing casual or rated.

tttony commented 6 years ago

In this case if the human can play both modes then just leave: casual: "bot", if the option supported_matches is not present then the engine accept bots and humans

fsmosca commented 6 years ago

That is Excellent. Thank you.

tttony commented 6 years ago

Download and test from here: https://github.com/tttony/lichess-bot/tree/bot_matches

I have tested a rated match human to bot with: rated: "bot" and it was declined, so it seems to work, test and let me know

fsmosca commented 6 years ago

Bot is busy currently, I will try it later and let you know the test.

fsmosca commented 6 years ago

I got a single hit so far.

Decline Bullet rated challenge from BOT XxGODxX(2223)

I am using,

supported_matches:
  casual: "bot"

I am waiting challenge from human and see its behaviour.

fsmosca commented 6 years ago

With the following setting,

supported_matches:
  casual: "bot"

All human challenges on both modes were declined.

With,

supported_matches:
  casual: "bot"
  rated: "human"

Human rated is accepted but human casual is declined.

gbtami commented 6 years ago

@fsmosca it's implemented in https://github.com/careless25/lichess-bot/commit/81566b4dc1010a0bc316f57e0496e12e2bbd95a5 You just have to apply https://github.com/careless25/lichess-bot/pull/81 also.

tttony commented 6 years ago

@fsmosca Oops! Right! There are non title players, fixed that: https://github.com/tttony/lichess-bot/tree/bot_matches

ShailChoksi commented 6 years ago

@fsmosca Can I close this as this was already implemented in 81566b4