1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2025-12-19 14:59:20 +00:00

Re-added some git properties and updated Gradle to 7.3.3

This commit is contained in:
Tim203
2022-01-23 12:50:01 +01:00
parent 9509d153c7
commit d4a4de6a98
12 changed files with 59 additions and 100 deletions

View File

@@ -1,6 +1,7 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins { plugins {
`kotlin-dsl` `kotlin-dsl`
java
} }
repositories { repositories {
@@ -8,6 +9,13 @@ repositories {
} }
dependencies { dependencies {
implementation("gradle.plugin.com.github.jengelman.gradle.plugins", "shadow", "7.0.0") implementation("net.kyori", "indra-common", "2.0.6")
implementation("org.jfrog.buildinfo", "build-info-extractor-gradle", "4.25.2") implementation("org.jfrog.buildinfo", "build-info-extractor-gradle", "4.26.1")
implementation("gradle.plugin.com.github.johnrengelman", "shadow", "7.1.1")
}
tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "1.8"
}
} }

View File

@@ -24,9 +24,21 @@
*/ */
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import net.kyori.indra.git.IndraGitExtension
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.ProjectDependency
import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.named
import org.gradle.kotlin.dsl.the
fun Project.lastCommitHash(): String? =
the<IndraGitExtension>().commit()?.name?.substring(0, 7)
// retrieved from https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
// some properties might be specific to Jenkins
fun Project.branchName(): String =
System.getProperty("GIT_BRANCH", "local/dev")
fun Project.buildNumber(): Int =
Integer.parseInt(System.getProperty("BUILD_NUMBER", "-1"))
fun Project.relocate(pattern: String) { fun Project.relocate(pattern: String) {
tasks.named<ShadowJar>("shadowJar") { tasks.named<ShadowJar>("shadowJar") {
@@ -44,10 +56,8 @@ fun Project.provided(pattern: String, name: String, version: String, excludedOn:
dependencies.add("compileOnlyApi", "$pattern:$name:$version") dependencies.add("compileOnlyApi", "$pattern:$name:$version")
} }
fun Project.provided(dependency: ProjectDependency) { fun Project.provided(dependency: ProjectDependency) =
provided(dependency.group!!, dependency.name, dependency.version!!) provided(dependency.group!!, dependency.name, dependency.version!!)
}
private fun calcExclusion(section: String, bit: Int, excludedOn: Int): String { private fun calcExclusion(section: String, bit: Int, excludedOn: Int): String =
return if (excludedOn and bit > 0) section else "" if (excludedOn and bit > 0) section else ""
}

View File

@@ -1,6 +1,6 @@
plugins { plugins {
`java-library` `java-library`
id("floodgate.build-logic") apply false id("floodgate.build-logic")
// id("com.github.spotbugs") version "4.8.0" apply false // id("com.github.spotbugs") version "4.8.0" apply false
id("io.freefair.lombok") version "6.3.0" apply false id("io.freefair.lombok") version "6.3.0" apply false
} }
@@ -17,8 +17,7 @@ val platforms = setOf(
projects.velocity projects.velocity
).map { it.dependencyProject } ).map { it.dependencyProject }
//todo re-add git properties (or at least build number, branch and commit) //todo re-add pmd and organisation/license/sdcm/issuemanagement stuff
// re-add pmd and organisation/license/sdcm/issuemanagement stuff
val api: Project = projects.api.dependencyProject val api: Project = projects.api.dependencyProject

View File

@@ -1,3 +1,9 @@
import net.kyori.blossom.BlossomExtension
plugins {
id("net.kyori.blossom")
}
dependencies { dependencies {
api(projects.api) api(projects.api)
@@ -13,3 +19,9 @@ dependencies {
// present on all platforms // present on all platforms
provided("io.netty", "netty-transport", Versions.nettyVersion) provided("io.netty", "netty-transport", Versions.nettyVersion)
provided("io.netty", "netty-codec", Versions.nettyVersion) provided("io.netty", "netty-codec", Versions.nettyVersion)
configure<BlossomExtension> {
val constantsFile = "src/main/java/org/geysermc/floodgate/util/Constants.java"
replaceToken("\${branch}", branchName(), constantsFile)
replaceToken("\${buildNumber}", buildNumber(), constantsFile)
}

View File

@@ -47,7 +47,6 @@ import org.geysermc.floodgate.link.PlayerLinkLoader;
import org.geysermc.floodgate.module.ConfigLoadedModule; import org.geysermc.floodgate.module.ConfigLoadedModule;
import org.geysermc.floodgate.module.PostInitializeModule; import org.geysermc.floodgate.module.PostInitializeModule;
import org.geysermc.floodgate.news.NewsChecker; import org.geysermc.floodgate.news.NewsChecker;
import org.geysermc.floodgate.util.GitProperties;
import org.geysermc.floodgate.util.PrefixCheckTask; import org.geysermc.floodgate.util.PrefixCheckTask;
public class FloodgatePlatform { public class FloodgatePlatform {
@@ -60,9 +59,6 @@ public class FloodgatePlatform {
private FloodgateConfig config; private FloodgateConfig config;
private Injector guice; private Injector guice;
@Inject
private GitProperties properties;
@Inject @Inject
public FloodgatePlatform( public FloodgatePlatform(
FloodgateApi api, FloodgateApi api,
@@ -104,8 +100,7 @@ public class FloodgatePlatform {
InstanceHolder.set(api, link, this.injector, packetHandlers, handshakeHandlers, KEY); InstanceHolder.set(api, link, this.injector, packetHandlers, handshakeHandlers, KEY);
// for Geyser dump // todo provide build number and branch for Geyser dump
// FloodgateInfoHolder.setGitProperties(properties.getProperties());
guice.getInstance(NewsChecker.class).start(); guice.getInstance(NewsChecker.class).start();
} }

View File

@@ -59,7 +59,7 @@ import org.geysermc.floodgate.player.FloodgateHandshakeHandler;
import org.geysermc.floodgate.pluginmessage.PluginMessageManager; import org.geysermc.floodgate.pluginmessage.PluginMessageManager;
import org.geysermc.floodgate.skin.SkinApplier; import org.geysermc.floodgate.skin.SkinApplier;
import org.geysermc.floodgate.skin.SkinUploadManager; import org.geysermc.floodgate.skin.SkinUploadManager;
import org.geysermc.floodgate.util.GitProperties; import org.geysermc.floodgate.util.Constants;
import org.geysermc.floodgate.util.LanguageManager; import org.geysermc.floodgate.util.LanguageManager;
@RequiredArgsConstructor @RequiredArgsConstructor
@@ -174,24 +174,8 @@ public class CommonModule extends AbstractModule {
@Provides @Provides
@Singleton @Singleton
public GitProperties gitProperties() { public NewsChecker newsChecker(CommandUtil commandUtil, FloodgateLogger logger) {
return new GitProperties(); return new NewsChecker(commandUtil, logger, Constants.GIT_BRANCH, Constants.BUILD_NUMBER);
}
@Provides
@Singleton
public NewsChecker newsChecker(
CommandUtil commandUtil,
FloodgateLogger logger,
GitProperties properties) {
String branch = properties.getProperty("git.branch");
String build = properties.getProperty("git.build.number");
int buildNumber = -1;
if (build != null) {
buildNumber = Integer.parseInt(build);
}
return new NewsChecker(commandUtil, logger, branch, buildNumber);
} }
@Provides @Provides

View File

@@ -26,6 +26,9 @@
package org.geysermc.floodgate.util; package org.geysermc.floodgate.util;
public final class Constants { public final class Constants {
public static final int BUILD_NUMBER = Integer.parseInt("${buildNumber}");
public static final String GIT_BRANCH = "${branch}";
public static final char COLOR_CHAR = '§'; public static final char COLOR_CHAR = '§';
public static final boolean DEBUG_MODE = false; public static final boolean DEBUG_MODE = false;

View File

@@ -1,58 +0,0 @@
/*
* Copyright (c) 2019-2022 GeyserMC. http://geysermc.org
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @author GeyserMC
* @link https://github.com/GeyserMC/Floodgate
*/
package org.geysermc.floodgate.util;
import java.util.Properties;
public class GitProperties {
private final Properties properties;
public GitProperties() {
// properties = Utils.readProperties("git.properties");
properties = new Properties();
properties.setProperty("git.branch", "dev/2.1.1");
}
public Properties getProperties() {
return properties;
}
public Object get(Object key) {
return properties.get(key);
}
public String getProperty(String key) {
return properties.getProperty(key);
}
public String getProperty(String key, String defaultValue) {
return properties.getProperty(key, defaultValue);
}
public Object getOrDefault(Object key, Object defaultValue) {
return properties.getOrDefault(key, defaultValue);
}
}

View File

@@ -1,2 +1,3 @@
org.gradle.configureondemand=true
org.gradle.caching=true org.gradle.caching=true
org.gradle.parallel=true org.gradle.parallel=true

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

10
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright <EFBFBD> 2015-2021 the original authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -32,10 +32,10 @@
# Busybox and similar reduced shells will NOT work, because this script # Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features: # requires all of these POSIX shell features:
# * functions; # * functions;
# * expansions <EFBFBD>$var<EFBFBD>, <EFBFBD>${var}<EFBFBD>, <EFBFBD>${var:-default}<EFBFBD>, <EFBFBD>${var+SET}<EFBFBD>, # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# <EFBFBD>${var#prefix}<EFBFBD>, <EFBFBD>${var%suffix}<EFBFBD>, and <EFBFBD>$( cmd )<EFBFBD>; # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially <EFBFBD>case<EFBFBD>; # * compound commands having a testable exit status, especially «case»;
# * various built-in commands including <EFBFBD>command<EFBFBD>, <EFBFBD>set<EFBFBD>, and <EFBFBD>ulimit<EFBFBD>. # * various built-in commands including «command», «set», and «ulimit».
# #
# Important for patching: # Important for patching:
# #

View File

@@ -37,8 +37,13 @@ dependencyResolutionManagement {
} }
pluginManagement { pluginManagement {
repositories {
gradlePluginPortal()
}
plugins { plugins {
id("net.kyori.blossom") version "1.2.0" id("net.kyori.blossom") version "1.2.0"
id("net.kyori.indra")
id("net.kyori.indra.git")
} }
includeBuild("build-logic") includeBuild("build-logic")
} }