mirror of
https://github.com/plexusorg/Plex.git
synced 2025-07-17 12:54:03 +00:00
yes
you can call me a god mongodb storing is done
This commit is contained in:
74
src/main/java/me/totalfreedom/plex/cache/MongoPlayerData.java
vendored
Normal file
74
src/main/java/me/totalfreedom/plex/cache/MongoPlayerData.java
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
package me.totalfreedom.plex.cache;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import dev.morphia.query.Query;
|
||||
import dev.morphia.query.UpdateOperations;
|
||||
import me.totalfreedom.plex.Plex;
|
||||
import me.totalfreedom.plex.player.PlexPlayer;
|
||||
import me.totalfreedom.plex.player.PunishedPlayer;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class MongoPlayerData
|
||||
{
|
||||
|
||||
private Map<UUID, PunishedPlayer> punishedPlayerMap = Maps.newHashMap();
|
||||
private Map<UUID, PlexPlayer> plexPlayerMap = Maps.newHashMap();
|
||||
|
||||
private PlexPlayerDAO plexPlayerDAO;
|
||||
|
||||
public MongoPlayerData()
|
||||
{
|
||||
this.plexPlayerDAO = new PlexPlayerDAO(PlexPlayer.class, Plex.get().getMongoConnection().getDatastore());
|
||||
}
|
||||
|
||||
public boolean exists(UUID uuid) {
|
||||
|
||||
Query<PlexPlayer> query = plexPlayerDAO.createQuery();
|
||||
|
||||
if (query.field("uuid").exists().field("uuid").equal(uuid.toString()).find().tryNext() != null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public PlexPlayer getByUUID(UUID uuid) {
|
||||
|
||||
if (plexPlayerMap.containsKey(uuid))
|
||||
{
|
||||
return plexPlayerMap.get(uuid);
|
||||
}
|
||||
Query<PlexPlayer> query2 = plexPlayerDAO.createQuery().field("uuid").exists().field("uuid").equal(uuid.toString());
|
||||
return query2.first();
|
||||
}
|
||||
|
||||
public void update(PlexPlayer player)
|
||||
{
|
||||
Query<PlexPlayer> filter = plexPlayerDAO.createQuery()
|
||||
.field("uuid").equal(player.getUuid());
|
||||
|
||||
UpdateOperations<PlexPlayer> updateOps = plexPlayerDAO.createUpdateOperations();
|
||||
|
||||
updateOps.set("name", player.getName());
|
||||
updateOps.set("loginMSG", player.getLoginMSG());
|
||||
updateOps.set("prefix", player.getPrefix());
|
||||
updateOps.set("rank", player.getRank() == null ? "" : player.getRank().name().toLowerCase());
|
||||
updateOps.set("ips", player.getIps());
|
||||
plexPlayerDAO.update(filter, updateOps);
|
||||
}
|
||||
|
||||
|
||||
public Map<UUID, PlexPlayer> getPlexPlayerMap() {
|
||||
return plexPlayerMap;
|
||||
}
|
||||
|
||||
public Map<UUID, PunishedPlayer> getPunishedPlayerMap() {
|
||||
return punishedPlayerMap;
|
||||
}
|
||||
|
||||
public PlexPlayerDAO getPlexPlayerDAO() {
|
||||
return plexPlayerDAO;
|
||||
}
|
||||
}
|
49
src/main/java/me/totalfreedom/plex/cache/PlexPlayerDAO.java
vendored
Normal file
49
src/main/java/me/totalfreedom/plex/cache/PlexPlayerDAO.java
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
package me.totalfreedom.plex.cache;
|
||||
|
||||
import dev.morphia.DAO;
|
||||
import dev.morphia.Datastore;
|
||||
import dev.morphia.Key;
|
||||
import dev.morphia.dao.BasicDAO;
|
||||
import dev.morphia.query.Query;
|
||||
import dev.morphia.query.UpdateOperations;
|
||||
import dev.morphia.query.UpdateResults;
|
||||
import me.totalfreedom.plex.player.PlexPlayer;
|
||||
|
||||
public class PlexPlayerDAO extends BasicDAO<PlexPlayer, Object> {
|
||||
|
||||
|
||||
public PlexPlayerDAO(Class<PlexPlayer> entityclass, Datastore ds)
|
||||
{
|
||||
super(entityclass, ds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists(Query<PlexPlayer> query) {
|
||||
return super.exists(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlexPlayer findOne(String key, Object value) {
|
||||
return super.findOne(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlexPlayer get(Object id) {
|
||||
return super.get(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UpdateResults update(Query<PlexPlayer> query, UpdateOperations<PlexPlayer> ops) {
|
||||
return super.update(query, ops);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return super.equals(obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Key<PlexPlayer> save(PlexPlayer entity) {
|
||||
return super.save(entity);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user