|
@@ -4,6 +4,7 @@ package warbot
|
|
|
import (
|
|
import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
+ "wartank/pkg/components/safebool"
|
|
|
"wartank/pkg/types"
|
|
"wartank/pkg/types"
|
|
|
"wartank/server/serv_bots/warbot/angar"
|
|
"wartank/server/serv_bots/warbot/angar"
|
|
|
"wartank/server/serv_bots/warbot/tank"
|
|
"wartank/server/serv_bots/warbot/tank"
|
|
@@ -20,6 +21,7 @@ type WarBot struct {
|
|
|
botNet types.IBotNet
|
|
botNet types.IBotNet
|
|
|
name string // Имя бота
|
|
name string // Имя бота
|
|
|
pass string // Пароль бота
|
|
pass string // Пароль бота
|
|
|
|
|
+ isRun *safebool.SafeBool
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewWarBot -- возвращает новый WarBot
|
|
// NewWarBot -- возвращает новый WarBot
|
|
@@ -42,6 +44,7 @@ func NewWarBot(server types.IServer, name string) (*WarBot, error) {
|
|
|
store: server.Store(),
|
|
store: server.Store(),
|
|
|
tank: tank,
|
|
tank: tank,
|
|
|
name: name,
|
|
name: name,
|
|
|
|
|
+ isRun: safebool.NewSafeBool(),
|
|
|
}
|
|
}
|
|
|
sf.pass, err = sf.store.Get("/bot/" + sf.name)
|
|
sf.pass, err = sf.store.Get("/bot/" + sf.name)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -73,6 +76,9 @@ func (sf *WarBot) Pass() string {
|
|
|
|
|
|
|
|
// Run -- запускает бот в работу
|
|
// Run -- запускает бот в работу
|
|
|
func (sf *WarBot) Run() (err error) {
|
|
func (sf *WarBot) Run() (err error) {
|
|
|
|
|
+ if sf.isRun.Get() {
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
err = sf.botNet.Login()
|
|
err = sf.botNet.Login()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return fmt.Errorf("WarBot.Run(): bot(%q) in net login, err=\n\t%w", sf.name, err)
|
|
return fmt.Errorf("WarBot.Run(): bot(%q) in net login, err=\n\t%w", sf.name, err)
|
|
@@ -80,6 +86,7 @@ func (sf *WarBot) Run() (err error) {
|
|
|
if err := sf.angar.Run(); err != nil {
|
|
if err := sf.angar.Run(); err != nil {
|
|
|
return fmt.Errorf("WarBot.Run(): bot(%q) in run angar, err=\n\t%w", sf.name, err)
|
|
return fmt.Errorf("WarBot.Run(): bot(%q) in run angar, err=\n\t%w", sf.name, err)
|
|
|
}
|
|
}
|
|
|
|
|
+ sf.isRun.Set()
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|