summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
blob: d82f01c4cc469c9afff2d76196c49b6d0d926364 (plain)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package net.tylermurphy.hideAndSeek.configuration;

import java.io.File;
import java.util.Map;
import java.util.Map.Entry;

import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.util.Vector;

import net.tylermurphy.hideAndSeek.Main;

public class Config {

	static ConfigManager manager;
	
	public static String 
		messagePrefix,
		errorPrefix,
		tauntPrefix,
		worldborderPrefix,
		abortPrefix,
		gameoverPrefix,
		warningPrefix,
		spawnWorld,
		exitWorld,
		lobbyWorld;
	
	public static Vector
		spawnPosition,
		lobbyPosition,
		exitPosition,
		worldborderPosition;
	
	public static boolean 
		nametagsVisible,
		permissionsRequired,
		announceMessagesToNonPlayers,
		worldborderEnabled;
	
	public static int 
		minPlayers,
		worldborderSize,
		worldborderDelay,
		currentWorldborderSize,
		gameLength,
		saveMinX,
		saveMinZ,
		saveMaxX,
		saveMaxZ;
	
	public static void loadConfig() {

		manager = new ConfigManager("config.yml");

		//Spawn
		spawnPosition = new Vector(
				manager.getDouble("spawns.game.x"),
				Math.max(0, Math.min(255, manager.getDouble("spawns.game.y"))),
				manager.getDouble("spawns.game.z")
		);
		spawnWorld = manager.getString("spawns.game.world");

		///Lobby
		lobbyPosition = new Vector(
				manager.getDouble("spawns.lobby.x"),
				Math.max(0, Math.min(255, manager.getDouble("spawns.lobby.y"))),
				manager.getDouble("spawns.lobby.z")
		);
		lobbyWorld = manager.getString("spawns.lobby.world");

		announceMessagesToNonPlayers = manager.getBoolean("announceMessagesToNonPlayers");

		exitPosition = new Vector(
				manager.getDouble("spawns.exit.x"),
				Math.max(0, Math.min(255, manager.getDouble("spawns.exit.y"))),
				manager.getDouble("spawns.exit.z")
		);
		exitWorld = manager.getString("spawns.exit.world");

		//World border
		worldborderPosition = new Vector(
				manager.getInt("worldBorder.x"),
				0,
				manager.getInt("worldBorder.z")
		);
		worldborderSize = Math.max(100, manager.getInt("worldBorder.size"));
		worldborderDelay = Math.max(1, manager.getInt("worldBorder.delay"));
		worldborderEnabled = manager.getBoolean("worldBorder.enabled");

		//Prefix
		char SYMBOLE = '\u00A7';
		String SYMBOLE_STRING = new String(new char[]{SYMBOLE});

		messagePrefix = manager.getString("prefix.default").replace("&", SYMBOLE_STRING);
		errorPrefix = manager.getString("prefix.error").replace("&", SYMBOLE_STRING);
		tauntPrefix = manager.getString("prefix.taunt").replace("&", SYMBOLE_STRING);
		worldborderPrefix = manager.getString("prefix.border").replace("&", SYMBOLE_STRING);
		abortPrefix = manager.getString("prefix.abort").replace("&", SYMBOLE_STRING);
		gameoverPrefix = manager.getString("prefix.gameover").replace("&", SYMBOLE_STRING);
		warningPrefix = manager.getString("prefix.warning").replace("&", SYMBOLE_STRING);

		//Map Bounds
		saveMinX = manager.getInt("bounds.min.x");
		saveMinZ = manager.getInt("bounds.min.z");
		saveMaxX = manager.getInt("bounds.max.x");
		saveMaxZ = manager.getInt("bounds.max.z");

		//Other
		nametagsVisible = manager.getBoolean("nametagsVisible");
		permissionsRequired = manager.getBoolean("permissionsRequired");
		minPlayers = Math.max(2, manager.getInt("minPlayers"));
		gameLength = manager.getInt("gameLength");

		manager.saveConfig();
	}
	
	public static void addToConfig(String path, Object value) {
		manager.set(path, value);
	}

	public static void saveConfig() {
		manager.saveConfig();
	}
	
}