Move faction perm configuration to the mconf
This commit is contained in:
parent
a76644ffb9
commit
7ed4aedcac
@ -62,6 +62,7 @@ import com.massivecraft.factions.entity.migrator.MigratorMConf003CleanInactivity
|
|||||||
import com.massivecraft.factions.entity.migrator.MigratorMConf004Rank;
|
import com.massivecraft.factions.entity.migrator.MigratorMConf004Rank;
|
||||||
import com.massivecraft.factions.entity.migrator.MigratorMConf005Warps;
|
import com.massivecraft.factions.entity.migrator.MigratorMConf005Warps;
|
||||||
import com.massivecraft.factions.entity.migrator.MigratorMPerm001Warps;
|
import com.massivecraft.factions.entity.migrator.MigratorMPerm001Warps;
|
||||||
|
import com.massivecraft.factions.entity.migrator.MigratorMPerm002MoveStandard;
|
||||||
import com.massivecraft.factions.entity.migrator.MigratorMPlayer001Ranks;
|
import com.massivecraft.factions.entity.migrator.MigratorMPlayer001Ranks;
|
||||||
import com.massivecraft.factions.entity.migrator.MigratorMPlayer002UsingAdminMode;
|
import com.massivecraft.factions.entity.migrator.MigratorMPlayer002UsingAdminMode;
|
||||||
import com.massivecraft.factions.entity.migrator.MigratorTerritoryAccess001Restructure;
|
import com.massivecraft.factions.entity.migrator.MigratorTerritoryAccess001Restructure;
|
||||||
@ -154,6 +155,7 @@ public class Factions extends MassivePlugin
|
|||||||
MigratorMConf004Rank.class,
|
MigratorMConf004Rank.class,
|
||||||
MigratorMConf005Warps.class,
|
MigratorMConf005Warps.class,
|
||||||
MigratorMPerm001Warps.class,
|
MigratorMPerm001Warps.class,
|
||||||
|
MigratorMPerm002MoveStandard.class,
|
||||||
MigratorMPlayer001Ranks.class,
|
MigratorMPlayer001Ranks.class,
|
||||||
MigratorMPlayer002UsingAdminMode.class,
|
MigratorMPlayer002UsingAdminMode.class,
|
||||||
MigratorTerritoryAccess001Restructure.class
|
MigratorTerritoryAccess001Restructure.class
|
||||||
|
@ -4,6 +4,7 @@ import com.massivecraft.factions.cmd.type.TypeFaction;
|
|||||||
import com.massivecraft.factions.cmd.type.TypeMPerm;
|
import com.massivecraft.factions.cmd.type.TypeMPerm;
|
||||||
import com.massivecraft.factions.cmd.type.TypeMPermable;
|
import com.massivecraft.factions.cmd.type.TypeMPermable;
|
||||||
import com.massivecraft.factions.entity.Faction;
|
import com.massivecraft.factions.entity.Faction;
|
||||||
|
import com.massivecraft.factions.entity.MConf;
|
||||||
import com.massivecraft.factions.entity.MPerm;
|
import com.massivecraft.factions.entity.MPerm;
|
||||||
import com.massivecraft.factions.event.EventFactionsPermChange;
|
import com.massivecraft.factions.event.EventFactionsPermChange;
|
||||||
import com.massivecraft.massivecore.MassiveException;
|
import com.massivecraft.massivecore.MassiveException;
|
||||||
@ -69,7 +70,7 @@ public class CmdFactionsPermSet extends FactionsCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The following is to make sure the leader always has the right to change perms if that is our goal.
|
// The following is to make sure the leader always has the right to change perms if that is our goal.
|
||||||
if (perm == MPerm.getPermPerms() && MPerm.getPermPerms().getStandard().contains("LEADER"))
|
if (perm == MPerm.getPermPerms() && MConf.get().perm2default.get(MPerm.ID_PERMS).contains("LEADER"))
|
||||||
{
|
{
|
||||||
faction.setPermitted( faction.getLeaderRank(), MPerm.getPermPerms(), true);
|
faction.setPermitted( faction.getLeaderRank(), MPerm.getPermPerms(), true);
|
||||||
}
|
}
|
||||||
|
@ -803,7 +803,8 @@ public class Faction extends Entity<Faction> implements FactionsParticipator, MP
|
|||||||
for (MPerm mperm : MPerm.getAll())
|
for (MPerm mperm : MPerm.getAll())
|
||||||
{
|
{
|
||||||
String id = mperm.getId();
|
String id = mperm.getId();
|
||||||
MassiveSet<String> value = new MassiveSet<>(mperm.getStandard());
|
|
||||||
|
MassiveSet<String> value = new MassiveSet<>(MConf.get().perm2default.get(id));
|
||||||
|
|
||||||
if (value.remove("LEADER") && leaderId.isPresent()) value.add(leaderId.get());
|
if (value.remove("LEADER") && leaderId.isPresent()) value.add(leaderId.get());
|
||||||
if (value.remove("OFFICER") && officerId.isPresent()) value.add(officerId.get());
|
if (value.remove("OFFICER") && officerId.isPresent()) value.add(officerId.get());
|
||||||
|
@ -543,7 +543,42 @@ public class MConf extends Entity<MConf>
|
|||||||
|
|
||||||
// How often should the task be run?
|
// How often should the task be run?
|
||||||
public long taxTaskPeriodMillis = TimeUnit.MILLIS_PER_DAY;
|
public long taxTaskPeriodMillis = TimeUnit.MILLIS_PER_DAY;
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// PERMISSIONS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public Map<String, Set<String>> perm2default = MUtil.map(
|
||||||
|
MPerm.ID_BUILD, MUtil.set("LEADER", "OFFICER", "MEMBER"),
|
||||||
|
MPerm.ID_PAINBUILD, MUtil.set(),
|
||||||
|
MPerm.ID_DOOR, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"),
|
||||||
|
MPerm.ID_BUTTON, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"),
|
||||||
|
MPerm.ID_LEVER, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"),
|
||||||
|
MPerm.ID_CONTAINER, MUtil.set("LEADER", "OFFICER", "MEMBER"),
|
||||||
|
|
||||||
|
MPerm.ID_NAME, MUtil.set("LEADER"),
|
||||||
|
MPerm.ID_DESC, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_MOTD, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_INVITE, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_KICK, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_RANK, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_TITLE, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_WARP, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"),
|
||||||
|
MPerm.ID_SETWARP, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_DEPOSIT, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY", "TRUCE", "NEUTRAL", "ENEMY"),
|
||||||
|
MPerm.ID_WITHDRAW, MUtil.set("LEADER"),
|
||||||
|
MPerm.ID_TERRITORY, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_ACCESS, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_VOTE, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT"),
|
||||||
|
MPerm.ID_CREATEVOTE, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_CLAIMNEAR, MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"),
|
||||||
|
MPerm.ID_TAX, MUtil.set("LEADER"),
|
||||||
|
MPerm.ID_REL, MUtil.set("LEADER", "OFFICER"),
|
||||||
|
MPerm.ID_DISBAND, MUtil.set("LEADER"),
|
||||||
|
MPerm.ID_FLAGS, MUtil.set("LEADER"),
|
||||||
|
MPerm.ID_PERMS, MUtil.set("LEADER")
|
||||||
|
);
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// ENUMERATIONS
|
// ENUMERATIONS
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
@ -11,13 +11,11 @@ import com.massivecraft.massivecore.Named;
|
|||||||
import com.massivecraft.massivecore.Prioritized;
|
import com.massivecraft.massivecore.Prioritized;
|
||||||
import com.massivecraft.massivecore.Registerable;
|
import com.massivecraft.massivecore.Registerable;
|
||||||
import com.massivecraft.massivecore.collections.MassiveList;
|
import com.massivecraft.massivecore.collections.MassiveList;
|
||||||
import com.massivecraft.massivecore.collections.MassiveSet;
|
|
||||||
import com.massivecraft.massivecore.comparator.ComparatorSmart;
|
import com.massivecraft.massivecore.comparator.ComparatorSmart;
|
||||||
import com.massivecraft.massivecore.predicate.PredicateIsRegistered;
|
import com.massivecraft.massivecore.predicate.PredicateIsRegistered;
|
||||||
import com.massivecraft.massivecore.ps.PS;
|
import com.massivecraft.massivecore.ps.PS;
|
||||||
import com.massivecraft.massivecore.store.Entity;
|
import com.massivecraft.massivecore.store.Entity;
|
||||||
import com.massivecraft.massivecore.util.IdUtil;
|
import com.massivecraft.massivecore.util.IdUtil;
|
||||||
import com.massivecraft.massivecore.util.MUtil;
|
|
||||||
import com.massivecraft.massivecore.util.Txt;
|
import com.massivecraft.massivecore.util.Txt;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@ -148,36 +146,36 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
getPermPerms();
|
getPermPerms();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MPerm getPermBuild() { return getCreative(PRIORITY_BUILD, ID_BUILD, ID_BUILD, "edit the terrain", MUtil.set("LEADER", "OFFICER", "MEMBER"), true, true, true); }
|
public static MPerm getPermBuild() { return getCreative(PRIORITY_BUILD, ID_BUILD, ID_BUILD, "edit the terrain", true, true, true); }
|
||||||
public static MPerm getPermPainbuild() { return getCreative(PRIORITY_PAINBUILD, ID_PAINBUILD, ID_PAINBUILD, "edit, take damage", new MassiveSet<>(), true, true, true); }
|
public static MPerm getPermPainbuild() { return getCreative(PRIORITY_PAINBUILD, ID_PAINBUILD, ID_PAINBUILD, "edit, take damage", true, true, true); }
|
||||||
public static MPerm getPermDoor() { return getCreative(PRIORITY_DOOR, ID_DOOR, ID_DOOR, "use doors", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"), true, true, true); }
|
public static MPerm getPermDoor() { return getCreative(PRIORITY_DOOR, ID_DOOR, ID_DOOR, "use doors", true, true, true); }
|
||||||
public static MPerm getPermButton() { return getCreative(PRIORITY_BUTTON, ID_BUTTON, ID_BUTTON, "use stone buttons", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"), true, true, true); }
|
public static MPerm getPermButton() { return getCreative(PRIORITY_BUTTON, ID_BUTTON, ID_BUTTON, "use stone buttons", true, true, true); }
|
||||||
public static MPerm getPermLever() { return getCreative(PRIORITY_LEVER, ID_LEVER, ID_LEVER, "use levers", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"), true, true, true); }
|
public static MPerm getPermLever() { return getCreative(PRIORITY_LEVER, ID_LEVER, ID_LEVER, "use levers", true, true, true); }
|
||||||
public static MPerm getPermContainer() { return getCreative(PRIORITY_CONTAINER, ID_CONTAINER, ID_CONTAINER, "use containers", MUtil.set("LEADER", "OFFICER", "MEMBER"), true, true, true); }
|
public static MPerm getPermContainer() { return getCreative(PRIORITY_CONTAINER, ID_CONTAINER, ID_CONTAINER, "use containers", true, true, true); }
|
||||||
|
|
||||||
public static MPerm getPermName() { return getCreative(PRIORITY_NAME, ID_NAME, ID_NAME, "set name", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermName() { return getCreative(PRIORITY_NAME, ID_NAME, ID_NAME, "set name", false, true, true); }
|
||||||
public static MPerm getPermDesc() { return getCreative(PRIORITY_DESC, ID_DESC, ID_DESC, "set description", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermDesc() { return getCreative(PRIORITY_DESC, ID_DESC, ID_DESC, "set description", false, true, true); }
|
||||||
public static MPerm getPermMotd() { return getCreative(PRIORITY_MOTD, ID_MOTD, ID_MOTD, "set motd", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermMotd() { return getCreative(PRIORITY_MOTD, ID_MOTD, ID_MOTD, "set motd", false, true, true); }
|
||||||
public static MPerm getPermInvite() { return getCreative(PRIORITY_INVITE, ID_INVITE, ID_INVITE, "invite players", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermInvite() { return getCreative(PRIORITY_INVITE, ID_INVITE, ID_INVITE, "invite players", false, true, true); }
|
||||||
public static MPerm getPermKick() { return getCreative(PRIORITY_KICK, ID_KICK, ID_KICK, "kick members", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermKick() { return getCreative(PRIORITY_KICK, ID_KICK, ID_KICK, "kick members", false, true, true); }
|
||||||
public static MPerm getPermRank() { return getCreative(PRIORITY_RANK, ID_RANK, ID_RANK, "change ranks", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermRank() { return getCreative(PRIORITY_RANK, ID_RANK, ID_RANK, "change ranks", false, true, true); }
|
||||||
public static MPerm getPermTitle() { return getCreative(PRIORITY_TITLE, ID_TITLE, ID_TITLE, "set titles", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermTitle() { return getCreative(PRIORITY_TITLE, ID_TITLE, ID_TITLE, "set titles", false, true, true); }
|
||||||
public static MPerm getPermWarp() { return getCreative(PRIORITY_WARP, ID_WARP, ID_WARP, "teleport to warp", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"), false, true, true); }
|
public static MPerm getPermWarp() { return getCreative(PRIORITY_WARP, ID_WARP, ID_WARP, "teleport to warp", false, true, true); }
|
||||||
public static MPerm getPermSetwarp() { return getCreative(PRIORITY_SETWARP, ID_SETWARP, ID_SETWARP, "set warps", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermSetwarp() { return getCreative(PRIORITY_SETWARP, ID_SETWARP, ID_SETWARP, "set warps", false, true, true); }
|
||||||
public static MPerm getPermDeposit() { return getCreative(PRIORITY_DEPOSIT, ID_DEPOSIT, ID_DEPOSIT, "deposit money", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY", "TRUCE", "NEUTRAL", "ENEMY"), false, false, false); } // non editable, non visible.
|
public static MPerm getPermDeposit() { return getCreative(PRIORITY_DEPOSIT, ID_DEPOSIT, ID_DEPOSIT, "deposit money", false, false, false); } // non editable, non visible.
|
||||||
public static MPerm getPermWithdraw() { return getCreative(PRIORITY_WITHDRAW, ID_WITHDRAW, ID_WITHDRAW, "withdraw money", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermWithdraw() { return getCreative(PRIORITY_WITHDRAW, ID_WITHDRAW, ID_WITHDRAW, "withdraw money", false, true, true); }
|
||||||
public static MPerm getPermTerritory() { return getCreative(PRIORITY_TERRITORY, ID_TERRITORY, ID_TERRITORY, "claim or unclaim", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermTerritory() { return getCreative(PRIORITY_TERRITORY, ID_TERRITORY, ID_TERRITORY, "claim or unclaim", false, true, true); }
|
||||||
public static MPerm getPermAccess() { return getCreative(PRIORITY_ACCESS, ID_ACCESS, ID_ACCESS, "grant territory", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermAccess() { return getCreative(PRIORITY_ACCESS, ID_ACCESS, ID_ACCESS, "grant territory", false, true, true); }
|
||||||
public static MPerm getPermVote() { return getCreative(PRIORITY_VOTE, ID_VOTE, ID_VOTE, "vote", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT"), false, true, true); }
|
public static MPerm getPermVote() { return getCreative(PRIORITY_VOTE, ID_VOTE, ID_VOTE, "vote", false, true, true); }
|
||||||
public static MPerm getPermCreateVote() { return getCreative(PRIORITY_CREATEVOTE, ID_CREATEVOTE, ID_CREATEVOTE, "manage votes", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermCreateVote() { return getCreative(PRIORITY_CREATEVOTE, ID_CREATEVOTE, ID_CREATEVOTE, "manage votes", false, true, true); }
|
||||||
public static MPerm getPermClaimnear() { return getCreative(PRIORITY_CLAIMNEAR, ID_CLAIMNEAR, ID_CLAIMNEAR, "claim nearby", MUtil.set("LEADER", "OFFICER", "MEMBER", "RECRUIT", "ALLY"), false, false, false); } // non editable, non visible.
|
public static MPerm getPermClaimnear() { return getCreative(PRIORITY_CLAIMNEAR, ID_CLAIMNEAR, ID_CLAIMNEAR, "claim nearby", false, false, false); } // non editable, non visible.
|
||||||
public static MPerm getPermTax() { return getCreative(PRIORITY_TAX, ID_TAX, ID_TAX, "set taxes", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermTax() { return getCreative(PRIORITY_TAX, ID_TAX, ID_TAX, "set taxes", false, true, true); }
|
||||||
public static MPerm getPermRel() { return getCreative(PRIORITY_REL, ID_REL, ID_REL, "change relations", MUtil.set("LEADER", "OFFICER"), false, true, true); }
|
public static MPerm getPermRel() { return getCreative(PRIORITY_REL, ID_REL, ID_REL, "change relations", false, true, true); }
|
||||||
public static MPerm getPermDisband() { return getCreative(PRIORITY_DISBAND, ID_DISBAND, ID_DISBAND, "disband the faction", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermDisband() { return getCreative(PRIORITY_DISBAND, ID_DISBAND, ID_DISBAND, "disband the faction", false, true, true); }
|
||||||
public static MPerm getPermFlags() { return getCreative(PRIORITY_FLAGS, ID_FLAGS, ID_FLAGS, "manage flags", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermFlags() { return getCreative(PRIORITY_FLAGS, ID_FLAGS, ID_FLAGS, "manage flags", false, true, true); }
|
||||||
public static MPerm getPermPerms() { return getCreative(PRIORITY_PERMS, ID_PERMS, ID_PERMS, "manage permissions", MUtil.set("LEADER"), false, true, true); }
|
public static MPerm getPermPerms() { return getCreative(PRIORITY_PERMS, ID_PERMS, ID_PERMS, "manage permissions", false, true, true); }
|
||||||
|
|
||||||
public static MPerm getCreative(int priority, String id, String name, String desc, Set<String> standard, boolean territory, boolean editable, boolean visible)
|
public static MPerm getCreative(int priority, String id, String name, String desc, boolean territory, boolean editable, boolean visible)
|
||||||
{
|
{
|
||||||
MPerm ret = MPermColl.get().get(id, false);
|
MPerm ret = MPermColl.get().get(id, false);
|
||||||
if (ret != null)
|
if (ret != null)
|
||||||
@ -186,7 +184,7 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = new MPerm(priority, name, desc, standard, territory, editable, visible);
|
ret = new MPerm(priority, name, desc, territory, editable, visible);
|
||||||
MPermColl.get().attach(ret, id);
|
MPermColl.get().attach(ret, id);
|
||||||
ret.setRegistered(true);
|
ret.setRegistered(true);
|
||||||
ret.sync();
|
ret.sync();
|
||||||
@ -201,14 +199,14 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
@Override
|
@Override
|
||||||
public MPerm load(MPerm that)
|
public MPerm load(MPerm that)
|
||||||
{
|
{
|
||||||
|
//System.out.println("Loading MPerm");
|
||||||
this.priority = that.priority;
|
this.priority = that.priority;
|
||||||
this.name = that.name;
|
this.name = that.name;
|
||||||
this.desc = that.desc;
|
this.desc = that.desc;
|
||||||
this.standard = that.standard;
|
|
||||||
this.territory = that.territory;
|
this.territory = that.territory;
|
||||||
this.editable = that.editable;
|
this.editable = that.editable;
|
||||||
this.visible = that.visible;
|
this.visible = that.visible;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,7 +222,7 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
// VERSION
|
// VERSION
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public int version = 1;
|
public int version = 2;
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELDS
|
// FIELDS
|
||||||
@ -258,10 +256,10 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
// What is the standard (aka default) perm value?
|
// What is the standard (aka default) perm value?
|
||||||
// This value will be set for factions from the beginning.
|
// This value will be set for factions from the beginning.
|
||||||
// Example: ... set of relations ...
|
// Example: ... set of relations ...
|
||||||
@Deprecated
|
//@Deprecated
|
||||||
private Set<String> standard = new MassiveSet<>();
|
//private Set<String> standard = null;
|
||||||
@Deprecated public Set<String> getStandard() { return this.standard; }
|
//@Deprecated public Set<String> getStandard() { return this.standard; }
|
||||||
@Deprecated public MPerm setStandard(Set<String> standard) { this.standard = standard; this.changed(); return this; }
|
//@Deprecated public MPerm setStandard(Set<String> standard) { this.standard = standard; this.changed(); return this; }
|
||||||
|
|
||||||
// Is this a territory perm meaning it has to do with territory construction, modification or interaction?
|
// Is this a territory perm meaning it has to do with territory construction, modification or interaction?
|
||||||
// True Examples: build, container, door, lever etc.
|
// True Examples: build, container, door, lever etc.
|
||||||
@ -299,12 +297,11 @@ public class MPerm extends Entity<MPerm> implements Prioritized, Registerable, N
|
|||||||
// No argument constructor for GSON
|
// No argument constructor for GSON
|
||||||
}
|
}
|
||||||
|
|
||||||
public MPerm(int priority, String name, String desc, Set<String> standard, boolean territory, boolean editable, boolean visible)
|
public MPerm(int priority, String name, String desc, boolean territory, boolean editable, boolean visible)
|
||||||
{
|
{
|
||||||
this.priority = priority;
|
this.priority = priority;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.desc = desc;
|
this.desc = desc;
|
||||||
this.standard = standard;
|
|
||||||
this.territory = territory;
|
this.territory = territory;
|
||||||
this.editable = editable;
|
this.editable = editable;
|
||||||
this.visible = visible;
|
this.visible = visible;
|
||||||
|
@ -4,6 +4,7 @@ import com.google.gson.JsonElement;
|
|||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.massivecraft.factions.entity.Faction;
|
import com.massivecraft.factions.entity.Faction;
|
||||||
|
import com.massivecraft.factions.entity.MConf;
|
||||||
import com.massivecraft.factions.entity.MPerm;
|
import com.massivecraft.factions.entity.MPerm;
|
||||||
import com.massivecraft.factions.entity.Rank;
|
import com.massivecraft.factions.entity.Rank;
|
||||||
import com.massivecraft.massivecore.MassiveCore;
|
import com.massivecraft.massivecore.MassiveCore;
|
||||||
@ -68,7 +69,10 @@ public class MigratorFaction002Ranks extends MigratorRoot
|
|||||||
Map<String, Set<String>> ret = new MassiveMap<>();
|
Map<String, Set<String>> ret = new MassiveMap<>();
|
||||||
for (MPerm mperm : MPerm.getAll())
|
for (MPerm mperm : MPerm.getAll())
|
||||||
{
|
{
|
||||||
Set<String> value = new MassiveSet<>(mperm.getStandard());
|
// This should work since MConf and MPerm is loaded /before/ Factions
|
||||||
|
//Set<String> value = new MassiveSet<>(mperm.getStandard());
|
||||||
|
Set<String> value = new MassiveSet<>(MConf.get().perm2default.get(mperm.getId()));
|
||||||
|
|
||||||
if (value.remove("LEADER")) value.add(leaderId);
|
if (value.remove("LEADER")) value.add(leaderId);
|
||||||
if (value.remove("OFFICER")) value.add(officerId);
|
if (value.remove("OFFICER")) value.add(officerId);
|
||||||
if (value.remove("MEMBER")) value.add(memberId);
|
if (value.remove("MEMBER")) value.add(memberId);
|
||||||
|
@ -0,0 +1,47 @@
|
|||||||
|
package com.massivecraft.factions.entity.migrator;
|
||||||
|
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.massivecraft.factions.entity.MConf;
|
||||||
|
import com.massivecraft.factions.entity.MPerm;
|
||||||
|
import com.massivecraft.massivecore.collections.MassiveSet;
|
||||||
|
import com.massivecraft.massivecore.store.migrator.MigratorRoot;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class MigratorMPerm002MoveStandard extends MigratorRoot
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
private static MigratorMPerm002MoveStandard i = new MigratorMPerm002MoveStandard();
|
||||||
|
public static MigratorMPerm002MoveStandard get() { return i; }
|
||||||
|
private MigratorMPerm002MoveStandard()
|
||||||
|
{
|
||||||
|
super(MPerm.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// OVERRIDE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrateInner(JsonObject entity)
|
||||||
|
{
|
||||||
|
JsonElement jsonStandard = entity.remove("standard");
|
||||||
|
if (jsonStandard == null || !jsonStandard.isJsonArray()) return;
|
||||||
|
|
||||||
|
JsonArray jsonArray = jsonStandard.getAsJsonArray();
|
||||||
|
Set<String> result = new MassiveSet<>();
|
||||||
|
jsonArray.forEach(e -> result.add(e.getAsString()));
|
||||||
|
|
||||||
|
String id = entity.get("name").getAsString();
|
||||||
|
|
||||||
|
// This is hacky but we utilise that names and ids are the same
|
||||||
|
MConf.get().perm2default.put(id, result);
|
||||||
|
MConf.get().changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user