Skip to content

Commit

Permalink
Add: database test
Browse files Browse the repository at this point in the history
  • Loading branch information
vulcandragi committed Jul 31, 2024
1 parent a87feca commit 4e0aab1
Show file tree
Hide file tree
Showing 21 changed files with 204 additions and 112 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
Expand Down
9 changes: 0 additions & 9 deletions build.gradle

This file was deleted.

23 changes: 23 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
plugins {
id ("com.gtnewhorizons.gtnhconvention")
id ("org.jetbrains.kotlin.jvm")
}

tasks.register("copyJar") {
group = "fardragi"
dependsOn("build")
doLast() {
val target = File("C:\\Users\\mrvul\\Documents\\Minecraft\\FarDragiServer\\mods\\dragiutils.jar")
val jar = File("./build/libs").walk().find { it.name.endsWith("dirty.jar") }

jar?.copyTo(target, overwrite = true)
}
}

tasks.register<Exec>("startServer") {
group = "fardragi"
standardInput = System.`in`
dependsOn("copyJar")
workingDir("C:\\Users\\mrvul\\Documents\\Minecraft\\FarDragiServer")
commandLine("cmd", "/c", "startserver-java9.bat")
}
11 changes: 10 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,14 @@
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
*/
dependencies {
runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev")
runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev")

shadowImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1")

shadowImplementation("org.jetbrains.exposed:exposed-core:0.53.0")
implementation("org.jetbrains.exposed:exposed-jdbc:0.53.0")

shadowImplementation("org.mariadb.jdbc:mariadb-java-client:3.3.1")

shadowImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0")
}
6 changes: 4 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ forceEnableMixins = false

# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated into your jar. It is your
# responsibility to check the license and request permission for distribution if required.
usesShadowedDependencies = false
usesShadowedDependencies = true

# If disabled, won't remove unused classes from shadowed dependencies. Some libraries use reflection to access
# their own classes, making the minimization unreliable.
Expand All @@ -108,7 +108,7 @@ minimizeShadowedDependencies = true
# If disabled, won't rename the shadowed classes.
relocateShadowedDependencies = true

# Adds the GTNH maven, CurseMaven, Modrinth, and some more well-known 1.7.10 repositories.
# Adds CurseMaven, Modrinth, and some more well-known 1.7.10 repositories.
includeWellKnownRepositories = true

# Change these to your Maven coordinates if you want to publish to a custom Maven repository instead of the default GTNH Maven.
Expand Down Expand Up @@ -181,3 +181,5 @@ curseForgeRelations =
# This is meant to be set in $HOME/.gradle/gradle.properties.
# ideaCheckSpotlessOnBuild = true

# Non-GTNH properties
exposedVersion = 0.52.0
2 changes: 1 addition & 1 deletion repositories.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Add any additional repositories for your dependencies here.

repositories {

mavenCentral()
}
25 changes: 0 additions & 25 deletions settings.gradle

This file was deleted.

23 changes: 23 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
pluginManagement {
repositories {
maven("https://nexus.gtnewhorizons.com/repository/public/") {
// RetroFuturaGradle
name = "GTNH Maven"
mavenContent {
includeGroup("com.gtnewhorizons")
includeGroupByRegex("com\\.gtnewhorizons\\..+")
}
}
gradlePluginPortal()
mavenCentral()
mavenLocal()
}
plugins {
id("org.jetbrains.kotlin.jvm") version "2.0.0"
}
}

plugins {
id("com.gtnewhorizons.gtnhsettingsconvention") version "1.0.25"
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
}
3 changes: 0 additions & 3 deletions src/main/kotlin/com/fardragi/dragiutils/ClientProxy.kt

This file was deleted.

30 changes: 0 additions & 30 deletions src/main/kotlin/com/fardragi/dragiutils/CommonProxy.kt

This file was deleted.

21 changes: 0 additions & 21 deletions src/main/kotlin/com/fardragi/dragiutils/Config.kt

This file was deleted.

34 changes: 18 additions & 16 deletions src/main/kotlin/com/fardragi/dragiutils/DragiUtils.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.fardragi.dragiutils

import com.fardragi.dragiutils.exceptions.DragiUtilsException
import com.fardragi.dragiutils.server.ServerProxy
import cpw.mods.fml.common.Mod
import cpw.mods.fml.common.SidedProxy
import cpw.mods.fml.common.event.FMLInitializationEvent
Expand All @@ -13,39 +15,39 @@ import org.apache.logging.log4j.Logger
modid = DragiUtils.MODID,
version = Tags.VERSION,
name = "DragiUtils",
acceptedMinecraftVersions = "[1.7.10]")
acceptedMinecraftVersions = "[1.7.10]",
acceptableRemoteVersions = "*")
class DragiUtils {
@Mod.EventHandler // preInit "Run before anything else. Read your config, create blocks, items,
// etc, and register them with the
// GameRegistry." (Remove if not needed)
@Mod.EventHandler
fun preInit(event: FMLPreInitializationEvent) {
proxy!!.preInit(event)
proxy.preInit(event)
}

@Mod.EventHandler // load "Do your mod setup. Build whatever data structures you care about.
// Register recipes." (Remove if not needed)
@Mod.EventHandler
fun init(event: FMLInitializationEvent?) {
proxy!!.init(event)
proxy.init(event)
}

@Mod.EventHandler // postInit "Handle interaction with other mods, complete your setup based on
// this." (Remove if not needed)
@Mod.EventHandler
fun postInit(event: FMLPostInitializationEvent?) {
proxy!!.postInit(event)
proxy.postInit(event)
}

@Mod.EventHandler // register server commands in this event handler (Remove if not needed)
@Mod.EventHandler
fun serverStarting(event: FMLServerStartingEvent?) {
proxy!!.serverStarting(event)
proxy.serverStarting(event)
}

companion object {
const val MODID: String = "dragiutils"
@JvmField val LOG: Logger = LogManager.getLogger(MODID)

@SidedProxy(
clientSide = "com.fardragi.dragiutils.ClientProxy",
serverSide = "com.fardragi.dragiutils.CommonProxy")
var proxy: CommonProxy? = null
clientSide = "com.fardragi.dragiutils.client.ClientProxy",
serverSide = "com.fardragi.dragiutils.server.ServerProxy")
private var _proxy: ServerProxy? = null

val proxy: ServerProxy
get() = _proxy ?: throw DragiUtilsException("Fail get proxy")
}
}
5 changes: 5 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/client/ClientProxy.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.fardragi.dragiutils.client

import com.fardragi.dragiutils.server.ServerProxy

class ClientProxy : ServerProxy()
19 changes: 19 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/config/Config.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.fardragi.dragiutils.config

import com.fardragi.dragiutils.utils.getWorkingDir
import java.io.File
import net.minecraftforge.common.config.Configuration

object Config {
var database: DatabaseConfig? = null

fun synchronizeConfiguration() {
val configuration = Configuration(File(getWorkingDir(), "config.cfg"))

database = DatabaseConfig(configuration)

if (configuration.hasChanged()) {
configuration.save()
}
}
}
14 changes: 14 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/config/DatabaseConfig.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.fardragi.dragiutils.config

import net.minecraftforge.common.config.Configuration

private const val CATEGORY = "Database"

class DatabaseConfig(configuration: Configuration) {
val host: String = configuration.getString("host", CATEGORY, "localhost", "Database host")
val port: Int = configuration.getInt("port", CATEGORY, 3306, 0, 65535, "Database port")
val database: String =
configuration.getString("database", CATEGORY, "dragi_utils", "Database name")
val password: String = configuration.getString("password", CATEGORY, "root", "Database password")
val user: String = configuration.getString("user", CATEGORY, "root", "Database user")
}
31 changes: 31 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/database/DatabaseModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.fardragi.dragiutils.database

import com.fardragi.dragiutils.config.DatabaseConfig
import com.fardragi.dragiutils.database.models.User
import cpw.mods.fml.common.FMLLog
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.transactions.transaction

class DatabaseModule(databaseConfig: DatabaseConfig) {
init {
val connectionString =
"jdbc:mariadb://${databaseConfig.host}:${databaseConfig.port}/${databaseConfig.database}"

FMLLog.info("GAY:$connectionString")

try {
val db =
Database.connect(
connectionString,
driver = "org.mariadb.jdbc.Driver",
user = databaseConfig.user,
password = databaseConfig.password,
)
} catch (ex: Exception) {
FMLLog.severe(ex.message)
}

transaction { SchemaUtils.createMissingTablesAndColumns(User) }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.fardragi.dragiutils.database.models

import org.jetbrains.exposed.dao.id.IntIdTable

object User : IntIdTable() {
val name = varchar("name", 255).uniqueIndex()
val passwordHash = varchar("passwordHash", 255)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.fardragi.dragiutils.exceptions

class DragiUtilsException(msg: String) : RuntimeException(msg) {}
28 changes: 28 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/server/ServerProxy.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.fardragi.dragiutils.server

import com.fardragi.dragiutils.DragiUtils
import com.fardragi.dragiutils.Tags
import com.fardragi.dragiutils.config.Config
import com.fardragi.dragiutils.config.Config.synchronizeConfiguration
import com.fardragi.dragiutils.database.DatabaseModule
import cpw.mods.fml.common.event.FMLInitializationEvent
import cpw.mods.fml.common.event.FMLPostInitializationEvent
import cpw.mods.fml.common.event.FMLPreInitializationEvent
import cpw.mods.fml.common.event.FMLServerStartingEvent

open class ServerProxy {
fun preInit(event: FMLPreInitializationEvent) {
synchronizeConfiguration()

DragiUtils.LOG.info(Config.database?.host)
DragiUtils.LOG.info("I am MyMod at version " + Tags.VERSION)
}

fun init(event: FMLInitializationEvent?) {
Config.database?.let { DatabaseModule(it) }
}

fun postInit(event: FMLPostInitializationEvent?) {}

fun serverStarting(event: FMLServerStartingEvent?) {}
}
13 changes: 13 additions & 0 deletions src/main/kotlin/com/fardragi/dragiutils/utils/Minecraft.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.fardragi.dragiutils.utils

import cpw.mods.fml.common.FMLCommonHandler
import java.io.File
import net.minecraft.client.Minecraft

fun getWorkingDir(): File {
val baseDir =
if (FMLCommonHandler.instance().side.isClient) Minecraft.getMinecraft().mcDataDir
else File(".")

return File(baseDir, "/DragiUtils")
}
Loading

0 comments on commit 4e0aab1

Please sign in to comment.