add a uuid cache
This commit is contained in:
parent
12d8bb7ef2
commit
78bde02e0f
|
@ -0,0 +1,25 @@
|
|||
package li.inc.PlaytimeReloaded.DataStore;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerObject
|
||||
{
|
||||
private UUID m_playerUUID;
|
||||
private String m_playerName = "";
|
||||
|
||||
public PlayerObject(UUID _playerUUID, String _playerName)
|
||||
{
|
||||
m_playerUUID = _playerUUID;
|
||||
m_playerName = _playerName;
|
||||
}
|
||||
|
||||
public UUID getUUID()
|
||||
{
|
||||
return m_playerUUID;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return m_playerName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package li.inc.PlaytimeReloaded.DataStore;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class UUIDCache
|
||||
{
|
||||
private static List<PlayerObject> m_players = new ArrayList<PlayerObject>();
|
||||
|
||||
public static void update(String _playerName, UUID _playerUUID)
|
||||
{
|
||||
for (PlayerObject _dieserPlayer : m_players)
|
||||
{
|
||||
if(_dieserPlayer.getUUID() == _playerUUID)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
m_players.add(new PlayerObject(_playerUUID, _playerName));
|
||||
}
|
||||
|
||||
public static UUID get(String _playerName)
|
||||
{
|
||||
for (PlayerObject _dieserPlayer : m_players)
|
||||
{
|
||||
if(_dieserPlayer.getName() == _playerName)
|
||||
{
|
||||
return _dieserPlayer.getUUID();
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
UUIDFetcher _uuidFetcher = new UUIDFetcher(Arrays.asList(_playerName));
|
||||
Map<String, UUID> _fetcherResponse = _uuidFetcher.call();
|
||||
UUID _playerUUID = _fetcherResponse.get(_playerName);
|
||||
|
||||
update(_playerName, _playerUUID);
|
||||
|
||||
return _playerUUID;
|
||||
}catch(Exception _e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ package li.inc.PlaytimeReloaded;
|
|||
|
||||
import li.inc.PlaytimeReloaded.DataStore.Config;
|
||||
import li.inc.PlaytimeReloaded.DataStore.DB.MySQL;
|
||||
import li.inc.PlaytimeReloaded.DataStore.UUIDCache;
|
||||
import li.inc.PlaytimeReloaded.DataStore.UUIDFetcher;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -101,6 +102,7 @@ public class Playtime extends JavaPlugin implements Listener
|
|||
event.getPlayer().sendMessage(getChatMessage(m_config.getTextYourCurrentPlaytime(), event.getPlayer().getName(), m_mysql.getPlayerTime(event.getPlayer().getUniqueId()), 0));
|
||||
}
|
||||
|
||||
UUIDCache.update(event.getPlayer().getName(), event.getPlayer().getUniqueId());
|
||||
addPlayTime(event.getPlayer().getUniqueId(), 0);
|
||||
}
|
||||
|
||||
|
@ -131,26 +133,18 @@ public class Playtime extends JavaPlugin implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
try
|
||||
UUID _playerUUID = UUIDCache.get(_playerName);
|
||||
|
||||
OfflinePlayer _offlinePlayer = Bukkit.getOfflinePlayer(_playerUUID);
|
||||
|
||||
if(_offlinePlayer != null)
|
||||
{
|
||||
UUIDFetcher _uuidFetcher = new UUIDFetcher(Arrays.asList(_playerName));
|
||||
Map<String, UUID> _fetcherResponse = _uuidFetcher.call();
|
||||
UUID _playerUUID = _fetcherResponse.get(_playerName);
|
||||
|
||||
OfflinePlayer _offlinePlayer = Bukkit.getOfflinePlayer(_playerUUID);
|
||||
|
||||
if(_offlinePlayer != null)
|
||||
{
|
||||
if(!_offlinePlayer.hasPlayedBefore())
|
||||
return null;
|
||||
|
||||
return _offlinePlayer.getUniqueId();
|
||||
}else{
|
||||
if(!_offlinePlayer.hasPlayedBefore())
|
||||
return null;
|
||||
|
||||
return _offlinePlayer.getUniqueId();
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}catch(Exception _e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue