Смешивать логику сервера и логику бота - архитектурно неправильно. В зависимости от типа игры бот может быть:
1. Для однопользовательской - бот может быть отдельным модулем/классом. При запуске игры сервер запускает всех необходимых ботов, передает им ссылку на себя, а дальше они действуют как клиенты, подписываются на оповещения о событиях на сервере, в обработчике этих событий отрабатывают свою логику и отдают команды серверу через тот же клиентский интерфейс. Сервер может знать "своих", чтобы не путать с живым клиентом, но завязывать на этом слишком много логики на сервере не стоит.
2. Для MMO - бот отдельный процесс ОС (может даже на другой машине), он запускается независимо и его падение не затрагивает сервер. Специальный планировщик следит за ботами и перезапускает тех, которые упали по вине кривых скриптов. Ботов можно доверить писать индусам, но сервер должен быть непотопляемым, поэтому нужно стремиться вынести за его пределы как можно больше кода.