kenshinshideandseek/src/main/java/net/tylermurphy/hideAndSeek/Store.java

183 lines
5.8 KiB
Java
Raw Normal View History

2021-08-13 20:49:36 +00:00
package net.tylermurphy.hideAndSeek;
import java.util.ArrayList;
2021-08-13 20:49:36 +00:00
import java.util.HashMap;
import java.util.List;
2021-08-13 20:49:36 +00:00
import java.util.Map;
import java.util.Map.Entry;
2021-08-13 20:49:36 +00:00
import org.bukkit.configuration.ConfigurationSection;
2021-08-13 20:49:36 +00:00
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector;
public class Store {
public static Map<String,Player>
2021-10-11 21:06:21 +00:00
playerList = new HashMap<String,Player>();
2021-09-01 01:55:27 +00:00
public static List<String>
Hider = new ArrayList<String>(),
Seeker = new ArrayList<String>(),
2021-10-18 02:52:57 +00:00
Spectator = new ArrayList<String>(),
Deaths = new ArrayList<String>();
2021-09-01 01:55:27 +00:00
public static Scoreboard
board;
2021-08-18 23:21:59 +00:00
public static Team
2021-09-01 01:55:27 +00:00
HiderTeam,
SeekerTeam,
SpectatorTeam;
2021-08-18 23:21:59 +00:00
public static String
messagePrefix,
errorPrefix,
tauntPrefix,
worldborderPrefix,
abortPrefix,
gameoverPrefix,
2021-08-27 21:20:07 +00:00
warningPrefix,
spawnWorld,
2021-10-18 02:52:57 +00:00
exitWorld,
lobbyWorld,
2021-09-01 01:55:27 +00:00
status = "Standby";
2021-08-18 23:21:59 +00:00
2021-10-18 02:52:57 +00:00
public static Vector
spawnPosition,
2021-10-11 21:06:21 +00:00
lobbyPosition,
2021-10-18 02:52:57 +00:00
exitPosition,
worldborderPosition;
2021-08-18 23:21:59 +00:00
public static boolean
nametagsVisible,
permissionsRequired,
2021-10-18 02:52:57 +00:00
announceMessagesToNonPlayers,
2021-10-11 15:52:56 +00:00
lobbyStarted = false,
worldborderEnabled = false,
2021-08-28 00:32:50 +00:00
runningBackup = false;
public static int
minPlayers,
gameId = 0,
worldborderSize,
worldborderDelay,
2021-10-18 02:52:57 +00:00
currentWorldborderSize,
gameLength,
timeLeft = 0;
2021-08-13 20:49:36 +00:00
public static FileConfiguration getConfig() {
return Main.plugin.getConfig();
}
public static void saveConfig() {
Main.plugin.saveConfig();
}
public static void loadConfig() {
Main.plugin.reloadConfig();
//Default
getConfig().addDefault("worldBorder.x", 0);
getConfig().addDefault("worldBorder.z", 0);
getConfig().addDefault("worldBorder.delay", 10);
getConfig().addDefault("worldBorder.size", 500);
getConfig().addDefault("worldBorder.enabled", false);
getConfig().addDefault("prefix.default", "&9Hide and Seek > &f");
getConfig().addDefault("prefix.error", "&cError > &f");
getConfig().addDefault("prefix.taunt", "&eTaunt > &f");
getConfig().addDefault("prefix.border", "&cWorld Border > &f");
getConfig().addDefault("prefix.abort", "&cAbort > &f");
getConfig().addDefault("prefix.gameover", "&aGame Over > &f");
2021-08-27 21:20:07 +00:00
getConfig().addDefault("prefix.warning", "&cWarning > &f");
getConfig().addDefault("nametagsVisible", false);
getConfig().addDefault("permissionsRequired", true);
2021-10-18 02:52:57 +00:00
getConfig().addDefault("announceMessagesToNonPlayers", false);
getConfig().addDefault("spawns.lobby.x", 0);
getConfig().addDefault("spawns.lobby.y", 0);
getConfig().addDefault("spawns.lobby.z", 0);
getConfig().addDefault("spawns.lobby.world", "world");
getConfig().addDefault("spawns.exit.x", 0);
getConfig().addDefault("spawns.exit.y", 0);
getConfig().addDefault("spawns.exit.z", 0);
getConfig().addDefault("spawns.exit.world", "world");
getConfig().addDefault("spawns.game.x", 0);
getConfig().addDefault("spawns.game.y", 0);
getConfig().addDefault("spawns.game.z", 0);
getConfig().addDefault("spawns.game.world", "world");
getConfig().addDefault("minPlayers", 2);
2021-10-18 02:52:57 +00:00
getConfig().addDefault("gameLength", 600);
//Spawn
spawnPosition = new Vector(
2021-10-18 02:52:57 +00:00
getConfig().getDouble("spawns.game.x"),
Math.max(0,Math.min(255,getConfig().getDouble("spawns.game.y"))),
getConfig().getDouble("spawns.game.z")
);
2021-10-18 02:52:57 +00:00
spawnWorld = getConfig().getString("spawns.game.world");
2021-10-11 21:06:21 +00:00
///Lobby
lobbyPosition = new Vector(
2021-10-18 02:52:57 +00:00
getConfig().getDouble("spawns.lobby.x"),
Math.max(0,Math.min(255,getConfig().getDouble("spawns.lobby.y"))),
getConfig().getDouble("spawns.lobby.z")
);
lobbyWorld = getConfig().getString("spawns.lobby.world");
announceMessagesToNonPlayers = getConfig().getBoolean("announceMessagesToNonPlayers");
exitPosition = new Vector(
getConfig().getDouble("spawns.exit.x"),
Math.max(0,Math.min(255,getConfig().getDouble("spawns.exit.y"))),
getConfig().getDouble("spawns.exit.z")
2021-10-11 21:06:21 +00:00
);
2021-10-18 02:52:57 +00:00
exitWorld = getConfig().getString("spawns.exit.world");
2021-10-11 21:06:21 +00:00
//World border
worldborderPosition = new Vector(
getConfig().getInt("worldBorder.x"),
0,
getConfig().getInt("worldBorder.z")
);
worldborderSize = Math.max(100,getConfig().getInt("worldBorder.size"));
worldborderDelay = Math.max(1,getConfig().getInt("worldBorder.delay"));
worldborderEnabled = getConfig().getBoolean("worldBorder.enabled");
//Prefix
2021-08-25 04:02:24 +00:00
char SYMBOLE = '\u00A7';
String SYMBOLE_STRING = new String(new char[] {SYMBOLE});
messagePrefix = getConfig().getString("prefix.default").replace("&", SYMBOLE_STRING);
errorPrefix = getConfig().getString("prefix.error").replace("&", SYMBOLE_STRING);
tauntPrefix = getConfig().getString("prefix.taunt").replace("&", SYMBOLE_STRING);
worldborderPrefix = getConfig().getString("prefix.border").replace("&", SYMBOLE_STRING);
abortPrefix = getConfig().getString("prefix.abort").replace("&", SYMBOLE_STRING);
gameoverPrefix = getConfig().getString("prefix.gameover").replace("&", SYMBOLE_STRING);
2021-08-27 21:20:07 +00:00
warningPrefix = getConfig().getString("prefix.warning").replace("&", SYMBOLE_STRING);
//Other
nametagsVisible = getConfig().getBoolean("nametagsVisible");
permissionsRequired = getConfig().getBoolean("permissionsRequired");
minPlayers = Math.max(2,getConfig().getInt("minPlayers"));
2021-10-18 02:52:57 +00:00
gameLength = getConfig().getInt("gameLength");
getConfig().options().copyDefaults(true);
saveConfig();
}
public static void addToSection(String sectionName, Map<String,Object> values) {
ConfigurationSection section = getConfig().getConfigurationSection(sectionName);
if(section == null) section = getConfig().createSection(sectionName);
Map<String,Object> sectionValues = section.getValues(true);
for(Entry<String, Object> entry : values.entrySet()) {
sectionValues.put(entry.getKey(), entry.getValue());
}
getConfig().createSection(sectionName, sectionValues);
saveConfig();
}
2021-08-18 23:21:59 +00:00
}