Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ version=1.0.0-SNAPSHOT
description=Minecraft world management plugin

org.gradle.parallel=true
org.gradle.jvmargs=-Xmx512m
org.gradle.jvmargs=-Xmx2G
org.gradle.java.installations.auto-download=false
org.gradle.caching=true
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ cloud-build-logic = "0.0.3"
ktlint = "0.50.0"
checkstyle = "10.12.5"
kotlin = "1.9.20"
shadow = "9.0.0-beta8"
paperweight = "2.0.0-beta.17"
run-paper = "2.3.1"
shadow = "9.4.1"
paperweight = "2.0.0-beta.21"
run-paper = "3.0.2"
pluginyml = "0.6.0"

# Platforms
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
26 changes: 9 additions & 17 deletions hyperverse-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,8 @@ dependencies {
implementation("net.kyori:adventure-text-minimessage:4.14.0")

implementation(projects.hyperverseNmsUnsupported)
runtimeOnly(projects.hyperverseNms1206)
runtimeOnly(projects.hyperverseNms121)
runtimeOnly(projects.hyperverseNms1213)
runtimeOnly(projects.hyperverseNms1214)
runtimeOnly(projects.hyperverseNms1215)
runtimeOnly(projects.hyperverseNms1216)
runtimeOnly(projects.hyperverseNms1217)
runtimeOnly(projects.hyperverseNms261)
runtimeOnly(projects.hyperverseNms262)
}

bukkit {
Expand Down Expand Up @@ -95,7 +90,9 @@ bukkit {
}
}
}

java {
disableAutoTargetJvm()
}
tasks {
processResources {
filesMatching("plugin.yml") {
Expand All @@ -106,13 +103,8 @@ tasks {
shadowJar {
minimize {
exclude(project(":hyperverse-nms-unsupported"))
exclude(project(":hyperverse-nms-1-20-6"))
exclude(project(":hyperverse-nms-1-21"))
exclude(project(":hyperverse-nms-1-21-3"))
exclude(project(":hyperverse-nms-1-21-4"))
exclude(project(":hyperverse-nms-1-21-5"))
exclude(project(":hyperverse-nms-1-21-6"))
exclude(project(":hyperverse-nms-1-21-7"))
exclude(project(":hyperverse-nms-26-1"))
exclude(project(":hyperverse-nms-26-2"))
}
mergeServiceFiles()

Expand Down Expand Up @@ -149,7 +141,7 @@ tasks {
}

runServer {
java.toolchain.languageVersion.set(JavaLanguageVersion.of(21))
minecraftVersion("1.21.7")
java.toolchain.languageVersion.set(JavaLanguageVersion.of(25))
minecraftVersion("26.2")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,8 @@ public final class Hyperverse extends JavaPlugin implements HyperverseAPI, Liste
private final ServicePipeline servicePipeline = ServicePipeline.builder().build();

private final List<Version> supportedVersions = List.of(
Version.parseMinecraft("1.20.6"),
Version.parseMinecraft("1.21.1"),
Version.parseMinecraft("1.21.3"),
Version.parseMinecraft("1.21.4"),
Version.parseMinecraft("1.21.5"),
Version.parseMinecraft("1.21.6"),
Version.parseMinecraft("1.21.7")
Version.parseMinecraft("26.1.2"),
Version.parseMinecraft("26.2")
);

private WorldManager worldManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,25 @@ public ReflectionPlatformProvider(@NotNull final Version version) {

@Override
public @NotNull Class<? extends NMS> providePlatform() throws PlatformProvisionException {
String expectedPackage = this.minecraftVersion.original().toLowerCase(Locale.ENGLISH).replace('.', '_');
var data = this.minecraftVersion.versionData();

String expectedPackage;
if (data.patch() == 0) {
expectedPackage = data.major() + "_" + data.minor();
} else {
expectedPackage = data.major() + "_" + data.minor() + "_" + data.patch();
}

String packageName = "org.incendo.hyperverse.platform.v" + expectedPackage;

try {
Class<?> clazz = Class.forName(packageName + ".NMSImpl");
return clazz.asSubclass(NMS.class);
} catch (ReflectiveOperationException ex) {
throw new PlatformProvisionException("Could not provide platform for version: " + this.minecraftVersion + "!", ex);
throw new PlatformProvisionException(
"Could not provide platform for version: " + this.minecraftVersion + "!",
ex
);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,26 @@ public record Version(@NotNull String original, @NotNull VersionData versionData
public static final Pattern SEMVER_PATTERN = Pattern.compile(
"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$");

public static @NotNull Version parseMinecraft(@NotNull final String version) throws IllegalArgumentException {
String[] split = version.split("\\.");
if (split.length < 2) {
public static @NotNull Version parseMinecraft(@NotNull final String version)
throws IllegalArgumentException {

// Extract only x.y or x.y.z from beginning
Matcher matcher = Pattern.compile("^(\\d+)\\.(\\d+)(?:\\.(\\d+))?")
.matcher(version);

if (!matcher.find()) {
throw new IllegalArgumentException("Invalid minecraft version: " + version);
}
if (split.length == 2) {
StringJoiner joiner = new StringJoiner(".");
// insert a .0 to make it correctly formatted
joiner.add(split[0]);
joiner.add("0");
joiner.add(split[1]);
Version formatted = parseSemVer(joiner.toString());
return new Version(version, formatted.versionData());

String major = matcher.group(1);
String minor = matcher.group(2);
String patch = matcher.group(3);

if (patch == null) {
patch = "0";
}
return parseSemVer(version);

return parseSemVer(major + "." + minor + "." + patch);
}

public static @NotNull Version parseSemVer(@NotNull final String version) throws IllegalArgumentException {
Expand Down
Loading
Loading