ちょっと私はタブリストプラグインを作っていました。私は少しこれを試してきました。私は複数のことを試してきましたが、これまでに何も出てこなかったのです。私の目標は、メンバーがオンラインであることを示すタブリストに参加して自動的にメンバーを削除すると、自動的に派閥メンバー名を追加することです。自動的にタブリストから項目を追加したり削除したりします
明確な説明: 派閥メンバー名は、参加時にタブリストに表示する必要があります。私はそれをやってみました、そして、それはタブリスト上の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);
おそらくここをクリックしてください。http://docs.oracle.com/javase/tutorial/uiswing/components/table.html – MikeJRamsey56
Tedstar、2015年12月28日、回答#16をご覧ください。 https://www.spigotmc.org/threads/add-fake-players-to-tablist.111142/ – MikeJRamsey56
@ MikeJRamsey56私のタブリストは機能します。私が直面している問題は、カスタムスロットを自動的に作成して、他のプレイヤーチームにいるプレイヤーを追加したり削除したりすることです – jackc