add a uuid cache

This commit is contained in:
Chris 2016-09-12 23:14:34 +02:00
parent 12d8bb7ef2
commit 78bde02e0f
3 changed files with 84 additions and 18 deletions

View File

@ -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;
}
}

View File

@ -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;
}
}
}

View File

@ -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;
}
}