Darkzin Postado Março 2, 2023 Denunciar Compartilhar Postado Março 2, 2023 Ola Boa Noite estou quebrando a cabeça para resolver esse erro mais nao estou conseguindo Ja tentei de tudo mais nao conseguir segue a Main que estou tentando criar pela primeira vez package br.com.heeystuuh.HSPicareta; import java.io.File; import java.util.logging.Logger; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginCommand; import org.bukkit.plugin.PluginLogger; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements CommandExecutor { private static final String HSPicareta = "Picareta3x3"; private PluginLogger logger; private int durabilidade; private int eficiencia; private boolean encantada; @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender instanceof Player) { Player player = (Player) sender; // Verificar se o jogador tem a permissão para utilizar a picareta 3x3 if (player.hasPermission("picareta3x3.usar")) { // Criar uma nova picareta 3x3 e utilizá-la para quebrar blocos próximos ao jogador breakBlocks(player.getLocation()); return true; } else { player.sendMessage(ChatColor.RED + "Você não tem permissão para usar a picareta 3x3!"); return false; } } else { sender.sendMessage(ChatColor.RED + "Este comando só pode ser executado por um jogador!"); return false; } } private void breakBlocks(Location location) { int x = location.getBlockX(); int y = location.getBlockY(); int z = location.getBlockZ(); // Lógica para quebrar blocos utilizando a picareta 3x3 // Imprimir mensagem no console getLogger().info("Blocos quebrados!"); } @Override public void onEnable() { logger = (PluginLogger) getLogger(); // Definir os atributos da picareta 3x3 durabilidade = 100; eficiencia = 5; encantada = true; // Registrar o comando /picareta3x3 PluginCommand comando = getCommand("picareta3x3"); if (comando != null) { comando.setExecutor(this); } else { logger.warning("Erro ao registrar comando /picareta3x3"); } // Mensagem de sucesso logger.info("Plugin habilitado!"); // Criar a pasta "config" se ela não existir if (!getDataFolder().exists()) { getDataFolder().mkdir(); } File configFile = new File(getDataFolder(), "config.yml"); // Criar o arquivo de configuração se ele não existir if (!configFile.exists()) { saveResource("config.yml", false); } } @Override public void onDisable() { logger.info("Plugin Picareta 3x3 desabilitado!"); } // Método para danificar a picareta 3x3 public void danificar(int dano) { this.durabilidade -= dano; } // Getters e Setters dos atributos public int getDurabilidade() { return durabilidade; } public void setDurabilidade(int durabilidade) { this.durabilidade = durabilidade; } public int getEficiencia() { return eficiencia; } public void setEficiencia(int eficiencia) { this.eficiencia = eficiencia; } public boolean isEncantada() { return encantada; } public void setEncantada(boolean encantada) { this.encantada = encantada; } public static Logger getLog() { return getLog(); } public static String getPluginName() { return PLUGIN_NAME; } public static String getHspicareta() { return HSPicareta; } } Link para o comentário Compartilhar em outros sites More sharing options...
Fisheyww Postado Março 10, 2023 Denunciar Compartilhar Postado Março 10, 2023 Na linha 110, o método getLog() é chamado recursivamente, o que causará um estouro de pilha (stack overflow) e fará com que o programa pare de funcionar. A correção para isso seria substituir a linha por return getLogger();. Na linha 112, a constante PLUGIN_NAME é usada, mas não está definida em lugar algum no código. Se essa constante não for necessária, essa linha pode ser removida. Caso contrário, é necessário definir o valor de PLUGIN_NAME em algum lugar. Link para o comentário Compartilhar em outros sites More sharing options...
gaalaxY Postado Junho 8, 2023 Denunciar Compartilhar Postado Junho 8, 2023 TÓPICO INATIVO O seu tópico foi dado como inativo por ultrapassar 7 dias sem novas respostas e/ou pela expiração do seu conteúdo. Entre em contato com a Equipe de Moderação para obter suporte sobre esta ação. Atenciosamente, Equipe de Moderação, Gamer's Board. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados