-
-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy pathAPConfig.java
More file actions
62 lines (48 loc) · 2.46 KB
/
APConfig.java
File metadata and controls
62 lines (48 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package de.srendi.advancedperipherals.common.configuration;
import com.electronwill.nightconfig.core.file.CommentedFileConfig;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.config.ConfigFileTypeHandler;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.loading.FMLPaths;
import java.nio.file.Path;
import java.util.function.Function;
public class APConfig extends ModConfig {
public static final ConfigFileHandler CONFIG_FILE_HANDLER = new ConfigFileHandler();
public static final GeneralConfig GENERAL_CONFIG = new GeneralConfig();
public static final PeripheralsConfig PERIPHERALS_CONFIG = new PeripheralsConfig();
public static final MetaphysicsConfig METAPHYSICS_CONFIG = new MetaphysicsConfig();
public static final WorldConfig WORLD_CONFIG = new WorldConfig();
public static final APIConfig API_CONFIG = new APIConfig();
public APConfig(IAPConfig config, ModContainer container) {
super(config.getType(), config.getConfigSpec(), container, "Advancedperipherals/" + config.getFileName() + ".toml");
}
public static void register(ModLoadingContext context) {
//Creates the config folder
FMLPaths.getOrCreateGameRelativePath(FMLPaths.CONFIGDIR.get().resolve("Advancedperipherals"), "Advancedperipherals");
ModContainer modContainer = context.getActiveContainer();
modContainer.addConfig(new APConfig(GENERAL_CONFIG, modContainer));
modContainer.addConfig(new APConfig(PERIPHERALS_CONFIG, modContainer));
modContainer.addConfig(new APConfig(METAPHYSICS_CONFIG, modContainer));
modContainer.addConfig(new APConfig(WORLD_CONFIG, modContainer));
modContainer.addConfig(new APConfig(API_CONFIG, modContainer));
}
@Override
public ConfigFileTypeHandler getHandler() {
return CONFIG_FILE_HANDLER;
}
public static class ConfigFileHandler extends ConfigFileTypeHandler {
public static Path getPath(Path path) {
if (path.endsWith("serverconfig")) return FMLPaths.CONFIGDIR.get();
return path;
}
@Override
public Function<ModConfig, CommentedFileConfig> reader(Path configBasePath) {
return super.reader(getPath(configBasePath));
}
@Override
public void unload(Path configBasePath, ModConfig config) {
super.unload(getPath(configBasePath), config);
}
}
}