Расскажите, как сделать опознавание игроков?
Чтобы не разводить долгих дискуссий постараюсь описать сразу все камни. Я долгое время думал над этим, когда делал еще просто систему пользователей на боте.
У пользователя собственно может поменяться ник, идент и хост. Плохо нет cookie, как в браузере
Если вы собрались делать автоидентификацию, то по какой маске? Наверное *!*user@*.host, но этого не достаточно, в лучшем случае пользователь должен сам выбирать себе маску, а еще лучше - сам ими управлять.
Теперь получаем, что у нескольких пользователей маски могут совпадать (все пользователи поставили себе одну и ту же маску) и автоидентификацию им прийдется отключать принудительно, чтобы не путать пользователей.
Если автоидентификации нет, то чтобы пользователю авторизироваться, ему придется воспользоваться логином и паролем. То есть, получаем: при заходе на канал, если у пользователя установленные им маски пересекаются с масками другого/других пользователей, бот не должен его автоидентифицировать, а пользователь должен будет сам написать в приват боту 'auth handle password'.
Если есть другие идеи и мысли, буду рад услышать, по тому как проблема для меня актуальна.
И пока писал, придумал 'гиковский вариант' частичного решения проблемы. Чтобы бот предлагал скрипты пользователям для автоидентификации, - после успешной авторизации бот запрашивает /CTCP VERSION у пользователя и смотрит какой у него клиент, и следом дает инструкцию: скрипт для этого клиента, и как его установить.
<Spoofing> auth spoofing MyPaSsWoRd
Bot [~bot@eggdrop.] requested CTCP VERSION from Spoofing:
<Bot> У вас mIRC. Чтобы сделать авторизацию проще - установите скрипт: //write -c scripts/bot.auth.mrc on *;CONNECT:if ($($network,) == $network) msg $me $$1- | load -rs scripts/bot.auth.mrc
<Bot> Если я ошибся с вашим клиентом, напишите /msg Bot auth --scripts для просмотра списка клиентов, для которых доступны скрипты авторизации, и выберите свой.
Что-то вроде этого
Ну и совсем ни к месту, но подумал сделать это несколько защищенней. После каждой авторизации, смены пароля и т.д. сообщать пользователю одноразовый ключ, по которому он будет опознан в следующий раз. Разумеется, завязать все это на скрипты. Можно подумать, что это не "user-friendly", но на самом деле предложив пользователю установить скрипт - скрипт должен сам все делать, реагируя на бота.
Да, тут много работы и вообще гемора
но иных вариантов _безупречной_ автоидентификации пользователя просто не вижу, кроме как ты сам будешь управлять масками всех пользователей и следить чтобы все работало. Я же желаю все автоматизировать)..