| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // package serv_bots -- словарь ботов сервера
- package serv_bots
- import (
- "fmt"
- "wartank/pkg/types"
- "wartank/server/serv_bots/dict_warbot"
- "wartank/server/serv_bots/warbot"
- )
- // ServBots -- словарь ботов на сервере
- type ServBots struct {
- server types.ИСервер
- store types.IStore
- dictBot *dict_warbot.DictWarBot
- }
- // NewServBots -- возвращает новый словарь серверных ботов
- func NewServBots(server types.ИСервер) (*ServBots, error) {
- if server == nil {
- return nil, fmt.Errorf("NewServBots(): IServer == nil")
- }
- sf := &ServBots{
- server: server,
- store: server.Store(),
- }
- var err error
- sf.dictBot, err = dict_warbot.NewDictWarBot(server)
- if err != nil {
- return nil, fmt.Errorf("NewServBots(): in create DictWarBot, err=\n\t%w", err)
- }
- return sf, nil
- }
- // Get -- возвращает боевого бота по имени
- func (sf *ServBots) Get(name string) types.ИБот {
- bot := sf.dictBot.Get(name)
- return bot
- }
- // BotStart -- запускает бота в работу по его имени
- func (sf *ServBots) BotStart(name string) error {
- bot := sf.dictBot.Get(name)
- if bot == nil {
- return fmt.Errorf("ServBots.BotStart(): bot(%v) not found", name)
- }
- err := bot.Пуск()
- if err != nil {
- return fmt.Errorf("ServBots.BotStart(): in run bot(%v), err=\n\t%w", name, err)
- }
- return nil
- }
- // ListBot -- возвращает список существующих ботов
- func (sf *ServBots) ListBot() []types.ИБот {
- lst := sf.dictBot.ListBot()
- return lst
- }
- // NewBot -- добавляет нового бота на ферму
- func (sf *ServBots) NewBot(login, pass string) error {
- { // Существует ли такой бот
- bot := sf.dictBot.Get(login)
- if bot != nil {
- return nil
- }
- }
- { // Нет такого бота, надо его создать
- bot, err := warbot.НовВарБот(sf.server, login, pass)
- if err != nil {
- return fmt.Errorf("ServBots.NewBot(): in create bot %q, err=\n\t%w", login, err)
- }
- sf.dictBot.Add(bot)
- }
- return nil
- }
|