2016-09-05 7 views
-1

ちょっと私はタブリストプラグインを作っていました。私は少しこれを試してきました。私は複数のことを試してきましたが、これまでに何も出てこなかったのです。私の目標は、メンバーがオンラインであることを示すタブリストに参加して自動的にメンバーを削除すると、自動的に派閥メンバー名を追加することです。自動的にタブリストから項目を追加したり削除したりします

明確な説明: 派閥メンバー名は、参加時にタブリストに表示する必要があります。私はそれをやってみました、そして、それはタブリスト上の1つのエントリーまたは1つのスロットにすべて一緒にグループ化しました。 1つのタブレットに1つの名前が表示されます。

どのようにすればいいですか?

誰でもアイデアがありますか?ここに私のコードは(これは自動参加含めると残していない)である

コードはかなり役に立たないですが、ここでそれはあなたが派閥にフックし、解雇のイベントをリッスンすることができます

if (fplayer.hasFaction()) 
{ 
    list.setSlot(0, "", ChatColor.DARK_PURPLE + "Home:", ""); 
    if (faction.hasHome()) 
    { 
    int x = faction.getHome().getBlockX(); 
    int z = faction.getHome().getBlockZ(); 

    String xz = x + ", " + z; 

    list.setSlot(3, "", ChatColor.BLUE.toString(), ChatColor.YELLOW + xz); 
    } 
    else 
    { 
    list.setSlot(3, "", ChatColor.DARK_RED.toString(), ChatColor.YELLOW + "Not Set"); 
    } 
    list.setSlot(1, "", ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("SERVER-NAME")), ""); 

    list.setSlot(2, "", ChatColor.DARK_PURPLE + "End Portals:", ""); 
    list.setSlot(5, "", ChatColor.YELLOW + plugin.getConfig().getString("END-PORTAL-COORDS"), ""); 
    list.setSlot(8, "", ChatColor.YELLOW + "in each ", ChatColor.YELLOW + "quadrant."); 


    int KILLS = Stats.kdc.getInt("p." + p.getUniqueId().toString() + ".kills"); 
    String KILLSS = Integer.toString(KILLS); 
    int DEATHS = Stats.kdc.getInt("p." + p.getUniqueId().toString() + ".deaths"); 
    String DEATHSS = Integer.toString(DEATHS); 

    list.setSlot(22, "", ChatColor.DARK_BLUE.toString(), ChatColor.DARK_PURPLE + "Player Info:"); 
    list.setSlot(25, "", ChatColor.YELLOW + "Kills: ", ChatColor.YELLOW + KILLSS); 
    list.setSlot(28, "", ChatColor.YELLOW + "Deaths: ", ChatColor.YELLOW + DEATHSS); 

    DecimalFormat dtrf = new DecimalFormat("#.###"); 

    list.setSlot(10, "", ChatColor.DARK_GREEN.toString(), ChatColor.DARK_PURPLE + "Faction Info:"); 
    list.setSlot(13, "", ChatColor.YELLOW + "DTR: ", String.valueOf(dtrf.format(faction.getDTR()))); 
    list.setSlot(16, "", ChatColor.YELLOW + "Online: ", String.valueOf(faction.getOnlinePlayers().size() + "/" + faction.getSize())); 

    int x = p.getLocation().getBlockX(); 
    int z = p.getLocation().getBlockZ(); 

    String xz = "(" + x + ", " + z + ")"; 

    list.setSlot(34, "", ChatColor.DARK_PURPLE + "Location:", ""); 

    list.setSlot(37, "", ChatColor.UNDERLINE.toString(), ChatColor.YELLOW + "Unknown"); 

    list.setSlot(40, ChatColor.GRAY + "[" + getCardinalDirection(p) + "] ", ChatColor.MAGIC.toString(), ChatColor.GRAY + xz); 

    list.setSlot(46, "", ChatColor.DARK_PURPLE + "KoTH:", ""); 
    list.setSlot(49, "", ChatColor.YELLOW + "Name: ", ChatColor.YELLOW + "None"); 
    list.setSlot(52, "", ChatColor.YELLOW + "Loc: ", ChatColor.YELLOW + "None"); 
    list.setSlot(55, "", ChatColor.YELLOW + "Time: ", ChatColor.YELLOW + "None"); 

    list.setSlot(15, "", ChatColor.DARK_PURPLE + "Kit:", ""); 
    list.setSlot(18, "", ChatColor.YELLOW + plugin.getConfig().getString("MAP-KIT"), ""); 

    list.setSlot(24, "", ChatColor.DARK_PURPLE + "Border:", ""); 
    list.setSlot(27, "", ChatColor.YELLOW + plugin.getConfig().getString("BORDER-COORDS"), ""); 

    int i = 0; 
    for (Player o : Bukkit.getOnlinePlayers()) { 
    i++; 
    } 
    list.setSlot(33, "", ChatColor.DARK_PURPLE + "Players Online ", ChatColor.DARK_PURPLE + ": "); 
    list.setSlot(36, "", ChatColor.WHITE.toString(), ChatColor.YELLOW + String.valueOf(i)); 

    list.setDefaultPing(1); 
+0

おそらくここをクリックしてください。http://docs.oracle.com/javase/tutorial/uiswing/components/table.html – MikeJRamsey56

+0

Tedstar、2015年12月28日、回答#16をご覧ください。 https://www.spigotmc.org/threads/add-fake-players-to-tablist.111142/ – MikeJRamsey56

+0

@ MikeJRamsey56私のタブリストは機能します。私が直面している問題は、カスタムスロットを自動的に作成して、他のプレイヤーチームにいるプレイヤーを追加したり削除したりすることです – jackc

答えて

0

ですプレイヤーは派閥に加わる/退いた後、ソースとターゲット派閥のプレイヤーをループし、途中でタブリストを更新します。

それとも、関係なく、彼らの派閥の状態のすべてのプレイヤーのtablistsを更新しようとASYC繰り返しタスクを設定することにより、それをより多くのラグ方法を行うことができます。理由は私がASYCと言う理由は、メソッドが失敗した場合、メインサーバースレッドで割り込みが発生しないためです。

関連する問題