mirror of https://github.com/velour/catbase.git
74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
package velouremon
|
|
|
|
import (
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func (vp *VelouremonPlugin) checkAndBuildDBOrFail() {
|
|
dbNeedsPopulating := false
|
|
if rows, err := vp.db.Queryx(`select name from sqlite_master where type='table' and name='velouremon_players';`); err != nil {
|
|
log.Fatal().Err(err)
|
|
} else {
|
|
dbNeedsPopulating = rows.Next()
|
|
}
|
|
|
|
if _, err := vp.db.Exec(`create table if not exists velouremon_players (
|
|
id integer primary key,
|
|
chatid string,
|
|
player string,
|
|
health integer,
|
|
experience integer
|
|
);`); err != nil {
|
|
log.Fatal().Err(err)
|
|
}
|
|
|
|
if _, err := vp.db.Exec(`create table if not exists velouremon_creature_ref (
|
|
id integer primary key,
|
|
player integer,
|
|
creature integer,
|
|
health integer,
|
|
experience integer
|
|
);`); err != nil {
|
|
log.Fatal().Err(err)
|
|
}
|
|
|
|
if _, err := vp.db.Exec(`create table if not exists velouremon_creatures (
|
|
id integer primary key,
|
|
name string,
|
|
defense integer,
|
|
attack integer
|
|
);`); err != nil {
|
|
log.Fatal().Err(err)
|
|
}
|
|
|
|
if _, err := vp.db.Exec(`create table if not exists velouremon_ability_ref (
|
|
id integer primary key,
|
|
creatureref integer,
|
|
ability integer
|
|
);`); err != nil {
|
|
log.Fatal().Err(err)
|
|
}
|
|
|
|
if _, err := vp.db.Exec(`create table if not exists velouremon_abilities (
|
|
id integer primary key,
|
|
name string,
|
|
damage int,
|
|
heal int,
|
|
shield int,
|
|
weaken int,
|
|
critical int
|
|
);`); err != nil {
|
|
log.Fatal().Err(err)
|
|
}
|
|
|
|
if dbNeedsPopulating {
|
|
vp.populateDBWithBaseData()
|
|
}
|
|
}
|
|
|
|
func (vp *VelouremonPlugin) loadFromDB() {
|
|
vp.loadPlayers()
|
|
vp.loadCreatures()
|
|
vp.loadAbilities()
|
|
}
|