Skip to content

Commit

Permalink
Merge pull request #11 from MikChanNoPlugins/dev/dev
Browse files Browse the repository at this point in the history
Next version
  • Loading branch information
wtlgo authored Apr 5, 2023
2 parents b0de5fc + 0416f64 commit 9170668
Show file tree
Hide file tree
Showing 27 changed files with 415 additions and 164 deletions.
50 changes: 31 additions & 19 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "java"
id "org.jetbrains.kotlin.jvm" version "1.8.10"
id "org.jetbrains.kotlin.jvm" version "1.8.20"
id "org.jetbrains.dokka" version "1.7.20"
id "maven-publish"
id "com.github.johnrengelman.shadow" version "7.1.2"
Expand All @@ -24,7 +24,7 @@ static def determineVersion(String defaultVersion) {
}

group = "dev.mikchan.mcnp"
version = determineVersion("1.2.1")
version = determineVersion("1.3.0")

def localProperties = new Properties()
def propertiesFile = rootProject.file("local.properties")
Expand Down Expand Up @@ -53,30 +53,34 @@ repositories {
name = "Ailis Maven Releases"
url = "https://nexus.ailis.de/repository/maven-releases/de/ailis/pherialize/pherialize/"
}

maven {
name = 'papermc'
url = 'https://repo.papermc.io/repository/maven-public/'
}
}

dependencies {
//noinspection VulnerableLibrariesLocal
compileOnly "org.spigotmc:spigot-api:1.19.3-R0.1-SNAPSHOT"
compileOnly "net.md-5:bungeecord-api:1.19-R0.1-SNAPSHOT"

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"

implementation "io.ktor:ktor-server-core:2.2.4"
implementation "io.ktor:ktor-server-netty:2.2.4"
implementation "dev.dejvokep:boosted-yaml:1.3"
implementation "com.xk72:pherialize:1.2.4"
compileOnly 'com.velocitypowered:velocity-api:3.1.1'
annotationProcessor 'com.velocitypowered:velocity-api:3.1.1'

compileOnly "com.github.NuVotifier.NuVotifier:nuvotifier-bukkit:2.7.2"
compileOnly "com.github.NuVotifier.NuVotifier:nuvotifier-bungeecord:2.7.2"
compileOnly "com.github.NuVotifier.NuVotifier:nuvotifier-api:2.7.2"
compileOnly "com.github.NuVotifier.NuVotifier:nuvotifier-common:2.7.2"

implementation "org.bstats:bstats-bukkit:3.0.0"
shadow "org.bstats:bstats-bukkit:3.0.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"

implementation "io.ktor:ktor-server-core:2.2.4"
implementation "io.ktor:ktor-server-netty:2.2.4"
implementation "dev.dejvokep:boosted-yaml:1.3"
implementation "com.xk72:pherialize:1.2.4"
implementation "dev.jeka:jeka-core:0.10.12"

implementation "org.bstats:bstats-base:3.0.0"
shadow "org.bstats:bstats-base:3.0.0"
shadow "org.bstats:bstats-bukkit:3.0.1"
}

def targetJavaVersion = 11
Expand Down Expand Up @@ -122,6 +126,7 @@ if (file("local.gradle").exists()) {
apply from: "local.gradle"
}

/*
dokkaHtml {
outputDirectory.set(file("${buildDir}/dokka"))
}
Expand All @@ -131,18 +136,25 @@ javadocJar {
dependsOn("dokkaHtml")
from("$buildDir/dokka")
}
*/

javadocJar {
from(tasks.named("dokkaJavadoc"))
}

shadowJar {
archiveClassifier.set(null)
configurations = [project.configurations.shadow]
minimize()
}

dependencies {
include(dependency("org.bstats:bstats-bukkit"))
include(dependency("org.bstats:bstats-base"))
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation

relocate "org.bstats", "dev.mikchan.mcnp.votereceiver.shadow.org.bstats"
task relocateShadowJar(type: ConfigureShadowRelocation) {
target = tasks.shadowJar
prefix = "dev.mikchan.mcnp.votereceiver.shadow"
}

tasks.shadowJar.dependsOn tasks.relocateShadowJar

publishing {
repositories {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package dev.mikchan.mcnp.votereceiver
package dev.mikchan.mcnp.votereceiver.bungee

import com.vexsoftware.votifier.VoteHandler
import dev.mikchan.mcnp.votereceiver.config.IConfig
import dev.mikchan.mcnp.votereceiver.factory.IFactory
import dev.mikchan.mcnp.votereceiver.factory.bungee.BungeeCordFactory
import dev.mikchan.mcnp.votereceiver.utility.IUtility
import dev.mikchan.mcnp.votereceiver.bungee.factory.BungeeCordFactory
import dev.mikchan.mcnp.votereceiver.core.IPlugin
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.factory.IFactory
import dev.mikchan.mcnp.votereceiver.core.log.ILogger
import dev.mikchan.mcnp.votereceiver.core.log.JvmLoggerProxy
import dev.mikchan.mcnp.votereceiver.core.utility.IUtility
import io.ktor.server.engine.*
import net.md_5.bungee.api.plugin.Plugin
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.logging.Logger

/**
* Main bungeeecord plugin class
Expand All @@ -23,7 +25,7 @@ class VoteReceiverBungeeCordPlugin : Plugin(), IPlugin {
override val voteHandler: VoteHandler? by lazy { factory.createVoteHandler() }
override val threadPool: ExecutorService by lazy { Executors.newSingleThreadExecutor() }
override val webServer: ApplicationEngine by lazy { factory.createApplicationEngine() }
override val log: Logger get() = this.logger
override val log: ILogger by lazy { JvmLoggerProxy(this.logger) }

override fun onEnable() {
webServer.start()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dev.mikchan.mcnp.votereceiver.bungee.factory

import com.vexsoftware.votifier.bungee.NuVotifier
import dev.mikchan.mcnp.votereceiver.bungee.VoteReceiverBungeeCordPlugin
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.factory.CommonFactory
import net.md_5.bungee.api.ProxyServer
import java.io.File

internal class BungeeCordFactory(private val plugin: VoteReceiverBungeeCordPlugin) : CommonFactory(plugin) {
override fun createConfig(): IConfig {
val resource = plugin.getResourceAsStream("config.yml")
val document = File(plugin.dataFolder, "config.yml")
return createConfig(document, resource)
}

override fun createVoteHandler(): NuVotifier? {
return ProxyServer.getInstance().pluginManager.getPlugin("NuVotifier") as? NuVotifier
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package dev.mikchan.mcnp.votereceiver
package dev.mikchan.mcnp.votereceiver.core

import com.vexsoftware.votifier.VoteHandler
import dev.mikchan.mcnp.votereceiver.config.IConfig
import dev.mikchan.mcnp.votereceiver.utility.IUtility
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.log.ILogger
import dev.mikchan.mcnp.votereceiver.core.utility.IUtility
import io.ktor.server.engine.*
import java.util.concurrent.ExecutorService
import java.util.logging.Logger

/**
* Plugin interface
Expand Down Expand Up @@ -39,5 +39,5 @@ interface IPlugin {
/**
* Logger instance
*/
val log: Logger
val log: ILogger
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.mikchan.mcnp.votereceiver.config
package dev.mikchan.mcnp.votereceiver.core.config

/**
* Describes configuration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package dev.mikchan.mcnp.votereceiver.config.boosted
package dev.mikchan.mcnp.votereceiver.core.config.boosted

import dev.dejvokep.boostedyaml.YamlDocument
import dev.dejvokep.boostedyaml.dvs.versioning.BasicVersioning
import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings
import dev.dejvokep.boostedyaml.settings.general.GeneralSettings
import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings
import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings
import dev.mikchan.mcnp.votereceiver.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import java.io.File
import java.io.InputStream

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.mikchan.mcnp.votereceiver.config.fallback
package dev.mikchan.mcnp.votereceiver.core.config.fallback

import dev.mikchan.mcnp.votereceiver.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.config.IConfig

internal class FallbackConfig : IConfig {
override fun reload(): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package dev.mikchan.mcnp.votereceiver.core.factory

import dev.mikchan.mcnp.votereceiver.core.IPlugin
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.config.boosted.BoostedYamlConfig
import dev.mikchan.mcnp.votereceiver.core.config.fallback.FallbackConfig
import dev.mikchan.mcnp.votereceiver.core.utility.IUtility
import dev.mikchan.mcnp.votereceiver.core.utility.base.Utility
import dev.mikchan.mcnp.votereceiver.core.web.buildRoutes
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import java.io.File
import java.io.InputStream

internal abstract class CommonFactory(private val plugin: IPlugin) : IFactory {
protected fun createConfig(document: File?, resource: InputStream?): IConfig {
return if (document == null || resource == null) {
FallbackConfig()
} else {
BoostedYamlConfig(document, resource)
}
}

override fun createUtility(): IUtility {
return Utility()
}

override fun createApplicationEngine(): ApplicationEngine {
return embeddedServer(Netty, port = plugin.config.port) {
buildRoutes(plugin)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.mikchan.mcnp.votereceiver.factory
package dev.mikchan.mcnp.votereceiver.core.factory

import com.vexsoftware.votifier.NuVotifierBukkit
import com.vexsoftware.votifier.VoteHandler
import dev.mikchan.mcnp.votereceiver.config.IConfig
import dev.mikchan.mcnp.votereceiver.utility.IUtility
import dev.mikchan.mcnp.votereceiver.core.config.IConfig
import dev.mikchan.mcnp.votereceiver.core.utility.IUtility
import io.ktor.server.engine.*

/**
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/dev/mikchan/mcnp/votereceiver/core/log/ILogger.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package dev.mikchan.mcnp.votereceiver.core.log

/**
* Common logger interface
*/
interface ILogger {
/**
* Logs info message
*
* @param msg The message
*/
fun info(msg: String)

/**
* Logs warning message
*
* @param msg The message
* @param exception The exception
*/
fun warning(msg: String?, exception: Throwable? = null)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package dev.mikchan.mcnp.votereceiver.core.log

import java.util.logging.Level
import java.util.logging.Logger

internal class JvmLoggerProxy(private val logger: Logger) : ILogger {
override fun info(msg: String) {
logger.info(msg)
}

override fun warning(msg: String?, exception: Throwable?) {
if (exception != null) {
logger.log(Level.WARNING, msg, exception)
} else {
logger.warning(msg)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package dev.mikchan.mcnp.votereceiver.core.log

import org.slf4j.Logger

internal class Sl4jLoggerProxy(private val logger: Logger) : ILogger {
override fun info(msg: String) {
logger.info(msg)
}

override fun warning(msg: String?, exception: Throwable?) {
if (exception != null) {
logger.warn(msg, exception)
} else {
logger.warn(msg)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.mikchan.mcnp.votereceiver.utility
package dev.mikchan.mcnp.votereceiver.core.utility

/**
* Utility
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.mikchan.mcnp.votereceiver.utility.base
package dev.mikchan.mcnp.votereceiver.core.utility.base

import dev.mikchan.mcnp.votereceiver.utility.IUtility
import dev.mikchan.mcnp.votereceiver.core.utility.IUtility
import java.security.MessageDigest

internal class Utility : IUtility {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package dev.mikchan.mcnp.votereceiver.core.web

import dev.mikchan.mcnp.votereceiver.core.IPlugin
import io.ktor.server.application.*
import io.ktor.server.routing.*

internal fun Application.buildRoutes(plugin: IPlugin) {
routing {
createMineServTopRoute(plugin)
createTMonitoringComRoute(plugin)

if (plugin.config.testEnabled) {
createTestRoute(plugin)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.mikchan.mcnp.votereceiver.web
package dev.mikchan.mcnp.votereceiver.core.web

import com.vexsoftware.votifier.model.Vote
import com.vexsoftware.votifier.net.VotifierSession
import dev.mikchan.mcnp.votereceiver.IPlugin
import dev.mikchan.mcnp.votereceiver.core.IPlugin
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.plugins.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.mikchan.mcnp.votereceiver.web
package dev.mikchan.mcnp.votereceiver.core.web

import com.vexsoftware.votifier.model.Vote
import com.vexsoftware.votifier.net.VotifierSession
import de.ailis.pherialize.Pherialize
import dev.mikchan.mcnp.votereceiver.IPlugin
import dev.mikchan.mcnp.votereceiver.core.IPlugin
import io.ktor.server.application.*
import io.ktor.server.plugins.*
import io.ktor.server.response.*
Expand All @@ -12,7 +12,6 @@ import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.util.logging.Level

/**
* Reference `https://tmonitoring.com/uploads/files/top.zip`
Expand Down Expand Up @@ -52,7 +51,7 @@ internal fun Route.createTMonitoringComRoute(plugin: IPlugin) {
plugin.voteHandler?.onVoteReceived(vote, VotifierSession.ProtocolVersion.UNKNOWN, address)

} catch (ex: Exception) {
plugin.log.log(Level.WARNING, ex.message, ex)
plugin.log.warning(ex.message, ex)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.mikchan.mcnp.votereceiver.web
package dev.mikchan.mcnp.votereceiver.core.web

import com.vexsoftware.votifier.model.Vote
import com.vexsoftware.votifier.net.VotifierSession
import dev.mikchan.mcnp.votereceiver.IPlugin
import dev.mikchan.mcnp.votereceiver.core.IPlugin
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.plugins.*
Expand Down
Loading

0 comments on commit 9170668

Please sign in to comment.