add locales

This commit is contained in:
okx-code
2018-11-27 17:14:11 +00:00
parent c90dccee0d
commit 861644566d
8 changed files with 313 additions and 548 deletions
+50 -26
View File
@@ -1,6 +1,7 @@
package sh.okx.rankup;
import com.gmail.nossr50.datatypes.skills.SkillType;
import com.google.common.base.Preconditions;
import lombok.Getter;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
@@ -14,11 +15,7 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.InventoryView;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import sh.okx.rankup.commands.InfoCommand;
import sh.okx.rankup.commands.PrestigeCommand;
import sh.okx.rankup.commands.PrestigesCommand;
import sh.okx.rankup.commands.RanksCommand;
import sh.okx.rankup.commands.RankupCommand;
import sh.okx.rankup.commands.*;
import sh.okx.rankup.gui.Gui;
import sh.okx.rankup.gui.GuiListener;
import sh.okx.rankup.messages.EmptyMessageBuilder;
@@ -33,25 +30,22 @@ import sh.okx.rankup.ranks.Rankups;
import sh.okx.rankup.requirements.OperationRegistry;
import sh.okx.rankup.requirements.Requirement;
import sh.okx.rankup.requirements.RequirementRegistry;
import sh.okx.rankup.requirements.operation.AllOperation;
import sh.okx.rankup.requirements.operation.AnyOperation;
import sh.okx.rankup.requirements.operation.NoneOperation;
import sh.okx.rankup.requirements.operation.OneOperation;
import sh.okx.rankup.requirements.requirement.GroupRequirement;
import sh.okx.rankup.requirements.requirement.advancedachievements.AdvancedAchievementsAchievementRequirement;
import sh.okx.rankup.requirements.requirement.advancedachievements.AdvancedAchievementsTotalRequirement;
import sh.okx.rankup.requirements.requirement.mcmmo.McMMOPowerLevelRequirement;
import sh.okx.rankup.requirements.requirement.mcmmo.McMMOSkillRequirement;
import sh.okx.rankup.requirements.requirement.MoneyRequirement;
import sh.okx.rankup.requirements.requirement.PermissionRequirement;
import sh.okx.rankup.requirements.requirement.PlaceholderRequirement;
import sh.okx.rankup.requirements.requirement.PlaytimeMinutesRequirement;
import sh.okx.rankup.requirements.requirement.XpLevelRequirement;
import sh.okx.rankup.requirements.operation.*;
import sh.okx.rankup.requirements.requirement.*;
import sh.okx.rankup.requirements.requirement.advancedachievements.*;
import sh.okx.rankup.requirements.requirement.mcmmo.*;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.WeakHashMap;
import java.util.function.Supplier;
@@ -90,12 +84,16 @@ public class Rankup extends JavaPlugin {
reload();
Metrics metrics = new Metrics(this);
metrics.addCustomChart(new Metrics.SimplePie("confirmation") {
@Override
public String getValue() {
return getConfig().getString("confirmation.type");
metrics.addCustomChart(new Metrics.SimplePie("confirmation",
() -> config.getString("confirmation.type")));
metrics.addCustomChart(new Metrics.AdvancedPie("requirements", () -> {
Map<String, Integer> map = new HashMap<>();
addAll(map, rankups);
if (prestiges != null) {
addAll(map, prestiges);
}
});
return map;
}));
if (config.getBoolean("ranks")) {
getCommand("ranks").setExecutor(new RanksCommand(this));
@@ -136,7 +134,7 @@ public class Rankup extends JavaPlugin {
autoRankup.runTaskTimer(this, time, time);
}
if (config.getInt("version") < 2) {
if (config.getInt("version") < 3) {
getLogger().severe("You are using an outdated config!");
getLogger().severe("This means that some things might not work!");
getLogger().severe("To update, please rename ALL your config files (or the folder they are in),");
@@ -147,6 +145,15 @@ public class Rankup extends JavaPlugin {
}
}
private void addAll(Map<String, Integer> map, RankList<? extends Rank> ranks) {
for (Rank rank : ranks.ranks) {
for (Requirement requirement : rank.getRequirements()) {
String name = requirement.getName();
map.put(name, map.getOrDefault(name, 0) + 1);
}
}
}
/**
* Closes all rankup inventories on disable
* so players cannot grab items from the inventory
@@ -163,8 +170,13 @@ public class Rankup extends JavaPlugin {
}
private void loadConfigs() {
messages = loadConfig("messages.yml");
saveLocales();
config = loadConfig("config.yml");
String locale = config.getString("locale");
File localeFile = new File(new File(getDataFolder(), "locale"), locale + ".yml");
messages = YamlConfiguration.loadConfiguration(localeFile);
Bukkit.getScheduler().scheduleSyncDelayedTask(this, this::refreshRanks);
}
@@ -178,6 +190,18 @@ public class Rankup extends JavaPlugin {
}
}
private void saveLocales() {
saveLocale("en");
}
private void saveLocale(String locale) {
String name = "locale/" + locale + ".yml";
File file = new File(getDataFolder(), name);
if (!file.exists()) {
saveResource("locale/" + locale + ".yml", false);
}
}
private FileConfiguration loadConfig(String name) {
File file = new File(getDataFolder(), name);
if (!file.exists()) {