mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-21 09:02:07 -07:00
Set user join date in database again on account creation
This commit is contained in:
parent
278944b892
commit
9a2a2fe49d
3 changed files with 31 additions and 22 deletions
|
|
@ -6,6 +6,7 @@ import rs09.ServerConstants
|
|||
import rs09.storage.AccountStorageProvider
|
||||
import rs09.storage.SQLStorageProvider
|
||||
import java.sql.SQLDataException
|
||||
import java.sql.Timestamp
|
||||
|
||||
class ProductionAuthenticator : AuthProvider<AccountStorageProvider>() {
|
||||
override fun configureFor(provider: AccountStorageProvider) {
|
||||
|
|
@ -18,6 +19,7 @@ class ProductionAuthenticator : AuthProvider<AccountStorageProvider>() {
|
|||
override fun createAccountWith(info: UserAccountInfo): Boolean {
|
||||
try {
|
||||
info.password = SystemManager.getEncryption().hashPassword(info.password)
|
||||
info.joinDate = Timestamp(System.currentTimeMillis())
|
||||
storageProvider.store(info)
|
||||
} catch (e: SQLDataException) {
|
||||
return false
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package rs09.auth
|
||||
|
||||
import java.sql.Timestamp
|
||||
|
||||
class UserAccountInfo(
|
||||
var username: String,
|
||||
var password: String,
|
||||
|
|
@ -17,11 +19,12 @@ class UserAccountInfo(
|
|||
var clanReqs: String,
|
||||
var timePlayed: Long,
|
||||
var lastLogin: Long,
|
||||
var online: Boolean
|
||||
var online: Boolean,
|
||||
var joinDate: Timestamp
|
||||
) {
|
||||
companion object {
|
||||
@JvmStatic fun createDefault() : UserAccountInfo {
|
||||
return UserAccountInfo("", "", 0, 0, 0, "", "", 0L, 0L, "", "", "", "", "1,0,8,9", 0L, 0L, false).also { it.setInitialReferenceValues() }
|
||||
return UserAccountInfo("", "", 0, 0, 0, "", "", 0L, 0L, "", "", "", "", "1,0,8,9", 0L, 0L, false, joinDate = Timestamp(System.currentTimeMillis())).also { it.setInitialReferenceValues() }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +46,7 @@ class UserAccountInfo(
|
|||
}
|
||||
|
||||
fun toArray(): Array<Any> {
|
||||
return arrayOf(username, password, uid, rights, credits, ip, lastUsedIp, muteEndTime, banEndTime, contacts, blocked, clanName, currentClan, clanReqs, timePlayed, lastLogin, online)
|
||||
return arrayOf(username, password, uid, rights, credits, ip, lastUsedIp, muteEndTime, banEndTime, contacts, blocked, clanName, currentClan, clanReqs, timePlayed, lastLogin, online, joinDate)
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
|
|
|
|||
|
|
@ -45,22 +45,23 @@ class SQLStorageProvider : AccountStorageProvider {
|
|||
val userData = UserAccountInfo.createDefault()
|
||||
userData.username = username
|
||||
|
||||
result.getString(2) ?.let { userData.password = it }
|
||||
result.getInt(3) .let { userData.uid = it }
|
||||
result.getInt(4) .let { userData.rights = it }
|
||||
result.getInt(5) .let { userData.credits = it }
|
||||
result.getString(6) ?.let { userData.ip = it }
|
||||
result.getString(7) ?.let { userData.lastUsedIp = it }
|
||||
result.getLong(8) .let { userData.muteEndTime = max(0L, it) }
|
||||
result.getLong(9) .let { userData.banEndTime = max(0L, it) }
|
||||
result.getString(10)?.let { userData.contacts = it }
|
||||
result.getString(11)?.let { userData.blocked = it }
|
||||
result.getString(12)?.let { userData.clanName = it }
|
||||
result.getString(13)?.let { userData.currentClan = it }
|
||||
result.getString(14)?.let { userData.clanReqs = it }
|
||||
result.getLong(15) .let { userData.timePlayed = max(0L, it) }
|
||||
result.getLong(16) .let { userData.lastLogin = max(0L, it) }
|
||||
result.getBoolean(17).let { userData.online = it }
|
||||
result.getString(2) ?.let { userData.password = it }
|
||||
result.getInt(3) .let { userData.uid = it }
|
||||
result.getInt(4) .let { userData.rights = it }
|
||||
result.getInt(5) .let { userData.credits = it }
|
||||
result.getString(6) ?.let { userData.ip = it }
|
||||
result.getString(7) ?.let { userData.lastUsedIp = it }
|
||||
result.getLong(8) .let { userData.muteEndTime = max(0L, it) }
|
||||
result.getLong(9) .let { userData.banEndTime = max(0L, it) }
|
||||
result.getString(10) ?.let { userData.contacts = it }
|
||||
result.getString(11) ?.let { userData.blocked = it }
|
||||
result.getString(12) ?.let { userData.clanName = it }
|
||||
result.getString(13) ?.let { userData.currentClan = it }
|
||||
result.getString(14) ?.let { userData.clanReqs = it }
|
||||
result.getLong(15) .let { userData.timePlayed = max(0L, it) }
|
||||
result.getLong(16) .let { userData.lastLogin = max(0L, it) }
|
||||
result.getBoolean(17) .let { userData.online = it }
|
||||
result.getTimestamp(18) .let { userData.joinDate = it ?: Timestamp(System.currentTimeMillis()) }
|
||||
|
||||
userData.setInitialReferenceValues()
|
||||
return userData
|
||||
|
|
@ -102,6 +103,7 @@ class SQLStorageProvider : AccountStorageProvider {
|
|||
compiledInsertInfoQuery.setLong(14, info.timePlayed)
|
||||
compiledInsertInfoQuery.setLong(15, info.lastLogin)
|
||||
compiledInsertInfoQuery.setBoolean(16, info.online)
|
||||
compiledInsertInfoQuery.setTimestamp(17, info.joinDate)
|
||||
compiledInsertInfoQuery.execute()
|
||||
val result = compiledInsertInfoQuery.generatedKeys
|
||||
if (result.next()) {
|
||||
|
|
@ -195,7 +197,8 @@ class SQLStorageProvider : AccountStorageProvider {
|
|||
"clanReqs," +
|
||||
"timePlayed," +
|
||||
"lastLogin," +
|
||||
"online" +
|
||||
"online," +
|
||||
"joined_date" +
|
||||
" FROM members WHERE username = ?;"
|
||||
private const val insertInfoQuery = "INSERT INTO members (" +
|
||||
"username," +
|
||||
|
|
@ -213,8 +216,9 @@ class SQLStorageProvider : AccountStorageProvider {
|
|||
"clanReqs," +
|
||||
"timePlayed," +
|
||||
"lastLogin," +
|
||||
"online" +
|
||||
") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"
|
||||
"online," +
|
||||
"joined_date" +
|
||||
") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"
|
||||
|
||||
private fun buildUpdateInfoQuery(updatedIndices: ArrayList<Int>) : String {
|
||||
val sb = StringBuilder("UPDATE members SET ")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue