Ir para conteúdo

Estou tentando Criar meu Primeiro Plugin


Darkzin

Posts Recomendados

Ola Boa Noite estou quebrando a cabeça para resolver esse erro mais nao  estou conseguindo image.png.56153d4c1b3f6bcc8ccf480ad020ccba.png

 

 

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

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

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...