FlashDevs
7/14/2019 - 7:13 PM

ERROR JDA

package MysticDiscord;

import java.util.ArrayList;

import javax.security.auth.login.LoginException;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;


import MysticDiscord.Comandos.Discord;
import MysticDiscord.ComandosDiscord.FacInvasion;
import MysticDiscord.ComandosDiscord.Status;
import MysticDiscord.Eventos.DataBase;
import MysticDiscord.Eventos.DataBase2;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Game;
import net.milkbowl.vault.economy.Economy;

public class Main extends JavaPlugin {

	public static Main m;
	public static JDA jda;
	private static Economy econ = null;
	public static ArrayList<String> Blocked = new ArrayList<>();
	
	public static Economy getEconomy() {
		return econ;
	}

	public void onEnable() {
		getConfig().options().copyDefaults(true);
		saveDefaultConfig();
		setupEconomy();
		m = this;
		
		if (getConfig().getString("Bot.Token").equalsIgnoreCase("XXX-XXX-XXX-XXX")) {
			Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Token inválido, plugin desabilitado");
			return;
		}
		
		try {
			jda = new JDABuilder(AccountType.BOT).setToken(getConfig().getString("Bot.Token")).buildAsync();
		} catch (LoginException e) {
			e.printStackTrace();
		}
		jda.getPresence().setGame(Game.playing(getConfig().getString("Bot.Presence")));
		
		DataBase.create();
		DataBase.SaveConfig();
		DataBase2.create();
		DataBase2.SaveConfig();
		Bukkit.getPluginManager().registerEvents(new Discord(), this);
		Bukkit.getPluginManager().registerEvents(new FacInvasion(), this);
		getCommand("discord").setExecutor(new Discord());
		jda.addEventListener(new Status());
	}
	
	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;
	}
}
package MysticDiscord.ComandosDiscord;

import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;

import com.gmail.nossr50.api.ExperienceAPI;
import com.gmail.nossr50.datatypes.skills.SkillType;
import com.massivecraft.factions.entity.MPlayer;

import MysticDiscord.Main;
import MysticDiscord.Eventos.DataBase2;
import net.dv8tion.jda.core.EmbedBuilder;
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

public class Status extends ListenerAdapter {
	
	public static String FormatNumber(Double num) {
	    if (num >= 1000)
	        return FormatNumber(num / 1000).replace(".0", "") + "K";
	    if (num >= 1000000) {
	        return FormatNumber(num / 1000000).replace(".0", "") + "KK";
	    }
	    if (num >= 1000000000) {
	        return FormatNumber(num / 1000000000).replace(".0", "") + "B";
	    }
	    return String.valueOf(num);
	}
	
	@EventHandler
	public void OnGuildMessageReceived(GuildMessageReceivedEvent e) {

		String[] message = e.getMessage().getContentRaw().split(" ");
		if (message[0].equalsIgnoreCase("!Status") && message.length == 0) {

			Player p = Main.m.getServer().getPlayer(DataBase2.fc.getString(e.getAuthor().getId() + ".Nick"));
			MPlayer p2 = MPlayer.get(p);

			Bukkit.broadcastMessage(p.getName());

			List<String> messages = Main.m.getConfig().getStringList("Mensagens.Privado.Mensagem");
			int machado = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.AXES.toString());
			int espada = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.SWORDS.toString());
			int escavacao = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.EXCAVATION.toString());
			int arqueiro = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.ARCHERY.toString());
			int reparacao = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.REPAIR.toString());
			int alquimia = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.ALCHEMY.toString());
			int herbalismo = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.HERBALISM.toString());
			int acrobacia = ExperienceAPI.getPlayerRankSkill(p.getName(), SkillType.ACROBATICS.toString());
			int todos = machado + espada + escavacao + arqueiro + reparacao + alquimia + herbalismo + acrobacia;
			String message2 = "";
			for (String m : messages) {
				message2 += m.replace("%Kills", String.valueOf(p2.getKills()))
						.replace("%Deaths", String.valueOf(p2.getDeaths()))
						.replace("%KDR", String.valueOf(p2.getKdrRounded()))
						.replace("%Poder", String.valueOf(p2.getPower() + "/" + p2.getPowerMax()))
						.replace("%Money", FormatNumber(Main.getEconomy().getBalance(p)))
						.replace("%Nivel", String.valueOf(todos)).replace("%Machado", String.valueOf(machado))
						.replace("%Espadas", String.valueOf(espada)).replace("%Escavação", String.valueOf(escavacao))
						.replace("%Arqueiro", String.valueOf(arqueiro)).replace("%Reparação", String.valueOf(reparacao))
						.replace("%Alquimia", String.valueOf(alquimia))
						.replace("%Herbalismo", String.valueOf(herbalismo))
						.replace("%Acrobacia", String.valueOf(acrobacia));
				message2 += "\n";
			}

			EmbedBuilder embed = new EmbedBuilder();
			embed.setColor(java.awt.Color.green);
			embed.setTitle(Main.m.getConfig().getString("Mensagens.Status.Titulo"));
			embed.setDescription(message2);
			if (Main.m.getConfig().getBoolean("Mensagens.Status.Imagem") == true) {
				embed.setThumbnail(Main.m.getConfig().getString("Mensagens.Status.ImagemLink"));
			}
			embed.setFooter(Main.m.getConfig().getString("Mensagens.Status.Footer"),
					Main.m.getConfig().getString("Mensagens.Status.ImagemFooter"));

			e.getAuthor().openPrivateChannel().queue((channel) -> {
				channel.sendMessage(embed.build()).queue();
			});
		}
	}

}