Skip to content

Commit 6f86116

Browse files
committed
Foundation for running tests
1 parent 1e9a1ae commit 6f86116

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed

build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
plugins {
2+
id("idea")
23
id("java")
34
id("net.neoforged.gradle.userdev") version "7.0.96"
45
}
@@ -17,10 +18,19 @@ repositories {
1718
mavenCentral()
1819
}
1920

21+
idea {
22+
23+
}
24+
25+
minecraft.modIdentifier("spatial")
26+
2027
runs.create("gameTestServer") {
2128
this.gameTest()
2229
systemProperty("forge.enabledGameTestNamespaces", "spatial")
30+
environmentVariables("TEST_RESOURCES", project.file("src/test/resources").path)
31+
2332
modSource(sourceSets.main.get())
33+
modSource(sourceSets.test.get())
2434
}
2535

2636
dependencies {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FMLModType: GAMELIBRARY
2+
Automatic-Module-Name: spatial
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package dev.compactmods.spatial;
2+
3+
import com.google.common.collect.ImmutableSet;
4+
import net.minecraft.server.MinecraftServer;
5+
import net.minecraft.server.packs.PackType;
6+
import net.minecraft.server.packs.repository.FolderRepositorySource;
7+
import net.minecraft.server.packs.repository.PackSource;
8+
import net.minecraft.world.level.validation.DirectoryValidator;
9+
import net.neoforged.bus.EventBus;
10+
import net.neoforged.bus.api.IEventBus;
11+
import net.neoforged.fml.ModLoadingContext;
12+
import net.neoforged.fml.common.Mod;
13+
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
14+
import net.neoforged.neoforge.common.NeoForge;
15+
import net.neoforged.neoforge.event.server.ServerStartedEvent;
16+
import org.apache.logging.log4j.LogManager;
17+
import org.apache.logging.log4j.Logger;
18+
19+
import java.nio.file.Path;
20+
import java.util.concurrent.ExecutionException;
21+
22+
@Mod("spatial")
23+
public class SpatialTestMod {
24+
25+
private static final Logger LOG = LogManager.getLogger();
26+
27+
public SpatialTestMod() {
28+
NeoForge.EVENT_BUS.addListener(this::onServerStarted);
29+
}
30+
31+
public void onServerStarted(final ServerStartedEvent evt) {
32+
final MinecraftServer server = evt.getServer();
33+
34+
// Add "test/resources" as a resource pack to the pack repository
35+
final var packs = server.getPackRepository();
36+
37+
final String test_resources = System.getenv("TEST_RESOURCES");
38+
if(test_resources != null) {
39+
40+
final var testPack = new FolderRepositorySource(Path.of(test_resources), PackType.SERVER_DATA, PackSource.DEFAULT, new DirectoryValidator(l -> true));
41+
packs.addPackFinder(testPack);
42+
packs.reload();
43+
44+
// add "file/resources" to selected pack list
45+
final ImmutableSet<String> toSelect = ImmutableSet.<String>builder()
46+
.addAll(packs.getSelectedIds())
47+
.add("file/test_pack")
48+
.build();
49+
50+
packs.setSelected(toSelect);
51+
52+
try {
53+
server.reloadResources(packs.getSelectedIds()).get();
54+
55+
} catch (InterruptedException | ExecutionException e) {
56+
LOG.error("Failed to reload test resource packs.", e);
57+
}
58+
}
59+
}
60+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
modLoader = "javafml"
2+
loaderVersion = "[2,)"
3+
license = "MIT"
4+
5+
[[mods]]
6+
modId = "spatial"
7+
version = "9.9.9"
8+
displayName = "Spatial Tests"
9+
description = '''Spatial Tests'''
10+
11+
[[dependencies.spatial]]
12+
modId = "minecraft"
13+
type = "required"
14+
versionRange = "[1.20.4,1.21)"
15+
ordering = "NONE"
16+
side = "BOTH"

0 commit comments

Comments
 (0)