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

Check ob jmd ein Namen gemacht hat auf dem Item

Swissu

Minecrafter
Registriert
29 Juli 2014
Beiträge
9
Alter
32
Diamanten
300
Minecraft
BNLynxion
Hey liebe Community,

Ich arbeite derzeit an einem Server Projekt und Entwickle Plugins....
Jetzt hab ich ein weiteres Feature eingebaut in einem Haupt Plugin, das den Spieler Effekte ermöglichen soll.
Das Problem.... Ich schaffe es nicht das es nur auf einem Item läuft das nen bestimmten Namen hat....
Gedacht ist zb: "railgun.firework" und erst dann soll es laufen....

Hier mal den Code:
Code:
@EventHandler
  public void railShot(PlayerInteractEvent event){
     try {
    if (event.getAction() != Action.RIGHT_CLICK_AIR) return;
    Player p = event.getPlayer();
    if (p.getItemInHand()==null) return;
    if (p.getItemInHand().getType()!= Material.BLAZE_ROD) return;
    if (p.hasPermission("brandnetz.effekte.railgun") && p.isOp()==true){
         
    Location loc1 = p.getEyeLocation();
    @SuppressWarnings("deprecation")
    Location loc2 = p.getTargetBlock((HashSet<Byte>) null, 100).getLocation();
    if (p.getItemInHand().getType().)
    if (loc1 == null) return;
    if (loc2 == null) return;
    List<Location> line = Util.buildLine(loc1, loc2); // provided by PlayEffect
    if (line.size()<=1) return;
    line.remove(0);
   
    for (Location l : line){
    // PlayEffect: play firework effect to simulate railgun trails
    String param = "loc:"+Util.locationToStrLoc(loc1)+" loc2:"+Util.locationToStrLoc(loc2)+" draw:line color:red type:ball";
    PlayEffect.play(VisualEffect.FIREWORKS_SPARK, param);
   
    for (Entity e : l.getChunk().getEntities()){
    if (!(e instanceof LivingEntity)) continue;
    LivingEntity le = (LivingEntity) e;
    if (le.getLocation().distance(l)<=1.5) le.damage(le.getMaxHealth()*2);
    }
    }
    } else {
       p.sendMessage(plugin_manager + ChatColor.RED + "Du hast keinen Zugang zu diesem Feature!");
    }
     } catch (Exception e) {
       e.printStackTrace();
       p.sendMessage(plugin_manager + ChatColor.RESET + "Diesen Code bitte dem Techniker senden: " + ChatColor.RED + "0x00054E");
     } 
  }

Frage:
Wie kann ich jetzt überprüfen ob der Gegenstand diesen Namen hat?
Ich wäre für Links und Beispiel Codes sehr froh

Danke schon jetzt für die Hilfe :)
 
Zuletzt bearbeitet von einem Moderator:

MrPyro13

Workaholic
Registriert
29 April 2013
Beiträge
826
Diamanten
300
Minecraft
MrPyro13
Hallo,

ich würde dir empfehlen alle p.getItemInHand() mit ev.getItem() zu ersetzen.
Nun zum eigentlichen Problem:
Code:
if (ev.getItem() != null)
if (ev.getItem().getItemMeta().hasDisplayname())
if (ev.getItem().getItemMeta().getDisplayname().equals("BossItem"))[/code
 
Zuletzt bearbeitet von einem Moderator:

iTz_Proph3t

Das hier liest doch eh kein Schwein...
Moderator
Administrator
Registriert
24 Oktober 2012
Beiträge
1.347
Diamanten
1.452
Minecraft
iTz_Proph3t
Hab euch das mal in Code-Format abgespeichert. Um das selbst zu machen, einfach {code] am Anfang schreiben und {/code] am ende.
Nurnoch die geschweiften Klammern durch eckige ersetzen, dann klappt es ;)
 
Oben