catbase/plugins/velouremon/database.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()
}