-
Notifications
You must be signed in to change notification settings - Fork 0
/
ModConfig.java
73 lines (66 loc) · 1.73 KB
/
ModConfig.java
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
63
64
65
66
67
68
69
70
71
72
73
package me.kennydude.mod;
import net.minecraft.src.*;
import java.util.Properties;
import java.io.File;
import net.minecraft.client.Minecraft;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* Provides an easy to use config for Mods
* @author kennydude
*/
public class ModConfig{
public ModConfig(){
}
File cfgdir = new File(Minecraft.getMinecraftDir(), "/config/");
Properties props = new Properties();
File cfgfile;
/**
* This loads the configuration from where you please
*/
public ModConfig loadConfig(String filename){
try{
cfgfile = new File(cfgdir, filename);
if(!cfgfile.getParentFile().exists()){
cfgfile.getParentFile().mkdirs();
}
if(cfgfile.exists()){
FileInputStream fileinputstream = new FileInputStream(cfgfile);
props.load(fileinputstream);
fileinputstream.close();
}
} catch(Exception e){
ModLoader.getLogger().fine((new StringBuilder(e.toString())).toString());
}
return this;
}
/**
* Saves it back
*/
public void saveConfig(){
try{
FileOutputStream fileoutputstream = new FileOutputStream(cfgfile);
props.store(fileoutputstream, "Mod Config");
fileoutputstream.close();
} catch(Exception e){
ModLoader.getLogger().fine((new StringBuilder(e.toString())).toString());
}
}
/**
* Gets a property. If it doesn't exist, the default is returned and set
*/
public String getProperty(String propName, String def){
String val = props.getProperty(propName);
if(val == null){
val = def;
props.setProperty(propName, val);
}
return val;
}
/**
* Same as getProperty() but uses Integers
*/
public Integer getInt(String propName, Integer def){
return Integer.parseInt(getProperty(propName, def.toString()));
}
}