you can call me a god
mongodb storing is done
This commit is contained in:
spacerocket62
2020-10-27 13:12:38 -07:00
parent 5162f3fcfb
commit d4cf8b7414
13 changed files with 353 additions and 12 deletions

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

View 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);
}
}