2016-04-16 11 views
0

Ich mache ein Plugin, das in naher Zukunft Ränge haben wird, aber ich entschied mich, zuerst Präfixe zuerst zu bekommen. Ich habe diesen Code:Bukkit Benutzerdefiniertes Präfix-Plugin funktioniert nicht mit Essentials

Essentials ess = (Essentials) Bukkit.getServer().getPluginManager().getPlugin("Essentials"); 
    User user = ess.getUserMap().getUser(p.getName()); 
    //nickname 
    String nick = user.getDisplayName(); 
    String prisoner = ColourMsg("&5<<&bPrisoner&5>>&r>" + " <"); 

    p.setDisplayName(prisoner + nick); 

Aus irgendeinem Grund wird dieser Code nicht funktionieren! Es zeigt nur den Nickname und nicht das Präfix an (ich würde erwarten, dass es beides anzeigt). Die einzige Fehlermeldung, die ich bekomme, kommt vom essentials Chat, der für mein Plugin nicht benötigt wird und/nick funktioniert immer noch.

Wenn jemand helfen kann, lass es mich wissen.

Vielen Dank im Voraus!

+0

Funktioniert nicht in welcher Weise? Fehlermeldung? Wie unterscheidet sich das Ergebnis vom erwarteten Ergebnis? – TAM

+0

Wo wird dieser Code ausgeführt? – bcsb1001

Antwort

0

Sie benötigen keine Essentials dafür (Essentials ist sowieso ein schlechtes Plugin, seit 1.8). Sie können Scoreboard-Präfixe/Suffix einfach im PlayerJoinEvent verwenden, um die Tags festzulegen.

Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard(); 
Objective ob = sb.registerNewObjective("objName", "dummy"); 

    public void onEnable() { 
     // Set Display slot 
     ob.setDisplaySlot(DisplaySlot.PLAYER_LIST); 
    } 

    public void onJoin(PlayerJoinEvent e) { 
     // Delay a task 
     Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { 
      @Override 
      public void run() { 
       if (e.getPlayer().hasPermission("tags.example")) { 
        sb.registerNewTeam("Example"); 
        Team team = sb.getTeam("Example"); 
        team.setPrefix(ChatColor.RED + "[Example]"); 
        team.addEntry(e.getPlayer().getName()); 
       } else if (e.getPlayer().hasPermission("tags.otherTag")) { 
        sb.registerNewTeam("OtherTag"); 
        Team team = sb.getTeam("OtherTag"); 
        team.setPrefix(ChatColor.GREEN + "[OtherTag]"); 
        team.addEntry(e.getPlayer().getName()); 
       } 
      } 
     }, 20 * 1); // The 1 is the number of seconds to delay, 1 is fine 
    }