9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-03 06:12:21 +00:00

Second pass on MySQL

This commit is contained in:
Auxilor
2021-09-21 11:04:45 +01:00
parent d6a7e282f3
commit ca72852b3c
3 changed files with 15 additions and 11 deletions

View File

@@ -53,9 +53,9 @@ public class EcoSkillsPlugin extends EcoPlugin {
public EcoSkillsPlugin() {
super(1351, 12205, "&#ff00ae");
instance = this;
effectsYml = new EffectsYml(this);
dataHandler = this.getConfigYml().getBool("mysql.enabled") ?
new MySQLDataHandler(this) : new YamlDataHandler(this);
effectsYml = new EffectsYml(this);
}
@Override

View File

@@ -4,7 +4,7 @@ import com.willfp.ecoskills.EcoSkillsPlugin
import com.willfp.ecoskills.effects.Effects
import com.willfp.ecoskills.skills.Skills
import com.willfp.ecoskills.stats.Stats
import org.jetbrains.exposed.dao.id.UUIDTable
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.*
@@ -19,7 +19,7 @@ class MySQLDataHandler(
"${plugin.configYml.getString("mysql.host")}:" +
"${plugin.configYml.getString("mysql.port")}/" +
plugin.configYml.getString("mysql.database"),
driver = "com.mysql.jdbc.Driver",
driver = "com.mysql.cj.jdbc.Driver",
user = plugin.configYml.getString("mysql.user"),
password = plugin.configYml.getString("mysql.password")
)
@@ -48,7 +48,12 @@ class MySQLDataHandler(
override fun <T> write(uuid: UUID, key: String, value: T) {
transaction {
val player = Players.select { Players.id eq uuid }.firstOrNull() ?: return@transaction
Players.select { Players.uuid eq uuid }.firstOrNull() ?: run {
Players.insert {
it[this.uuid] = uuid
}
}
val player = Players.select { Players.uuid eq uuid }.first()
player[Players.columns.stream().filter { it.name == key }.findFirst().get()] = value
}
}
@@ -56,7 +61,7 @@ class MySQLDataHandler(
override fun readInt(uuid: UUID, key: String): Int {
var value = 0
transaction {
val player = Players.select { Players.id eq uuid }.firstOrNull() ?: return@transaction
val player = Players.select { Players.uuid eq uuid }.firstOrNull() ?: return@transaction
value = player[Players.columns.stream().filter { it.name == key }.findFirst().get()] as Int? ?: 0
}
return value
@@ -65,7 +70,7 @@ class MySQLDataHandler(
override fun readDouble(uuid: UUID, key: String): Double {
var value = 0.0
transaction {
val player = Players.select { Players.id eq uuid }.firstOrNull() ?: return@transaction
val player = Players.select { Players.uuid eq uuid }.firstOrNull() ?: return@transaction
value = player[Players.columns.stream().filter { it.name == key }.findFirst().get()] as Double? ?: 0.0
}
return value
@@ -74,15 +79,14 @@ class MySQLDataHandler(
override fun readString(uuid: UUID, key: String, default: String): String {
var value = ""
transaction {
val player = Players.select { Players.id eq uuid }.firstOrNull() ?: return@transaction
val player = Players.select { Players.uuid eq uuid }.firstOrNull() ?: return@transaction
value = player[Players.columns.stream().filter { it.name == key }.findFirst().get()] as String? ?: ""
}
return value
}
object Players : UUIDTable("EcoSkills_Players") {
override val id = uuid("id")
.entityId()
object Players : IntIdTable("EcoSkills_Players") {
val uuid = uuid("uuid")
val name = varchar("name", 50)
.default("Unknown Player")
}

View File

@@ -7,7 +7,7 @@ mysql:
enabled: false # Set to false, data.yml will be used instead.
host: localhost
port: 3306
database: db
database: database
user: username
password: passy