Files
PlayerVaults/src/main/java/com/drtshock/playervaults/Main.java
T

127 lines
3.4 KiB
Java

package com.drtshock.playervaults;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Logger;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import com.drtshock.playervaults.commands.Commands;
import com.drtshock.playervaults.util.Lang;
import com.drtshock.playervaults.util.Metrics;
import com.drtshock.playervaults.util.Updater;
public class Main extends JavaPlugin {
public Main plugin;
public Logger log;
public static boolean update = false;
public static String name = "";
Commands commands;
public static Economy econ = null;
@Override
public void onEnable() {
transferVaults();
loadLang();
log = getServer().getLogger();
getServer().getPluginManager().registerEvents(new Listeners(this), this);
loadConfig();
startMetrics();
if(getConfig().getBoolean("check-update")) {
Updater u = new Updater();
try {
if(u.getUpdate()) {
update = true;
name = u.getNewVersion();
}
} catch (Exception e) {}
}
commands = new Commands();
getCommand("pv").setExecutor(commands);
getCommand("pvdel").setExecutor(commands);
setupEconomy();
}
public void transferVaults() {
File f = new File(getDataFolder(),"vaults.yml");
if(f.exists() && !new File(getDataFolder(), "vaults").exists()) {
YamlConfiguration vaults = YamlConfiguration.loadConfiguration(f);
for(String key:vaults.getKeys(false)) {
YamlConfiguration newPerson = new YamlConfiguration();
for(String key2:vaults.getConfigurationSection(key).getKeys(false)) {
newPerson.set(key2, vaults.getString(key+"."+key2));
}
try {
newPerson.save(new File(getDataFolder()+File.separator+"vaults"+File.separator+key+".yml"));
} catch (IOException e) {
e.printStackTrace();
}
}
getLogger().warning("Found old storage format used! Converting to new format!");
}
}
public void startMetrics() {
try {
Metrics metrics = new Metrics(this);
metrics.start();
} catch (IOException e) {
e.printStackTrace();
}
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
public void loadConfig() {
File config = new File(getDataFolder() + File.separator + "config.yml");
if(!config.exists()) {
saveDefaultConfig();
}
}
public YamlConfiguration loadLang() {
File lang = new File(getDataFolder(), "lang.yml");
if(!lang.exists()) {
try{
getDataFolder().mkdir();
lang.createNewFile();
InputStream defConfigStream = this.getResource("lang.yml");
if (defConfigStream != null) {
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
defConfig.save(lang);
Lang.setFile(defConfig);
return defConfig;
}
} catch (IOException e) {
e.printStackTrace(); //So they notice
log.severe("[PlayerVaults] Couldn't create language file.");
log.severe("[PlayerVaults] This is a fatal error. Now disabling");
this.setEnabled(false); //Without it loaded, we can't send them messages
}
}
YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang);
Lang.setFile(conf);
return conf;
}
}