Discord

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

Erledigt PlayerInteractEvent problem

Yasuo Krieger

Kuhfänger
Mitglied seit
22 November 2015
Beiträge
60
Minecraft
NonPrimeYasuo
Guten Tag,

ich habe einen Code als Cookieclicker! Dort clicke ich auf einen Kopf und bekomme Coins. Wenn ich aber jetzt in die Luft Schlage oder sachen werfe, wird die Console vollgespamt.

Java:
    @EventHandler
    public void onClick(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        if(e.getClickedBlock().getType() == Material.SKULL){
            if((e.getAction() == Action.RIGHT_CLICK_BLOCK)){
                String prefix = Main.instance.getConfig().getString("Prefix");
                prefix = prefix.replace("&", "§");
                if(getUpgrade(p) == 0) {
                    addCookie(p, 1);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }else if(getUpgrade(p) == 1){
                    addCookie(p, 5);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }else if(getUpgrade(p) == 2){
                    addCookie(p, 10);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }else if(getUpgrade(p) == 3){
                    addCookie(p, 15);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }else if(getUpgrade(p) == 4){
                    addCookie(p, 20);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }else if(getUpgrade(p) == 5){
                    addCookie(p, 25);
                    p.playSound(p.getLocation(), Sound.ORB_PICKUP, 10F, 10F);
                   
                    p.sendMessage(prefix + "§7Du hast nun §6" + getCookie(p) + " §7Cookies");
                }
            }else if((e.getAction() == Action.LEFT_CLICK_BLOCK)) {
                Inventory cookie = Bukkit.createInventory(null, InventoryType.HOPPER, "§6Cookie-Shop");
                cookie.setItem(0, Main.createHead("QuadratCookie", 1, "§7Meine Cookies: §6" + getCookie(p)));
                cookie.setItem(2, Main.createItem(Material.PAPER, 1, 0, "§6Buy Upgrade"));
                cookie.setItem(4, Main.createItem(Material.BARRIER, 1, 0, "§4Reset-All"));
               
                p.openInventory(cookie);
            }
        }
    }
Dazu wie könnte ich abfragen wie der Kopf heißt?!
Wäre Nett wenn mir jemand helfen kann.

Mit freundlichen Grüßen Yasuo
 
Zuletzt bearbeitet von einem Moderator:

LapisMC

Schafhirte
Osterei Experte
Mitglied seit
29 März 2014
Beiträge
120
Alter
21
Minecraft
LapisMC
Der Fehler liegt hier:
Ausschnitt:
        if(e.getClickedBlock().getType() == Material.SKULL){
            if((e.getAction() == Action.RIGHT_CLICK_BLOCK)){
Du fragst erst über e.getClickedBlock() den Block ab, obwohl dieser möglicherweise nicht einmal existiert (weil der Spieler zum Beispiel in die Luft schlägt). In diesem Fall wird dann null zurückgegeben, was bei Aufruf von getType() natürlich eine NullPointerException erzeugt. Die Überprüfung von e.getAction() muss zuerst erfolgen, dann kann der angeklickte Block auch nicht mehr null sein.
 

Yasuo Krieger

Kuhfänger
Mitglied seit
22 November 2015
Beiträge
60
Minecraft
NonPrimeYasuo
uff das ich da nicht drauf gekommen bin :D aber klingt logisch.
Vielen dank c:
 
Oben