Justice Guard

This commit is contained in:
KGrzeg 2021-10-18 01:53:50 +02:00
parent 12589a7452
commit a16f5bb56e
3 changed files with 46 additions and 4 deletions

View file

@ -61,6 +61,19 @@ class Database {
return 0
}
foreseeRank(record) {
const users = this.db.data.users
.filter(user => user.record)
.sort((a, b) => a.record > b.record ? -1 : 1)
for (let i = 0; i < users.length; ++i) {
if (users[i].record < record)
return i + 1
}
return 0
}
}
export default new Database

View file

@ -1,8 +1,35 @@
import db from './Database.js'
export default function (req, res, next) {
//available keys 'points', 'shoots', 'time'
const { points, shoots, time } = req.body
if (points > shoots)
return res.status(400).json({
error: "Stop that"
})
//FIXES https://discord.com/channels/762566311930101761/892788974647656500/893963260045455410
const foreseeRank = db.foreseeRank(req.body.points)
if (foreseeRank == 1 && req.user.name == 'mw')
return res.status(400).json({
error: "Stop that"
})
//ship can shoot only 5 shoots per second
//and one bullet is worth max 1 point
const maxPossiblePointsByTime = time * 0.2
if (points >= maxPossiblePointsByTime)
return res.status(400).json({
error: "Stop that"
})
//nobody will play for over hour, I assure you
if (time > 1000 * 60 * 60)
return res.status(400).json({
error: "Stop that"
})
//TODO: do some checks
next()
}