org.bukkit.Server.getOnlinePlayers()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.8k)|赞(0)|评价(0)|浏览(186)

本文整理了Java中org.bukkit.Server.getOnlinePlayers()方法的一些代码示例,展示了Server.getOnlinePlayers()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Server.getOnlinePlayers()方法的具体详情如下:
包路径:org.bukkit.Server
类名称:Server
方法名:getOnlinePlayers

Server.getOnlinePlayers介绍

[英]Gets a view of all currently logged in players. This Collections#unmodifiableCollection(Collection) is a reused object, making some operations like Collection#size()zero-allocation.

The collection is a view backed by the internal representation, such that, changes to the internal state of the server will be reflected immediately. However, the reuse of the returned collection (identity) is not strictly guaranteed for future or all implementations. Casting the collection, or relying on interface implementations (like Serializable or List), is deprecated.

Iteration behavior is undefined outside of self-contained main-thread uses. Normal and immediate iterator use without consequences that affect the collection are fully supported. The effects following (non-exhaustive) Entity#teleport(Location), Player#setHealth(double), and Player#kickPlayer(String) are undefined. Any use of this collection from asynchronous threads is unsafe.

For safe consequential iteration or mimicking the old array behavior, using Collection#toArray(Object[]) is recommended. For making snapshots, ImmutableList#copyOf(Collection) is recommended.
[中]获取当前登录的所有玩家的视图。这个Collections#unmodifiableCollection(Collection)是一个可重用的对象,使Collection#size()等操作成为零分配。
集合是一个由内部表示支持的视图,因此,对服务器内部状态的更改将立即反映出来。然而,并不能严格保证在将来或所有实现中重用返回的集合(标识)。不推荐使用强制转换集合或依赖接口实现(如Serializable或List)。
在自包含的主线程使用之外,迭代行为是未定义的。完全支持正常和立即使用迭代器,不会影响集合。未定义实体#远程传送(位置)、玩家#设置健康(双)和玩家#踢球玩家(字符串)后的效果(非详尽)。从异步线程使用此集合是不安全的。
为了安全地进行后续迭代或模仿旧的数组行为,建议使用Collection#toArray(Object[])。制作快照时,建议使用ImmutableList#copyOf(Collection)。

代码示例

代码示例来源:origin: Bukkit/Bukkit

/**
 * @see Server#getOnlinePlayers()
 */
public static Collection<? extends Player> getOnlinePlayers() {
  return server.getOnlinePlayers();
}

代码示例来源:origin: Bukkit/Bukkit

public PlayerCommandPreprocessEvent(final Player player, final String message) {
  super(player);
  this.recipients = new HashSet<Player>(player.getServer().getOnlinePlayers());
  this.message = message;
}

代码示例来源:origin: Bukkit/Bukkit

public PlayerChatEvent(final Player player, final String message) {
  super(player);
  this.message = message;
  this.format = "<%1$s> %2$s";
  this.recipients = new HashSet<Player>(player.getServer().getOnlinePlayers());
}

代码示例来源:origin: EngineHub/WorldEdit

@Override
  public Collection<Actor> getConnectedUsers() {
    List<Actor> users = new ArrayList<>();
    for (org.bukkit.entity.Player player : Bukkit.getServer().getOnlinePlayers()) {
      users.add(new BukkitPlayer(plugin, player));
    }
    return users;
  }
}

代码示例来源:origin: Bukkit/Bukkit

/**
 * Executed on tab completion for this command, returning a list of
 * options the player can tab through.
 *
 * @param sender Source object which is executing this command
 * @param alias the alias being used
 * @param args All arguments passed to the command, split via ' '
 * @return a list of tab-completions for the specified arguments. This
 *     will never be null. List may be immutable.
 * @throws IllegalArgumentException if sender, alias, or args is null
 */
public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
  Validate.notNull(sender, "Sender cannot be null");
  Validate.notNull(args, "Arguments cannot be null");
  Validate.notNull(alias, "Alias cannot be null");
  if (args.length == 0) {
    return ImmutableList.of();
  }
  String lastWord = args[args.length - 1];
  Player senderPlayer = sender instanceof Player ? (Player) sender : null;
  ArrayList<String> matchedPlayers = new ArrayList<String>();
  for (Player player : sender.getServer().getOnlinePlayers()) {
    String name = player.getName();
    if ((senderPlayer == null || senderPlayer.canSee(player)) && StringUtil.startsWithIgnoreCase(name, lastWord)) {
      matchedPlayers.add(name);
    }
  }
  Collections.sort(matchedPlayers, String.CASE_INSENSITIVE_ORDER);
  return matchedPlayers;
}

代码示例来源:origin: Bukkit/Bukkit

for (Player player : sender.getServer().getOnlinePlayers()) {
  String name = player.getName();
  if (!senderPlayer.canSee(player) || player.isOp()) {

代码示例来源:origin: GlowstoneMC/Glowstone

/**
 * Handles post-hooks for a player login, including the name and IP banlists, whitelist policy
 * and occupancy limit.
 *
 * @param player the login
 * @param hostname the hostname that was used to connect to the server
 * @return the completed event
 */
public PlayerLoginEvent onPlayerLogin(GlowPlayer player, String hostname) {
  Server server = player.getServer();
  InetAddress address = player.getAddress().getAddress();
  String addressString = address.getHostAddress();
  PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, address);
  BanList nameBans = server.getBanList(Type.NAME);
  BanList ipBans = server.getBanList(Type.IP);
  if (nameBans.isBanned(player.getName())) {
    event.disallow(Result.KICK_BANNED,
        Kick.BANNED.get(nameBans.getBanEntry(player.getName()).getReason()));
  } else if (ipBans.isBanned(addressString)) {
    event.disallow(Result.KICK_BANNED,
        Kick.BANNED.get(ipBans.getBanEntry(addressString).getReason()));
  } else if (checkWhitelisted(player, event)
      && server.getOnlinePlayers().size() >= server.getMaxPlayers()) {
    event.disallow(Result.KICK_FULL, Kick.FULL.get(server.getMaxPlayers()));
  }
  return callEvent(event);
}

代码示例来源:origin: GlowstoneMC/Glowstone

/**
 * Handles an incoming chat message.
 *
 * @param async This changes the event to a synchronous state.
 * @param player the sending player
 * @param message the message
 * @return the completed event
 */
@SuppressWarnings("deprecation")
public AsyncPlayerChatEvent onPlayerChat(boolean async, Player player, String message) {
  // call async event
  Set<Player> recipients = new HashSet<>(player.getServer().getOnlinePlayers());
  AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, message, recipients);
  callEvent(event);
  // call sync event only if needed
  if (PlayerChatEvent.getHandlerList().getRegisteredListeners().length > 0) {
    // initialize event to match current state from async event
    PlayerChatEvent syncEvent = new PlayerChatEvent(player, event.getMessage(), event
        .getFormat(), recipients);
    syncEvent.setCancelled(event.isCancelled());
    // call event synchronously and copy data back to original event
    callEvent(syncEvent);
    event.setMessage(syncEvent.getMessage());
    event.setFormat(syncEvent.getFormat());
    event.setCancelled(syncEvent.isCancelled());
  }
  return event;
}

代码示例来源:origin: mcMMO-Dev/mcMMO

public static void broadcastTitle(Server server, String title, String subtitle, int i1, int i2, int i3)
{
  for(Player player : server.getOnlinePlayers())
  {
    player.sendTitle(title, subtitle, i1, i2, i3);
  }
}

代码示例来源:origin: PEXPlugins/PermissionsEx

@Override
public Set<Permissible> keySet() {
  Collection<? extends Player> players = plugin.getServer().getOnlinePlayers();
  Set<Permissible> pexMatches = new HashSet<>(players.size());
  players.stream()
      .filter(player -> player.hasPermission(permission))
      .collect(Collectors.toCollection(() -> pexMatches));
  return Sets.union(pexMatches, backing.keySet());
}

代码示例来源:origin: mcMMO-Dev/mcMMO

/**
 * Clear all users.
 */
public static void clearAll() {
  for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
    remove(player);
  }
}

代码示例来源:origin: mcMMO-Dev/mcMMO

public static void teardownAll() {
  ImmutableList<Player> onlinePlayers = ImmutableList.copyOf(mcMMO.p.getServer().getOnlinePlayers());
  mcMMO.p.debug("Tearing down scoreboards... (" + onlinePlayers.size() + ")");
  for (Player player : onlinePlayers) {
    teardownPlayer(player);
  }
}

代码示例来源:origin: mcMMO-Dev/mcMMO

public static List<String> getOnlinePlayerNames(CommandSender sender) {
  Player player = sender instanceof Player ? (Player) sender : null;
  List<String> onlinePlayerNames = new ArrayList<String>();
  for (Player onlinePlayer : mcMMO.p.getServer().getOnlinePlayers()) {
    if (player != null && player.canSee(onlinePlayer)) {
      onlinePlayerNames.add(onlinePlayer.getName());
    }
  }
  return onlinePlayerNames;
}

代码示例来源:origin: mcMMO-Dev/mcMMO

public static Collection<McMMOPlayer> getPlayers() {
  Collection<McMMOPlayer> playerCollection = new ArrayList<McMMOPlayer>();
  for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
    if (hasPlayerDataKey(player)) {
      playerCollection.add(getPlayer(player));
    }
  }
  return playerCollection;
}

代码示例来源:origin: Brettflan/WorldBorder

@Override
public void run()
{
  // if knockback is set to 0, simply return
  if (Config.KnockBack() == 0.0)
    return;
  Collection<Player> players = ImmutableList.copyOf(Bukkit.getServer().getOnlinePlayers());
  for (Player player : players)
  {
    checkPlayer(player, null, false, true);
  }
}

代码示例来源:origin: EngineHub/CommandHelper

public static BukkitMCPlayerChatEvent _instantiate(MCPlayer player, String message, String format) {
  AsyncPlayerChatEvent apce = new AsyncPlayerChatEvent(false, ((BukkitMCPlayer) player)._Player(), message,
      new HashSet<>(Bukkit.getServer().getOnlinePlayers()));
  apce.setFormat(format);
  return new BukkitMCPlayerChatEvent(apce);
}

代码示例来源:origin: EngineHub/CommandBook

@Override
public void reload() {
  super.reload();
  config = configure(config);
  // Check god mode for existing players, if any
  for (Player player : CommandBook.server().getOnlinePlayers()) {
    checkAutoEnable(player);
  }
}

代码示例来源:origin: EngineHub/WorldGuard

@Override
public void broadcastNotification(String message) {
  Bukkit.broadcast(message, "worldguard.notify");
  Set<Permissible> subs = Bukkit.getPluginManager().getPermissionSubscriptions("worldguard.notify");
  for (Player player : Bukkit.getServer().getOnlinePlayers()) {
    if (!(subs.contains(player) && player.hasPermission("worldguard.notify")) &&
        WorldGuardPlugin.inst().hasPermission(player, "worldguard.notify")) { // Make sure the player wasn't already broadcasted to.
      player.sendMessage(message);
    }
  }
  WorldGuard.logger.info(message);
}

代码示例来源:origin: EngineHub/CommandBook

@Override
public void enable() {
  config = configure(new LocalConfiguration());
  registerCommands(Commands.class);
  // Check god mode for existing players, if any
  for (Player player : CommandBook.server().getOnlinePlayers()) {
    checkAutoEnable(player);
  }
  CommandBook.registerEvents(this);
}

代码示例来源:origin: EngineHub/WorldGuard

@Override
  public void run() {
    for (Player player : Bukkit.getServer().getOnlinePlayers()) {
      get(new BukkitPlayer(WorldGuardPlugin.inst(), player)).tick(new BukkitPlayer(WorldGuardPlugin.inst(), player));
    }
  }
}

相关文章

微信公众号

最新文章

更多

Server类方法