mirror of
https://github.com/GeyserMC/Floodgate.git
synced 2025-12-19 14:59:20 +00:00
Remove Blossom and use templates
This commit is contained in:
@@ -12,6 +12,7 @@ dependencies {
|
||||
implementation("net.kyori", "indra-common", "2.0.6")
|
||||
implementation("org.jfrog.buildinfo", "build-info-extractor-gradle", "4.26.1")
|
||||
implementation("gradle.plugin.com.github.johnrengelman", "shadow", "7.1.1")
|
||||
implementation("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext", "gradle-idea-ext", "1.1.7")
|
||||
}
|
||||
|
||||
tasks.withType<KotlinCompile> {
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
import org.apache.tools.ant.filters.ReplaceTokens
|
||||
import org.gradle.plugins.ide.eclipse.model.EclipseModel
|
||||
import org.gradle.plugins.ide.idea.model.IdeaModel
|
||||
import org.jetbrains.gradle.ext.ProjectSettings
|
||||
import org.jetbrains.gradle.ext.TaskTriggersConfig
|
||||
|
||||
plugins {
|
||||
id("org.jetbrains.gradle.plugin.idea-ext")
|
||||
}
|
||||
|
||||
registerGenerateTemplateTasks()
|
||||
|
||||
fun Project.registerGenerateTemplateTasks() {
|
||||
// main and test
|
||||
extensions.getByType<SourceSetContainer>().all {
|
||||
val javaDestination = layout.buildDirectory.dir("generated/sources/templates/$name")
|
||||
val javaSrcDir = layout.projectDirectory.dir("src/$name/templates")
|
||||
val javaGenerateTask = tasks.register<GenerateSourceTemplates>(
|
||||
getTaskName("template", "sources")
|
||||
) {
|
||||
filteringCharset = Charsets.UTF_8.name()
|
||||
from(javaSrcDir)
|
||||
into(javaDestination)
|
||||
filter<ReplaceTokens>("tokens" to replacements())
|
||||
}
|
||||
java.srcDir(javaGenerateTask.map { it.outputs })
|
||||
|
||||
val resourcesDestination = layout.buildDirectory.dir("generated/resources/templates/$name")
|
||||
val resourcesSrcDir = layout.projectDirectory.dir("src/$name/resourceTemplates")
|
||||
val resourcesGenerateTask = tasks.register<GenerateResourceTemplates>(
|
||||
getTaskName("template", "resources")
|
||||
) {
|
||||
filteringCharset = Charsets.UTF_8.name()
|
||||
from(resourcesSrcDir)
|
||||
into(resourcesDestination)
|
||||
filter<ReplaceTokens>("tokens" to replacements())
|
||||
}
|
||||
resources.srcDir(resourcesGenerateTask.map { it.outputs })
|
||||
}
|
||||
|
||||
return configureIdeSync(
|
||||
tasks.register("allTemplateSources") {
|
||||
dependsOn(tasks.withType<GenerateSourceTemplates>())
|
||||
},
|
||||
tasks.register("allTemplateResources") {
|
||||
dependsOn(tasks.withType<GenerateResourceTemplates>())
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun Project.configureIdeSync(vararg generateAllTasks: TaskProvider<Task>) {
|
||||
extensions.findByType<EclipseModel> {
|
||||
synchronizationTasks(generateAllTasks)
|
||||
}
|
||||
|
||||
extensions.findByType<IdeaModel> {
|
||||
if (project != null) {
|
||||
(project as ExtensionAware).extensions.configure<ProjectSettings> {
|
||||
(this as ExtensionAware).extensions.configure<TaskTriggersConfig> {
|
||||
afterSync(generateAllTasks)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//todo wasn't able to find something for VS(Code)
|
||||
}
|
||||
|
||||
inline fun <reified T : Any> ExtensionContainer.findByType(noinline action: T.() -> Unit) {
|
||||
val extension = findByType(T::class)
|
||||
if (extension != null) {
|
||||
action.invoke(extension)
|
||||
}
|
||||
}
|
||||
|
||||
abstract class GenerateAnyTemplates : Copy() {
|
||||
private val replacements = mutableMapOf<String, String>()
|
||||
|
||||
fun replaceToken(key: String, value: () -> Any) {
|
||||
replaceToken(key, value.invoke())
|
||||
}
|
||||
|
||||
fun replaceToken(key: String, value: Any) {
|
||||
replacements[key] = value.toString()
|
||||
}
|
||||
|
||||
fun replacements(): Map<String, String> {
|
||||
return replacements
|
||||
}
|
||||
}
|
||||
|
||||
open class GenerateResourceTemplates : GenerateAnyTemplates()
|
||||
open class GenerateSourceTemplates : GenerateAnyTemplates()
|
||||
@@ -1,7 +1,5 @@
|
||||
import net.kyori.blossom.BlossomExtension
|
||||
|
||||
plugins {
|
||||
id("net.kyori.blossom")
|
||||
id("floodgate.generate-templates")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -26,9 +24,10 @@ provided("io.netty", "netty-codec", Versions.nettyVersion)
|
||||
|
||||
relocate("org.bstats")
|
||||
|
||||
configure<BlossomExtension> {
|
||||
val constantsFile = "src/main/java/org/geysermc/floodgate/util/Constants.java"
|
||||
replaceToken("\${floodgateVersion}", fullVersion(), constantsFile)
|
||||
replaceToken("\${branch}", branchName(), constantsFile)
|
||||
replaceToken("\${buildNumber}", buildNumber(), constantsFile)
|
||||
tasks {
|
||||
templateSources {
|
||||
replaceToken("floodgateVersion", fullVersion())
|
||||
replaceToken("branch", branchName())
|
||||
replaceToken("buildNumber", buildNumber())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,12 +26,12 @@
|
||||
package org.geysermc.floodgate.util;
|
||||
|
||||
public final class Constants {
|
||||
public static final String VERSION = "${floodgateVersion}";
|
||||
public static final int BUILD_NUMBER = Integer.parseInt("${buildNumber}");
|
||||
public static final String GIT_BRANCH = "${branch}";
|
||||
public static final String VERSION = "@floodgateVersion@";
|
||||
public static final int BUILD_NUMBER = Integer.parseInt("@buildNumber@");
|
||||
public static final String GIT_BRANCH = "@branch@";
|
||||
public static final int METRICS_ID = 14649;
|
||||
|
||||
public static final char COLOR_CHAR = '§';
|
||||
public static final char COLOR_CHAR = '\u00A7';
|
||||
|
||||
public static final boolean DEBUG_MODE = false;
|
||||
public static final boolean PRINT_ALL_PACKETS = false;
|
||||
@@ -54,9 +54,6 @@ pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
plugins {
|
||||
id("net.kyori.blossom") version "1.2.0"
|
||||
}
|
||||
includeBuild("build-logic")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user