Skip to content

Commit 48f02a3

Browse files
Release 1.1.0 (#45)
2 parents 0f454f7 + 2e03fa4 commit 48f02a3

File tree

16 files changed

+154
-51
lines changed

16 files changed

+154
-51
lines changed

.github/workflows/publish_to_nexus.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717

1818
steps:
19-
- uses: actions/checkout@v3.3.0
19+
- uses: actions/checkout@v3.5.0
2020
- name: Set up JDK 17
2121
uses: actions/setup-java@v3
2222
with:

.github/workflows/verify.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- uses: actions/checkout@v3.3.0
13+
- uses: actions/checkout@v3.5.0
1414
- name: Set up JDK 17
1515
uses: actions/setup-java@v3
1616
with:

build.gradle.kts

+11-13
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
import de.chojo.Repo
22

33
plugins {
4-
id("com.diffplug.spotless") version "6.15.0"
5-
id("com.github.johnrengelman.shadow") version "7.1.2"
6-
id("de.chojo.publishdata") version "1.0.9"
4+
id("com.diffplug.spotless") version "6.18.0"
5+
id("com.github.johnrengelman.shadow") version "8.1.1"
6+
id("de.chojo.publishdata") version "1.2.4"
77
id("net.minecrell.plugin-yml.bukkit") version "0.5.3"
88
java
99
`maven-publish`
1010
}
1111

1212
group = "de.eldoria"
13-
version = "1.0.1"
13+
version = "1.1.0"
1414

1515
repositories {
1616
maven("https://eldonexus.de/repository/maven-public/")
1717
maven("https://eldonexus.de/repository/maven-proxies/")
1818
}
1919

2020
dependencies {
21-
compileOnly("de.eldoria", "schematicbrushreborn-api", "2.4.1")
21+
compileOnly("de.eldoria", "schematicbrushreborn-api", "2.5.0")
2222
compileOnly("org.spigotmc", "spigot-api", "1.14.4-R0.1-SNAPSHOT")
23-
compileOnly("com.sk89q.worldedit", "worldedit-bukkit", "7.2.13")
23+
compileOnly("com.sk89q.worldedit", "worldedit-bukkit", "7.2.14")
2424

2525
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2")
2626
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2")
2727
}
2828

29-
spotless{
30-
java{
29+
spotless {
30+
java {
3131
licenseHeaderFile(rootProject.file("HEADER.txt"))
3232
target("**/*.java")
3333
}
@@ -40,9 +40,8 @@ java {
4040
}
4141

4242
publishData {
43-
addRepo(Repo.main("", "https://eldonexus.de/repository/maven-releases/", false))
44-
addRepo(Repo.dev("DEV", "https://eldonexus.de/repository/maven-dev/", true))
45-
addRepo(Repo.snapshot("SNAPSHOT", "https://eldonexus.de/repository/maven-snapshots/", true))
43+
addBuildData()
44+
useEldoNexusRepos()
4645
publishComponent("java")
4746
}
4847

@@ -85,7 +84,6 @@ tasks {
8584
shadowJar {
8685
relocate("de.eldoria.eldoutilities", "de.eldoria.schematicbrush.libs.eldoutilities")
8786
relocate("de.eldoria.messageblocker", "de.eldoria.schematicbrush.libs.messageblocker")
88-
relocate("net.kyori", "de.eldoria.schematicbrush.libs.kyori")
8987
archiveBaseName.set("SchematicTools")
9088
mergeServiceFiles()
9189
}
@@ -109,7 +107,7 @@ tasks {
109107
bukkit {
110108
name = "SchematicTools"
111109
main = "de.eldoria.schematictools.SchematicTools"
112-
apiVersion = "1.14"
110+
apiVersion = "1.16"
113111
authors = listOf("RainbowDashLabs")
114112
depend = listOf("SchematicBrushReborn")
115113

gradle/wrapper/gradle-wrapper.jar

34 Bytes
Binary file not shown.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

gradlew

+2-2
Original file line numberDiff line numberDiff line change
@@ -144,15 +144,15 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144144
case $MAX_FD in #(
145145
max*)
146146
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
147-
# shellcheck disable=SC3045
147+
# shellcheck disable=SC3045
148148
MAX_FD=$( ulimit -H -n ) ||
149149
warn "Could not query maximum file descriptor limit"
150150
esac
151151
case $MAX_FD in #(
152152
'' | soft) :;; #(
153153
*)
154154
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
155-
# shellcheck disable=SC3045
155+
# shellcheck disable=SC3045
156156
ulimit -n "$MAX_FD" ||
157157
warn "Could not set maximum file descriptor limit to $MAX_FD"
158158
esac

src/main/java/de/eldoria/schematictools/SchematicTools.java

+22-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@
55
*/
66
package de.eldoria.schematictools;
77

8+
import de.eldoria.eldoutilities.config.template.PluginBaseConfiguration;
89
import de.eldoria.eldoutilities.localization.ILocalizer;
910
import de.eldoria.eldoutilities.messages.MessageSender;
1011
import de.eldoria.eldoutilities.plugin.EldoPlugin;
12+
import de.eldoria.eldoutilities.updater.lynaupdater.LynaUpdateChecker;
13+
import de.eldoria.eldoutilities.updater.lynaupdater.LynaUpdateData;
1114
import de.eldoria.messageblocker.MessageBlockerAPI;
1215
import de.eldoria.schematicbrush.SchematicBrushReborn;
1316
import de.eldoria.schematictools.commands.BaseCommand;
1417
import de.eldoria.schematictools.configuration.Configuration;
18+
import de.eldoria.schematictools.configuration.JacksonConfiguration;
19+
import de.eldoria.schematictools.configuration.LegacyConfiguration;
1520
import de.eldoria.schematictools.configuration.elements.Tool;
1621
import de.eldoria.schematictools.configuration.elements.ToolRemoval;
1722
import de.eldoria.schematictools.configuration.elements.Tools;
@@ -20,17 +25,32 @@
2025
import org.bukkit.configuration.serialization.ConfigurationSerializable;
2126

2227
import java.util.List;
28+
import java.util.logging.Level;
2329

2430
public class SchematicTools extends EldoPlugin {
25-
private Configuration configuration;
31+
private JacksonConfiguration configuration;
2632

2733
@Override
2834
public void onPluginEnable() throws Throwable {
2935
var sbr = SchematicBrushReborn.instance();
3036
var messageSender = MessageSender.create(this, "§6[ST]");
3137
var messageBlocker = MessageBlockerAPI.builder(this).addWhitelisted("[ST]").build();
3238
ILocalizer.create(this, "en_US").setLocale("en_US");
33-
configuration = new Configuration(this);
39+
configuration = new JacksonConfiguration(this);
40+
PluginBaseConfiguration base = configuration.secondary(PluginBaseConfiguration.KEY);
41+
if (base.version() == 0) {
42+
var legacyConfiguration = new LegacyConfiguration(this);
43+
getLogger().log(Level.INFO, "Migrating configuration to jackson.");
44+
configuration.main().toolRemoval(legacyConfiguration.toolRemoval());
45+
configuration.replace(JacksonConfiguration.TOOLS, legacyConfiguration.tools());
46+
base.version(1);
47+
base.lastInstalledVersion(this);
48+
configuration.save();
49+
}
50+
51+
if (configuration.main().updateCheck()) {
52+
LynaUpdateChecker.lyna(LynaUpdateData.builder(this, 6).build()).start();
53+
}
3454

3555
registerCommand(new BaseCommand(this, sbr, configuration, messageBlocker));
3656

src/main/java/de/eldoria/schematictools/commands/schematictools/Create.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import de.eldoria.schematicbrush.SchematicBrushReborn;
1919
import de.eldoria.schematictools.commands.schematictools.util.BrushLoader;
2020
import de.eldoria.schematictools.configuration.Configuration;
21-
import de.eldoria.schematictools.configuration.elements.SchematicToolBuilder;
21+
import de.eldoria.schematictools.configuration.builder.SchematicToolBuilder;
2222
import de.eldoria.schematictools.util.Permissions;
2323
import org.bukkit.OfflinePlayer;
2424
import org.bukkit.entity.Player;

src/main/java/de/eldoria/schematictools/commands/schematictools/util/BrushLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static BrushContainer getContainer(Player player, Storage storage, String
2525
var brushContainer = storage.brushes().containerByName(player, name);
2626

2727
UUID owner = null;
28-
if (!brushContainer.isGlobalcontainer() && args.flags().hasValue("o")) {
28+
if (!brushContainer.isGlobalContainer() && args.flags().hasValue("o")) {
2929
var ownerArg = args.flags().get("o");
3030
var optOwner = playerByName(ownerArg.asString()).map(OfflinePlayer::getUniqueId).or(() -> getAsUUID(ownerArg.asString()));
3131
CommandAssertions.isTrue(optOwner.isPresent(), "Could not determine owner.");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* SPDX-License-Identifier: AGPL-3.0-only
3+
*
4+
* Copyright (C) EldoriaRPG Team and Contributor
5+
*/
6+
package de.eldoria.schematictools.configuration;
7+
8+
import de.eldoria.schematictools.configuration.elements.ToolRemoval;
9+
10+
@SuppressWarnings("FieldMayBeFinal")
11+
public class ConfigFile {
12+
private boolean updateCheck = true;
13+
private ToolRemoval toolRemoval = new ToolRemoval();
14+
15+
public ToolRemoval toolRemoval() {
16+
return toolRemoval;
17+
}
18+
19+
public void toolRemoval(ToolRemoval toolRemoval) {
20+
this.toolRemoval = toolRemoval;
21+
}
22+
23+
public boolean updateCheck() {
24+
return updateCheck;
25+
}
26+
}

src/main/java/de/eldoria/schematictools/configuration/Configuration.java

+4-27
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,13 @@
66
package de.eldoria.schematictools.configuration;
77

88
import de.eldoria.eldoutilities.configuration.EldoConfig;
9-
import de.eldoria.eldoutilities.utils.Consumers;
109
import de.eldoria.schematictools.configuration.elements.ToolRemoval;
1110
import de.eldoria.schematictools.configuration.elements.Tools;
1211
import org.bukkit.plugin.Plugin;
1312

14-
public class Configuration extends EldoConfig {
15-
private Tools tools;
16-
private ToolRemoval toolRemoval;
13+
public interface Configuration {
1714

18-
public Configuration(Plugin plugin) {
19-
super(plugin);
20-
}
21-
22-
@Override
23-
protected void reloadConfigs() {
24-
toolRemoval = getConfig().getObject("toolRemoval", ToolRemoval.class, new ToolRemoval());
25-
tools = loadConfig("tools", Consumers.emptyConsumer(), false).getObject("tools", Tools.class, new Tools());
26-
}
27-
28-
@Override
29-
protected void saveConfigs() {
30-
getConfig().set("toolRemoval", toolRemoval);
31-
loadConfig("tools", Consumers.emptyConsumer(), false).set("tools", tools);
32-
}
33-
34-
public Tools tools() {
35-
return tools;
36-
}
37-
38-
public ToolRemoval toolRemoval() {
39-
return toolRemoval;
40-
}
15+
void save();
16+
Tools tools();
17+
ToolRemoval toolRemoval();
4118
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* SPDX-License-Identifier: AGPL-3.0-only
3+
*
4+
* Copyright (C) EldoriaRPG Team and Contributor
5+
*/
6+
package de.eldoria.schematictools.configuration;
7+
8+
import de.eldoria.eldoutilities.config.ConfigKey;
9+
import de.eldoria.eldoutilities.config.JacksonConfig;
10+
import de.eldoria.schematictools.configuration.elements.ToolRemoval;
11+
import de.eldoria.schematictools.configuration.elements.Tools;
12+
import org.bukkit.plugin.Plugin;
13+
import org.jetbrains.annotations.NotNull;
14+
15+
import java.nio.file.Path;
16+
17+
public class JacksonConfiguration extends JacksonConfig<ConfigFile> implements Configuration {
18+
public static final ConfigKey<Tools> TOOLS = ConfigKey.of("Tools", Path.of("tools.yml"), Tools.class, Tools::new);
19+
20+
public JacksonConfiguration(@NotNull Plugin plugin) {
21+
super(plugin, ConfigKey.defaultConfig(ConfigFile.class, ConfigFile::new));
22+
}
23+
24+
@Override
25+
public Tools tools() {
26+
return secondary(TOOLS);
27+
}
28+
29+
@Override
30+
public ToolRemoval toolRemoval() {
31+
return main().toolRemoval();
32+
}
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* SPDX-License-Identifier: AGPL-3.0-only
3+
*
4+
* Copyright (C) EldoriaRPG Team and Contributor
5+
*/
6+
package de.eldoria.schematictools.configuration;
7+
8+
import de.eldoria.eldoutilities.configuration.EldoConfig;
9+
import de.eldoria.eldoutilities.utils.Consumers;
10+
import de.eldoria.schematictools.configuration.elements.ToolRemoval;
11+
import de.eldoria.schematictools.configuration.elements.Tools;
12+
import org.bukkit.plugin.Plugin;
13+
14+
public class LegacyConfiguration extends EldoConfig implements Configuration {
15+
private Tools tools;
16+
private ToolRemoval toolRemoval;
17+
18+
public LegacyConfiguration(Plugin plugin) {
19+
super(plugin);
20+
}
21+
22+
@Override
23+
protected void reloadConfigs() {
24+
toolRemoval = getConfig().getObject("toolRemoval", ToolRemoval.class, new ToolRemoval());
25+
tools = loadConfig("tools", Consumers.emptyConsumer(), false).getObject("tools", Tools.class, new Tools());
26+
}
27+
28+
@Override
29+
protected void saveConfigs() {
30+
getConfig().set("toolRemoval", toolRemoval);
31+
loadConfig("tools", Consumers.emptyConsumer(), false).set("tools", tools);
32+
}
33+
34+
@Override
35+
public Tools tools() {
36+
return tools;
37+
}
38+
39+
@Override
40+
public ToolRemoval toolRemoval() {
41+
return toolRemoval;
42+
}
43+
}

src/main/java/de/eldoria/schematictools/configuration/elements/SchematicToolBuilder.java renamed to src/main/java/de/eldoria/schematictools/configuration/builder/SchematicToolBuilder.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
*
44
* Copyright (C) EldoriaRPG Team and Contributor
55
*/
6-
package de.eldoria.schematictools.configuration.elements;
6+
package de.eldoria.schematictools.configuration.builder;
7+
8+
import de.eldoria.schematictools.configuration.elements.Tool;
79

810
import java.util.UUID;
911

src/main/java/de/eldoria/schematictools/configuration/elements/Tool.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class Tool implements ConfigurationSerializable {
2929
/**
3030
* The unique numeric id of the brush
3131
*/
32-
private final int id;
32+
private int id;
3333
/**
3434
* The owner of the underlying brush
3535
*/
@@ -46,6 +46,9 @@ public class Tool implements ConfigurationSerializable {
4646
private String permission;
4747
private int usages;
4848

49+
public Tool() {
50+
}
51+
4952
public Tool(UUID owner, String name, String brushName, int id, String permission, int usages) {
5053
this.owner = owner;
5154
this.name = name;

src/main/java/de/eldoria/schematictools/configuration/elements/Tools.java

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package de.eldoria.schematictools.configuration.elements;
77

88
import de.eldoria.eldoutilities.serialization.SerializationUtil;
9+
import de.eldoria.schematictools.configuration.builder.SchematicToolBuilder;
910
import org.bukkit.configuration.serialization.ConfigurationSerializable;
1011
import org.bukkit.configuration.serialization.SerializableAs;
1112
import org.jetbrains.annotations.NotNull;

0 commit comments

Comments
 (0)