Factions3/src/com/massivecraft/factions/entity/MPermColl.java

106 lines
2.2 KiB
Java
Raw Normal View History

package com.massivecraft.factions.entity;
2019-02-17 11:09:10 +01:00
import com.google.gson.JsonObject;
2017-03-24 13:05:58 +01:00
import com.massivecraft.massivecore.store.Coll;
2019-02-17 11:09:10 +01:00
import com.massivecraft.massivecore.store.Modification;
2017-03-24 13:05:58 +01:00
import java.util.ArrayList;
import java.util.List;
2019-02-17 11:09:10 +01:00
import java.util.Map.Entry;
public class MPermColl extends Coll<MPerm>
{
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
private static MPermColl i = new MPermColl();
public static MPermColl get() { return i; }
private MPermColl()
{
this.setLowercasing(true);
}
2015-02-02 00:25:29 +01:00
// -------------------------------------------- //
// STACK TRACEABILITY
// -------------------------------------------- //
@Override
public void onTick()
{
super.onTick();
}
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
2016-02-25 22:28:09 +01:00
public void setActive(boolean active)
{
2016-02-25 22:28:09 +01:00
super.setActive(active);
2017-03-12 17:55:01 +01:00
if (!active) return;
MPerm.setupStandardPerms();
}
2019-02-17 11:09:10 +01:00
private boolean initing = false;
// Change the ids
@Override
public synchronized void loadFromRemoteFixed(String id, Entry<JsonObject, Long> remoteEntry)
{
boolean renamed = false;
if (initing)
{
if ("sethome".equalsIgnoreCase(id))
{
id = "setwarp";
renamed = true;
}
if ("home".equalsIgnoreCase(id))
{
id = "home";
renamed = true;
}
}
super.loadFromRemoteFixed(id, remoteEntry);
if (renamed)
{
this.putIdentifiedModificationFixed(id, Modification.LOCAL_ATTACH);
this.syncIdFixed(id);
}
}
@Override
public void initLoadAllFromRemote()
{
this.initing = true;
super.initLoadAllFromRemote();
this.removeAtRemoteFixed("sethome");
this.removeAtRemoteFixed("home");
this.initing = false;
}
// -------------------------------------------- //
// EXTRAS
// -------------------------------------------- //
public List<MPerm> getAll(boolean registered)
{
2017-03-12 17:55:01 +01:00
// Create
2017-03-24 14:03:29 +01:00
List<MPerm> ret = new ArrayList<>();
2017-03-12 17:55:01 +01:00
// Fill
for (MPerm mperm : this.getAll())
{
if (mperm.isRegistered() != registered) continue;
ret.add(mperm);
}
2017-03-12 17:55:01 +01:00
// Return
return ret;
}
}