Ir para conteúdo
  • 0

[Resolvido] Qual o erro?


ninho42

Pergunta

Nome Do Plugin: Vanish

Versão 1.0

Problema: Quando digito /v da um erro

Erro:

 

 

org.bukkit.command.CommandException: Unhandled exception executing command 'vanish:vanish' in plugin Vanish v1.0
 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
 at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
 at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523)
 at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:965)
 at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:883)
 at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840)
 at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
 at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292)
 at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109)
 at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
 at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30)
 at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581)
 at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
 at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
 at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
 at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NullPointerException
 at com.ninhodev.vanish.Main.onCommand(Main.java:89)
 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
 ... 15 more

 

 

Código: 

 

 

package com.ninhodev.vanish;

import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;

/**
 *
 * @author ninho
 */
public class Main extends JavaPlugin implements Listener{
    
    Player[] jogador = null;
    boolean[] cmdsdesativados = null;
    boolean[] cmdsdesativadosjoin = null;
    int qntvanish = 0;
    
    public void onJoin(PlayerJoinEvent e) {
        int i = 0;
        int j = 0;
        while ((jogador[i] == null) == false) {
            if (cmdsdesativados[i] == true) {
                e.getPlayer().kickPlayer("§4Você esqueceu de desligar o vanish ao sair!");
                cmdsdesativados[i] = false;
            } else {
                int z = 0;
                while (qntvanish > z) {
                    while (cmdsdesativados[j] == false) {
                        j++;
                    }
                    jogador[i].hidePlayer(jogador[j]);
                }   
            } 
            i++;
            j = i;
        }
        jogador[i] = e.getPlayer();
    }
    
    public void onLeave(PlayerQuitEvent e) {
        int i = 0;
        while ((jogador[i] == e.getPlayer()) == false) {
            i++;
        }
        jogador[i] = null;
        cmdsdesativados[i] = false;
    }
    
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        if (new File(getDataFolder(), "config.yml").exists() == false) {
            saveDefaultConfig();
        }
        ConsoleCommandSender inicio = Bukkit.getConsoleSender();
        inicio.sendMessage("§4[Vanish] §aO plugin vanish foi iniciado com sucesso!");
    }
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
        if (command.getName().equalsIgnoreCase("Vanish") || command.getName().equalsIgnoreCase("V")) {
            Player p = (Player) sender;
            if (p.hasPermission("HarlowCraft.Vanish")) {
                if (p.getPlayerListName().equals("Teste")) {
                    int i = 0;
                    while ((jogador[i] == p) == false) {
                        i++;
                    }
                    cmdsdesativados[i] = false;
                    for (Player player: Bukkit.getOnlinePlayers()) {
                        player.showPlayer(p);
                    }
                    qntvanish--;
                    p.setPlayerListName(p.getName());
                    p.sendMessage(getConfig().getString("Prefixo").replace("&", "§") + getConfig().getString("MensagemDesligouVanish").replace("&", "§"));
                } else {
                    int i = 0;
                    while ((jogador[i] == p) == false) {
                        i++;
                    }
                    cmdsdesativados[i] = true;
                    for (Player player: Bukkit.getOnlinePlayers()) {
                        player.hidePlayer(p);
                    }
                    p.setPlayerListName("Teste");
                    qntvanish++;
                    p.sendMessage(getConfig().getString("Prefixo").replace("&", "§") + getConfig().getString("MensagemLigouVanish").replace("&", "§"));
                }   
            }
        }
        return false;
    }

}
 

 

 

OBS: Mudar o nome do tab era só um teste que eu fiz em breve tenho em mente tirar o nome do player do tab

Editado por ninho42
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

Esqueceu de inicializar as variáveis:

Player[] jogador = null;
boolean[] cmdsdesativados = null;
boolean[] cmdsdesativadosjoin = null;

 

 

Array e List são coisas diferentes, array você deve definir um tamanho que não muda, List tem tamanhos dimamicos, veja qual você quer e tenta achar algum tutor na net de como usar Array ou List(ArrayList).

Link para o comentário
Compartilhar em outros sites

Alguma coisa da linha 89 esta nula... (ajudaria saber o que esta na linha 89)

89 : while ((jogador == p) == false) {
Linha de declaração da variavel: Player[] jogador = null;
Editado por ninho42
Link para o comentário
Compartilhar em outros sites

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