为什么此代码无法正常运行,并显示NullPointerException

问题描述

所以我现在才开始研究用于加入pvpevents的minecraft插件,这是我的第一个插件,因此不要在代码上花太多时间。我只想知道为什么它不能正常运行,而这些是类。

主要

public class Main extends JavaPlugin{
    @Override
    public void onEnable(){
        System.out.println("PvP event plugin je upaljen");
        getCommand("event").setExecutor(new EventCommand());    
        getCommand("join").setExecutor(new EventJoinCommand());
        
    }
}

EventCommand

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;

public class EventCommand implements CommandExecutor{
    @Override
    public boolean onCommand(CommandSender sender,Command arg1,String arg2,String[] arg3) {
        Player player = (Player) sender;
        if (arg3[0].equalsIgnoreCase("host") || arg3[1].equalsIgnoreCase("gapple")) {
            String kit = arg3[0];
            String velikoslovo = kit.substring(0,1).toupperCase() + kit.substring(1);
            TextComponent message = new TextComponent(player.getName() + " je zapoceo " + velikoslovo + " turnir. ");
            message.setColor(ChatColor.LIGHT_PURPLE);
            TextComponent ulazak = new TextComponent("Klikni da udes");
            ulazak.setColor(ChatColor.YELLOW);
            ComponentBuilder cb = new ComponentBuilder("Klikni na tekst da udes").color(ChatColor.AQUA);
            ulazak.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,cb.create()));
            ulazak.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND,"/join"));
            message.addExtra(ulazak);
            for (int i = 0; i < 5; i++) {
                Bukkit.getServer().spigot().broadcast(message);
                try {
                    Thread.sleep(7000);
                } catch (InterruptedException e) {
                    // Todo Auto-generated catch block
                    e.printstacktrace();
                }
            }
        } else {player.sendMessage("Moras upisati tocnu komandu: /event [kit]");}
        
    
        return false;
    }
    
    
}

EventJoinCommand

import java.util.ArrayList;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class EventJoinCommand implements CommandExecutor{
    static int i = 0;
    static ArrayList<String> listaIgracaTurnira = new ArrayList<String>();
    @Override
    public boolean onCommand(CommandSender sender,String[] arg3) {
        Player igrac = (Player) sender;
        if (EventUlazakJosTraje(sender)) {
            igrac.sendMessage(ChatColor.DARK_RED + "Uspijesno si usao u event");
        } else {
            igrac.sendMessage(ChatColor.DARK_RED + "Nema eventa u kojeg mozes uc ili je vec startao");
        }
        
        
        return false;
    }
    public static boolean EventUlazakJosTraje(CommandSender sender){
        Player player = (Player) sender;
        listaIgracaTurnira.add(player.getName());
        i++;
        return true;
    }   
}

这是我的服务器发出的错误https://prnt.sc/tyfv8d

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)