Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Unhandled exception executing command 'help'


SkredoX

Rekomendowane odpowiedzi

Opublikowano

Witam.. Mam problem z komendą "help" na moim serwerze..
O to logi po wpisaniu komendy: 

 

[10:50:49 INFO]: SkredoX1337 issued server command: /help
[10:50:49 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'help' in plugin sxCore v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
Caused by: java.lang.NullPointerException
        at pl.skredox.sxCore.cmd.HelpCommand.onCommand(HelpCommand.java:19) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[silnik.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        ... 13 more

Oraz klasa odpowiadająca za tą komendę:

 

package pl.skredox.sxCore.cmd;

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

import pl.skredox.sxCore.utils.SettingsUtil;

public class HelpCommand implements CommandExecutor{
	
	  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	  {
	    if (!(sender instanceof Player))
	    {
	      sender.sendMessage("Komenda dostepna tylko dla graczy.");
	      return false;
	    }
	    for (Object s : SettingsUtil.cmd_help_string) {
	      sender.sendMessage(((String)s).replace("&", "§").replace("(N)", "\n"));
	    }
	    return true;
	  }
}

Opublikowano

CO tu sie odpierdzieliło

     for (Object s : SettingsUtil.cmd_help_string) {

Zamiast Object daj String :)

 

usun cast z s i nie returnuj false w komendach.

Opublikowano

CO tu sie odpierdzieliło

     for (Object s : SettingsUtil.cmd_help_string) {

Zamiast Object daj String :)

 

usun cast z s i nie returnuj false w komendach.

Nic nie zmienilo

Opublikowano

 

CO tu sie odpierdzieliło

     for (Object s : SettingsUtil.cmd_help_string) {

Zamiast Object daj String :)

 

usun cast z s i nie returnuj false w komendach.

Nic nie zmienilo

 

 

daj SettingsUtil

Opublikowano

 

 

CO tu sie odpierdzieliło

     for (Object s : SettingsUtil.cmd_help_string) {

Zamiast Object daj String :)

 

usun cast z s i nie returnuj false w komendach.

Nic nie zmienilo

 

 

daj SettingsUtil

 

package pl.skredox.sxCore.utils;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.configuration.file.FileConfiguration;

import pl.skredox.sxCore.Main;

public class SettingsUtil {
	
	public static String cmd_permission;
	public static List<String> cmd_help_string;

	public static void defaultConfiguration(){
		FileConfiguration fc = Main.getInstance().getConfig();
		fc.addDefault("msg.permission", "&8» &cNie masz uprawnien! &7({PERMISSION})");
		
	    @SuppressWarnings({ "rawtypes", "unchecked" })
		List<String> cmd_help_string = new ArrayList();
	    cmd_help_string.add("pomoc 1");
	    cmd_help_string.add("pomoc 2");
	    cmd_help_string.add("pomoc 3");
	    
	    fc.options().copyDefaults(true);
	    
	    Main.getInstance().saveConfig();
	}
	
	public static void loadConfiguration(){
		FileConfiguration fc = Main.getInstance().getConfig();
		cmd_permission = fc.getString("msg.permission").replace("&", "§").replace("(N)", "\n");
		
		Main.info("Configuration has been loaded.");
	}
	
}

Opublikowano


for(int i = 0; i < SettingsUtil.cmd_help_string.size(); i++) {

sender.sendMessage(SettingsUtil.cmd_help_string.get(i)).replace("&", "§").replace("(N)", "\n");

}

Opublikowano

z stacktrace po prostu wynika, że coś jest nullem, a najprawdopodobniej to:

SettingsUtil.cmd_help_string

więc sprawdź, czy na pewno inicjujesz to poprawnie i czy ta zmienna nie jest nullem(jakiś debug), no i String s, a nie Object s

 

 

 

 

fKJeAI4.jpg

 

 

 

Opublikowano

  • W Javie stosujemy camelCase.

Pola takie jak Twoj cmd_help_string dajemy final i inicjujemy tę listę od razu (private final List<String> cmdHelpString = new ArrayList<>() ;)

Zamiast tej adnotacji musisz poprawnie stworzyć ten ArrayList, patrz przykład wyżej.

Prawdopodobnie nigdzie nie wykonujesz defaultConfiguration().

Edit: regex jest wolny! StringUtils z org.apache.commons.lang{,3}

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...