• 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!

Bitte hilfe : Could not pass event EntityDeathEvent

Hashimura

Minecrafter
Registriert
4 Februar 2020
Beiträge
14
Diamanten
304
Ich möchte versuche ein Plugin zu schreiben, das wenn man ein bestimmen schwein tötet, es wieder kommt. Nur hab ich das problem, wenn ich ein anderes Schwein töte, bekomme ich diesen fehlermeldung, was könnte ich den noch versuchen ?
Code:
[Server thread/ERROR]: Could not pass event EntityDeathEvent to JoinIn v1.0.5
org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:529) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:514) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:708) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityLiving.d(EntityLiving.java:1365) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityLiving.die(EntityLiving.java:1322) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityLiving.damageEntity(EntityLiving.java:1169) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.Entity.burnFromLava(Entity.java:441) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.Entity.entityBaseTick(Entity.java:395) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityLiving.entityBaseTick(EntityLiving.java:236) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityInsentient.entityBaseTick(EntityInsentient.java:210) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.Entity.tick(Entity.java:346) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityLiving.tick(EntityLiving.java:2217) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.EntityInsentient.tick(EntityInsentient.java:273) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.WorldServer.entityJoinedWorld(WorldServer.java:568) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.World.a(World.java:745) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.WorldServer.doTick(WorldServer.java:344) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.MinecraftServer.b(MinecraftServer.java:1069) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:396) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:971) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:816) [spigot.jar:git-Spigot-9de398a-9c887d4]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.NullPointerException
        at de.hashimura.playerjoinquit.util.FoodPig.handleFoodPigDeath(FoodPig.java:43) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot.jar:git-Spigot-9de398a-9c887d4]
        ... 22 more
 

Hashimura

Minecrafter
Registriert
4 Februar 2020
Beiträge
14
Diamanten
304
und hier den code
Code:
package de.hashimura.playerjoinquit.util;

import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Pig;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;

public class FoodPig implements CommandExecutor, Listener{

    private final String PIG_TITLE = "§6§lFreddy";
    
    private void spawnFoodPig(Location location) {
        Pig pig = (Pig) location.getWorld().spawnEntity(location, EntityType.PIG);
        pig.setCustomName(PIG_TITLE);
        pig.setCustomNameVisible(true);
    }
    
    
    
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(sender instanceof Player) {
            Player player = (Player) sender;
            spawnFoodPig(player.getLocation());
            player.sendMessage("§aDu hast ein neues §6FoodPig §aerschaffen!");
        }
        return false;
    }
    
    @SuppressWarnings("deprecation")
    @EventHandler
    public void handleFoodPigDeath(EntityDeathEvent event) {
        if(!(event.getEntity() instanceof Pig)) return;
        Pig pig = (Pig) event.getEntity();
        if(!pig.getCustomName().equals(PIG_TITLE)) return;
        event.getDrops().clear();
        ItemStack foodDrop = new ItemStack(Material.COOKED_BEEF, 3);
        pig.getWorld().dropItemNaturally(pig.getLocation(), foodDrop);
  
        Player player = pig.getKiller();
        if(player.hasPermission("joinin.foodpig") && (player.getItemInHand().getType() == Material.GOLDEN_HOE)) return;
        spawnFoodPig(pig.getLocation());
    }
}
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Und im Hinblick auf die Fehlerquelle auch direkt die Empfehlung beim Vergleichen mit einem konstanten String, die String.(ignore)Equals auf dem konstanten String aufzurufen, dann spart man sich den Test auf null.

Beispiele:
"my constant string".equals(potentiallyNullValue)
anstelle von
potentiallyNullValue.equals("my constant string")

Selbiges gilt natürlich auch wenn die Konstante kein Magic Value ist. Eigentlich sollte man in gescheitem Code eh keine null-Werte haben, aber wenn man mit Bukkit arbeitet lässt sich das leider nicht vermeiden. Von daher ist der Fall in dem der potentiallyNullValue wirklich null ist sowieso immer egal. Entweder der String ist identisch oder nicht.
 
Oben