Skip to content

Commit a8b531f

Browse files
Feature/paper legacy builds (#164)
* Make paper build compatible * Build legacy and latest build * Bump version * Update workflows * Adjust publish
1 parent 5c8fda0 commit a8b531f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+290
-173
lines changed

.envrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
use nix

.github/workflows/publish_to_nexus.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ jobs:
1717

1818
steps:
1919
- uses: actions/checkout@v4
20-
- name: Set up JDK 17
20+
- name: Set up JDK
2121
uses: actions/setup-java@v4
2222
with:
2323
distribution: adopt
24-
java-version: 17
24+
java-version: 21
2525
- name: Build with Gradle
2626
run: ./gradlew --build-cache build
2727
- name: Test with Gradle

.github/workflows/verify.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ jobs:
1111

1212
steps:
1313
- uses: actions/checkout@v4
14-
- name: Set up JDK 17
14+
- name: Set up JDK
1515
uses: actions/setup-java@v4
1616
with:
1717
distribution: adopt
18-
java-version: 17
18+
java-version: 21
1919
- name: Build with Gradle
2020
run: ./gradlew --build-cache build
2121
- name: Test with Gradle

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ dependency-reduced-pom.xml
3333
buildNumber.properties
3434
.mvn/timing.properties
3535
.mvn/wrapper/maven-wrapper.jar
36+
.direnv

build.gradle.kts

Lines changed: 29 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -1,171 +1,53 @@
1-
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription.Permission.Default
2-
31
plugins {
42
id("org.cadixdev.licenser") version "0.6.1"
5-
id("com.github.johnrengelman.shadow") version "8.1.1"
6-
id("de.chojo.publishdata") version "1.4.0"
7-
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
83
java
94
`maven-publish`
105
}
116

12-
group = "de.eldoria"
13-
version = "1.3.0"
14-
val shadebase = "de.eldoria." + rootProject.name + ".libs."
15-
16-
repositories {
17-
mavenCentral()
18-
maven("https://eldonexus.de/repository/maven-public/")
19-
maven("https://eldonexus.de/repository/maven-proxies/")
20-
}
7+
group = "de.eldoria.gridselector"
8+
version = "1.3.1"
219

22-
dependencies {
23-
compileOnly("de.eldoria", "schematicbrushreborn-api", "2.6.0")
24-
compileOnly("org.spigotmc", "spigot-api", "1.16.5-R0.1-SNAPSHOT")
25-
compileOnly("com.sk89q.worldedit", "worldedit-bukkit", "7.3.0")
26-
// PlotSquared Core API
27-
compileOnly("com.plotsquared", "PlotSquared-Core", "6.11.1") {
28-
exclude("com.intellectualsites.paster", "Paster")
29-
exclude("org.apache.logging.log4j", "log4j-api")
30-
exclude("com.intellectualsites.informative-annotations", "informative-annotations")
10+
allprojects {
11+
apply {
12+
plugin<JavaPlugin>()
3113
}
32-
compileOnly("com.plotsquared", "PlotSquared-Bukkit", "6.11.1") { isTransitive = false } // PlotSquared Bukkit API
33-
compileOnly("com.sk89q.worldguard", "worldguard-bukkit", "7.0.9")
34-
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.9.2") {
35-
exclude("com.intellectualsites.paster")
36-
exclude("org.yaml")
37-
}
38-
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.9.2") {
39-
isTransitive = false
40-
exclude("org.yaml")
41-
}
42-
43-
testImplementation("org.junit.jupiter", "junit-jupiter-api", "5.11.0")
44-
testImplementation("com.sk89q.worldedit", "worldedit-bukkit", "7.3.0")
45-
testImplementation("org.spigotmc", "spigot-api", "1.16.5-R0.1-SNAPSHOT")
46-
testImplementation("de.eldoria", "eldo-util", "1.14.4")
47-
testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine")
48-
}
4914

50-
license {
51-
header(rootProject.file("HEADER.txt"))
52-
include("**/*.java")
53-
}
54-
55-
java {
56-
withSourcesJar()
57-
withJavadocJar()
58-
sourceCompatibility = JavaVersion.VERSION_17
59-
}
60-
61-
publishData {
62-
addBuildData()
63-
useEldoNexusRepos()
64-
publishComponent("java")
65-
}
66-
67-
publishing {
68-
publications.create<MavenPublication>("maven") {
69-
publishData.configurePublication(this)
70-
}
15+
group = rootProject.group
16+
version = rootProject.version
7117

7218
repositories {
73-
maven {
74-
authentication {
75-
credentials(PasswordCredentials::class) {
76-
username = System.getenv("NEXUS_USERNAME")
77-
password = System.getenv("NEXUS_PASSWORD")
78-
}
79-
}
80-
81-
setUrl(publishData.getRepository())
82-
name = "EldoNexus"
83-
}
84-
}
85-
}
86-
87-
tasks {
88-
compileJava {
89-
options.encoding = "UTF-8"
19+
mavenCentral()
20+
maven("https://eldonexus.de/repository/maven-public/")
21+
maven("https://eldonexus.de/repository/maven-proxies/")
9022
}
9123

92-
compileTestJava {
93-
options.encoding = "UTF-8"
94-
}
95-
96-
test {
97-
useJUnitPlatform()
98-
testLogging {
99-
events("passed", "skipped", "failed")
24+
java {
25+
toolchain {
26+
languageVersion = JavaLanguageVersion.of(21)
10027
}
28+
withSourcesJar()
29+
withJavadocJar()
10130
}
10231

103-
shadowJar {
104-
relocate("de.eldoria.eldoutilities", "de.eldoria.schematicbrush.libs.eldoutilities")
105-
relocate("de.eldoria.messageblocker", "de.eldoria.schematicbrush.libs.messageblocker")
106-
mergeServiceFiles()
107-
archiveClassifier.set("all")
108-
archiveBaseName.set("GridSelector")
109-
}
110-
111-
processResources {
112-
from(sourceSets.main.get().resources.srcDirs) {
113-
filesMatching("plugin.yml") {
114-
expand(
115-
"version" to publishData.getVersion(true)
116-
)
117-
}
118-
duplicatesStrategy = DuplicatesStrategy.INCLUDE
32+
tasks {
33+
compileJava {
34+
options.encoding = "UTF-8"
11935
}
120-
}
12136

122-
register<Copy>("copyToServer") {
123-
val path = project.property("targetDir") ?: "";
124-
if (path.toString().isEmpty()) {
125-
println("targetDir is not set in gradle properties")
126-
return@register
37+
compileTestJava {
38+
options.encoding = "UTF-8"
12739
}
128-
println("Copying jar to $path")
129-
from(shadowJar)
130-
destinationDir = File(path.toString())
131-
}
132-
133-
build {
134-
dependsOn(shadowJar)
135-
}
136-
}
137-
138-
bukkit {
139-
name = "GridSelector"
140-
main = "de.eldoria.gridselector.GridSelector"
141-
apiVersion = "1.16"
142-
version = publishData.getVersion(true)
143-
authors = listOf("RainbowDashLabs")
144-
depend = listOf("SchematicBrushReborn")
145-
softDepend = listOf("PlotSquared", "WorldGuard")
14640

147-
commands {
148-
register("schematicbrushgrid") {
149-
aliases = listOf("sbrg")
150-
permission = "gridselector.use"
41+
test {
42+
useJUnitPlatform()
43+
testLogging {
44+
events("passed", "skipped", "failed")
45+
}
15146
}
15247
}
48+
}
15349

154-
permissions {
155-
register("gridselector.export") {
156-
default = Default.FALSE
157-
}
158-
register("gridselector.export.global") {
159-
default = Default.FALSE
160-
}
161-
register("gridselector.cluster.create") {
162-
default = Default.FALSE
163-
}
164-
register("gridselector.cluster.remove") {
165-
default = Default.FALSE
166-
}
167-
register("gridselector.cluster.repair") {
168-
default = Default.FALSE
169-
}
170-
}
50+
license {
51+
header(rootProject.file("HEADER.txt"))
52+
include("**/*.java")
17153
}

core/build.gradle.kts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription.Permission.Default.FALSE
2+
3+
plugins {
4+
alias(libs.plugins.pluginyml)
5+
alias(libs.plugins.publishdata)
6+
}
7+
8+
dependencies {
9+
compileOnly("de.eldoria", "schematicbrushreborn-api", "2.7.1")
10+
compileOnly("org.spigotmc", "spigot-api", "1.16.5-R0.1-SNAPSHOT")
11+
compileOnly("com.sk89q.worldedit", "worldedit-bukkit", "7.3.0")
12+
// PlotSquared Core API
13+
compileOnly("com.plotsquared", "PlotSquared-Core", "6.11.1") {
14+
exclude("com.intellectualsites.paster", "Paster")
15+
exclude("org.apache.logging.log4j", "log4j-api")
16+
exclude("com.intellectualsites.informative-annotations", "informative-annotations")
17+
}
18+
compileOnly("com.plotsquared", "PlotSquared-Bukkit", "6.11.1") { isTransitive = false } // PlotSquared Bukkit API
19+
compileOnly("com.sk89q.worldguard", "worldguard-bukkit", "7.0.9")
20+
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Core:2.9.2") {
21+
exclude("com.intellectualsites.paster")
22+
exclude("org.yaml")
23+
}
24+
compileOnly("com.fastasyncworldedit:FastAsyncWorldEdit-Bukkit:2.9.2") {
25+
isTransitive = false
26+
exclude("org.yaml")
27+
}
28+
29+
testImplementation("org.junit.jupiter", "junit-jupiter-api", "5.10.2")
30+
testImplementation("com.sk89q.worldedit", "worldedit-bukkit", "7.3.0")
31+
testImplementation("org.spigotmc", "spigot-api", "1.16.5-R0.1-SNAPSHOT")
32+
testImplementation("de.eldoria", "eldo-util", "1.14.4")
33+
testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine")
34+
}
35+
36+
publishData {
37+
useEldoNexusRepos()
38+
}
39+
40+
bukkit {
41+
name = "GridSelector"
42+
main = "de.eldoria.gridselector.GridSelector"
43+
apiVersion = "1.16"
44+
version = publishData.getVersion(true)
45+
authors = listOf("RainbowDashLabs")
46+
depend = listOf("SchematicBrushReborn")
47+
softDepend = listOf("PlotSquared", "WorldGuard")
48+
49+
commands {
50+
register("schematicbrushgrid") {
51+
aliases = listOf("sbrg")
52+
permission = "gridselector.use"
53+
}
54+
}
55+
56+
permissions {
57+
register("gridselector.export") {
58+
default = FALSE
59+
}
60+
register("gridselector.export.global") {
61+
default = FALSE
62+
}
63+
register("gridselector.cluster.create") {
64+
default = FALSE
65+
}
66+
register("gridselector.cluster.remove") {
67+
default = FALSE
68+
}
69+
register("gridselector.cluster.repair") {
70+
default = FALSE
71+
}
72+
}
73+
}

src/main/java/de/eldoria/gridselector/GridSelector.java renamed to core/src/main/java/de/eldoria/gridselector/GridSelector.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.plotsquared.core.PlotSquared;
1111
import de.eldoria.eldoutilities.config.template.PluginBaseConfiguration;
1212
import de.eldoria.eldoutilities.localization.ILocalizer;
13+
import de.eldoria.eldoutilities.localization.Localizer;
1314
import de.eldoria.eldoutilities.messages.MessageSender;
1415
import de.eldoria.eldoutilities.plugin.EldoPlugin;
1516
import de.eldoria.eldoutilities.updater.lynaupdater.LynaUpdateChecker;
@@ -36,7 +37,11 @@
3637
import de.eldoria.messageblocker.MessageBlockerAPI;
3738
import de.eldoria.schematicbrush.SchematicBrushReborn;
3839
import org.bukkit.configuration.serialization.ConfigurationSerializable;
40+
import org.bukkit.plugin.PluginDescriptionFile;
41+
import org.bukkit.plugin.java.JavaPluginLoader;
42+
import org.jetbrains.annotations.NotNull;
3943

44+
import java.io.File;
4045
import java.util.ArrayList;
4146
import java.util.List;
4247
import java.util.logging.Level;
@@ -45,6 +50,15 @@ public class GridSelector extends EldoPlugin {
4550

4651
private JacksonConfiguration configuration;
4752

53+
public GridSelector() {
54+
this.configuration = new JacksonConfiguration(this);
55+
}
56+
57+
public GridSelector(@NotNull JavaPluginLoader loader, @NotNull PluginDescriptionFile description, @NotNull File dataFolder, @NotNull File file) {
58+
super(loader, description, dataFolder, file);
59+
this.configuration = new JacksonConfiguration(this);
60+
}
61+
4862
@Override
4963
public void onPluginEnable() throws Throwable {
5064

@@ -63,13 +77,19 @@ public void onPluginEnable() throws Throwable {
6377

6478
var sbr = SchematicBrushReborn.instance();
6579

66-
var messageSender = MessageSender.create(this, "§3[GS]");
80+
var iLocalizer = Localizer.builder(this, "en_US")
81+
.setIncludedLocales("en_US")
82+
.build();
83+
ILocalizer.getPluginLocalizer(SchematicBrushReborn.class).registerChild(iLocalizer);
84+
var messageSender = MessageSender.builder(this)
85+
.prefix("<gold>[GS]")
86+
.localizer(iLocalizer)
87+
.register();
88+
6789
var messageBlocker = MessageBlockerAPI.builder(this).addWhitelisted("[GS]").build();
6890

6991
var gridSchematics = new GridSchematics(this);
7092

71-
var iLocalizer = ILocalizer.create(this, "en_US");
72-
iLocalizer.setLocale("en_US");
7393
sbr.brushSettingsRegistry().registerSelector(new GridProvider(sbr.schematics()));
7494
sbr.schematics().register(GridSchematics.KEY, gridSchematics);
7595

@@ -106,6 +126,11 @@ public Configuration configuration() {
106126
return configuration;
107127
}
108128

129+
@Override
130+
public Level getLogLevel() {
131+
return configuration.secondary(PluginBaseConfiguration.KEY).logLevel();
132+
}
133+
109134
@Override
110135
public List<Class<? extends ConfigurationSerializable>> getConfigSerialization() {
111136
return List.of(GridCluster.class, Plot.class, ClusterWorld.class, ClusterWorlds.class, Highlight.class, General.class,

src/main/java/de/eldoria/gridselector/adapter/regionadapter/ClusterWorldAdapter.java renamed to core/src/main/java/de/eldoria/gridselector/adapter/regionadapter/ClusterWorldAdapter.java

File renamed without changes.

src/main/java/de/eldoria/gridselector/adapter/regionadapter/PlotWorldAdapter.java renamed to core/src/main/java/de/eldoria/gridselector/adapter/regionadapter/PlotWorldAdapter.java

File renamed without changes.

src/main/java/de/eldoria/gridselector/adapter/regionadapter/RegionAdapter.java renamed to core/src/main/java/de/eldoria/gridselector/adapter/regionadapter/RegionAdapter.java

File renamed without changes.

0 commit comments

Comments
 (0)