level up fixes, first bot command

This commit is contained in:
smsteel
2019-02-10 18:45:25 +03:00
parent 71186ac223
commit 6cc8b71ae2
3 changed files with 86 additions and 19 deletions

View File

@ -23,6 +23,22 @@ db.run(
UNIQUE(displayName, entityName)
)`)
db.run(
`CREATE TABLE IF NOT EXISTS levelUps (
displayName STRING,
levelUpCount INTEGER DEFAULT 0,
UNIQUE(displayName)
)`)
db.run(
`CREATE TABLE IF NOT EXISTS playerData (
displayName STRING,
level INTEGER DEFAULT 0,
online INTEGER DEFAULT 0,
UNIQUE(displayName)
)`
)
const run = (sql, params) => new Promise((resolve, reject) => {
db.run(sql, params, (err) => {
if (err) {
@ -43,9 +59,8 @@ const get = (sql, params, column, defaultParam = null) => new Promise((resolve,
})
})
export const saveChat = id => run(`INSERT OR IGNORE INTO chats (chatId) VALUES (?)`, [ id ])
export const getChats = () => new Promise((resolve, reject) => {
db.all('SELECT * FROM chats', [], (err, rows) => {
const all = (sql, params = []) => new Promise((resolve, reject) => {
db.all(sql, params, (err, rows) => {
if (err) {
reject(err)
} else {
@ -54,7 +69,10 @@ export const getChats = () => new Promise((resolve, reject) => {
})
})
export const saveLogout = displayName => run(
export const saveChat = id => run(`INSERT OR IGNORE INTO chats (chatId) VALUES (?)`, [ id ])
export const getChats = () => all('SELECT * FROM chats')
export const saveLogoutTime = displayName => run(
`INSERT OR REPLACE INTO playerLogouts (displayName, lastLogoutTime) VALUES (?, ?)`,
[ displayName, currentTime() ]
)
@ -75,3 +93,28 @@ export const getKillCount = (displayName, entityName) => get(
'killCount',
0
)
export const saveLevelUp = (displayName, levelUpCount) => run(
`INSERT OR REPLACE INTO levelUps (displayName, levelUpCount) VALUES (?, ?)`,
[ displayName, levelUpCount ]
)
export const getLevelUpCount = displayName => get(
`SELECT levelUpCount FROM levelUps WHERE displayName = ?`,
[ displayName ],
'levelUpCount',
0
)
export const saveLevel = (displayName, newLevel) => run(
`INSERT OR REPLACE INTO playerData (displayName, level, online) VALUES (?, ?, 1)`,
[ displayName, newLevel ]
)
export const setOnlineState = displayName => run(
`INSERT OR REPLACE INTO playerData (displayName, online) VALUES (?, 1)`,
[ displayName ]
)
export const setOfflineState = displayName => run(
`INSERT OR REPLACE INTO playerData (displayName, online) VALUES (?, ?, 0)`,
[ displayName ]
)
export const getPlayersData = () => all('SELECT * FROM playerData ORDER BY online DESC, displayName ASC')