• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Problem

WlanGehtNicht

Schafhirte
Registriert
30 Mai 2017
Beiträge
105
Diamanten
312
Hey,
ich programmiere derzeit an einem Lobbyplugin.
Jetzt habe ich folgendes Problem:
Wenn ich einfach auf ein Item im Inventar (in dem Fall das Spielerverstecken Item) klicke, dann passiert nichts.
Wenn ich jetzt aber das Inventar öffne und so auf das Item klicke, dann kommt eine Fehlermeldung.
Eigentlich sollte sich ein Inventar mit verschiedenen Items öffnen (code 2)
Code:
Code:
package de.wlangehtnicht.lobby.items;

import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;

import de.wlangehtnicht.lobby.main.Main;

public class Items_Inventarklick implements Listener {
 
    @EventHandler
    public void onInventoryClick(InventoryClickEvent e) {
        Player p = (Player)e.getWhoClicked();
        if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&'
                , ChatColor.translateAlternateColorCodes('&', Main.cfg.getString("navigator"))))) {
            p.playSound(p.getLocation(), Sound.BLOCK_LEVER_CLICK, 10, 10);
            e.setCancelled(true);
         
        } else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&'
                ,Main.cfg.getString("hide")))) {
            p.playSound(p.getLocation(), Sound.BLOCK_LEVER_CLICK, 10, 10);
            e.setCancelled(true);
            Items_InventarHide.run(p);
         
        }
    }
}


Code:
package de.wlangehtnicht.lobby.items;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import de.wlangehtnicht.lobby.main.Main;

public class Items_InventarHide {
  
    public static void run(Player p) {
        Inventory hide = Bukkit.createInventory(null, 9*1, ChatColor.translateAlternateColorCodes('&', Main.cfg.getString("hideinv")));
      
        ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE);
        ItemMeta glassmeta = glass.getItemMeta();
        glassmeta.setDisplayName("test");
        glass.setItemMeta(glassmeta);
      
        ItemStack anzeigen = new ItemStack(Material.EYE_OF_ENDER);
        ItemMeta anzeigenmeta = anzeigen.getItemMeta();
        anzeigenmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.cfg.getString("hideanzeigen")));
        anzeigen.setItemMeta(anzeigenmeta);
      
        ItemStack verstecken = new ItemStack(Material.EYE_OF_ENDER);
        ItemMeta versteckenmeta = verstecken.getItemMeta();
        versteckenmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.cfg.getString("hideverstecken")));
      
        hide.setItem(1-1, glass);
        hide.setItem(2-1, glass);
        hide.setItem(3-1, glass);
        hide.setItem(4-1, anzeigen);
        hide.setItem(5-1, glass);
        hide.setItem(6-1, verstecken);
        hide.setItem(7-1, glass);
        hide.setItem(8-1, glass);
        hide.setItem(9-1, glass);
      
        p.openInventory(hide);
      
    }
}

Fehlermeldung:

Code:
[09:05:23 ERROR]: Could not pass event InventoryClickEvent to Lobbysystem v1.0
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:499) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1884) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:33) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:10) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_171]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_171]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: java.lang.NullPointerException
        at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:324) ~[spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        at de.wlangehtnicht.lobby.items.Items_InventarHide.run(Items_InventarHide.java:25) ~[?:?]
        at de.wlangehtnicht.lobby.items.Items_Inventarklick.onInventoryClick(Items_Inventarklick.java:27) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
        ... 15 more
>


kann mir da jemand weiter helfen?
 
Zuletzt bearbeitet:
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker
  • Caused by: java.lang.NullPointerException
  • at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:324) ~[spigot-1.12.2.jar:git-Spigot-93e20b3-31d3159]
  • at de.wlangehtnicht.lobby.items.Items_InventarHide.run(Items_InventarHide.java:25) ~[?:?]
  • at de.wlangehtnicht.lobby.items.Items_Inventarklick.

Die Fehlermeldung sagt doch schon wo der Fehler ist: in Zeile 25 von Items_InventarHide. Wo du versuch dein String zu "übersetzen".

Ich vermute dabei das der String wo du aus der config holst nicht existiert und somit null liefert.

Noch ein Tipp die Classen Namen schreibt man ohne "_" man würde sie eher so nennen "ItemsInventarHide".
 

WlanGehtNicht

Schafhirte
Registriert
30 Mai 2017
Beiträge
105
Diamanten
312
@DerFrZocker
Main:
Code:
package de.wlangehtnicht.lobby.main;

import java.io.File;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;

import de.wlangehtnicht.lobby.commands.Command_Build;
import de.wlangehtnicht.lobby.commands.Command_Fix;
import de.wlangehtnicht.lobby.commands.Command_Lobby;
import de.wlangehtnicht.lobby.commands.Command_Setspawn;
import de.wlangehtnicht.lobby.commands.Command_Spawn;
import de.wlangehtnicht.lobby.items.Items_Inventarklick;
import de.wlangehtnicht.lobby.listener.Event_JoinQuit;

public class Main extends JavaPlugin {
   
   
    public static File file;
    public static FileConfiguration cfg;
   
    @Override
    public void onEnable() {
       
        saveDefaultConfig();
       
        file = new File("plugins/Lobbysystem", "config.yml");
        cfg = YamlConfiguration.loadConfiguration(file);       
       
        RegisterEvents();
        RegisterCommands();
       
        Bukkit.getConsoleSender().sendMessage("§c=========================");
        Bukkit.getConsoleSender().sendMessage("§7> Plugin: Lobby");
        Bukkit.getConsoleSender().sendMessage("§7> Author: WlanGehtNicht");
        Bukkit.getConsoleSender().sendMessage("§7> Erfolgreich gestartet");
        Bukkit.getConsoleSender().sendMessage("§c=========================");
    }
   
    @Override
    public void onDisable() {
       
        Bukkit.getConsoleSender().sendMessage("§c=========================");
        Bukkit.getConsoleSender().sendMessage("§7> Plugin: Lobby");
        Bukkit.getConsoleSender().sendMessage("§7> Author: WlanGehtNicht");
        Bukkit.getConsoleSender().sendMessage("§7> Erfolgreich gestoppt");
        Bukkit.getConsoleSender().sendMessage("§c=========================");
       
    }

    private void RegisterEvents() {
        getServer().getPluginManager().registerEvents(new Event_JoinQuit(), this);
        getServer().getPluginManager().registerEvents(new Items_Inventarklick(), this);
       
    }
   
    private void RegisterCommands() {
        getCommand("lobby").setExecutor(new Command_Lobby());
        getCommand("setspawn").setExecutor(new Command_Setspawn());
        getCommand("spawn").setExecutor(new Command_Spawn());
        getCommand("build").setExecutor(new Command_Build());
        getCommand("fix").setExecutor(new Command_Fix());
       
    }
}

Config:
Code:
# Hier kannst du alle Nachrichten aendern
# Join:
willkommensnachricht: "&4Willkommen"
Title:
  1: "&7Willkommen"
  2: "&7auf dem Server"
# Items
navigator: "&2Spielmodie &7<Rechtsklick>"
extras: "&2Extras &7<Rechtsklick>"
hide: "&2Sichtbarkeit &7<Rechtsklick>"
hideinv: "&2Spielersichtbarkeit"
hideanzeigen: "&7Spieler anzeigen"
hideverstecken: "&7Spieler verstecken"
# hide = Spieler verstecken
# allgemeines
keineberechtigungen: "&cDu hast dafür keine Berechtigung"
keinspieler: "&cDu musst ein Spieler sein"
setspawn: "&7Du hast den Spawn erfolgreich gesetzt"
spawn: "&7Du wurdest zum Spawn teleportiert"
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Du solltest in jedem Fall eine entsprechende Nullprüfung hinzufügen.
Es fehlt außerdem noch mindestens eine weitere Nullprüfung: InventoryClickEvent.getCurrentItem() kann null sein, wenn ein leerer Slot angeklickt wird.
 
Oben