Include player rating in history
This commit is contained in:
parent
eda9754b06
commit
d3ac00eb34
4 changed files with 88 additions and 1 deletions
8
event.go
8
event.go
|
@ -146,7 +146,13 @@ type HistoryMatch struct {
|
|||
|
||||
type EventHistory struct {
|
||||
Event
|
||||
Matches []*HistoryMatch
|
||||
Matches []*HistoryMatch
|
||||
CasualBackgammonSingle int
|
||||
CasualBackgammonMulti int
|
||||
CasualAceyDeuceySingle int
|
||||
CasualAceyDeuceyMulti int
|
||||
CasualTabulaSingle int
|
||||
CasualTabulaMulti int
|
||||
}
|
||||
|
||||
func DecodeEvent(message []byte) (interface{}, error) {
|
||||
|
|
|
@ -325,6 +325,70 @@ func confirmResetAccount(resetSalt string, passwordSalt string, id int, key stri
|
|||
return newPassword, err
|
||||
}
|
||||
|
||||
func accountByID(id int) (*account, error) {
|
||||
dbLock.Lock()
|
||||
defer dbLock.Unlock()
|
||||
|
||||
if db == nil || id <= 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
tx, err := begin()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer tx.Commit(context.Background())
|
||||
|
||||
a := &account{
|
||||
casual: &clientRating{},
|
||||
competitive: &clientRating{},
|
||||
}
|
||||
var autoplay, highlight, pips, moves, flip, advanced int
|
||||
err = tx.QueryRow(context.Background(), "SELECT id, email, username, password, autoplay, highlight, pips, moves, flip, advanced, speed, casual_backgammon_single, casual_backgammon_multi, casual_acey_single, casual_acey_multi, casual_tabula_single, casual_tabula_multi, rated_backgammon_single, rated_backgammon_multi, rated_acey_single, rated_acey_multi, rated_tabula_single, rated_tabula_multi FROM account WHERE id = $1", id).Scan(&a.id, &a.email, &a.username, &a.password, &autoplay, &highlight, &pips, &moves, &flip, &advanced, &a.speed, &a.casual.backgammonSingle, &a.casual.backgammonMulti, &a.casual.aceySingle, &a.casual.aceyMulti, &a.casual.tabulaSingle, &a.casual.tabulaMulti, &a.competitive.backgammonSingle, &a.competitive.backgammonMulti, &a.competitive.aceySingle, &a.competitive.aceyMulti, &a.competitive.tabulaSingle, &a.competitive.tabulaMulti)
|
||||
if err != nil {
|
||||
return nil, nil
|
||||
}
|
||||
a.autoplay = autoplay == 1
|
||||
a.highlight = highlight == 1
|
||||
a.pips = pips == 1
|
||||
a.moves = moves == 1
|
||||
a.flip = flip == 1
|
||||
a.advanced = advanced == 1
|
||||
return a, nil
|
||||
}
|
||||
|
||||
func accountByUsername(username string) (*account, error) {
|
||||
dbLock.Lock()
|
||||
defer dbLock.Unlock()
|
||||
|
||||
if db == nil || len(strings.TrimSpace(username)) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
tx, err := begin()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer tx.Commit(context.Background())
|
||||
|
||||
a := &account{
|
||||
casual: &clientRating{},
|
||||
competitive: &clientRating{},
|
||||
}
|
||||
var autoplay, highlight, pips, moves, flip, advanced int
|
||||
err = tx.QueryRow(context.Background(), "SELECT id, email, username, password, autoplay, highlight, pips, moves, flip, advanced, speed, casual_backgammon_single, casual_backgammon_multi, casual_acey_single, casual_acey_multi, casual_tabula_single, casual_tabula_multi, rated_backgammon_single, rated_backgammon_multi, rated_acey_single, rated_acey_multi, rated_tabula_single, rated_tabula_multi FROM account WHERE username = $1", strings.ToLower(username)).Scan(&a.id, &a.email, &a.username, &a.password, &autoplay, &highlight, &pips, &moves, &flip, &advanced, &a.speed, &a.casual.backgammonSingle, &a.casual.backgammonMulti, &a.casual.aceySingle, &a.casual.aceyMulti, &a.casual.tabulaSingle, &a.casual.tabulaMulti, &a.competitive.backgammonSingle, &a.competitive.backgammonMulti, &a.competitive.aceySingle, &a.competitive.aceyMulti, &a.competitive.tabulaSingle, &a.competitive.tabulaMulti)
|
||||
if err != nil {
|
||||
return nil, nil
|
||||
}
|
||||
a.autoplay = autoplay == 1
|
||||
a.highlight = highlight == 1
|
||||
a.pips = pips == 1
|
||||
a.moves = moves == 1
|
||||
a.flip = flip == 1
|
||||
a.advanced = advanced == 1
|
||||
return a, nil
|
||||
}
|
||||
|
||||
func loginAccount(passwordSalt string, username []byte, password []byte) (*account, error) {
|
||||
dbLock.Lock()
|
||||
defer dbLock.Unlock()
|
||||
|
|
|
@ -31,6 +31,14 @@ func confirmResetAccount(resetSalt string, passwordSalt string, id int, key stri
|
|||
return "", nil
|
||||
}
|
||||
|
||||
func accountByID(id int) (*account, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func accountByUsername(username string) (*account, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func loginAccount(passwordSalt string, username []byte, password []byte) (*account, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
@ -1171,6 +1171,15 @@ COMMANDS:
|
|||
Matches: matches,
|
||||
}
|
||||
ev.Player = string(params[0])
|
||||
a, err := accountByUsername(string(params[0]))
|
||||
if err == nil && a != nil {
|
||||
ev.CasualBackgammonSingle = a.casual.backgammonSingle / 100
|
||||
ev.CasualBackgammonMulti = a.casual.backgammonMulti / 100
|
||||
ev.CasualAceyDeuceySingle = a.casual.aceySingle / 100
|
||||
ev.CasualAceyDeuceyMulti = a.casual.aceyMulti / 100
|
||||
ev.CasualTabulaSingle = a.casual.tabulaSingle / 100
|
||||
ev.CasualTabulaMulti = a.casual.tabulaMulti / 100
|
||||
}
|
||||
cmd.client.sendEvent(ev)
|
||||
case bgammon.CommandDisconnect:
|
||||
if clientGame != nil {
|
||||
|
|
Loading…
Reference in a new issue