mirror of
https://github.com/Zrips/Jobs.git
synced 2025-02-18 05:11:32 +01:00
skipquest command issue fix and better old server compatability.
This commit is contained in:
parent
4b1e877368
commit
33d14cf927
@ -66,6 +66,7 @@ import net.Zrips.CMILib.Version.Version;
|
|||||||
public class PlayerManager {
|
public class PlayerManager {
|
||||||
|
|
||||||
private final ConcurrentMap<UUID, JobsPlayer> playersUUIDCache = new ConcurrentHashMap<>();
|
private final ConcurrentMap<UUID, JobsPlayer> playersUUIDCache = new ConcurrentHashMap<>();
|
||||||
|
private final ConcurrentMap<String, JobsPlayer> playersNameCache = new ConcurrentHashMap<>();
|
||||||
private final ConcurrentMap<UUID, JobsPlayer> playersUUID = new ConcurrentHashMap<>();
|
private final ConcurrentMap<UUID, JobsPlayer> playersUUID = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private final String mobSpawnerMetadata = "jobsMobSpawner";
|
private final String mobSpawnerMetadata = "jobsMobSpawner";
|
||||||
@ -98,6 +99,7 @@ public class PlayerManager {
|
|||||||
|
|
||||||
public void clearCache() {
|
public void clearCache() {
|
||||||
playersUUIDCache.clear();
|
playersUUIDCache.clear();
|
||||||
|
playersNameCache.clear();
|
||||||
playersUUID.clear();
|
playersUUID.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,6 +123,8 @@ public class PlayerManager {
|
|||||||
|
|
||||||
public void addPlayerToCache(JobsPlayer jPlayer) {
|
public void addPlayerToCache(JobsPlayer jPlayer) {
|
||||||
playersUUIDCache.putIfAbsent(jPlayer.playerUUID, jPlayer);
|
playersUUIDCache.putIfAbsent(jPlayer.playerUUID, jPlayer);
|
||||||
|
if (jPlayer.getName() != null)
|
||||||
|
playersNameCache.putIfAbsent(jPlayer.getName().toLowerCase(), jPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addPlayer(JobsPlayer jPlayer) {
|
public void addPlayer(JobsPlayer jPlayer) {
|
||||||
@ -179,7 +183,16 @@ public class PlayerManager {
|
|||||||
* @return {@link PlayerInfo}
|
* @return {@link PlayerInfo}
|
||||||
*/
|
*/
|
||||||
public PlayerInfo getPlayerInfo(String name) {
|
public PlayerInfo getPlayerInfo(String name) {
|
||||||
|
if (Version.isCurrentEqualOrLower(Version.v1_11_R1)) {
|
||||||
|
JobsPlayer jPlayer = playersNameCache.get(name.toLowerCase());
|
||||||
|
if (jPlayer == null)
|
||||||
|
return null;
|
||||||
|
return playerUUIDMap.get(jPlayer.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
UUID playerUUID = Bukkit.getPlayerUniqueId(name);
|
UUID playerUUID = Bukkit.getPlayerUniqueId(name);
|
||||||
|
if (playerUUID == null)
|
||||||
|
return null;
|
||||||
return playerUUIDMap.get(playerUUID);
|
return playerUUIDMap.get(playerUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,7 +376,13 @@ public class PlayerManager {
|
|||||||
* @return {@link JobsPlayer} the player job info of the player
|
* @return {@link JobsPlayer} the player job info of the player
|
||||||
*/
|
*/
|
||||||
public JobsPlayer getJobsPlayer(String playerName) {
|
public JobsPlayer getJobsPlayer(String playerName) {
|
||||||
|
if (Version.isCurrentEqualOrLower(Version.v1_11_R1)) {
|
||||||
|
return playersNameCache.get(playerName.toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
UUID playerUUID = Bukkit.getPlayerUniqueId(playerName);
|
UUID playerUUID = Bukkit.getPlayerUniqueId(playerName);
|
||||||
|
if (playerUUID == null)
|
||||||
|
return null;
|
||||||
JobsPlayer jPlayer = playersUUID.get(playerUUID);
|
JobsPlayer jPlayer = playersUUID.get(playerUUID);
|
||||||
return jPlayer != null ? jPlayer : playersUUIDCache.get(playerUUID);
|
return jPlayer != null ? jPlayer : playersUUIDCache.get(playerUUID);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user