Restore datapack bukkit purity

- Return the Minecraft version lookups to DatapackIngestService so no new file couples to org.bukkit
- Drop the redundant self imports of the service's own nested types
This commit is contained in:
Brian Neumann-Fopiano
2026-09-08 05:57:18 -04:00
parent a31d494f45
commit 2fb1dc4fd6
4 changed files with 17 additions and 23 deletions
@@ -18,12 +18,6 @@
package art.arcane.iris.core.datapack;
import art.arcane.iris.core.datapack.DatapackIngestService.StructureScopeResources;
import art.arcane.iris.core.datapack.DatapackIngestService.StartupValidationOutcome;
import art.arcane.iris.core.datapack.DatapackIngestService.Report;
import art.arcane.iris.core.datapack.DatapackIngestService.ReapplyStatus;
import art.arcane.iris.core.datapack.DatapackIngestService.ReapplyOutcome;
import art.arcane.iris.core.datapack.DatapackIngestService.Entry;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.spi.IrisPlatforms;
import art.arcane.iris.core.IrisStartupValidation;
@@ -31,6 +25,7 @@ import art.arcane.iris.core.IrisSettings;
import art.arcane.iris.core.ServerConfigurator;
import art.arcane.iris.core.datapack.ModrinthResolver.ResolvedDatapack;
import art.arcane.iris.core.loader.IrisData;
import art.arcane.iris.core.nms.MinecraftVersion;
import art.arcane.iris.core.project.IrisProject;
import art.arcane.iris.core.project.IrisCodeWorkspace;
import art.arcane.iris.engine.object.IrisDimension;
@@ -38,6 +33,8 @@ import art.arcane.iris.util.common.format.C;
import art.arcane.iris.util.common.plugin.VolmitSender;
import art.arcane.volmlib.util.collection.KList;
import art.arcane.volmlib.util.io.IO;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import java.io.File;
import java.io.IOException;
@@ -78,7 +75,7 @@ public final class DatapackIngestService {
List<String> urls = configured.stream().sorted().toList();
boolean autoIngest = IrisSettings.get().getGeneral().autoIngestDatapacks;
boolean stripOverrides = DatapackPackMetadata.resolveStripOverrides();
String mcVersion = DatapackSupport.serverMcVersion();
String mcVersion = serverMcVersion();
int irisVersion = IrisPlatforms.get().irisVersionNumber();
File root = IrisPlatforms.get().dataFolder("datapacks");
KList<File> worldFolders = ServerConfigurator.getDatapacksFolder();
@@ -156,6 +153,15 @@ public final class DatapackIngestService {
DatapackStartupValidation.refreshStartupValidationAfterMaintenance(maintenanceChanged);
}
static String serverMcVersion() {
return serverMcVersion(Bukkit.getServer());
}
static String serverMcVersion(Server server) {
MinecraftVersion detected = MinecraftVersion.detect(server);
return detected == null ? null : detected.value();
}
public static void refreshWorkspaces() {
try (Stream<IrisData> stream = ServerConfigurator.allPacks()) {
stream.forEach(DatapackIngestService::refreshWorkspace);
@@ -244,7 +250,7 @@ public final class DatapackIngestService {
}
KList<File> worldFolders = ServerConfigurator.getDatapacksFolder();
String mcVersion = DatapackSupport.serverMcVersion();
String mcVersion = serverMcVersion();
try {
DatapackScratchRecovery.recoverTransactions(root, worldFolders);
} catch (IOException e) {
@@ -95,7 +95,7 @@ final class DatapackStartupValidation {
List<String> urls = configured.stream().sorted().toList();
boolean autoIngest = IrisSettings.get().getGeneral().autoIngestDatapacks;
boolean stripOverrides = DatapackPackMetadata.resolveStripOverrides();
String mcVersion = DatapackSupport.serverMcVersion();
String mcVersion = DatapackIngestService.serverMcVersion();
int irisVersion = IrisPlatforms.get().irisVersionNumber();
if (!startupValidationContextMatches(
validated, mcVersion, irisVersion, autoIngest, stripOverrides, urls)) {
@@ -19,13 +19,10 @@
package art.arcane.iris.core.datapack;
import art.arcane.iris.spi.IrisLogging;
import art.arcane.iris.core.nms.MinecraftVersion;
import art.arcane.iris.util.common.io.Durability;
import art.arcane.iris.util.common.plugin.VolmitSender;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import java.io.File;
import java.io.IOException;
@@ -130,15 +127,6 @@ final class DatapackSupport {
throw new IOException("Cannot determine " + purpose + " state at " + path);
}
static String serverMcVersion() {
return serverMcVersion(Bukkit.getServer());
}
static String serverMcVersion(Server server) {
MinecraftVersion detected = MinecraftVersion.detect(server);
return detected == null ? null : detected.value();
}
static String safe(String value) {
return value == null || value.isBlank() ? "?" : value;
}
@@ -72,7 +72,7 @@ public class DatapackIngestServiceTest {
doReturn("26.2").when(server).getMinecraftVersion();
doReturn("26.2.build.33").when(server).getBukkitVersion();
assertEquals("26.2", DatapackSupport.serverMcVersion(server));
assertEquals("26.2", DatapackIngestService.serverMcVersion(server));
}
@Test
@@ -80,7 +80,7 @@ public class DatapackIngestServiceTest {
Server server = mock(Server.class);
doReturn("1.21.4-R0.1-SNAPSHOT").when(server).getBukkitVersion();
assertEquals("1.21.4", DatapackSupport.serverMcVersion(server));
assertEquals("1.21.4", DatapackIngestService.serverMcVersion(server));
}
@Test