| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // package mod_serv -- главный тип приложения, содержит бота, интерфейсы и т.п.
- package mod_serv
- import (
- "time"
- . "gitp78su.ipnodns.ru/svi/kern"
- . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
- . "wartank/app/lev0/types"
- "wartank/app/lev3/farm_bots"
- "wartank/app/lev3/serv_web"
- "wartank/app/lev3/server_stat"
- )
- // МодульСервер -- главный тип приложения
- type МодульСервер struct {
- IKernelModule
- конт IKernelCtx
- ботоФерма *farm_bots.БотоФерма
- сервСтат ИСерверСтат
- лог ILogBuf
- }
- // НовМодСервер -- возвращает новый модуль сервера
- func НовМодСервер() *МодульСервер {
- лог := NewLogBuf()
- лог.Info("НовМодСервер()\n")
- конт := GetKernelCtx()
- сам := &МодульСервер{
- конт: конт,
- IKernelModule: NewKernelModule("мод_сервер"),
- лог: лог,
- }
- конт.Set("мод_сервер", сам, "Модуль сервера WarBot")
- _ = GetKernelStoreKv()
- сам.ботоФерма = farm_bots.НовБотоФерма()
- сервВеб := serv_web.НовСервВеб()
- сам.Ctx().Set("сервВеб", сервВеб, "Веб-сервер модуля сервера")
- сам.сервСтат = server_stat.НовСерверСтат()
- сам.Ctx().Set("сервСтат", сам.сервСтат, "Статистика сервера")
- _ = ИПриложение(сам)
- return сам
- }
- // Пуск -- запускает сервер бота в работу
- func (сам *МодульСервер) Run() {
- сам.лог.Info("МодульСервер.Пуск()\n")
- go сам.пуск()
- }
- func (сам *МодульСервер) пуск() {
- time.Sleep(time.Minute * 20)
- сам.конт.Cancel()
- сам.конт.Wg().Wait()
- }
- // Стат -- возвращает статистику сервера
- func (сам *МодульСервер) Стат() ИСерверСтат {
- return сам.сервСтат
- }
- // ServBots -- возвращает словарь ботов
- func (сам *МодульСервер) ServBots() ИБотоФерма {
- return сам.ботоФерма
- }
|