Files
Erupe/server/signserver/dbutils.go
2020-01-19 12:52:57 -05:00

57 lines
1.8 KiB
Go

package signserver
import "time"
func (s *Server) registerDBAccount(username string, password string) error {
_, err := s.db.Exec("INSERT INTO users (username, password) VALUES ($1, $2)", username, password)
if err != nil {
return err
}
var id int
err = s.db.QueryRow("SELECT id FROM users WHERE username = $1", username).Scan(&id)
if err != nil {
return err
}
// Create a base new character.
_, err = s.db.Exec(`
INSERT INTO characters (
user_id, is_female, is_new_character, small_gr_level, gr_override_mode, name, unk_desc_string,
gr_override_level, gr_override_unk0, gr_override_unk1, exp, weapon, last_login)
VALUES($1, False, True, 0, True, '', '', 0, 0, 0, 0, 0, $2)`,
id,
uint32(time.Now().Unix()),
)
if err != nil {
return err
}
return nil
}
type character struct {
ID uint32 `db:"id"`
IsFemale bool `db:"is_female"`
IsNewCharacter bool `db:"is_new_character"`
SmallGRLevel uint8 `db:"small_gr_level"`
GROverrideMode bool `db:"gr_override_mode"`
Name string `db:"name"`
UnkDescString string `db:"unk_desc_string"`
GROverrideLevel uint16 `db:"gr_override_level"`
GROverrideUnk0 uint8 `db:"gr_override_unk0"`
GROverrideUnk1 uint8 `db:"gr_override_unk1"`
Exp uint16 `db:"exp"`
Weapon uint16 `db:"weapon"`
LastLogin uint32 `db:"last_login"`
}
func (s *Server) getCharactersForUser(uid int) ([]character, error) {
characters := []character{}
err := s.db.Select(&characters, "SELECT id, is_female, is_new_character, small_gr_level, gr_override_mode, name, unk_desc_string, gr_override_level, gr_override_unk0, gr_override_unk1, exp, weapon, last_login FROM characters WHERE user_id = $1", uid)
if err != nil {
return nil, err
}
return characters, nil
}