2017-03-10 18:04:15 +01:00
|
|
|
package com.zeshanaslam.actionhealth;
|
|
|
|
|
|
|
|
import org.bukkit.Bukkit;
|
2017-03-24 01:10:10 +01:00
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.scheduler.BukkitTask;
|
2017-03-10 18:04:15 +01:00
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
2017-03-24 01:10:10 +01:00
|
|
|
import java.util.stream.Collectors;
|
2017-03-10 18:04:15 +01:00
|
|
|
|
|
|
|
public class SettingsManager {
|
|
|
|
|
|
|
|
public String healthMessage;
|
|
|
|
public boolean usePerms;
|
|
|
|
public boolean showMobs;
|
|
|
|
public boolean showPlayers;
|
|
|
|
public boolean delay;
|
|
|
|
public boolean checkPvP;
|
|
|
|
public boolean stripName;
|
2017-03-20 06:15:09 +01:00
|
|
|
public boolean rememberToggle;
|
2017-03-10 18:04:15 +01:00
|
|
|
public String filledHeartIcon;
|
|
|
|
public String halfHeartIcon;
|
|
|
|
public String emptyHeartIcon;
|
|
|
|
public List<String> worlds = new ArrayList<>();
|
|
|
|
public HashMap<String, String> translate = new HashMap<>();
|
2017-03-20 06:15:09 +01:00
|
|
|
public List<String> regions = new ArrayList<>();
|
2017-03-10 18:04:15 +01:00
|
|
|
public String mcVersion;
|
|
|
|
public boolean useOldMethods;
|
2017-03-24 01:10:10 +01:00
|
|
|
public boolean showOnLook;
|
|
|
|
public double lookDistance;
|
|
|
|
public List<String> blacklist = new ArrayList<>();
|
|
|
|
public String toggleMessage;
|
2017-03-24 17:23:24 +01:00
|
|
|
public String enableMessage;
|
|
|
|
public String disableMessage;
|
2017-05-10 00:01:42 +02:00
|
|
|
public boolean placeholderAPI;
|
2017-03-10 18:04:15 +01:00
|
|
|
|
|
|
|
public SettingsManager(Main plugin) {
|
2017-03-24 01:10:10 +01:00
|
|
|
// Clear settings for reloads
|
|
|
|
worlds.clear();
|
|
|
|
regions.clear();
|
|
|
|
blacklist.clear();
|
|
|
|
|
|
|
|
if (plugin.taskID != -1) Bukkit.getScheduler().cancelTask(plugin.taskID);
|
|
|
|
|
2017-05-10 00:01:42 +02:00
|
|
|
// Check if using MVdWPlaceholderAPI
|
2017-05-10 00:04:32 +02:00
|
|
|
placeholderAPI = Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI");
|
2017-05-10 00:01:42 +02:00
|
|
|
|
2017-03-24 01:10:10 +01:00
|
|
|
// Get settings from config
|
2017-03-10 18:04:15 +01:00
|
|
|
healthMessage = plugin.getConfig().getString("Health Message");
|
|
|
|
usePerms = plugin.getConfig().getBoolean("Use Permissions");
|
|
|
|
showMobs = plugin.getConfig().getBoolean("Show Mob");
|
|
|
|
showPlayers = plugin.getConfig().getBoolean("Show Player");
|
|
|
|
delay = plugin.getConfig().getBoolean("Delay Message");
|
|
|
|
checkPvP = plugin.getConfig().getBoolean("Region PvP");
|
|
|
|
stripName = plugin.getConfig().getBoolean("Strip Name");
|
|
|
|
filledHeartIcon = plugin.getConfig().getString("Full Health Icon");
|
|
|
|
halfHeartIcon = plugin.getConfig().getString("Half Health Icon");
|
|
|
|
emptyHeartIcon = plugin.getConfig().getString("Empty Health Icon");
|
|
|
|
if (plugin.getConfig().getBoolean("Name Change")) {
|
2017-03-20 06:15:09 +01:00
|
|
|
for (String s : plugin.getConfig().getStringList("Name")) {
|
2017-03-10 18:04:15 +01:00
|
|
|
String[] split = s.split(" = ");
|
|
|
|
translate.put(split[0], split[1]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-03-20 06:15:09 +01:00
|
|
|
// Load disabled regions
|
|
|
|
regions = plugin.getConfig().getStringList("Disabled regions");
|
|
|
|
|
2017-03-10 18:04:15 +01:00
|
|
|
worlds = plugin.getConfig().getStringList("Disabled worlds");
|
|
|
|
|
|
|
|
// Check if using protocol build
|
|
|
|
mcVersion = Bukkit.getServer().getClass().getPackage().getName();
|
|
|
|
mcVersion = mcVersion.substring(mcVersion.lastIndexOf(".") + 1);
|
|
|
|
|
|
|
|
useOldMethods = mcVersion.equalsIgnoreCase("v1_8_R1") || mcVersion.equalsIgnoreCase("v1_7_");
|
2017-03-20 06:15:09 +01:00
|
|
|
|
|
|
|
if (plugin.getConfig().contains("Remember Toggle")) {
|
|
|
|
rememberToggle = plugin.getConfig().getBoolean("Remember Toggle");
|
|
|
|
} else {
|
|
|
|
rememberToggle = false;
|
|
|
|
}
|
2017-03-24 01:10:10 +01:00
|
|
|
|
|
|
|
// New options
|
|
|
|
if (plugin.getConfig().contains("Blacklist")) {
|
|
|
|
blacklist.addAll(plugin.getConfig().getStringList("Blacklist").stream().map(s -> ChatColor.translateAlternateColorCodes('&', s)).collect(Collectors.toList()));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (plugin.getConfig().contains("Show On Look")) {
|
|
|
|
showOnLook = plugin.getConfig().getBoolean("Show On Look");
|
|
|
|
lookDistance = plugin.getConfig().getDouble("Look Distance");
|
|
|
|
|
|
|
|
if (showOnLook) {
|
|
|
|
BukkitTask bukkitTask = new LookThread(plugin).runTaskTimerAsynchronously(plugin, 0, 20);
|
|
|
|
plugin.taskID = bukkitTask.getTaskId();
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
plugin.taskID = -1;
|
|
|
|
showOnLook = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (plugin.getConfig().contains("Toggle Message")) {
|
|
|
|
toggleMessage = plugin.getConfig().getString("Toggle Message");
|
|
|
|
}
|
2017-03-24 17:23:24 +01:00
|
|
|
|
|
|
|
if (plugin.getConfig().contains("On Enable")) {
|
|
|
|
enableMessage = plugin.getConfig().getString("On Enable");
|
|
|
|
} else {
|
|
|
|
enableMessage = "&7ActionHealth has been &cenabled&7.";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (plugin.getConfig().contains("On Disable")) {
|
|
|
|
disableMessage = plugin.getConfig().getString("On Disable");
|
|
|
|
} else {
|
|
|
|
disableMessage = "&7ActionHealth has been &cdisabled&7.";
|
|
|
|
}
|
2017-03-10 18:04:15 +01:00
|
|
|
}
|
|
|
|
}
|