Dateien nach "src/main/java/pb/ajneb97" hochladen
This commit is contained in:
446
src/main/java/pb/ajneb97/Comando.java
Normal file
446
src/main/java/pb/ajneb97/Comando.java
Normal file
@@ -0,0 +1,446 @@
|
||||
package pb.ajneb97;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import pb.ajneb97.api.Hat;
|
||||
import pb.ajneb97.api.Perk;
|
||||
import pb.ajneb97.database.JugadorDatos;
|
||||
import pb.ajneb97.database.MySQL;
|
||||
import pb.ajneb97.juego.EstadoPartida;
|
||||
import pb.ajneb97.juego.Partida;
|
||||
import pb.ajneb97.juego.PartidaEditando;
|
||||
import pb.ajneb97.managers.Checks;
|
||||
import pb.ajneb97.managers.InventarioAdmin;
|
||||
import pb.ajneb97.managers.InventarioShop;
|
||||
import pb.ajneb97.managers.PartidaManager;
|
||||
import pb.ajneb97.managers.TopHologram;
|
||||
import pb.ajneb97.utils.UtilidadesOtros;
|
||||
|
||||
public class Comando implements CommandExecutor {
|
||||
|
||||
PaintballBattle plugin;
|
||||
public Comando(PaintballBattle plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
FileConfiguration messages = plugin.getMessages();
|
||||
String prefix = ChatColor.translateAlternateColorCodes('&', messages.getString("prefix"))+" ";
|
||||
if (!(sender instanceof Player)){
|
||||
if(args.length >= 1) {
|
||||
if(args[0].equalsIgnoreCase("givecoins")) {
|
||||
// /paintball givecoins <player> <amount>
|
||||
giveCoins(sender,args,messages,prefix);
|
||||
}else if(args[0].equalsIgnoreCase("reload")) {
|
||||
// /paintball reload
|
||||
plugin.reloadConfig();
|
||||
plugin.reloadMessages();
|
||||
plugin.reloadShop();
|
||||
plugin.recargarCarteles();
|
||||
plugin.recargarScoreboard();
|
||||
plugin.recargarHologramas();
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("configReloaded")));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Player jugador = (Player)sender;
|
||||
if(args.length >= 1) {
|
||||
|
||||
if(args[0].equalsIgnoreCase("create")) {
|
||||
// /paintball create <nombre>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if(args.length >= 2) {
|
||||
if(plugin.getPartida(args[1]) == null) {
|
||||
FileConfiguration config = plugin.getConfig();
|
||||
if(!config.contains("MainLobby")) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noMainLobby")));
|
||||
return true;
|
||||
}
|
||||
String equipo1 = "";
|
||||
String equipo2 = "";
|
||||
int i=0;
|
||||
for(String key : config.getConfigurationSection("teams").getKeys(false)) {
|
||||
if(i==0) {
|
||||
equipo1 = key;
|
||||
}else {
|
||||
equipo2 = key;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
Partida partida = new Partida(args[1],Integer.valueOf(config.getString("arena_time_default")),equipo1,equipo2,Integer.valueOf(config.getString("team_starting_lives_default")));
|
||||
plugin.agregarPartida(partida);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaCreated").replace("%name%", args[1])));
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaCreatedExtraInfo").replace("%name%", args[1])));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaAlreadyExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandCreateErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("delete")) {
|
||||
// /paintball delete <nombre>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if(args.length >= 2) {
|
||||
if(plugin.getPartida(args[1]) != null) {
|
||||
plugin.removerPartida(args[1]);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDeleted").replace("%name%", args[1])));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandDeleteErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("reload")) {
|
||||
// /paintball reload
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
plugin.reloadConfig();
|
||||
plugin.reloadMessages();
|
||||
plugin.reloadShop();
|
||||
plugin.recargarCarteles();
|
||||
plugin.recargarScoreboard();
|
||||
plugin.recargarHologramas();
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("configReloaded")));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("setmainlobby")) {
|
||||
// /paintball setmainlobby
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
FileConfiguration config = plugin.getConfig();
|
||||
|
||||
Location l = jugador.getLocation();
|
||||
config.set("MainLobby.x", l.getX()+"");
|
||||
config.set("MainLobby.y", l.getY()+"");
|
||||
config.set("MainLobby.z", l.getZ()+"");
|
||||
config.set("MainLobby.world", l.getWorld().getName());
|
||||
config.set("MainLobby.pitch", l.getPitch());
|
||||
config.set("MainLobby.yaw", l.getYaw());
|
||||
plugin.saveConfig();
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("mainLobbyDefined")));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("join")) {
|
||||
// /paintball join <arena>
|
||||
if(!Checks.checkTodo(plugin, jugador)) {
|
||||
return false;
|
||||
}
|
||||
if(args.length >= 2) {
|
||||
Partida partida = plugin.getPartida(args[1]);
|
||||
if(partida != null) {
|
||||
if(partida.estaActivada()) {
|
||||
if(plugin.getPartidaJugador(jugador.getName()) == null) {
|
||||
if(!partida.estaIniciada()) {
|
||||
if(!partida.estaLlena()) {
|
||||
if(!UtilidadesOtros.pasaConfigInventario(jugador, plugin.getConfig())) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("errorClearInventory")));
|
||||
return true;
|
||||
}
|
||||
PartidaManager.jugadorEntra(partida, jugador,plugin);
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaIsFull")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaAlreadyStarted")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("alreadyInArena")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDisabledError")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandJoinErrorUse")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("joinrandom")) {
|
||||
// /paintball joinrandom
|
||||
if(plugin.getPartidaJugador(jugador.getName()) == null) {
|
||||
Partida partidaNueva = PartidaManager.getPartidaDisponible(plugin);
|
||||
if(partidaNueva == null) {
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&', messages.getString("noArenasAvailable")));
|
||||
}else {
|
||||
PartidaManager.jugadorEntra(partidaNueva, jugador, plugin);
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("alreadyInArena")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("leave")) {
|
||||
// /paintball leave
|
||||
Partida partida = plugin.getPartidaJugador(jugador.getName());
|
||||
if(partida != null) {
|
||||
PartidaManager.jugadorSale(partida, jugador, false, plugin, false);;
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("notInAGame")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("shop")) {
|
||||
// /paintball shop
|
||||
if(!Checks.checkTodo(plugin, jugador)) {
|
||||
return false;
|
||||
}
|
||||
InventarioShop.crearInventarioPrincipal(jugador, plugin);
|
||||
}else if(args[0].equalsIgnoreCase("enable")) {
|
||||
// /paintball enable <arena>
|
||||
//Para activar una arena todo debe estar definido
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if(args.length >= 2) {
|
||||
Partida partida = plugin.getPartida(args[1]);
|
||||
if(partida != null) {
|
||||
if(partida.estaActivada()) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaAlreadyEnabled")));
|
||||
}else {
|
||||
if(partida.getLobby() == null) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("enableArenaLobbyError")));
|
||||
return true;
|
||||
}
|
||||
if(partida.getTeam1().getSpawn() == null) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("enableArenaSpawnError").replace("%number%", "1")));
|
||||
return true;
|
||||
}
|
||||
if(partida.getTeam2().getSpawn() == null) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("enableArenaSpawnError").replace("%number%", "2")));
|
||||
return true;
|
||||
}
|
||||
|
||||
partida.setEstado(EstadoPartida.ESPERANDO);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaEnabled").replace("%name%", args[1])));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandEnableErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("disable")) {
|
||||
// /paintball disable <arena>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if(args.length >= 2) {
|
||||
Partida partida = plugin.getPartida(args[1]);
|
||||
if(partida != null) {
|
||||
if(!partida.estaActivada()) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaAlreadyDisabled")));
|
||||
}else {
|
||||
partida.setEstado(EstadoPartida.DESACTIVADA);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDisabled").replace("%name%", args[1])));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandDisableErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("edit")) {
|
||||
// /paintball edit <arena>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if(!Checks.checkTodo(plugin, jugador)) {
|
||||
return false;
|
||||
}
|
||||
if(args.length >= 2) {
|
||||
Partida partida = plugin.getPartida(args[1]);
|
||||
if(partida != null) {
|
||||
if(!partida.estaActivada()) {
|
||||
PartidaEditando p = plugin.getPartidaEditando();
|
||||
if(p == null) {
|
||||
|
||||
InventarioAdmin.crearInventario(jugador,partida,plugin);
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaModifyingError")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaMustBeDisabled")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("arenaDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandAdminErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("createtophologram")) {
|
||||
// /paintball createtophologram <name> kills/wins <global/monthly/weekly>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if (plugin.getServer().getPluginManager().getPlugin("DecentHolograms") == null) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', "&cYou need DecentHolograms plugin to use this feature."));
|
||||
return true;
|
||||
}
|
||||
if(args.length >= 3) {
|
||||
if(args[2].equalsIgnoreCase("kills") || args[2].equalsIgnoreCase("wins")) {
|
||||
TopHologram topHologram = plugin.getTopHologram(args[1]);
|
||||
if(topHologram == null) {
|
||||
String period = "global";
|
||||
if(args.length >= 4) {
|
||||
period = args[3];
|
||||
}
|
||||
if(period.equalsIgnoreCase("global") || period.equalsIgnoreCase("monthly") || period.equalsIgnoreCase("weekly")) {
|
||||
if(!MySQL.isEnabled(plugin.getConfig()) && (period.equalsIgnoreCase("monthly") || period.equalsIgnoreCase("weekly"))) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("topHologramPeriodSQLError")));
|
||||
return true;
|
||||
}
|
||||
TopHologram hologram = new TopHologram(args[1],args[2],jugador.getLocation(),plugin,period);
|
||||
plugin.agregarTopHolograma(hologram);
|
||||
hologram.spawnHologram(plugin);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("topHologramCreated")));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandCreateHologramErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("topHologramAlreadyExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandCreateHologramErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandCreateHologramErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("removetophologram")) {
|
||||
// /paintball removetophologram <name>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
if (plugin.getServer().getPluginManager().getPlugin("DecentHolograms") == null) {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', "&cYou need DecentHolograms plugin to use this feature."));
|
||||
return true;
|
||||
}
|
||||
if(args.length >= 2) {
|
||||
TopHologram topHologram = plugin.getTopHologram(args[1]);
|
||||
if(topHologram != null) {
|
||||
plugin.eliminarTopHologama(args[1]);
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("topHologramRemoved")));
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("topHologramDoesNotExists")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandRemoveHologramErrorUse")));
|
||||
}
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}else if(args[0].equalsIgnoreCase("givecoins")) {
|
||||
// /paintball givecoins <player> <amount>
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
giveCoins(sender,args,messages,prefix);
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}
|
||||
else {
|
||||
// /paintball help /o cualquier otro comando
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
enviarAyuda(jugador);
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
|
||||
}
|
||||
}else {
|
||||
if(jugador.isOp() || jugador.hasPermission("paintball.admin")) {
|
||||
enviarAyuda(jugador);
|
||||
}else {
|
||||
jugador.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("noPermissions")));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public boolean giveCoins(CommandSender sender, String[] args, FileConfiguration messages, String prefix) {
|
||||
if(args.length >= 3) {
|
||||
String player = args[1];
|
||||
try {
|
||||
int amount = Integer.valueOf(args[2]);
|
||||
//Si el jugador no esta en la base de datos, o en un archivo, DEBE estar conectado para darle coins.
|
||||
if(MySQL.isEnabled(plugin.getConfig())) {
|
||||
if(MySQL.jugadorExiste(plugin, player)) {
|
||||
MySQL.agregarCoinsJugadorAsync(plugin, player, amount);
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("giveCoinsMessage").replace("%player%", player).replace("%amount%", amount+"")));
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if(p != null) {
|
||||
p.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("receiveCoinsMessage").replace("%amount%", amount+"")));
|
||||
}
|
||||
}else {
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if(p != null) {
|
||||
MySQL.crearJugadorPartidaAsync(plugin, p.getUniqueId().toString(), p.getName(), "", 0, 0, 0, 0, amount, 1);
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("giveCoinsMessage").replace("%player%", player).replace("%amount%", amount+"")));
|
||||
p.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("receiveCoinsMessage").replace("%amount%", amount+"")));
|
||||
}else {
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("errorPlayerOnline")));
|
||||
}
|
||||
}
|
||||
}else {
|
||||
Player p = Bukkit.getPlayer(player);
|
||||
if(p != null) {
|
||||
plugin.registerPlayer(p.getUniqueId().toString()+".yml");
|
||||
if(plugin.getJugador(p.getName()) == null) {
|
||||
plugin.agregarJugadorDatos(new JugadorDatos(p.getName(),p.getUniqueId().toString(),0,0,0,0,0,new ArrayList<Perk>(),new ArrayList<Hat>()));
|
||||
}
|
||||
JugadorDatos jDatos = plugin.getJugador(p.getName());
|
||||
jDatos.aumentarCoins(amount);
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("giveCoinsMessage").replace("%player%", player).replace("%amount%", amount+"")));
|
||||
p.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("receiveCoinsMessage").replace("%amount%", amount+"")));
|
||||
}else {
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("errorPlayerOnline")));
|
||||
}
|
||||
}
|
||||
|
||||
}catch(NumberFormatException e) {
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("validNumberError")));
|
||||
}
|
||||
|
||||
}else {
|
||||
sender.sendMessage(prefix+ChatColor.translateAlternateColorCodes('&', messages.getString("commandGiveCoinsErrorUse")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void enviarAyuda(Player jugador) {
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&7[ [ &4[&fPaintball Battle&4] &7] ]"));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',""));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball create <arena> &8Creates a new arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball delete <arena> &8Deletes an arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball join <arena> &8Joins an arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball joinrandom &8Joins a random arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball leave &8Leaves from the arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball shop &8Opens the Paintball Shop."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball givecoins <player> <amount>"));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball setmainlobby &8Defines the minigame main lobby."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball enable <arena> &8Enables an arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball disable <arena> &8Disables an arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball edit <arena> &8Edit the properties of an arena."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball createtophologram <name> <kills/wins> <global/monthly/weekly>"));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball removetophologram <name>"));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&6/paintball reload &8Reloads the configuration files."));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',""));
|
||||
jugador.sendMessage(ChatColor.translateAlternateColorCodes('&',"&7[ [ &4[&fPaintball Battle&4] &7] ]"));
|
||||
}
|
||||
}
|
73
src/main/java/pb/ajneb97/ComandoTabCompleter.java
Normal file
73
src/main/java/pb/ajneb97/ComandoTabCompleter.java
Normal file
@@ -0,0 +1,73 @@
|
||||
package pb.ajneb97;
|
||||
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ComandoTabCompleter implements TabCompleter {
|
||||
|
||||
private final PaintballBattle plugin;
|
||||
|
||||
public ComandoTabCompleter(PaintballBattle plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (!cmd.getName().equalsIgnoreCase("paintball")) return Collections.emptyList();
|
||||
|
||||
if (args.length == 1) {
|
||||
List<String> sub = new ArrayList<>();
|
||||
sub.add("join");
|
||||
sub.add("joinrandom");
|
||||
sub.add("leave");
|
||||
sub.add("shop");
|
||||
sub.add("create");
|
||||
sub.add("delete");
|
||||
sub.add("enable");
|
||||
sub.add("disable");
|
||||
sub.add("edit");
|
||||
sub.add("setmainlobby");
|
||||
sub.add("createtophologram");
|
||||
sub.add("removetophologram");
|
||||
sub.add("givecoins");
|
||||
sub.add("reload");
|
||||
return sub.stream().filter(s -> s.startsWith(args[0].toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
if (args.length == 2) {
|
||||
// Bei join, delete, enable, disable, edit → Arenanamen
|
||||
if (args[0].equalsIgnoreCase("join") ||
|
||||
args[0].equalsIgnoreCase("delete") ||
|
||||
args[0].equalsIgnoreCase("enable") ||
|
||||
args[0].equalsIgnoreCase("disable") ||
|
||||
args[0].equalsIgnoreCase("edit")) {
|
||||
List<String> arenaNames = plugin.getPartidas().stream()
|
||||
.map(p -> p.getNombre())
|
||||
.collect(Collectors.toList());
|
||||
return arenaNames.stream().filter(a -> a.toLowerCase().startsWith(args[1].toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
// Bei createtophologram/removetophologram → Name vorschlagen (optional)
|
||||
}
|
||||
|
||||
// Bei createtophologram: Vorschläge für kills/wins, global/monthly/weekly
|
||||
if (args.length == 3 && args[0].equalsIgnoreCase("createtophologram")) {
|
||||
List<String> stats = new ArrayList<>();
|
||||
stats.add("kills"); stats.add("wins");
|
||||
return stats.stream().filter(s -> s.startsWith(args[2].toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
if (args.length == 4 && args[0].equalsIgnoreCase("createtophologram")) {
|
||||
List<String> periods = new ArrayList<>();
|
||||
periods.add("global"); periods.add("monthly"); periods.add("weekly");
|
||||
return periods.stream().filter(s -> s.startsWith(args[3].toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
901
src/main/java/pb/ajneb97/PaintballBattle.java
Normal file
901
src/main/java/pb/ajneb97/PaintballBattle.java
Normal file
@@ -0,0 +1,901 @@
|
||||
package pb.ajneb97;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import pb.ajneb97.api.ExpansionPaintballBattle;
|
||||
import pb.ajneb97.api.Hat;
|
||||
import pb.ajneb97.api.PaintballAPI;
|
||||
import pb.ajneb97.api.Perk;
|
||||
import pb.ajneb97.database.ConexionDatabase;
|
||||
import pb.ajneb97.database.JugadorDatos;
|
||||
import pb.ajneb97.database.MySQL;
|
||||
import pb.ajneb97.juego.EstadoPartida;
|
||||
import pb.ajneb97.juego.JugadorPaintball;
|
||||
import pb.ajneb97.juego.Partida;
|
||||
import pb.ajneb97.juego.PartidaEditando;
|
||||
import pb.ajneb97.managers.Actualizacion;
|
||||
import pb.ajneb97.managers.CartelesAdmin;
|
||||
import pb.ajneb97.managers.CartelesListener;
|
||||
import pb.ajneb97.managers.Checks;
|
||||
import pb.ajneb97.managers.CooldownKillstreaksActionbar;
|
||||
import pb.ajneb97.managers.InventarioAdmin;
|
||||
import pb.ajneb97.managers.InventarioHats;
|
||||
import pb.ajneb97.managers.InventarioShop;
|
||||
import pb.ajneb97.managers.PartidaListener;
|
||||
import pb.ajneb97.managers.PartidaListenerNew;
|
||||
import pb.ajneb97.managers.PartidaManager;
|
||||
import pb.ajneb97.managers.ScoreboardAdmin;
|
||||
import pb.ajneb97.managers.TopHologram;
|
||||
import pb.ajneb97.managers.TopHologramAdmin;
|
||||
import pb.ajneb97.utils.ServerVersion;
|
||||
|
||||
|
||||
public class PaintballBattle extends JavaPlugin {
|
||||
|
||||
PluginDescriptionFile pdfFile = getDescription();
|
||||
public String version = pdfFile.getVersion();
|
||||
public static String prefix = ChatColor.translateAlternateColorCodes('&', "&8[&b&lPaintball Battle&8] ");
|
||||
private ArrayList<Partida> partidas;
|
||||
private FileConfiguration arenas = null;
|
||||
private File arenasFile = null;
|
||||
private FileConfiguration messages = null;
|
||||
private File messagesFile = null;
|
||||
private FileConfiguration shop = null;
|
||||
private File shopFile = null;
|
||||
private PartidaEditando partidaEditando;
|
||||
private ArrayList<PlayerConfig> configPlayers;
|
||||
private ArrayList<JugadorDatos> jugadoresDatos;
|
||||
private ArrayList<TopHologram> topHologramas;
|
||||
private FileConfiguration holograms = null;
|
||||
private File hologramsFile = null;
|
||||
private static Economy econ = null;
|
||||
public boolean primeraVez = false;
|
||||
public String latestversion;
|
||||
|
||||
public String rutaMessages;
|
||||
public String rutaConfig;
|
||||
|
||||
private ScoreboardAdmin scoreboardTask;
|
||||
private CartelesAdmin cartelesTask;
|
||||
private TopHologramAdmin hologramasTask;
|
||||
|
||||
private ConexionDatabase conexionDatabase;
|
||||
|
||||
|
||||
public static ServerVersion serverVersion;
|
||||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public void onEnable(){
|
||||
setVersion();
|
||||
configPlayers = new ArrayList<PlayerConfig>();
|
||||
jugadoresDatos = new ArrayList<JugadorDatos>();
|
||||
topHologramas = new ArrayList<TopHologram>();
|
||||
registerEvents();
|
||||
registerArenas();
|
||||
registerConfig();
|
||||
registerHolograms();
|
||||
registerMessages();
|
||||
createPlayersFolder();
|
||||
registerPlayers();
|
||||
registerShop();
|
||||
cargarPartidas();
|
||||
registerCommands();
|
||||
checkMessagesUpdate();
|
||||
|
||||
cargarJugadores();
|
||||
setupEconomy();
|
||||
|
||||
if(MySQL.isEnabled(getConfig())){
|
||||
conexionDatabase = new ConexionDatabase(getConfig());
|
||||
}
|
||||
|
||||
scoreboardTask = new ScoreboardAdmin(this);
|
||||
scoreboardTask.crearScoreboards();
|
||||
cartelesTask = new CartelesAdmin(this);
|
||||
cartelesTask.actualizarCarteles();
|
||||
CooldownKillstreaksActionbar c = new CooldownKillstreaksActionbar(this);
|
||||
c.crearActionbars();
|
||||
|
||||
cargarTopHologramas();
|
||||
hologramasTask = new TopHologramAdmin(this);
|
||||
hologramasTask.actualizarHologramas();
|
||||
|
||||
PaintballAPI api = new PaintballAPI(this);
|
||||
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null){
|
||||
new ExpansionPaintballBattle(this).register();
|
||||
}
|
||||
|
||||
Checks.checkearYModificar(this, primeraVez);
|
||||
Bukkit.getConsoleSender().sendMessage(prefix+ChatColor.YELLOW + "Has been enabled! " + ChatColor.WHITE + "Version: " + version);
|
||||
Bukkit.getConsoleSender().sendMessage(prefix+ChatColor.YELLOW + "Thanks for using my plugin! " + ChatColor.WHITE + "~Ajneb97");
|
||||
updateChecker();
|
||||
}
|
||||
|
||||
public void onDisable(){
|
||||
if(partidas != null) {
|
||||
for(int i=0;i<partidas.size();i++) {
|
||||
if(!partidas.get(i).getEstado().equals(EstadoPartida.DESACTIVADA)) {
|
||||
PartidaManager.finalizarPartida(partidas.get(i),this,true,null);
|
||||
}
|
||||
}
|
||||
}
|
||||
guardarPartidas();
|
||||
guardarJugadores();
|
||||
guardarTopHologramas();
|
||||
|
||||
Bukkit.getConsoleSender().sendMessage(prefix+ChatColor.YELLOW + "Has been disabled! " + ChatColor.WHITE + "Version: " + version);
|
||||
}
|
||||
|
||||
public void setVersion(){
|
||||
String packageName = Bukkit.getServer().getClass().getPackage().getName();
|
||||
String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0];
|
||||
switch(bukkitVersion){
|
||||
case "1.20.5":
|
||||
case "1.20.6":
|
||||
serverVersion = ServerVersion.v1_20_R4;
|
||||
break;
|
||||
case "1.21":
|
||||
case "1.21.1":
|
||||
case "1.21.4":
|
||||
case "1.21.5":
|
||||
serverVersion = ServerVersion.v1_21_R1;
|
||||
break;
|
||||
default:
|
||||
//serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", ""));
|
||||
serverVersion = ServerVersion.detect();
|
||||
}
|
||||
}
|
||||
|
||||
public void recargarScoreboard() {
|
||||
int taskID = scoreboardTask.getTaskID();
|
||||
Bukkit.getScheduler().cancelTask(taskID);
|
||||
scoreboardTask = new ScoreboardAdmin(this);
|
||||
scoreboardTask.crearScoreboards();
|
||||
}
|
||||
|
||||
public void recargarCarteles() {
|
||||
int taskID = cartelesTask.getTaskID();
|
||||
Bukkit.getScheduler().cancelTask(taskID);
|
||||
cartelesTask = new CartelesAdmin(this);
|
||||
cartelesTask.actualizarCarteles();
|
||||
}
|
||||
|
||||
public void recargarHologramas() {
|
||||
int taskID = hologramasTask.getTaskID();
|
||||
Bukkit.getScheduler().cancelTask(taskID);
|
||||
hologramasTask = new TopHologramAdmin(this);
|
||||
hologramasTask.actualizarHologramas();
|
||||
}
|
||||
|
||||
public void setPartidaEditando(PartidaEditando p) {
|
||||
this.partidaEditando = p;
|
||||
}
|
||||
|
||||
public void removerPartidaEditando() {
|
||||
this.partidaEditando = null;
|
||||
}
|
||||
|
||||
public PartidaEditando getPartidaEditando() {
|
||||
return this.partidaEditando;
|
||||
}
|
||||
|
||||
public ConexionDatabase getConexionDatabase() {
|
||||
return this.conexionDatabase;
|
||||
}
|
||||
|
||||
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 Economy getEconomy(){
|
||||
return econ;
|
||||
}
|
||||
|
||||
public void registerEvents(){
|
||||
PluginManager pm = getServer().getPluginManager();
|
||||
pm.registerEvents(new PartidaListener(this), this);
|
||||
if(!Bukkit.getVersion().contains("1.8")) {
|
||||
pm.registerEvents(new PartidaListenerNew(this), this);
|
||||
}
|
||||
pm.registerEvents(new CartelesListener(this), this);
|
||||
pm.registerEvents(new InventarioAdmin(this), this);
|
||||
pm.registerEvents(new InventarioShop(this), this);
|
||||
pm.registerEvents(new InventarioHats(this), this);
|
||||
pm.registerEvents(new Actualizacion(this), this);
|
||||
}
|
||||
|
||||
public void registerCommands(){
|
||||
this.getCommand("paintball").setExecutor(new Comando(this));
|
||||
this.getCommand("paintball").setTabCompleter(new ComandoTabCompleter(this)); // TabCompleter hinzufügen
|
||||
}
|
||||
|
||||
public Partida getPartidaJugador(String jugador) {
|
||||
for(int i=0;i<partidas.size();i++) {
|
||||
ArrayList<JugadorPaintball> jugadores = partidas.get(i).getJugadores();
|
||||
for(int c=0;c<jugadores.size();c++) {
|
||||
if(jugadores.get(c).getJugador().getName().equals(jugador)) {
|
||||
return partidas.get(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<Partida> getPartidas() {
|
||||
return this.partidas;
|
||||
}
|
||||
|
||||
public Partida getPartida(String nombre) {
|
||||
for(int i=0;i<partidas.size();i++) {
|
||||
if(partidas.get(i).getNombre().equals(nombre)) {
|
||||
return partidas.get(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void agregarPartida(Partida partida) {
|
||||
this.partidas.add(partida);
|
||||
}
|
||||
|
||||
public void removerPartida(String nombre) {
|
||||
for(int i=0;i<partidas.size();i++) {
|
||||
if(partidas.get(i).getNombre().equals(nombre)) {
|
||||
partidas.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarPartidas() {
|
||||
this.partidas = new ArrayList<Partida>();
|
||||
FileConfiguration arenas = getArenas();
|
||||
if(arenas.contains("Arenas")) {
|
||||
for(String key : arenas.getConfigurationSection("Arenas").getKeys(false)) {
|
||||
int min_players = Integer.valueOf(arenas.getString("Arenas."+key+".min_players"));
|
||||
int max_players = Integer.valueOf(arenas.getString("Arenas."+key+".max_players"));
|
||||
int time = Integer.valueOf(arenas.getString("Arenas."+key+".time"));
|
||||
int vidas = Integer.valueOf(arenas.getString("Arenas."+key+".lives"));
|
||||
|
||||
Location lLobby = null;
|
||||
if(arenas.contains("Arenas."+key+".Lobby")) {
|
||||
double xLobby = Double.valueOf(arenas.getString("Arenas."+key+".Lobby.x"));
|
||||
double yLobby = Double.valueOf(arenas.getString("Arenas."+key+".Lobby.y"));
|
||||
double zLobby = Double.valueOf(arenas.getString("Arenas."+key+".Lobby.z"));
|
||||
String worldLobby = arenas.getString("Arenas."+key+".Lobby.world");
|
||||
float pitchLobby = Float.valueOf(arenas.getString("Arenas."+key+".Lobby.pitch"));
|
||||
float yawLobby = Float.valueOf(arenas.getString("Arenas."+key+".Lobby.yaw"));
|
||||
lLobby = new Location(Bukkit.getWorld(worldLobby),xLobby,yLobby,zLobby,yawLobby,pitchLobby);
|
||||
}
|
||||
|
||||
|
||||
String nombreTeam1 = arenas.getString("Arenas."+key+".Team1.name");
|
||||
|
||||
Location lSpawnTeam1 = null;
|
||||
if(arenas.contains("Arenas."+key+".Team1.Spawn")) {
|
||||
double xSpawnTeam1 = Double.valueOf(arenas.getString("Arenas."+key+".Team1.Spawn.x"));
|
||||
double ySpawnTeam1 = Double.valueOf(arenas.getString("Arenas."+key+".Team1.Spawn.y"));
|
||||
double zSpawnTeam1 = Double.valueOf(arenas.getString("Arenas."+key+".Team1.Spawn.z"));
|
||||
String worldSpawnTeam1 = arenas.getString("Arenas."+key+".Team1.Spawn.world");
|
||||
float pitchSpawnTeam1 = Float.valueOf(arenas.getString("Arenas."+key+".Team1.Spawn.pitch"));
|
||||
float yawSpawnTeam1 = Float.valueOf(arenas.getString("Arenas."+key+".Team1.Spawn.yaw"));
|
||||
lSpawnTeam1 = new Location(Bukkit.getWorld(worldSpawnTeam1),xSpawnTeam1,ySpawnTeam1,zSpawnTeam1,yawSpawnTeam1,pitchSpawnTeam1);
|
||||
}
|
||||
|
||||
|
||||
String nombreTeam2 = arenas.getString("Arenas."+key+".Team2.name");
|
||||
Location lSpawnTeam2 = null;
|
||||
if(arenas.contains("Arenas."+key+".Team2.Spawn")) {
|
||||
double xSpawnTeam2 = Double.valueOf(arenas.getString("Arenas."+key+".Team2.Spawn.x"));
|
||||
double ySpawnTeam2 = Double.valueOf(arenas.getString("Arenas."+key+".Team2.Spawn.y"));
|
||||
double zSpawnTeam2 = Double.valueOf(arenas.getString("Arenas."+key+".Team2.Spawn.z"));
|
||||
String worldSpawnTeam2 = arenas.getString("Arenas."+key+".Team2.Spawn.world");
|
||||
float pitchSpawnTeam2 = Float.valueOf(arenas.getString("Arenas."+key+".Team2.Spawn.pitch"));
|
||||
float yawSpawnTeam2 = Float.valueOf(arenas.getString("Arenas."+key+".Team2.Spawn.yaw"));
|
||||
lSpawnTeam2 = new Location(Bukkit.getWorld(worldSpawnTeam2),xSpawnTeam2,ySpawnTeam2,zSpawnTeam2,yawSpawnTeam2,pitchSpawnTeam2);
|
||||
}
|
||||
|
||||
Partida partida = new Partida(key,time,nombreTeam1,nombreTeam2,vidas);
|
||||
if(nombreTeam1.equalsIgnoreCase("random")) {
|
||||
partida.getTeam1().setRandom(true);
|
||||
}
|
||||
if(nombreTeam2.equalsIgnoreCase("random")) {
|
||||
partida.getTeam2().setRandom(true);
|
||||
}
|
||||
partida.modificarTeams(getConfig());
|
||||
partida.setCantidadMaximaJugadores(max_players);
|
||||
partida.setCantidadMinimaJugadores(min_players);
|
||||
partida.setLobby(lLobby);
|
||||
partida.getTeam1().setSpawn(lSpawnTeam1);
|
||||
partida.getTeam2().setSpawn(lSpawnTeam2);
|
||||
String enabled = arenas.getString("Arenas."+key+".enabled");
|
||||
if(enabled.equals("true")) {
|
||||
partida.setEstado(EstadoPartida.ESPERANDO);
|
||||
}else {
|
||||
partida.setEstado(EstadoPartida.DESACTIVADA);
|
||||
}
|
||||
|
||||
this.partidas.add(partida);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void guardarPartidas() {
|
||||
FileConfiguration arenas = getArenas();
|
||||
arenas.set("Arenas", null);
|
||||
for(Partida p : this.partidas) {
|
||||
String nombre = p.getNombre();
|
||||
arenas.set("Arenas."+nombre+".min_players", p.getCantidadMinimaJugadores()+"");
|
||||
arenas.set("Arenas."+nombre+".max_players", p.getCantidadMaximaJugadores()+"");
|
||||
arenas.set("Arenas."+nombre+".time", p.getTiempoMaximo()+"");
|
||||
arenas.set("Arenas."+nombre+".lives", p.getVidasIniciales()+"");
|
||||
Location lLobby = p.getLobby();
|
||||
if(lLobby != null) {
|
||||
arenas.set("Arenas."+nombre+".Lobby.x", lLobby.getX()+"");
|
||||
arenas.set("Arenas."+nombre+".Lobby.y", lLobby.getY()+"");
|
||||
arenas.set("Arenas."+nombre+".Lobby.z", lLobby.getZ()+"");
|
||||
arenas.set("Arenas."+nombre+".Lobby.world", lLobby.getWorld().getName());
|
||||
arenas.set("Arenas."+nombre+".Lobby.pitch", lLobby.getPitch());
|
||||
arenas.set("Arenas."+nombre+".Lobby.yaw", lLobby.getYaw());
|
||||
}
|
||||
|
||||
Location lSpawnTeam1 = p.getTeam1().getSpawn();
|
||||
if(lSpawnTeam1 != null) {
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.x", lSpawnTeam1.getX()+"");
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.y", lSpawnTeam1.getY()+"");
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.z", lSpawnTeam1.getZ()+"");
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.world", lSpawnTeam1.getWorld().getName());
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.pitch", lSpawnTeam1.getPitch());
|
||||
arenas.set("Arenas."+nombre+".Team1.Spawn.yaw", lSpawnTeam1.getYaw());
|
||||
}
|
||||
if(p.getTeam1().esRandom()) {
|
||||
arenas.set("Arenas."+nombre+".Team1.name", "random");
|
||||
}else {
|
||||
arenas.set("Arenas."+nombre+".Team1.name", p.getTeam1().getTipo());
|
||||
}
|
||||
|
||||
|
||||
Location lSpawnTeam2 = p.getTeam2().getSpawn();
|
||||
if(lSpawnTeam2 != null) {
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.x", lSpawnTeam2.getX()+"");
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.y", lSpawnTeam2.getY()+"");
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.z", lSpawnTeam2.getZ()+"");
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.world", lSpawnTeam2.getWorld().getName());
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.pitch", lSpawnTeam2.getPitch());
|
||||
arenas.set("Arenas."+nombre+".Team2.Spawn.yaw", lSpawnTeam2.getYaw());
|
||||
}
|
||||
if(p.getTeam2().esRandom()) {
|
||||
arenas.set("Arenas."+nombre+".Team2.name", "random");
|
||||
}else {
|
||||
arenas.set("Arenas."+nombre+".Team2.name", p.getTeam2().getTipo());
|
||||
}
|
||||
|
||||
if(p.getEstado().equals(EstadoPartida.DESACTIVADA)) {
|
||||
arenas.set("Arenas."+nombre+".enabled", "false");
|
||||
}else {
|
||||
arenas.set("Arenas."+nombre+".enabled", "true");
|
||||
}
|
||||
}
|
||||
this.saveArenas();
|
||||
}
|
||||
|
||||
public void registerArenas(){
|
||||
arenasFile = new File(this.getDataFolder(), "arenas.yml");
|
||||
if(!arenasFile.exists()){
|
||||
this.getArenas().options().copyDefaults(true);
|
||||
saveArenas();
|
||||
}
|
||||
}
|
||||
public void saveArenas() {
|
||||
try {
|
||||
arenas.save(arenasFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getArenas() {
|
||||
if (arenas == null) {
|
||||
reloadArenas();
|
||||
}
|
||||
return arenas;
|
||||
}
|
||||
|
||||
public void reloadArenas() {
|
||||
if (arenas == null) {
|
||||
arenasFile = new File(getDataFolder(), "arenas.yml");
|
||||
}
|
||||
arenas = YamlConfiguration.loadConfiguration(arenasFile);
|
||||
|
||||
Reader defConfigStream;
|
||||
try {
|
||||
defConfigStream = new InputStreamReader(this.getResource("arenas.yml"), "UTF8");
|
||||
if (defConfigStream != null) {
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
|
||||
arenas.setDefaults(defConfig);
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void registerConfig(){
|
||||
File config = new File(this.getDataFolder(), "config.yml");
|
||||
rutaConfig = config.getPath();
|
||||
if(!config.exists()){
|
||||
this.primeraVez = true;
|
||||
this.getConfig().options().copyDefaults(true);
|
||||
saveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public void registerShop(){
|
||||
shopFile = new File(this.getDataFolder(), "shop.yml");
|
||||
if(!shopFile.exists()){
|
||||
this.getShop().options().copyDefaults(true);
|
||||
saveShop();
|
||||
}
|
||||
}
|
||||
|
||||
public void saveShop() {
|
||||
try {
|
||||
shop.save(shopFile);
|
||||
}catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getShop() {
|
||||
if (shop == null) {
|
||||
reloadShop();
|
||||
}
|
||||
return shop;
|
||||
}
|
||||
|
||||
public void reloadShop() {
|
||||
if (shop == null) {
|
||||
shopFile = new File(getDataFolder(), "shop.yml");
|
||||
}
|
||||
shop = YamlConfiguration.loadConfiguration(shopFile);
|
||||
Reader defConfigStream;
|
||||
try {
|
||||
defConfigStream = new InputStreamReader(this.getResource("shop.yml"), "UTF8");
|
||||
if (defConfigStream != null) {
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
|
||||
shop.setDefaults(defConfig);
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void registerMessages(){
|
||||
messagesFile = new File(this.getDataFolder(), "messages.yml");
|
||||
rutaMessages = messagesFile.getPath();
|
||||
if(!messagesFile.exists()){
|
||||
this.getMessages().options().copyDefaults(true);
|
||||
saveMessages();
|
||||
}
|
||||
}
|
||||
|
||||
public void saveMessages() {
|
||||
try {
|
||||
messages.save(messagesFile);
|
||||
}catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getMessages() {
|
||||
if (messages == null) {
|
||||
reloadMessages();
|
||||
}
|
||||
return messages;
|
||||
}
|
||||
|
||||
public void reloadMessages() {
|
||||
if (messages == null) {
|
||||
messagesFile = new File(getDataFolder(), "messages.yml");
|
||||
}
|
||||
messages = YamlConfiguration.loadConfiguration(messagesFile);
|
||||
Reader defConfigStream;
|
||||
try {
|
||||
defConfigStream = new InputStreamReader(this.getResource("messages.yml"), "UTF8");
|
||||
if (defConfigStream != null) {
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
|
||||
messages.setDefaults(defConfig);
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void createPlayersFolder(){
|
||||
File folder;
|
||||
try {
|
||||
folder = new File(this.getDataFolder() + File.separator + "players");
|
||||
if(!folder.exists()){
|
||||
folder.mkdirs();
|
||||
}
|
||||
} catch(SecurityException e) {
|
||||
folder = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void savePlayers() {
|
||||
for(int i=0;i<configPlayers.size();i++) {
|
||||
configPlayers.get(i).savePlayerConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public void registerPlayers(){
|
||||
String path = this.getDataFolder() + File.separator + "players";
|
||||
File folder = new File(path);
|
||||
File[] listOfFiles = folder.listFiles();
|
||||
for (int i=0;i<listOfFiles.length;i++) {
|
||||
if(listOfFiles[i].isFile()) {
|
||||
String pathName = listOfFiles[i].getName();
|
||||
PlayerConfig config = new PlayerConfig(pathName,this);
|
||||
config.registerPlayerConfig();
|
||||
configPlayers.add(config);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<PlayerConfig> getConfigPlayers(){
|
||||
return this.configPlayers;
|
||||
}
|
||||
|
||||
public boolean archivoYaRegistrado(String pathName) {
|
||||
for(int i=0;i<configPlayers.size();i++) {
|
||||
if(configPlayers.get(i).getPath().equals(pathName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public PlayerConfig getPlayerConfig(String pathName) {
|
||||
for(int i=0;i<configPlayers.size();i++) {
|
||||
if(configPlayers.get(i).getPath().equals(pathName)) {
|
||||
return configPlayers.get(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public ArrayList<PlayerConfig> getPlayerConfigs() {
|
||||
return this.configPlayers;
|
||||
}
|
||||
|
||||
public boolean registerPlayer(String pathName) {
|
||||
if(!archivoYaRegistrado(pathName)) {
|
||||
PlayerConfig config = new PlayerConfig(pathName,this);
|
||||
config.registerPlayerConfig();
|
||||
configPlayers.add(config);
|
||||
return true;
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void removerConfigPlayer(String path) {
|
||||
for(int i=0;i<configPlayers.size();i++) {
|
||||
if(configPlayers.get(i).getPath().equals(path)) {
|
||||
configPlayers.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void cargarJugadores() {
|
||||
if(!MySQL.isEnabled(getConfig())) {
|
||||
for(PlayerConfig playerConfig : configPlayers) {
|
||||
FileConfiguration players = playerConfig.getConfig();
|
||||
String jugador = players.getString("name");
|
||||
int kills = 0;
|
||||
int wins = 0;
|
||||
int loses = 0;
|
||||
int ties = 0;
|
||||
int coins = 0;
|
||||
|
||||
if(players.contains("kills")) {
|
||||
kills = Integer.valueOf(players.getString("kills"));
|
||||
}
|
||||
if(players.contains("wins")) {
|
||||
wins = Integer.valueOf(players.getString("wins"));
|
||||
}
|
||||
if(players.contains("loses")) {
|
||||
loses = Integer.valueOf(players.getString("loses"));
|
||||
}
|
||||
if(players.contains("ties")) {
|
||||
ties = Integer.valueOf(players.getString("ties"));
|
||||
}
|
||||
if(players.contains("coins")) {
|
||||
coins = Integer.valueOf(players.getString("coins"));
|
||||
}
|
||||
ArrayList<Perk> perks = new ArrayList<Perk>();
|
||||
if(players.contains("perks")) {
|
||||
List<String> listaPerks = players.getStringList("perks");
|
||||
for(int i=0;i<listaPerks.size();i++) {
|
||||
String[] separados = listaPerks.get(i).split(";");
|
||||
Perk p = new Perk(separados[0],Integer.valueOf(separados[1]));
|
||||
perks.add(p);
|
||||
}
|
||||
}
|
||||
ArrayList<Hat> hats = new ArrayList<Hat>();
|
||||
if(players.contains("hats")) {
|
||||
List<String> listaHats = players.getStringList("hats");
|
||||
for(int i=0;i<listaHats.size();i++) {
|
||||
String[] separados = listaHats.get(i).split(";");
|
||||
Hat h = new Hat(separados[0],Boolean.valueOf(separados[1]));
|
||||
hats.add(h);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.agregarJugadorDatos(new JugadorDatos(jugador,playerConfig.getPath().replace(".yml", ""),wins,loses,ties,kills,coins,perks,hats));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void guardarJugadores() {
|
||||
if(!MySQL.isEnabled(getConfig())) {
|
||||
for(JugadorDatos j : jugadoresDatos) {
|
||||
String jugador = j.getName();
|
||||
PlayerConfig playerConfig = getPlayerConfig(j.getUUID()+".yml");
|
||||
FileConfiguration players = playerConfig.getConfig();
|
||||
players.set("name", jugador);
|
||||
players.set("kills", j.getKills());
|
||||
players.set("wins", j.getWins());
|
||||
players.set("ties", j.getTies());
|
||||
players.set("loses", j.getLoses());
|
||||
players.set("coins", j.getCoins());
|
||||
|
||||
List<String> listaPerks = new ArrayList<String>();
|
||||
ArrayList<Perk> perks = j.getPerks();
|
||||
for(Perk p : perks) {
|
||||
listaPerks.add(p.getName()+";"+p.getNivel());
|
||||
}
|
||||
players.set("perks", listaPerks);
|
||||
|
||||
List<String> listaHats = new ArrayList<String>();
|
||||
ArrayList<Hat> hats = j.getHats();
|
||||
for(Hat h : hats) {
|
||||
listaHats.add(h.getName()+";"+h.isSelected());
|
||||
}
|
||||
players.set("hats", listaHats);
|
||||
}
|
||||
savePlayers();
|
||||
}
|
||||
}
|
||||
|
||||
public void agregarJugadorDatos(JugadorDatos jugador) {
|
||||
jugadoresDatos.add(jugador);
|
||||
}
|
||||
|
||||
public JugadorDatos getJugador(String jugador) {
|
||||
for(JugadorDatos j : jugadoresDatos) {
|
||||
if(j != null && j.getName() != null && j.getName().equals(jugador)) {
|
||||
return j;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<JugadorDatos> getJugadores(){
|
||||
return this.jugadoresDatos;
|
||||
}
|
||||
|
||||
public void registerHolograms(){
|
||||
hologramsFile = new File(this.getDataFolder(), "holograms.yml");
|
||||
if(!hologramsFile.exists()){
|
||||
this.getHolograms().options().copyDefaults(true);
|
||||
saveHolograms();
|
||||
}
|
||||
}
|
||||
public void saveHolograms() {
|
||||
try {
|
||||
holograms.save(hologramsFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getHolograms() {
|
||||
if (holograms == null) {
|
||||
reloadHolograms();
|
||||
}
|
||||
return holograms;
|
||||
}
|
||||
|
||||
public void reloadHolograms() {
|
||||
if (holograms == null) {
|
||||
hologramsFile = new File(getDataFolder(), "holograms.yml");
|
||||
}
|
||||
holograms = YamlConfiguration.loadConfiguration(hologramsFile);
|
||||
|
||||
Reader defConfigStream;
|
||||
try {
|
||||
defConfigStream = new InputStreamReader(this.getResource("holograms.yml"), "UTF8");
|
||||
if (defConfigStream != null) {
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
|
||||
holograms.setDefaults(defConfig);
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void agregarTopHolograma(TopHologram topHologram) {
|
||||
this.topHologramas.add(topHologram);
|
||||
}
|
||||
|
||||
public boolean eliminarTopHologama(String nombre) {
|
||||
for(int i=0;i<topHologramas.size();i++) {
|
||||
if(topHologramas.get(i).getName().equals(nombre)) {
|
||||
topHologramas.get(i).removeHologram();
|
||||
topHologramas.remove(i);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public TopHologram getTopHologram(String nombre) {
|
||||
for(int i=0;i<topHologramas.size();i++) {
|
||||
if(topHologramas.get(i).getName().equals(nombre)) {
|
||||
return topHologramas.get(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void guardarTopHologramas() {
|
||||
FileConfiguration holograms = getHolograms();
|
||||
holograms.set("Holograms", null);
|
||||
for(int i=0;i<topHologramas.size();i++) {
|
||||
Location l = topHologramas.get(i).getHologram().getLocation();
|
||||
String name = topHologramas.get(i).getName();
|
||||
String type = topHologramas.get(i).getType();
|
||||
String period = topHologramas.get(i).getPeriod();
|
||||
holograms.set("Holograms."+name+".type", type);
|
||||
holograms.set("Holograms."+name+".period", period);
|
||||
holograms.set("Holograms."+name+".x", l.getX()+"");
|
||||
holograms.set("Holograms."+name+".y", topHologramas.get(i).getyOriginal()+"");
|
||||
holograms.set("Holograms."+name+".z", l.getZ()+"");
|
||||
holograms.set("Holograms."+name+".world", l.getWorld().getName());
|
||||
}
|
||||
saveHolograms();
|
||||
}
|
||||
|
||||
public void cargarTopHologramas() {
|
||||
FileConfiguration holograms = getHolograms();
|
||||
if(holograms.contains("Holograms")) {
|
||||
for(String name : holograms.getConfigurationSection("Holograms").getKeys(false)) {
|
||||
String type = holograms.getString("Holograms."+name+".type");
|
||||
double x = Double.valueOf(holograms.getString("Holograms."+name+".x"));
|
||||
double y = Double.valueOf(holograms.getString("Holograms."+name+".y"));
|
||||
double z = Double.valueOf(holograms.getString("Holograms."+name+".z"));
|
||||
World world = Bukkit.getWorld(holograms.getString("Holograms."+name+".world"));
|
||||
Location location = new Location(world,x,y,z);
|
||||
String period = "global";
|
||||
if(holograms.contains("Holograms."+name+".period")) {
|
||||
period = holograms.getString("Holograms."+name+".period");
|
||||
}
|
||||
TopHologram topHologram = new TopHologram(name,type,location,this,period);
|
||||
topHologram.spawnHologram(this);
|
||||
this.agregarTopHolograma(topHologram);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<TopHologram> getTopHologramas(){
|
||||
return this.topHologramas;
|
||||
}
|
||||
|
||||
public void updateChecker(){
|
||||
|
||||
try {
|
||||
HttpURLConnection con = (HttpURLConnection) new URL(
|
||||
"https://api.spigotmc.org/legacy/update.php?resource=76676").openConnection();
|
||||
int timed_out = 1250;
|
||||
con.setConnectTimeout(timed_out);
|
||||
con.setReadTimeout(timed_out);
|
||||
latestversion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
|
||||
if (latestversion.length() <= 7) {
|
||||
if(!version.equals(latestversion)){
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.RED +"There is a new version available. "+ChatColor.YELLOW+
|
||||
"("+ChatColor.GRAY+latestversion+ChatColor.YELLOW+")");
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.RED+"You can download it at: "+ChatColor.WHITE+"https://www.spigotmc.org/resources/76676/");
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Bukkit.getConsoleSender().sendMessage(prefix + ChatColor.RED +"Error while checking update.");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkMessagesUpdate(){
|
||||
Path archivo = Paths.get(rutaMessages);
|
||||
Path archivoConfig = Paths.get(rutaConfig);
|
||||
try{
|
||||
String texto = new String(Files.readAllBytes(archivo));
|
||||
String textoConfig = new String(Files.readAllBytes(archivoConfig));
|
||||
if(!textoConfig.contains("broadcast_starting_arena:")){
|
||||
getConfig().set("broadcast_starting_arena.enabled", true);
|
||||
List<String> lista = new ArrayList<String>();
|
||||
lista.add("paintball");lista.add("lobby");
|
||||
getConfig().set("broadcast_starting_arena.worlds", lista);
|
||||
getConfig().set("rewards_executed_after_teleport", false);
|
||||
getMessages().set("arenaStartingBroadcast", "&aArena &6&l%arena% &ais about to start! Use &b/pb join %arena% &ato join the game!");
|
||||
saveConfig();
|
||||
saveMessages();
|
||||
}
|
||||
if(!textoConfig.contains("startCooldownSound:")){
|
||||
getConfig().set("startCooldownSound", "BLOCK_NOTE_BLOCK_PLING;10;1");
|
||||
getConfig().set("startGameSound", "BLOCK_NOTE_BLOCK_PLING;10;2");
|
||||
getConfig().set("arena_chat_enabled", true);
|
||||
saveConfig();
|
||||
}
|
||||
if(!texto.contains("errorClearInventory:")){
|
||||
getMessages().set("errorClearInventory", "&c&lERROR! &7To join an arena clear your inventory first.");
|
||||
getConfig().set("empty_inventory_to_join", false);
|
||||
saveConfig();
|
||||
saveMessages();
|
||||
}
|
||||
if(!textoConfig.contains("snowball_particle:")){
|
||||
getConfig().set("snowball_particle", "SNOW_SHOVEL");
|
||||
saveConfig();
|
||||
}
|
||||
if(!texto.contains("receiveCoinsMessage:")){
|
||||
getMessages().set("receiveCoinsMessage", "&aYou received &e%amount% &acoins.");
|
||||
saveMessages();
|
||||
}
|
||||
if(!textoConfig.contains("losers_command_rewards:")) {
|
||||
List<String> lista = new ArrayList<String>();
|
||||
lista.add("msg %player% &aYou've lost! Here, take this compensation reward.");
|
||||
lista.add("paintball givecoins %player% %random_2*kills-6*kills%");
|
||||
getConfig().set("losers_command_rewards", lista);
|
||||
lista = new ArrayList<String>();
|
||||
lista.add("msg %player% &aIt's a tie! Here, take this reward.");
|
||||
lista.add("paintball givecoins %player% %random_2*kills-6*kills%");
|
||||
getConfig().set("tie_command_rewards", lista);
|
||||
saveConfig();
|
||||
}
|
||||
}catch(IOException e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
77
src/main/java/pb/ajneb97/PlayerConfig.java
Normal file
77
src/main/java/pb/ajneb97/PlayerConfig.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package pb.ajneb97;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
|
||||
|
||||
public class PlayerConfig {
|
||||
|
||||
private FileConfiguration config;
|
||||
private File configFile;
|
||||
private String filePath;
|
||||
private PaintballBattle plugin;
|
||||
|
||||
public PlayerConfig(String filePath,PaintballBattle plugin){
|
||||
this.config = null;
|
||||
this.configFile = null;
|
||||
this.filePath = filePath;
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public String getPath(){
|
||||
return this.filePath;
|
||||
}
|
||||
|
||||
public FileConfiguration getConfig(){
|
||||
if (config == null) {
|
||||
reloadPlayerConfig();
|
||||
}
|
||||
return this.config;
|
||||
}
|
||||
|
||||
public void registerPlayerConfig(){
|
||||
configFile = new File(plugin.getDataFolder() +File.separator + "players",filePath);
|
||||
if(!configFile.exists()){
|
||||
try {
|
||||
configFile.createNewFile();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
config = new YamlConfiguration();
|
||||
try {
|
||||
config.load(configFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvalidConfigurationException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void savePlayerConfig() {
|
||||
try {
|
||||
config.save(configFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void reloadPlayerConfig() {
|
||||
if (config == null) {
|
||||
configFile = new File(plugin.getDataFolder() +File.separator + "players", filePath);
|
||||
}
|
||||
config = YamlConfiguration.loadConfiguration(configFile);
|
||||
|
||||
if (configFile != null) {
|
||||
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(configFile);
|
||||
config.setDefaults(defConfig);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user