Skip to content

Commit 8a0115b

Browse files
authored
Merge pull request #21 from Blukzen/feature/4-configuration-files
feature/4-configuration-files
2 parents 50723a6 + 6711155 commit 8a0115b

File tree

6 files changed

+48
-7
lines changed

6 files changed

+48
-7
lines changed

src/main/java/com/blukzen/createlab/CreateLab.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import com.blukzen.createlab.item.LabItems;
55
import com.blukzen.createlab.util.GUIUtil;
66
import net.minecraftforge.eventbus.api.IEventBus;
7+
import net.minecraftforge.fml.ModLoadingContext;
78
import net.minecraftforge.fml.common.Mod;
9+
import net.minecraftforge.fml.config.ModConfig;
810
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
911
import net.minecraftforge.fml.loading.FMLEnvironment;
1012
import org.apache.logging.log4j.LogManager;
@@ -21,6 +23,7 @@ public CreateLab() {
2123
LabItems.ITEMS.register(modbus);
2224

2325
FMLJavaModLoadingContext.get().getModEventBus().addListener(CreateLabRegistry::init);
26+
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CreateLabConfig.COMMON_SPEC, "createlab-common.toml");
2427

2528
if (FMLEnvironment.dist.isClient()) {
2629
GUIUtil.INSTANCE = new GUIUtil();
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.blukzen.createlab;
2+
3+
import net.minecraftforge.common.ForgeConfigSpec;
4+
5+
import java.util.Arrays;
6+
import java.util.List;
7+
8+
public class CreateLabConfig {
9+
public static final ForgeConfigSpec COMMON_SPEC;
10+
11+
public static ForgeConfigSpec.ConfigValue<List<? extends String>> labPortalFrameBlocks;
12+
public static ForgeConfigSpec.IntValue tpCommandPermissionLevel;
13+
public static ForgeConfigSpec.IntValue debugCommandPermissionLevel;
14+
public static ForgeConfigSpec.IntValue saveCommandPermissionLevel;
15+
16+
static {
17+
ForgeConfigSpec.Builder configBuilder = new ForgeConfigSpec.Builder();
18+
setupConfig(configBuilder);
19+
COMMON_SPEC = configBuilder.build();
20+
}
21+
22+
private static void setupConfig(ForgeConfigSpec.Builder builder) {
23+
labPortalFrameBlocks = builder.comment("Blocks that can be used as a lab portal frame").defineList("lab_portal_frame_blocks", Arrays.asList("minecraft:smooth_quartz", "minecraft:quartz_block"), entry -> true);
24+
25+
builder.push("Command Permission Levels");
26+
{
27+
builder.comment("0 = All, 1 = OPs, 3 = Disabled");
28+
tpCommandPermissionLevel = builder.defineInRange("tp_permission_level", 0, 0, 2);
29+
debugCommandPermissionLevel = builder.defineInRange("debug_permission_level", 0, 0, 2);
30+
saveCommandPermissionLevel = builder.defineInRange("save_permission_level", 0, 0, 2);
31+
}
32+
builder.pop();
33+
34+
35+
36+
}
37+
}

src/main/java/com/blukzen/createlab/commands/CommandDebug.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.blukzen.createlab.commands;
22

3+
import com.blukzen.createlab.CreateLabConfig;
34
import com.blukzen.createlab.util.GUIUtil;
45
import com.mojang.brigadier.Command;
56
import com.mojang.brigadier.CommandDispatcher;
@@ -24,7 +25,7 @@ public class CommandDebug implements Command<CommandSource>, SuggestionProvider<
2425

2526
public static ArgumentBuilder<CommandSource, ?> register(CommandDispatcher<CommandSource> dispatcher) {
2627
return Commands.literal("debug")
27-
.requires(cs -> cs.hasPermission(0))
28+
.requires(cs -> cs.hasPermission(CreateLabConfig.debugCommandPermissionLevel.get()))
2829
.executes(CMD)
2930
.then(
3031
RequiredArgumentBuilder.<CommandSource, String>argument("args", StringArgumentType.greedyString())

src/main/java/com/blukzen/createlab/commands/CommandSaveInventory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.blukzen.createlab.commands;
22

3+
import com.blukzen.createlab.CreateLabConfig;
34
import com.blukzen.createlab.data.LaboratoryCapability;
45
import com.mojang.brigadier.Command;
56
import com.mojang.brigadier.CommandDispatcher;
@@ -15,7 +16,7 @@ public class CommandSaveInventory implements Command<CommandSource> {
1516

1617
public static ArgumentBuilder<CommandSource, ?> register(CommandDispatcher<CommandSource> dispatcher) {
1718
return Commands.literal("save")
18-
.requires(cs -> cs.hasPermission(0))
19+
.requires(cs -> cs.hasPermission(CreateLabConfig.saveCommandPermissionLevel.get()))
1920
.executes(CMD);
2021
}
2122

src/main/java/com/blukzen/createlab/commands/CommandTeleport.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.blukzen.createlab.commands;
22

3+
import com.blukzen.createlab.CreateLabConfig;
34
import com.blukzen.createlab.data.LaboratoryCapability;
45
import com.blukzen.createlab.dimension.LabDimensions;
56
import com.blukzen.createlab.util.TeleportationTools;
@@ -22,7 +23,7 @@ public class CommandTeleport implements Command<CommandSource> {
2223

2324
public static ArgumentBuilder<CommandSource, ?> register(CommandDispatcher<CommandSource> dispatcher) {
2425
return Commands.literal("tp")
25-
.requires(cs -> cs.hasPermission(0))
26+
.requires(cs -> cs.hasPermission(CreateLabConfig.tpCommandPermissionLevel.get()))
2627
.executes(CMD);
2728
}
2829

src/main/java/com/blukzen/createlab/world/LabPortal.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.blukzen.createlab.world;
22

3+
import com.blukzen.createlab.CreateLabConfig;
34
import com.blukzen.createlab.block.LabBlocks;
45
import com.blukzen.createlab.block.LabPortalBlock;
56
import com.blukzen.createlab.util.GUIUtil;
67
import net.minecraft.block.AbstractBlock;
78
import net.minecraft.block.BlockState;
8-
import net.minecraft.block.Blocks;
99
import net.minecraft.tags.BlockTags;
1010
import net.minecraft.util.Direction;
1111
import net.minecraft.util.math.BlockPos;
@@ -17,9 +17,7 @@
1717
import java.util.function.Predicate;
1818

1919
public class LabPortal {
20-
private static final AbstractBlock.IPositionPredicate FRAME = (blockState, blockReader, blockPos) -> {
21-
return blockState.getBlock().is(Blocks.SMOOTH_QUARTZ);
22-
};
20+
private static final AbstractBlock.IPositionPredicate FRAME = (blockState, blockReader, blockPos) -> CreateLabConfig.labPortalFrameBlocks.get().contains(blockState.getBlock().getRegistryName().toString());
2321
private final IWorld level;
2422
private final Direction.Axis axis;
2523
private final Direction rightDir;

0 commit comments

Comments
 (0)