/** * Added needed method for Storage to convert from UUID to owners. * * <p>The UUID's are validated through offline player checking. * * <p>If a player with the specified UUID has not played on the server before, the owner is not * set. * * @param ownerUniqueId The player UUID of the owner. */ public void setOwnerUniqueId(UUID ownerUniqueId) { if (ownerUniqueId == null) { this.ownerUniqueId = null; return; } OfflinePlayer player = Bukkit.getOfflinePlayer(ownerUniqueId); if (player != null && player.hasPlayedBefore()) { this.ownerUniqueId = ownerUniqueId; } }
@Override public void load(T entity, CompoundTag compound) { // TODO make this better. super.load(entity, compound); if (compound.containsKey("OwnerUUID") && !compound.getString("OwnerUUID").isEmpty()) { entity.setOwnerUniqueId(UuidUtils.fromString(compound.getString("OwnerUUID"))); if (Bukkit.getPlayer(entity.getOwnerUniqueId()) != null) { entity.setOwner(Bukkit.getPlayer(entity.getOwnerUniqueId())); } } else if (compound.containsKey("Owner") && !compound.getString("Owner").isEmpty()) { String playerName = compound.getString("Owner"); OfflinePlayer player = Bukkit.getOfflinePlayer(playerName); if (player.hasPlayedBefore()) { entity.setOwnerUniqueId(player.getUniqueId()); if (Bukkit.getPlayer(entity.getOwnerUniqueId()) != null) { entity.setOwner(Bukkit.getPlayer(entity.getOwnerUniqueId())); } } } }
@Override public boolean hasPlayedBefore() { return op.hasPlayedBefore(); }
@SuppressWarnings("deprecation") private String getUuidByOfflinePlayer(String name) { OfflinePlayer player = plugin.getServer().getOfflinePlayer(name); if (!player.hasPlayedBefore()) { return null; } return player.getUniqueId().toString(); }
private String getNameByOfflinePlayer(String uuid) { OfflinePlayer player = plugin.getServer().getOfflinePlayer(UUID.fromString(uuid)); if (!player.hasPlayedBefore()) { return null; } return player.getName(); } }
private void checkAndCache(String achievementName) { if (System.currentTimeMillis() - CACHE_EXPIRATION_DELAY > lastCached.getOrDefault(achievementName, 0L)) { List<AwardedDBAchievement> recipientList = databaseManager.getAchievementsRecipientList(achievementName); // Use Suppliers to avoid huge work on getting UUID - name relations. List<Supplier<String>> messages = recipientList.stream() .map(achievement -> (Supplier<String>) () -> { UUID uuid = achievement.getAwardedTo(); OfflinePlayer player = advancedAchievements.getServer().getOfflinePlayer(uuid); String identifier = player.hasPlayedBefore() ? player.getName() : uuid.toString(); return " " + identifier + " (" + achievement.getFormattedDate() + ")"; }).collect(Collectors.toList()); SupplierCommandPagination pagination = new SupplierCommandPagination(messages, PER_PAGE, langConfig); cachedPaginations.put(achievementName, pagination); lastCached.put(achievementName, System.currentTimeMillis()); } } }
@Override public String replace(String command, QueuedPlayer player, QueuedCommand queuedCommand) { if (player.getUuid() == null || player.getUuid() == "") { return REPLACE_NAME.matcher(command).replaceAll(player.getName()); } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(UuidUtil.mojangUuidToJavaUuid(player.getUuid())); if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) { return REPLACE_NAME.matcher(command).replaceAll(player.getName()); } return REPLACE_NAME.matcher(command).replaceAll(offlinePlayer.getName()); } }
static String lookupPlayerName(UUID playerID) { //parameter validation if(playerID == null) return "somebody"; //check the cache OfflinePlayer player = GriefPrevention.instance.getServer().getOfflinePlayer(playerID); if(player.hasPlayedBefore() || player.isOnline()) { return player.getName(); } else { return "someone(" + playerID.toString() + ")"; } }
@Override public AccountHolder getAccountHolder(String uuidOrName) { if (uuidOrName == null) { return null; } OfflinePlayer player; try { UUID playerId = UUID.fromString(uuidOrName); player = Bukkit.getOfflinePlayer(playerId); } catch (IllegalArgumentException ignored) { // don't use getOfflinePlayer(String) because that will do a blocking web request // rather iterate this array, should be quick enough for (OfflinePlayer p : Bukkit.getOfflinePlayers()) { if (uuidOrName.equals(p.getName())) return new PlayerAccountHolder(p); } return null; } // if this player has ever played on the server, they are a legit account holder if (player.isOnline() || player.hasPlayedBefore()) { return new PlayerAccountHolder(player); } else { return null; } }
/** * Get the username from a player's UUID * * @param uuid The UUID of the player * @return The username that is stored or <tt>null</tt> if none was found * @deprecated Use {@link NameManager#getAccount(UUID)} */ @Deprecated public static String getUsername(UUID uuid) { Player player = Bukkit.getPlayer(uuid); if (player != null) { return player.getName(); } Account account = getAccount(uuid); if (account != null) { return account.getName(); } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(uuid); if (offlinePlayer != null && offlinePlayer.hasPlayedBefore() && offlinePlayer.getName() != null) { return offlinePlayer.getName(); } return null; }
/** * Get the UUID from a player's (non-shortened) username * * @param username The player's username * @return The UUID or <tt>null</tt> if the UUID can't be found or an error occurred * @deprecated Use {@link NameManager#getAccount(String)} */ @Deprecated public static UUID getUUID(String username) { Validate.notEmpty(username, "username cannot be null or empty!"); Player player = Bukkit.getPlayer(username); if (player != null) { return player.getUniqueId(); } Account account = getAccount(username); if (account != null) { return account.getUuid(); } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(username); if (offlinePlayer != null && offlinePlayer.hasPlayedBefore() && offlinePlayer.getUniqueId() != null) { return offlinePlayer.getUniqueId(); } return null; }
/** * Initialize this serializable offline player from another player. * @param offline - another player. */ public SerializedOfflinePlayer(OfflinePlayer offline) { this.name = offline.getName(); this.uuid = offline.getUniqueId(); this.firstPlayed = offline.getFirstPlayed(); this.lastPlayed = offline.getLastPlayed(); this.operator = offline.isOp(); this.banned = offline.isBanned(); this.playedBefore = offline.hasPlayedBefore(); this.online = offline.isOnline(); this.whitelisted = offline.isWhitelisted(); }
OfflinePlayer searchPlayer = Bukkit.getOfflinePlayer(args[0]); String target = args[0]; if (searchPlayer != null && searchPlayer.hasPlayedBefore()) { target = searchPlayer.getUniqueId().toString(); if (offlinePlayer != null && offlinePlayer.hasPlayedBefore()) { target = offlinePlayer.getUniqueId().toString();
OfflinePlayer searchPlayer = Bukkit.getOfflinePlayer(args[0]); String target = args[0]; if (searchPlayer != null && searchPlayer.hasPlayedBefore()) { target = searchPlayer.getUniqueId().toString();
if (offline.hasPlayedBefore()) { event.addWhoisInformation(null, "First joined: " + dateFormat.format(offline.getFirstPlayed()) + "; Last joined: " + dateFormat.format(offline.getLastPlayed()));
if (offlinePlayer == null || (!offlinePlayer.hasPlayedBefore() && !offlinePlayer.isOnline())) { throw new InvalidCommandArgument(MinecraftMessageKeys.NO_PLAYER_FOUND_OFFLINE, "{search}", name);
if (pl == null || !pl.hasPlayedBefore()) { Msg.msg(s, "&cFailed to find player: &f" + args[1]); return true;
String owner = self ? player.getName() : PlayerVaults.getInstance().getSigns().getString(world + ";;" + x + ";;" + y + ";;" + z + ".owner"); if (offlinePlayer == null || !offlinePlayer.hasPlayedBefore()) { player.sendMessage(Lang.TITLE.toString() + Lang.VAULT_DOES_NOT_EXIST.toString()); return;
if (player == null || !player.hasPlayedBefore() && !player.isOnline()) { GeneralMethods.sendBrandingMessage(sender, ChatColor.RED + "Player not found!"); return;