Skip to content

Commit a4d95b2

Browse files
committed
Add basic room templates command and warning message, saving closables
1 parent bb3f94c commit a4d95b2

File tree

18 files changed

+171
-25
lines changed

18 files changed

+171
-25
lines changed

core-api/src/main/java/dev/compactmods/machines/api/room/template/RoomTemplateHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.world.level.LevelReader;
88

99
import java.util.Optional;
10+
import java.util.stream.Stream;
1011

1112
public class RoomTemplateHelper {
1213

@@ -20,6 +21,10 @@ public static RoomTemplate getTemplate(RegistryAccess registryAccess, ResourceLo
2021
.orElse(RoomTemplate.INVALID_TEMPLATE);
2122
}
2223

24+
public static Stream<RoomTemplate> getTemplates(RegistryAccess registryAccess) {
25+
return registryAccess.registryOrThrow(RoomTemplate.REGISTRY_KEY).stream();
26+
}
27+
2328
public static Optional<RoomTemplate> getTemplateOptional(RegistryAccess registryAccess, ResourceLocation id) {
2429
return registryAccess.registryOrThrow(RoomTemplate.REGISTRY_KEY)
2530
.getOptional(id);

gradle.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ org.gradle.jvmargs=-Xmx3G
44
org.gradle.daemon=true
55
#org.gradle.parallel=true
66
org.gradle.configuration-cache=true
7-
87
neogradle.subsystems.parchment.minecraftVersion=1.21
98
neogradle.subsystems.parchment.mappingsVersion=2024.07.28
109

gradle/libs.versions.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
[versions]
22
jnanoid = "[2.0.0, 3)"
3-
parchmentMC = "1.21"
4-
parchment = "2024.07.28"
3+
4+
# Get versions from https://parchmentmc.org/docs/getting-started
5+
parchmentMC = "1.21.1"
6+
parchment = "2024.11.17"
57

68
[libraries.jnanoid]
79
module = "com.aventrix.jnanoid:jnanoid"

gradle/mods.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jei = ["jeiCommon", "jeiNeo"]
2121
# Kube JS
2222
[libraries.kubeJS]
2323
module = "dev.latvian.mods:kubejs-neoforge"
24-
version = "2101.7.1-build.181"
24+
version = "2101.7.2-build.247"
2525

2626
[libraries.rhino]
2727
module = "dev.latvian.mods:rhino"

gradle/neoforged.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
[versions]
2-
neoforge = "21.1.122"
2+
neoforge = "21.1.206"
33
mdg = "2.0.78"
4-
neoforgeRange = { require = "[21.1.122,)", prefer = "21.1.122" }
4+
neoforgeRange = { require = "[21.1.206,)", prefer = "21.1.206" }
5+
neoform = "1.21-20240613.152323"
56

67
[libraries.testframework]
78
module = "net.neoforged:testframework"
@@ -10,4 +11,3 @@ version.ref = "neoforge"
1011
[plugins.moddev]
1112
id = "net.neoforged.moddev"
1213
version.ref = "mdg"
13-

neoforge-main/build.gradle.kts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ neoForge {
9696
additional.dependencies.add(compactmods.feather.get())
9797
additional.dependencies.add(libs.jnanoid.get())
9898
}
99-
99+
100100
create("client") {
101101
client()
102102
gameDirectory.set(file("runs/client"))
@@ -265,19 +265,15 @@ tasks.withType<Jar> {
265265
val now = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(Date())
266266
attributes(
267267
mapOf(
268-
"Specification-Title" to "Compact Machines",
269-
"Specification-Vendor" to "CompactMods",
270-
"Specification-Version" to "2",
271-
"Implementation-Title" to "Compact Machines",
272268
"Implementation-Version" to archiveVersion,
273-
"Implementation-Vendor" to "CompactMods",
274269
"Implementation-Timestamp" to now,
275270
"Minecraft-Version" to mojang.versions.minecraft.get(),
276271
"NeoForge-Version" to neoforged.versions.neoforge.get(),
277-
"Main-Commit" to gitVersion,
278-
"MixinConfigs" to "compactmachines.mixins.json"
272+
"Main-Commit" to gitVersion.trimEnd()
279273
)
280274
)
275+
276+
from("src/main/resources/META-INF/MANIFEST.MF")
281277
}
282278
}
283279

neoforge-main/src/main/java/dev/compactmods/machines/CompactMachinesCommon.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import dev.compactmods.machines.room.capability.BasicRoomCapabilities;
1818
import dev.compactmods.machines.room.upgrade.RoomUpgradeEventHandlers;
1919
import dev.compactmods.machines.room.upgrade.RoomUpgrades;
20+
import dev.compactmods.machines.server.event.RoomTemplatesCheckEventHandler;
2021
import dev.compactmods.machines.shrinking.Shrinking;
2122
import dev.compactmods.machines.villager.Villagers;
2223
import net.minecraft.util.FastColor;
@@ -52,7 +53,7 @@ private static void prepare() {
5253
RoomUpgrades.prepare();
5354
Dimension.prepare();
5455
Commands.prepare();
55-
Villagers.prepare();
56+
// Villagers.prepare();
5657

5758
CMDataComponents.prepare();
5859
CMDataAttachments.prepare();
@@ -64,6 +65,8 @@ private static void registerEvents(IEventBus modBus) {
6465
WorldBorderFixer.registerEvents();
6566
PlayerEventHandler.registerEvents();
6667

68+
RoomTemplatesCheckEventHandler.registerEvents();
69+
6770
modBus.addListener(CompactMachinesCommon::commonSetup);
6871
modBus.addListener(CMFeaturePacks::addFeaturePacks);
6972
modBus.addListener(CMNetworks::onPacketRegistration);

neoforge-main/src/main/java/dev/compactmods/machines/command/Commands.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public static void onCommandsRegister(final RegisterCommandsEvent event) {
3131
Commands.CM_COMMAND_ROOT.then(CMGiveMachineSubcommand.make());
3232
Commands.CM_COMMAND_ROOT.then(SpawnSubcommand.make());
3333
Commands.CM_COMMAND_ROOT.then(RoomUpgradesSubcommand.make());
34+
Commands.CM_COMMAND_ROOT.then(EnableBasicTemplatesSubcommand.make());
3435

3536
event.getDispatcher().register(Commands.CM_COMMAND_ROOT);
3637
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package dev.compactmods.machines.command;
2+
3+
import com.google.common.collect.Lists;
4+
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
5+
import com.mojang.brigadier.context.CommandContext;
6+
import dev.compactmods.machines.api.CompactMachines;
7+
import dev.compactmods.machines.api.room.template.RoomTemplateHelper;
8+
import net.minecraft.commands.CommandSourceStack;
9+
import net.minecraft.commands.Commands;
10+
import net.minecraft.network.chat.Component;
11+
import net.minecraft.server.commands.ReloadCommand;
12+
import net.minecraft.server.packs.repository.Pack;
13+
import net.minecraft.server.packs.repository.PackRepository;
14+
15+
import java.util.List;
16+
17+
public class EnableBasicTemplatesSubcommand {
18+
19+
final static String PACK_ID = "mod/compactmachines:data/compactmachines/datapacks/basic_templates";
20+
21+
public static LiteralArgumentBuilder<CommandSourceStack> make() {
22+
return Commands.literal("enable_basic_templates")
23+
.requires(cs -> cs.hasPermission(Commands.LEVEL_GAMEMASTERS) &&
24+
RoomTemplateHelper.getTemplates(cs.registryAccess()).findAny().isEmpty())
25+
.executes(EnableBasicTemplatesSubcommand::exec);
26+
}
27+
28+
private static int exec(CommandContext<CommandSourceStack> ctx) {
29+
PackRepository packrepository = ctx.getSource().getServer().getPackRepository();
30+
31+
List<Pack> list = Lists.newArrayList(packrepository.getSelectedPacks());
32+
if(!packrepository.getSelectedIds().contains(PACK_ID)) {
33+
final var pack = packrepository.getPack(PACK_ID);
34+
if (pack != null) {
35+
pack.getDefaultPosition().insert(list, pack, Pack::selectionConfig, false);
36+
ReloadCommand.reloadPacks(list.stream().map(Pack::getId).toList(), ctx.getSource());
37+
38+
ctx.getSource().sendSuccess(() -> Component.literal("Enabled basic templates, restart game to sync changes."), false);
39+
}
40+
} else {
41+
ctx.getSource().sendFailure(Component.literal("Already enabled, restart game to sync changes."));
42+
}
43+
44+
return 0;
45+
}
46+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package dev.compactmods.machines.data;
2+
3+
import net.neoforged.neoforge.attachment.IAttachmentHolder;
4+
5+
public record CloseableAttachmentHolder(IAttachmentHolder holder) implements AutoCloseable {
6+
@Override
7+
public void close() throws Exception {
8+
9+
}
10+
}

0 commit comments

Comments
 (0)