Minecraft Plugin Listener funktioniert nicht?

Hallo,

ich habe aus Langeweile mal ein kleines Plugin programmiert. Dort drin enthalten ist ein Listener, der auf eine Interaktion mit einem Item hört. (ItemInteractEvent) und danach je nach Item eine unterschiedliche Funktion ausführt. Ich denke ich habe anscheinend den Listener falsch registriert, da bei einem anderen (EntityDeathEvent)

auch nichts passiert, auch die Nachricht wird nicht ausgegeben.

Ich hoffe jemand kann mit helfen.

LG,

Finnian

Der Code

MainClass

import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import de.finnian.funplugin.commands.GoodStuffCmd;
import de.finnian.funplugin.listeners.EntityDeath;
import de.finnian.funplugin.listeners.InteractListener;

public class Main extends JavaPlugin{
    
    public void onEnable() {
        System.out.println("Das FunPlugin wurde angeschaltet.");
        registerListeners();
        registerCommands();
        PluginManager pm = Bukkit.getPluginManager();
           }

    public void registerListeners() {
      pm.registerEvents(new InteractListener(), this);
        pm.registerEvents(new EntityDeath(), this);
   
        
        }
    
    public void registerCommands() {
        getCommand("opstuff").setExecutor(new GoodStuffCmd());
        
    }
}

InteractListener

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.entity.WitherSkull;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

import net.md_5.bungee.api.ChatColor;


public class InteractListener implements Listener{
    
    
    
    public void onInteract(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        
        
        if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
            
        }
        
        
        else if (e.getAction() == Action.RIGHT_CLICK_AIR) {
            
            if (e.getItem().equals(Material.LIGHT_BLUE_CARPET)) {
                Bukkit.getWorld("world").getBlockAt(p.getLocation()).setType(Material.WATER);
                p.sendMessage(ChatColor.BLUE + "Das Wasser wurde plaziert(vllt. hilft es dir ja).");
            }
            
        }
        
        
        else if (e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) {
            
            if (e.getItem().equals(Material.WITHER_SKELETON_SKULL)) {
                p.launchProjectile(WitherSkull.class);
                p.sendMessage(ChatColor.RED + "Du hast einen Witherkopf abgefeuert.");
                
            }
            
            else if (e.getItem().equals(Material.FIREWORK_ROCKET)) {
                Bukkit.getWorld("world").createExplosion(p.getLocation(), 20);
                p.sendMessage(ChatColor.DARK_RED + "Achtung! Du hast eine Explosion ausgelöst!");
                
            }
            
        
            
            
            
        }
        
    }

}


Computer, Schule, Minecraft, Plug-in, Minecraft plugin, Spiele und Gaming
Java: Wieso bekomme ich eine NullpointerExeption nach Server Reload?

Hallo.

Ich habe ein Minecraft Plugin in der Sprache Java programmiert und nachdem ich den Minecraft Server neulade, gibt dieser eine Fehlermeldung aus. Wieso?

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
Caused by: java.lang.NullPointerException
at de.Schulschluss.shop_GUI.OnInventoryClick.onInventoryClick(OnInventoryClick.java:28) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292]
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
... 15 more

Anscheinend ist der Fehler dort:

Caused by: java.lang.NullPointerException
at de.Schulschluss.shop_GUI.OnInventoryClick.onInventoryClick(OnInventoryClick.java:28) ~[?:?]

Die Klasse sieht wie folgt aus:

public String Prefix = "Prefix >>";

@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
  Player p = (Player) e.getWhoClicked();

  if (e.getWhoClicked() instanceof Player) {
    if (e.getClickedInventory().getTitle() != null) {
      if (e.getClickedInventory().getTitle().equals(de.Schulschluss.Main.GUI_Name)) {
        if (e.getInventory().getName() == de.Schulschluss.Main.GUI_Name) {
          if (e.getCurrentItem() != null) {
            if (e.getSlot() == 10) {
              p.sendMessage(Prefix + "Jetzt.");
            }

            e.setCancelled(true);
          }
        }
      }
    }
  }
}

Ich bitte um Hilfe. Danke an alle im Voraus.

Computer, Programmieren, Java, Minecraft, Minecraft Server, Fehlermeldung, Minecraft plugin, Plugins Minecraft, Minecraft Plugins programmieren
Minecraft Plugin Fehlermeldung?

Hallo, ich programmiere mein eigenes Minecraft Plugin aber immer wenn ich meinen localhost server starte kommt diese Fehlermeldung:

Error occurred while enabling PROFI v1 (Is it up to date?)

java.lang.NullPointerException

    at me.verkaufecannabis.helloworld.Main.onEnable(Main.java:35) ~[?:?]

    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [Spigot1.8.8.jar:git-Spigot-21fe707-e1ebe52]

    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]

außerdem steht bei den ganzen Files von Spigot:
The JAR file "path" has no source attachment.
You can attach the source by clicking Attach Source below:

was muss ich dort Attachen ?

Programmieren, Minecraft plugin, Spiele und Gaming
Config.yml funktioniert nicht was tun?

Ich mache gerade ein /position command aber wenn ich versuche sachen in die config.yml einzutragen gibt es immer einen Error (beim ausführen vom Command kommt: An internal error occuruppted while attempting to perform this command).
Hier die Error message:

Hier der code (ich weis ein paar fehler sind dabei aber ich möchte erstmal schaffen etwas in die config.yml zu schreiben):

public class Position implements CommandExecutor {
    
    private Main plugin;
    
    @SuppressWarnings("deprecation")
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player p = (Player) sender;
            if(args.length == 1) {
                
                String X = String.format("%.0f", p.getLocation().getX());
                String Y = String.format("%.0f", p.getLocation().getY());
                String Z = String.format("%.0f", p.getLocation().getZ());
                
                
                plugin.getConfig().set("Position.args", args[0]);
                plugin.getConfig().set("Position.x", X);
                plugin.getConfig().set("Position.y", Y);
                plugin.getConfig().set("Position.z", Z);
                plugin.saveConfig();
                
                
                TextComponent text = new TextComponent("§aPosition §6" + args[0] + "§a is set to ");
                TextComponent ende = new TextComponent(" §8» ");
                TextComponent tp = new TextComponent("§7move");
                TextComponent coordinates = new TextComponent(
                    "§7[§6X: " + "§6" + String.format("%.0f", p.getLocation().getX()) +
                    "§6 Y: " + String.format("%.0f", p.getLocation().getY()) +
                    "§6 Z: " + String.format("%.0f", p.getLocation().getZ()) + "§7]§6" );

                coordinates.setClickEvent(new ClickEvent(Action.COPY_TO_CLIPBOARD, X + " " + Y + " " + Z));
                coordinates.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
                    new ComponentBuilder("§7Click to copy coordinates").create()));
                
                
                    tp.setClickEvent(new ClickEvent(Action.RUN_COMMAND, "/tp " + p.getName() + " " + X + " " + Y + " " + Z));        
                    tp.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
                        new ComponentBuilder("§7Click here to tp to §8" + args[0]).create()));
                
                
                p.spigot().sendMessage(text, coordinates , ende, tp);
                
                
                    } else
                        p.sendMessage("§cPlease use" + "§6 /position[p] <name> §7/§6 /positionlist[plist] <name>" + "§c!");
                        
        } else {
            sender.sendMessage("§cYou cant use this command in a §6" + sender.getName() + "§c! You need to be a p to use this command!");
        }
        return false;
    }
}
Config.yml funktioniert nicht was tun?
Computer, Programmieren, Coden, Minecraft, Plug-in, Minecraft plugin, BukkitSpigot, Minecraft Plugins programmieren
Config.yml (meines Plugins) nach neustart leer, was tun?

Ich code ein Plugin und save dabei einige Daten, aber nach einem reload oder neustart ist sie immer leer! Was muss ic tun damit die Daten richtig gesaved sind?

Code Save:

{
                            FileConfiguration config = Main.getPlugin().getConfig();
                            config.set("PositionName." + count, args[0]);
                            config.set("Player." + count + "." + args[0], player.getUniqueId());
                            config.set("World." + count + "." + args[0],player.getWorld().getName());
                            config.set("X." + args[0], player.getLocation().getX());
                            config.set("Y." + args[0], player.getLocation().getY());
                            config.set("Z." + args[0], player.getLocation().getZ());
                            count++;
                            Main.getPlugin().saveConfig();
                            }

Main Code:

private static Main plugin;

    public void onEnable() {
        plugin = this;
        
        System.out.println("§aThe plugin§6 ChocolateCore §ais enabled"); {
        loadConfig();
        getCommand("positionlist").setExecutor(new PositionListCommand());
        getCommand("position").setExecutor(new PositionCommand());
        }
    }
    public void loadConfig() {
        getConfig().options().copyDefaults(true);
        saveConfig();
    }
    public static Main getPlugin() {
        return plugin;
        
    }
}
Computer, Minecraft, Plug-in, Minecraft plugin, minecraft plugin programmieren, Plugin Programmieren
Wie mache ich, dass player.get.Location().get[X,Y,Z] nur auf z.B. 0.1 geht und nicht auf 0.1267352863634868?

Wie mache ich, dass player.get.Location().get[X,Y,Z] nur auf z.B. 0.1 geht und nicht auf 0.1267352863634868?

Ich code gerade ein Plugin in Minecraft womit ich meine Positionen "speichern" kann, mit /position[p] [name] aber die Positionen werden immer "weit übertrieben" indem dort z.B. 0.12376887 steht aber ich möchte nur 0 oder 0.1? Was muss ich tun?

Code:

public class PositionCommand implements CommandExecutor{

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(args.length == 0) {
                player.getLocation(); {
                player.sendMessage("§cPlease use §6/position <pos,p> [NAME]§c!");
                }
            } else if(args.length == 1) {
                player.sendMessage("§aPosition §6" + args[0] + "§a is set to" +
                        "§6 X: §6" + player.getLocation().getX() +
                        "§6 Y: §6" + player.getLocation().getY() +
                        "§6 Z: §6" + player.getLocation().getZ() +
                        "§a!");
                    }
            } else {
                sender.sendMessage("§cYou can't this command in a §6" + sender.getName() + "§c! You need to be a player to use this command!");
        }
        
        return false;
    }

}

Beispiel:

Wie mache ich, dass player.get.Location().get[X,Y,Z] nur auf z.B. 0.1 geht und nicht auf 0.1267352863634868?
Computer, Programmieren, Coden, Minecraft, Minecraft plugin, Plugin Programmieren, Minecraft Plugins programmieren
An internal error occured while attempting to perform this command, was muss ich ändern?

An internal error occured while attempting to perform this command, was muss ich ändern?

Ich Code gerade ein Plugin, ein teil davon ist ein /position [name] command aber wenn ich den Command ausführe funktioniert es nicht!

Code:

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            if(args.length == 0) {
                player.getLocation(); {
                player.sendMessage("§cPlease use §6/position <pos,p> [NAME]§c!");
                }
            } else if(args.length == 1) {
                player.sendMessage("§aPosition §6" + args[1] + "§a is set to §6" + player.getLocation() + "§a!");
                    
                    }else {
                        player.sendMessage("§cPlease use §6/position <pos,p> [NAME]§c!");
                }
            } else {
                sender.sendMessage("§cYou can't this command in a §6" + sender.getName() + "§c! You need to be a player to use this command!");
        }
        
        return false;
    }

}

ERROR:

An internal error occured while attempting to perform this command, was muss ich ändern?
Computer, Programmieren, Coden, Minecraft, Minecraft plugin, minecraft plugin programmieren, Minecraft Programmieren

Meistgelesene Fragen zum Thema Minecraft plugin