store uuid instead of query for unique player lookup total

This commit is contained in:
Lee 2024-04-18 17:07:55 +01:00
parent b3e560d1e2
commit ba699f5305
2 changed files with 6 additions and 7 deletions

@ -61,8 +61,6 @@ public class PlayerService {
uuid = usernameToUuid(id).getUniqueId(); uuid = usernameToUuid(id).getUniqueId();
} }
((UniquePlayerLookupsMetric) metricService.getMetric(UniquePlayerLookupsMetric.class)).addLookup(id); // Add the lookup to the unique player lookups
Optional<CachedPlayer> cachedPlayer = playerCacheRepository.findById(uuid); Optional<CachedPlayer> cachedPlayer = playerCacheRepository.findById(uuid);
if (cachedPlayer.isPresent() && EnvironmentUtils.isProduction()) { // Return the cached player if it exists if (cachedPlayer.isPresent() && EnvironmentUtils.isProduction()) { // Return the cached player if it exists
log.info("Player {} is cached", id); log.info("Player {} is cached", id);
@ -85,6 +83,7 @@ public class PlayerService {
mojangProfile.getProperties() // Raw properties mojangProfile.getProperties() // Raw properties
) )
); );
((UniquePlayerLookupsMetric) metricService.getMetric(UniquePlayerLookupsMetric.class)).addLookup(uuid); // Add the lookup to the unique player lookups
playerCacheRepository.save(player); playerCacheRepository.save(player);
player.getCache().setCached(false); player.getCache().setCached(false);

@ -4,6 +4,7 @@ import xyz.mcutils.backend.service.metric.impl.IntegerMetric;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
public class UniquePlayerLookupsMetric extends IntegerMetric { public class UniquePlayerLookupsMetric extends IntegerMetric {
private List<String> uniqueLookups = new ArrayList<>(); private List<String> uniqueLookups = new ArrayList<>();
@ -20,12 +21,11 @@ public class UniquePlayerLookupsMetric extends IntegerMetric {
/** /**
* Adds a lookup to the list of unique lookups. * Adds a lookup to the list of unique lookups.
* *
* @param lookup the query that was used to look up a player * @param uuid the query that was used to look up a player
*/ */
public void addLookup(String lookup) { public void addLookup(UUID uuid) {
lookup = lookup.toLowerCase(); if (!uniqueLookups.contains(uuid.toString())) {
if (!uniqueLookups.contains(lookup)) { uniqueLookups.add(uuid.toString());
uniqueLookups.add(lookup);
} }
} }