From 0bcecba156ea1fcb9f2e14fcd1631bbf6850e471 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 14 May 2024 15:14:45 +0200 Subject: [PATCH] Fixes some smaller details Adds some README info Replaces the default dynmap info popup Removes the first line break when printing flags --- README | 0 README.md | 4 +++ .../factions/runnable/FactionsUpdate.java | 25 +++++++++++-------- src/main/resources/config.yml | 6 ++--- 4 files changed, 21 insertions(+), 14 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md new file mode 100644 index 0000000..ae7e6e2 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Dynmap Factions + +This plugin adds customizable area markers for factions, in addition to faction home markers. While faction does have +built-in faction markers, those only cover a single chunk, not the entire faction. \ No newline at end of file diff --git a/src/main/java/org/dynmap/factions/runnable/FactionsUpdate.java b/src/main/java/org/dynmap/factions/runnable/FactionsUpdate.java index f783bb7..b4c9a48 100644 --- a/src/main/java/org/dynmap/factions/runnable/FactionsUpdate.java +++ b/src/main/java/org/dynmap/factions/runnable/FactionsUpdate.java @@ -35,7 +35,9 @@ import java.util.Set; public class FactionsUpdate implements Runnable { private static final String DEF_INFO_WINDOW = "
" + - "%regionName%
Flags
%flags%
"; + "%regionName%
Description: %description%
Leader: " + + "%playerOwners%
Members: " + + "%playerMembers%
Flags
%flags%"; private final String infoWindow; private final DynmapFactionsPlugin dynmapFactionsPlugin; public boolean runonce; @@ -375,11 +377,11 @@ public class FactionsUpdate implements Runnable { } private String formatInfoWindow(Faction fact) { - String v = "
" + infoWindow + "
"; - v = v.replace("%regionName%", ChatColor.stripColor(fact.getName())); - v = v.replace("%description%", ChatColor.stripColor(fact.getDescription())); + String output = "
" + infoWindow + "
"; + output = output.replace("%regionName%", ChatColor.stripColor(fact.getName())); + output = output.replace("%description%", ChatColor.stripColor(fact.getDescription() != null ? fact.getDescription() : "")); MPlayer adm = fact.getLeader(); - v = v.replace("%playerOwners%", (adm != null) ? adm.getName() : ""); + output = output.replace("%playerOwners%", (adm != null) ? adm.getName() : ""); StringBuilder res = new StringBuilder(); for (MPlayer r : fact.getMPlayers()) { if (!res.isEmpty()) { @@ -387,17 +389,18 @@ public class FactionsUpdate implements Runnable { } res.append(r.getName()); } - v = v.replace("%playerMembers%", res.toString()); + output = output.replace("%playerMembers%", res.toString()); - v = v.replace("%nation%", ChatColor.stripColor(fact.getName())); + // nation is an alias for regionName + output = output.replace("%nation%", ChatColor.stripColor(fact.getName())); /* Build flags */ StringBuilder flags = new StringBuilder(); for (MFlag ff : MFlagColl.get().getAll()) { - flags.append("
").append(ff.getName()).append(": ").append(fact.getFlag(ff)); - v = v.replace("%flag." + ff.getName() + "%", fact.getFlag(ff) ? "true" : "false"); + flags.append(ff.getName()).append(": ").append(fact.getFlag(ff)).append("
"); + output = output.replace("%flag." + ff.getName() + "%", fact.getFlag(ff) ? "true" : "false"); } - v = v.replace("%flags%", flags.toString()); - return v; + output = output.replace("%flags%", flags.toString()); + return output; } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 5e2c498..7201505 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,15 +6,15 @@ update: layer: name: "Factions" - # Make mobs layer hidden by default + # Make factions layer hidden by default hideByDefault: false - # ordering priority in layer menu (low goes before high - default is 0) + # Ordering priority in layer menu (low goes before high - default is 0) layerPriority: 2 # (optional) set minimum zoom level before layer is visible (0 = default, always visible) minZoom: 0 # Format for popup - substitute values for macros -infoWindow: '
%regionName%
Flags
%flags%
' +infoWindow: '
%regionName%
Description: %description%
Leader: %playerOwners%
Members: %playerMembers%
Flags
%flags%
' # Allow players in faction to see one another on dynmap (only relevant if dynmap has 'player-info-protected' enabled) visibilityByFaction: true