mirror of
https://github.com/plexusorg/Plex.git
synced 2024-11-01 01:27:13 +00:00
132 lines
3.3 KiB
Java
132 lines
3.3 KiB
Java
package dev.plex.cache;
|
|
|
|
import dev.plex.Plex;
|
|
import dev.plex.player.PlexPlayer;
|
|
import dev.plex.storage.StorageType;
|
|
import java.util.UUID;
|
|
import org.bukkit.Bukkit;
|
|
|
|
/**
|
|
* Parent cache class
|
|
*/
|
|
public class DataUtils
|
|
{
|
|
/**
|
|
* Checks if the player has been on the server before
|
|
*
|
|
* @param uuid The unique ID of the player
|
|
* @return true if the player is registered in the database
|
|
*/
|
|
public static boolean hasPlayedBefore(UUID uuid)
|
|
{
|
|
if (Plex.get().getStorageType() == StorageType.MONGODB)
|
|
{
|
|
return Plex.get().getMongoPlayerData().exists(uuid);
|
|
}
|
|
else
|
|
{
|
|
return Plex.get().getSqlPlayerData().exists(uuid);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Gets a player from cache or from the database
|
|
*
|
|
* @param uuid The unique ID of the player
|
|
* @return a PlexPlayer object
|
|
* @see PlexPlayer
|
|
*/
|
|
public static PlexPlayer getPlayer(UUID uuid)
|
|
{
|
|
if (PlayerCache.getPlexPlayerMap().containsKey(uuid))
|
|
{
|
|
return PlayerCache.getPlexPlayerMap().get(uuid);
|
|
}
|
|
|
|
if (Plex.get().getStorageType() == StorageType.MONGODB)
|
|
{
|
|
return Plex.get().getMongoPlayerData().getByUUID(uuid);
|
|
}
|
|
else
|
|
{
|
|
return Plex.get().getSqlPlayerData().getByUUID(uuid);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Gets a player from cache or from the database
|
|
*
|
|
* @param ip The IP address of the player.
|
|
* @return a PlexPlayer object
|
|
* @see PlexPlayer
|
|
*/
|
|
public static PlexPlayer getPlayerByIP(String ip)
|
|
{
|
|
PlexPlayer player = PlayerCache.getPlexPlayerMap().values().stream().filter(plexPlayer -> plexPlayer.getIps().contains(ip)).findFirst().orElse(null);
|
|
if (player != null)
|
|
{
|
|
return player;
|
|
}
|
|
|
|
if (Plex.get().getStorageType() == StorageType.MONGODB)
|
|
{
|
|
return Plex.get().getMongoPlayerData().getByIP(ip);
|
|
}
|
|
else
|
|
{
|
|
return Plex.get().getSqlPlayerData().getByIP(ip);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Gets a player from cache or from the database
|
|
*
|
|
* @param name Username of the player
|
|
* @return a PlexPlayer object
|
|
* @see PlexPlayer
|
|
*/
|
|
public static PlexPlayer getPlayer(String name)
|
|
{
|
|
return getPlayer(Bukkit.getPlayer(name).getUniqueId());
|
|
}
|
|
|
|
/**
|
|
* Updates a player's information in the database
|
|
*
|
|
* @param plexPlayer The PlexPlayer to update
|
|
* @see PlexPlayer
|
|
*/
|
|
public static void update(PlexPlayer plexPlayer)
|
|
{
|
|
if (Plex.get().getStorageType() == StorageType.MONGODB)
|
|
{
|
|
Plex.get().getMongoPlayerData().update(plexPlayer);
|
|
}
|
|
else
|
|
{
|
|
Plex.get().getSqlPlayerData().update(plexPlayer);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Inserts a player's information in the database
|
|
*
|
|
* @param plexPlayer The PlexPlayer to insert
|
|
* @see PlexPlayer
|
|
*/
|
|
public static void insert(PlexPlayer plexPlayer)
|
|
{
|
|
if (Plex.get().getStorageType() == StorageType.MONGODB)
|
|
{
|
|
Plex.get().getMongoPlayerData().save(plexPlayer);
|
|
}
|
|
else
|
|
{
|
|
Plex.get().getSqlPlayerData().insert(plexPlayer);
|
|
}
|
|
}
|
|
|
|
/* REDIS METHODS AT ONE POINT FOR BANS, AND JSON METHODS FOR PUNISHMENTS */
|
|
|
|
}
|