Better MFlag description system
This commit is contained in:
parent
2612615d52
commit
972eace5d2
@ -1,10 +1,10 @@
|
|||||||
package com.massivecraft.factions;
|
package com.massivecraft.factions;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.CaseInsensitiveComparator;
|
||||||
|
import com.massivecraft.massivecore.collections.MassiveTreeSet;
|
||||||
|
|
||||||
public class WorldExceptionSet
|
public class WorldExceptionSet
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -13,7 +13,7 @@ public class WorldExceptionSet
|
|||||||
|
|
||||||
public boolean standard = true;
|
public boolean standard = true;
|
||||||
|
|
||||||
public Set<String> exceptions = new LinkedHashSet<String>();
|
public MassiveTreeSet<String, CaseInsensitiveComparator> exceptions = new MassiveTreeSet<String, CaseInsensitiveComparator>(CaseInsensitiveComparator.get());
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// CONTAINS
|
// CONTAINS
|
||||||
|
@ -49,7 +49,7 @@ public class CmdFactionsFlag extends FactionsCommand
|
|||||||
for (MFlag mflag : MFlag.getAll())
|
for (MFlag mflag : MFlag.getAll())
|
||||||
{
|
{
|
||||||
if (!mflag.isVisible() && !msender.isUsingAdminMode()) continue;
|
if (!mflag.isVisible() && !msender.isUsingAdminMode()) continue;
|
||||||
msg(mflag.getStateInfo(faction.getFlag(mflag), true));
|
msg(mflag.getStateDesc(faction.getFlag(mflag), true, true, true, true, false));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -62,7 +62,7 @@ public class CmdFactionsFlag extends FactionsCommand
|
|||||||
if ( ! this.argIsSet(2))
|
if ( ! this.argIsSet(2))
|
||||||
{
|
{
|
||||||
msg(Txt.titleize("Flag for " + faction.describeTo(msender, true)));
|
msg(Txt.titleize("Flag for " + faction.describeTo(msender, true)));
|
||||||
msg(mflag.getStateInfo(faction.getFlag(mflag), true));
|
msg(mflag.getStateDesc(faction.getFlag(mflag), true, true, true, true, false));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ public class CmdFactionsFlag extends FactionsCommand
|
|||||||
faction.setFlag(mflag, targetValue);
|
faction.setFlag(mflag, targetValue);
|
||||||
|
|
||||||
// Inform
|
// Inform
|
||||||
String stateInfo = mflag.getStateInfo(faction.getFlag(mflag), true);
|
String stateInfo = mflag.getStateDesc(faction.getFlag(mflag), true, false, true, true, true);
|
||||||
if (msender.getFaction() != faction)
|
if (msender.getFaction() != faction)
|
||||||
{
|
{
|
||||||
// Send message to sender
|
// Send message to sender
|
||||||
|
@ -122,7 +122,7 @@ public class EngineMain extends EngineAbstract
|
|||||||
// FACTION SHOW
|
// FACTION SHOW
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onFactionShow(EventFactionsFactionShow event)
|
public void onFactionShow(EventFactionsFactionShow event)
|
||||||
{
|
{
|
||||||
final int tableCols = 4;
|
final int tableCols = 4;
|
||||||
@ -191,7 +191,6 @@ public class EngineMain extends EngineAbstract
|
|||||||
Double money = MConf.get().econChunkCost.get(type);
|
Double money = MConf.get().econChunkCost.get(type);
|
||||||
if (money == null) continue;
|
if (money == null) continue;
|
||||||
if (money == 0) continue;
|
if (money == 0) continue;
|
||||||
System.out.println("money: "+money);
|
|
||||||
money *= landCount;
|
money *= landCount;
|
||||||
|
|
||||||
String word = "Cost";
|
String word = "Cost";
|
||||||
@ -202,7 +201,7 @@ public class EngineMain extends EngineAbstract
|
|||||||
}
|
}
|
||||||
|
|
||||||
String key = Txt.parse("Total Land %s %s", type.toString().toLowerCase(), word);
|
String key = Txt.parse("Total Land %s %s", type.toString().toLowerCase(), word);
|
||||||
String value = Money.format(money);
|
String value = Txt.parse("<h>%s", Money.format(money));
|
||||||
String line = show(key, value);
|
String line = show(key, value);
|
||||||
landvalueLines.add(line);
|
landvalueLines.add(line);
|
||||||
}
|
}
|
||||||
@ -211,7 +210,8 @@ public class EngineMain extends EngineAbstract
|
|||||||
// BANK
|
// BANK
|
||||||
if (MConf.get().bankEnabled)
|
if (MConf.get().bankEnabled)
|
||||||
{
|
{
|
||||||
String bankDesc = Money.format(Money.get(faction));
|
double bank = Money.get(faction);
|
||||||
|
String bankDesc = Txt.parse("<h>%s", Money.format(bank, true));
|
||||||
show(idPriorityLiness, Const.SHOW_ID_FACTION_BANK, Const.SHOW_PRIORITY_FACTION_BANK, "Bank", bankDesc);
|
show(idPriorityLiness, Const.SHOW_ID_FACTION_BANK, Const.SHOW_PRIORITY_FACTION_BANK, "Bank", bankDesc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,13 +204,13 @@ public class Board extends Entity<Board> implements BoardInterface
|
|||||||
return this.getCount(faction.getId());
|
return this.getCount(faction.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getCount(String factionId)
|
public int getCount(String factionId)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for (TerritoryAccess ta : this.map.values())
|
for (TerritoryAccess ta : this.map.values())
|
||||||
{
|
{
|
||||||
if (!ta.getHostFactionId().equals(factionId)) continue;
|
if (!ta.getHostFactionId().equals(factionId)) continue;
|
||||||
|
|
||||||
ret += 1;
|
ret += 1;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -132,11 +132,17 @@ public class BoardColl extends Coll<Board> implements BoardInterface
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount(Faction faction)
|
public int getCount(Faction faction)
|
||||||
|
{
|
||||||
|
return this.getCount(faction.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount(String factionId)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for (Board board : this.getAll())
|
for (Board board : this.getAll())
|
||||||
{
|
{
|
||||||
ret += board.getCount(faction);
|
ret += board.getCount(factionId);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ public interface BoardInterface
|
|||||||
|
|
||||||
// COUNT
|
// COUNT
|
||||||
public int getCount(Faction faction);
|
public int getCount(Faction faction);
|
||||||
|
public int getCount(String factionId);
|
||||||
|
|
||||||
// NEARBY DETECTION
|
// NEARBY DETECTION
|
||||||
public boolean isBorderPs(PS ps);
|
public boolean isBorderPs(PS ps);
|
||||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import com.massivecraft.massivecore.PredictateIsRegistered;
|
import com.massivecraft.massivecore.PredictateIsRegistered;
|
||||||
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.store.Entity;
|
import com.massivecraft.massivecore.store.Entity;
|
||||||
import com.massivecraft.massivecore.util.Txt;
|
import com.massivecraft.massivecore.util.Txt;
|
||||||
|
|
||||||
@ -70,20 +71,20 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
getFlagInfpower();
|
getFlagInfpower();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MFlag getFlagOpen() { return getCreative(PRIORITY_OPEN, ID_OPEN, ID_OPEN, "Open factions can be joined without invite.", false, true, true); }
|
public static MFlag getFlagOpen() { return getCreative(PRIORITY_OPEN, ID_OPEN, ID_OPEN, "Can the faction be joined without an invite?", "An invite is required to join.", "Anyone can join. No invite required.", false, true, true); }
|
||||||
public static MFlag getFlagMonsters() { return getCreative(PRIORITY_MONSTERS, ID_MONSTERS, ID_MONSTERS, "Can monsters spawn in this territory?", false, true, true); }
|
public static MFlag getFlagMonsters() { return getCreative(PRIORITY_MONSTERS, ID_MONSTERS, ID_MONSTERS, "Can monsters spawn in this territory?", "Monsters can spawn in this territory.", "Monsters can NOT spawn in this territory.", false, true, true); }
|
||||||
public static MFlag getFlagPowerloss() { return getCreative(PRIORITY_POWERLOSS, ID_POWERLOSS, ID_POWERLOSS, "Is power lost on death in this territory?", true, false, true); }
|
public static MFlag getFlagPowerloss() { return getCreative(PRIORITY_POWERLOSS, ID_POWERLOSS, ID_POWERLOSS, "Is power lost on death in this territory?", "Power is lost on death in this territory.", "Power is NOT lost on death in this territory.", true, false, true); }
|
||||||
public static MFlag getFlagPvp() { return getCreative(PRIORITY_PVP, ID_PVP, ID_PVP, "Can you PVP in territory?", true, false, true); }
|
public static MFlag getFlagPvp() { return getCreative(PRIORITY_PVP, ID_PVP, ID_PVP, "Can you PVP in territory?", "You can PVP in this territory.", "You can NOT PVP in this territory.", true, false, true); }
|
||||||
public static MFlag getFlagFriendlyire() { return getCreative(PRIORITY_FRIENDLYFIRE, ID_FRIENDLYFIRE, ID_FRIENDLYFIRE, "Can friends hurt eachother here?", false, false, true); }
|
public static MFlag getFlagFriendlyire() { return getCreative(PRIORITY_FRIENDLYFIRE, ID_FRIENDLYFIRE, ID_FRIENDLYFIRE, "Can friends hurt eachother in this territory?", "Friends can hurt eachother in this territory.", "Friends can NOT hurt eachother in this territory.", false, false, true); }
|
||||||
public static MFlag getFlagExplosions() { return getCreative(PRIORITY_EXPLOSIONS, ID_EXPLOSIONS, ID_EXPLOSIONS, "Can explosions occur in this territory?", true, false, true); }
|
public static MFlag getFlagExplosions() { return getCreative(PRIORITY_EXPLOSIONS, ID_EXPLOSIONS, ID_EXPLOSIONS, "Can explosions occur in this territory?", "Explosions can occur in this territory.", "Explosions can NOT occur in this territory.", true, false, true); }
|
||||||
public static MFlag getFlagOfflineexplosions() { return getCreative(PRIORITY_OFFLINEEXPLOSIONS, ID_OFFLINEEXPLOSIONS, ID_OFFLINEEXPLOSIONS, "Can explosions occur if faction is offline?", false, false, true); }
|
public static MFlag getFlagOfflineexplosions() { return getCreative(PRIORITY_OFFLINEEXPLOSIONS, ID_OFFLINEEXPLOSIONS, ID_OFFLINEEXPLOSIONS, "Can explosions occur if faction is offline?", "Explosions can occur if faction is offline.", "Explosions can NOT occur if faction is offline.", false, false, true); }
|
||||||
public static MFlag getFlagFirespread() { return getCreative(PRIORITY_FIRESPREAD, ID_FIRESPREAD, ID_FIRESPREAD, "Can fire spread in territory?", true, false, true); }
|
public static MFlag getFlagFirespread() { return getCreative(PRIORITY_FIRESPREAD, ID_FIRESPREAD, ID_FIRESPREAD, "Can fire spread in territory?", "Fire can spread in this territory.", "Fire can NOT spread in this territory.", true, false, true); }
|
||||||
public static MFlag getFlagEndergrief() { return getCreative(PRIORITY_ENDERGRIEF, ID_ENDERGRIEF, ID_ENDERGRIEF, "Can endermen grief in this territory?", false, false, true); }
|
public static MFlag getFlagEndergrief() { return getCreative(PRIORITY_ENDERGRIEF, ID_ENDERGRIEF, ID_ENDERGRIEF, "Can endermen grief in this territory?", "Endermen can grief in this territory", "Endermen can NOT grief in this territory.", false, false, true); }
|
||||||
public static MFlag getFlagPermanent() { return getCreative(PRIORITY_PERMANENT, ID_PERMANENT, ID_PERMANENT, "A permanent faction will never be deleted.", false, false, true); }
|
public static MFlag getFlagPermanent() { return getCreative(PRIORITY_PERMANENT, ID_PERMANENT, ID_PERMANENT, "Is the faction immune to deletion?", "The faction can NOT be deleted.", "The faction can be deleted.", false, false, true); }
|
||||||
public static MFlag getFlagPeaceful() { return getCreative(PRIORITY_PEACEFUL, ID_PEACEFUL, ID_PEACEFUL, "Always in truce with other factions.", false, false, true); }
|
public static MFlag getFlagPeaceful() { return getCreative(PRIORITY_PEACEFUL, ID_PEACEFUL, ID_PEACEFUL, "Is the faction in truce with everyone?", "The faction is in truce with everyone.", "The faction relations work as usual.", false, false, true); }
|
||||||
public static MFlag getFlagInfpower() { return getCreative(PRIORITY_INFPOWER, ID_INFPOWER, ID_INFPOWER, "This flag gives the faction infinite power.", false, false, true); }
|
public static MFlag getFlagInfpower() { return getCreative(PRIORITY_INFPOWER, ID_INFPOWER, ID_INFPOWER, "Does the faction have infinite power?", "The faction has infinite power.", "The faction power works as usual.", false, false, true); }
|
||||||
|
|
||||||
public static MFlag getCreative(int priority, String id, String name, String desc, boolean standard, boolean editable, boolean visible)
|
public static MFlag getCreative(int priority, String id, String name, String desc, String descYes, String descNo, boolean standard, boolean editable, boolean visible)
|
||||||
{
|
{
|
||||||
MFlag ret = MFlagColl.get().get(id, false);
|
MFlag ret = MFlagColl.get().get(id, false);
|
||||||
if (ret != null)
|
if (ret != null)
|
||||||
@ -92,7 +93,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = new MFlag(priority, name, desc, standard, editable, visible);
|
ret = new MFlag(priority, name, desc, descYes, descNo, standard, editable, visible);
|
||||||
MFlagColl.get().attach(ret, id);
|
MFlagColl.get().attach(ret, id);
|
||||||
ret.setRegistered(true);
|
ret.setRegistered(true);
|
||||||
ret.sync();
|
ret.sync();
|
||||||
@ -110,6 +111,8 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
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.descYes = that.descYes;
|
||||||
|
this.descNo = that.descNo;
|
||||||
this.standard = that.standard;
|
this.standard = that.standard;
|
||||||
this.editable = that.editable;
|
this.editable = that.editable;
|
||||||
this.visible = that.visible;
|
this.visible = that.visible;
|
||||||
@ -140,12 +143,24 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
public String getName() { return this.name; }
|
public String getName() { return this.name; }
|
||||||
public MFlag setName(String name) { this.name = name; this.changed(); return this; }
|
public MFlag setName(String name) { this.name = name; this.changed(); return this; }
|
||||||
|
|
||||||
// Short description
|
// Description
|
||||||
// Example: "Can monsters spawn in this territory?"
|
// Example: "Can monsters spawn in this territory?"
|
||||||
private String desc = "defaultDesc";
|
private String desc = "defaultDesc";
|
||||||
public String getDesc() { return this.desc; }
|
public String getDesc() { return this.desc; }
|
||||||
public MFlag setDesc(String desc) { this.desc = desc; this.changed(); return this; }
|
public MFlag setDesc(String desc) { this.desc = desc; this.changed(); return this; }
|
||||||
|
|
||||||
|
// Description Yes
|
||||||
|
// Example: "Monsters can spawn in this territory."
|
||||||
|
private String descYes = "defaultDescYes";
|
||||||
|
public String getDescYes() { return this.descYes; }
|
||||||
|
public MFlag setDescYes(String descYes) { this.descYes = descYes; this.changed(); return this; }
|
||||||
|
|
||||||
|
// Description No
|
||||||
|
// Example: "Monsters can NOT spawn in this territory."
|
||||||
|
private String descNo = "defaultDescNo";
|
||||||
|
public String getDescNo() { return this.descNo; }
|
||||||
|
public MFlag setDescNo(String descNo) { this.descNo = descNo; this.changed(); return this; }
|
||||||
|
|
||||||
// Standard value
|
// Standard value
|
||||||
// Example: false (per default monsters do not spawn in faction territory)
|
// Example: false (per default monsters do not spawn in faction territory)
|
||||||
private boolean standard = true;
|
private boolean standard = true;
|
||||||
@ -174,11 +189,13 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
// No argument constructor for GSON
|
// No argument constructor for GSON
|
||||||
}
|
}
|
||||||
|
|
||||||
public MFlag(int priority, String name, String desc, boolean standard, boolean editable, boolean visible)
|
public MFlag(int priority, String name, String desc, String descYes, String descNo, boolean standard, boolean editable, boolean visible)
|
||||||
{
|
{
|
||||||
this.priority = priority;
|
this.priority = priority;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.desc = desc;
|
this.desc = desc;
|
||||||
|
this.descYes = descYes;
|
||||||
|
this.descNo = descNo;
|
||||||
this.standard = standard;
|
this.standard = standard;
|
||||||
this.editable = editable;
|
this.editable = editable;
|
||||||
this.visible = visible;
|
this.visible = visible;
|
||||||
@ -195,27 +212,64 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable
|
|||||||
return this.isStandard() != value;
|
return this.isStandard() != value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStateInfo(boolean value, boolean withDesc)
|
public String getStateDesc(boolean value, boolean withValue, boolean monospaceValue, boolean withName, boolean withDesc, boolean specificDesc)
|
||||||
{
|
{
|
||||||
String valueDesc = value ? "<g>YES" : "<b>NOO";
|
List<String> parts = new MassiveList<>();
|
||||||
|
|
||||||
String color = "<aqua>";
|
if (withValue)
|
||||||
|
{
|
||||||
|
if (monospaceValue)
|
||||||
|
{
|
||||||
|
parts.add(Txt.parse(value ? "<g>YES" : "<b>NOO"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parts.add(Txt.parse(value ? "<g>YES" : "<b>NO"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (withName)
|
||||||
|
{
|
||||||
|
String nameFormat;
|
||||||
if ( ! this.isVisible())
|
if ( ! this.isVisible())
|
||||||
{
|
{
|
||||||
color = "<silver>";
|
nameFormat = "<silver>%s";
|
||||||
}
|
}
|
||||||
else if (this.isEditable())
|
else if (this.isEditable())
|
||||||
{
|
{
|
||||||
color = "<pink>";
|
nameFormat = "<pink>%s";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nameFormat = "<aqua>%s";
|
||||||
|
}
|
||||||
|
String name = this.getName();
|
||||||
|
String nameDesc = Txt.parse(nameFormat, name);
|
||||||
|
parts.add(nameDesc);
|
||||||
}
|
}
|
||||||
|
|
||||||
String ret = valueDesc + " " + color + this.getName();
|
if (withDesc)
|
||||||
|
{
|
||||||
|
String desc;
|
||||||
|
if (specificDesc)
|
||||||
|
{
|
||||||
|
desc = value ? this.getDescYes() : this.getDescNo();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
desc = this.getDesc();
|
||||||
|
}
|
||||||
|
String descDesc = Txt.parse("<i>%s", desc);
|
||||||
|
parts.add(descDesc);
|
||||||
|
}
|
||||||
|
|
||||||
if (withDesc) ret += " <i>" + this.getDesc();
|
return Txt.implode(parts, " ");
|
||||||
|
}
|
||||||
|
|
||||||
ret = Txt.parse(ret);
|
@Deprecated
|
||||||
|
public String getStateInfo(boolean value, boolean withDesc)
|
||||||
return ret;
|
{
|
||||||
|
return this.getStateDesc(value, true, true, true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user