2016-04-16 5 views
0

近い将来にランク付けされるプラグインを作っていますが、先にプレフィックスを取得することに決めました。私はこのコードを持っています:Bukkitカスタムプレフィックスプラグインが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); 

何らかの理由で、このコードは機能しません!プレフィックスではなく、ニックネームだけを表示します(私は両方を表示すると思います)。また、私が得る唯一のエラーメッセージは、私のプラグインには必要ではない必須チャットからであり、/ nickはまだ動作しています。

誰かが助けることができる場合は、私にお知らせください。

ありがとうございます!

+0

どのように動作しませんか?エラーメッセージ?結果は期待された結果とどのように異なるか? – TAM

+0

このコードはどこで実行されていますか? – bcsb1001

答えて

0

あなたはEssentialsを必要としません(1.8以降のEssentialsは、とにかく悪いプラグインです)。 PlayerJoinEventでscoreboard接頭辞/接尾辞を使用するだけで、タグを設定できます。

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 
    } 
関連する問題