下面列出了org.bukkit.scoreboard.Team#getPlayers ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected boolean runCommand(CommandSender sender, OptionSet options) {
final Team team = teamSpec.value(options);
final Set<OfflinePlayer> players = Sets.newHashSet(playersSpec.values(options));
players.removeAll(team.getPlayers());
for (final OfflinePlayer player : players) {
team.addPlayer(player);
}
final Set<OfflinePlayer> finalTeam = team.getPlayers();
final String members = finalTeam.size() == 0
? ChatColor.DARK_GRAY + "No members"
: Joiner.on(", ").join(Iterables.transform(team.getPlayers(), FunctionalUtil.PLAYER_NAME_FETCHER));
sender.sendMessage(messages.evalTemplate(
"added",
ImmutableMap.of(
"count", players.size(),
"players", members
)
));
return false;
}
@Override
protected boolean runCommand(CommandSender sender, OptionSet options) {
Collection<Team> teams = teamSpec.values(options);
if (teams.size() == 0) {
teams = options.has(allSpec) ? module.getScoreboard().getTeams() : module.getTeams().values();
}
int count = 0;
for (final Team team : teams) {
for (final OfflinePlayer player : team.getPlayers()) {
team.removePlayer(player);
count++;
}
}
sender.sendMessage(messages.evalTemplate("cleared", ImmutableMap.of("teams", teams.size(), "players", count)));
return true;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(messages.getRaw("players only"));
return true;
}
final Player player = (Player) sender;
final Team team = module.getScoreboard().getPlayerTeam(player);
if (team == null) {
sender.sendMessage(messages.getRaw("not in team"));
return true;
}
final Location loc = player.getLocation();
final Map<String, String> context = ImmutableMap.<String, String>builder()
.put("name", player.getName())
.put("display name", player.getDisplayName())
.put("world", loc.getWorld().getName())
.put("x", String.valueOf(loc.getBlockX()))
.put("y", String.valueOf(loc.getBlockY()))
.put("z", String.valueOf(loc.getBlockZ()))
.build();
final String message = messages.evalTemplate("format", context);
for (final OfflinePlayer p : team.getPlayers()) {
if (p.isOnline()) {
p.getPlayer().sendMessage(message);
}
}
return true;
}
@Override
protected boolean runCommand(CommandSender sender, OptionSet options) {
final int page = pageSpec.value(options);
final boolean emptyOnly = options.has(emptyOnlySpec);
final boolean showAll = options.has(showAllSpec);
if (showAll && emptyOnly) {
sender.sendMessage(ChatColor.RED + "You must provide -e OR -a, you cannot supply both");
return true;
}
final Predicate<Team> predicate;
final String type;
if (emptyOnly) {
type = "(empty teams)";
predicate = Predicates.not(FunctionalUtil.TEAMS_WITH_PLAYERS);
} else if (showAll) {
type = "(all teams)";
predicate = Predicates.alwaysTrue();
} else {
type = "(with players)";
predicate = FunctionalUtil.TEAMS_WITH_PLAYERS;
}
final List<Team> teams = Lists.newArrayList(Iterables.filter(teamModule.getTeams().values(), predicate));
if (teams.size() == 0) {
sender.sendMessage(ChatColor.RED + "No results found for query " + type);
return true;
}
final List<List<Team>> partitioned = Lists.partition(teams, COUNT_PER_PAGE);
if (page > partitioned.size()) {
sender.sendMessage(ChatColor.RED + "Page " + page + " does not exist");
return true;
}
final List<Team> pageItems = partitioned.get(page - 1);
final Map<String, Object> context = ImmutableMap.<String, Object>builder()
.put("page", page)
.put("pages", partitioned.size())
.put("type", type)
.put("count", pageItems.size())
.put("teams", teams.size())
.put("multiple", partitioned.size() > 1)
.build();
sender.sendMessage(messages.evalTemplate("header", context));
final Joiner joiner = Joiner.on(", ");
for (final Team team : pageItems) {
final String memberString;
final Set<OfflinePlayer> members = team.getPlayers();
if (members.size() == 0) {
memberString = NO_MEMBERS;
} else {
memberString = joiner.join(Iterables.transform(team.getPlayers(), FunctionalUtil.PLAYER_NAME_FETCHER));
}
sender.sendMessage(
String.format(FORMAT, team.getPrefix() + team.getDisplayName(), team.getName(), memberString)
);
}
return true;
}