Fixed LWC integration for servers not using LWC and automated dynmap flags.
This commit is contained in:
parent
bf325c46df
commit
ebfbbf4555
@ -484,9 +484,7 @@ public class MConf extends Entity<MConf>
|
|||||||
"<span style=\"font-weight: bold;\">Bank:</span> %money%</br>\n" +
|
"<span style=\"font-weight: bold;\">Bank:</span> %money%</br>\n" +
|
||||||
"</br>\n" +
|
"</br>\n" +
|
||||||
"<span style=\"font-weight: bold;\">Flags:</span></br>\n" +
|
"<span style=\"font-weight: bold;\">Flags:</span></br>\n" +
|
||||||
"%open.color% | %permanent.color% | %peaceful.color% | %infpower.color% | %powerloss.color%</br>\n" +
|
"%flags.table3%\n" +
|
||||||
"%pvp.color% | %friendlyfire.color% | %monsters.color% | %explosions.color%</br>\n" +
|
|
||||||
"%offlineexplosions.color% | %firespread.color% | %endergrief.color%\n" +
|
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
// Enable the %money% macro. Only do this if you know your economy manager is thread safe.
|
// Enable the %money% macro. Only do this if you know your economy manager is thread safe.
|
||||||
|
@ -2,8 +2,10 @@ package com.massivecraft.factions.integration.dynmap;
|
|||||||
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -758,44 +760,62 @@ public class EngineDynmap extends EngineAbstract
|
|||||||
ret = ret.replace("%money%", money);
|
ret = ret.replace("%money%", money);
|
||||||
|
|
||||||
// Flags and Open
|
// Flags and Open
|
||||||
Map<String, Boolean> flags = new HashMap<String, Boolean>();
|
Map<MFlag, Boolean> flags = new LinkedHashMap<MFlag, Boolean>();
|
||||||
for (MFlag mflag : MFlag.getAll())
|
for (MFlag mflag : MFlag.getAll())
|
||||||
{
|
{
|
||||||
flags.put(mflag.getName(), faction.getFlag(mflag));
|
flags.put(mflag, faction.getFlag(mflag));
|
||||||
}
|
}
|
||||||
for (Entry<String, Boolean> entry : flags.entrySet())
|
|
||||||
|
List<String> flagMapParts = new ArrayList<String>();
|
||||||
|
List<String> flagTableParts = new ArrayList<String>();
|
||||||
|
|
||||||
|
for (Entry<MFlag, Boolean> entry : flags.entrySet())
|
||||||
{
|
{
|
||||||
String flag = entry.getKey();
|
MFlag mflag = entry.getKey();
|
||||||
|
String flag = mflag.getName();
|
||||||
boolean value = entry.getValue();
|
boolean value = entry.getValue();
|
||||||
|
|
||||||
String bool = String.valueOf(value);
|
String bool = String.valueOf(value);
|
||||||
String color = boolcolor(flag, value);
|
String color = boolcolor(flag, value);
|
||||||
String boolcolor = boolcolor(String.valueOf(value), value);
|
String boolcolor = boolcolor(String.valueOf(value), value);
|
||||||
|
|
||||||
ret = ret.replace("%" + flag + ".bool%", bool);
|
ret = ret.replace("%" + flag + ".bool%", bool); // true
|
||||||
ret = ret.replace("%" + flag + ".color%", color);
|
ret = ret.replace("%" + flag + ".color%", color); // monsters (red or green)
|
||||||
ret = ret.replace("%" + flag + ".boolcolor%", boolcolor);
|
ret = ret.replace("%" + flag + ".boolcolor%", boolcolor); // true (red or green)
|
||||||
|
|
||||||
|
if (!mflag.isVisible()) continue;
|
||||||
|
flagMapParts.add(flag + ": " + boolcolor);
|
||||||
|
flagTableParts.add(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
String flagMap = Txt.implode(flagMapParts, "<br>\n");
|
||||||
|
ret = ret.replace("%flags.map%", flagMap);
|
||||||
|
|
||||||
|
for (int cols = 1; cols <= 10; cols++)
|
||||||
|
{
|
||||||
|
String flagTable = getHtmlAsciTable(flagTableParts, cols);
|
||||||
|
ret = ret.replace("%flags.table" + cols + "%", flagTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Players
|
// Players
|
||||||
List<MPlayer> playersList = faction.getMPlayers();
|
List<MPlayer> playersList = faction.getMPlayers();
|
||||||
String playersCount = String.valueOf(playersList.size());
|
String playersCount = String.valueOf(playersList.size());
|
||||||
String players = getPlayerString(playersList);
|
String players = getHtmlPlayerString(playersList);
|
||||||
|
|
||||||
MPlayer playersLeaderObject = faction.getLeader();
|
MPlayer playersLeaderObject = faction.getLeader();
|
||||||
String playersLeader = getPlayerName(playersLeaderObject);
|
String playersLeader = getHtmlPlayerName(playersLeaderObject);
|
||||||
|
|
||||||
List<MPlayer> playersOfficersList = faction.getMPlayersWhereRole(Rel.OFFICER);
|
List<MPlayer> playersOfficersList = faction.getMPlayersWhereRole(Rel.OFFICER);
|
||||||
String playersOfficersCount = String.valueOf(playersOfficersList.size());
|
String playersOfficersCount = String.valueOf(playersOfficersList.size());
|
||||||
String playersOfficers = getPlayerString(playersOfficersList);
|
String playersOfficers = getHtmlPlayerString(playersOfficersList);
|
||||||
|
|
||||||
List<MPlayer> playersMembersList = faction.getMPlayersWhereRole(Rel.MEMBER);
|
List<MPlayer> playersMembersList = faction.getMPlayersWhereRole(Rel.MEMBER);
|
||||||
String playersMembersCount = String.valueOf(playersMembersList.size());
|
String playersMembersCount = String.valueOf(playersMembersList.size());
|
||||||
String playersMembers = getPlayerString(playersMembersList);
|
String playersMembers = getHtmlPlayerString(playersMembersList);
|
||||||
|
|
||||||
List<MPlayer> playersRecruitsList = faction.getMPlayersWhereRole(Rel.RECRUIT);
|
List<MPlayer> playersRecruitsList = faction.getMPlayersWhereRole(Rel.RECRUIT);
|
||||||
String playersRecruitsCount = String.valueOf(playersRecruitsList.size());
|
String playersRecruitsCount = String.valueOf(playersRecruitsList.size());
|
||||||
String playersRecruits = getPlayerString(playersRecruitsList);
|
String playersRecruits = getHtmlPlayerString(playersRecruitsList);
|
||||||
|
|
||||||
|
|
||||||
ret = ret.replace("%players%", players);
|
ret = ret.replace("%players%", players);
|
||||||
@ -811,18 +831,47 @@ public class EngineDynmap extends EngineAbstract
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getPlayerString(List<MPlayer> mplayers)
|
public static String getHtmlAsciTable(Collection<String> strings, int cols)
|
||||||
|
{
|
||||||
|
StringBuilder ret = new StringBuilder();
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
Iterator<String> iter = strings.iterator();
|
||||||
|
while (iter.hasNext())
|
||||||
|
{
|
||||||
|
String string = iter.next();
|
||||||
|
count++;
|
||||||
|
|
||||||
|
ret.append(string);
|
||||||
|
if (iter.hasNext())
|
||||||
|
{
|
||||||
|
if (count == cols)
|
||||||
|
{
|
||||||
|
ret.append("<br>\n");
|
||||||
|
count = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret.append(" | ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getHtmlPlayerString(List<MPlayer> mplayers)
|
||||||
{
|
{
|
||||||
String ret = "";
|
String ret = "";
|
||||||
for (MPlayer mplayer : mplayers)
|
for (MPlayer mplayer : mplayers)
|
||||||
{
|
{
|
||||||
if (ret.length() > 0) ret += ", ";
|
if (ret.length() > 0) ret += ", ";
|
||||||
ret += getPlayerName(mplayer);
|
ret += getHtmlPlayerName(mplayer);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getPlayerName(MPlayer mplayer)
|
public static String getHtmlPlayerName(MPlayer mplayer)
|
||||||
{
|
{
|
||||||
if (mplayer == null) return "none";
|
if (mplayer == null) return "none";
|
||||||
return escapeHtml(mplayer.getName());
|
return escapeHtml(mplayer.getName());
|
||||||
|
@ -43,6 +43,20 @@ public class EngineLwc extends EngineAbstract
|
|||||||
return Factions.get();
|
return Factions.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void activate()
|
||||||
|
{
|
||||||
|
super.activate();
|
||||||
|
LWC.getInstance().getModuleLoader().registerModule(Factions.get(), new FactionsLwcModule(Factions.get()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deactivate()
|
||||||
|
{
|
||||||
|
super.deactivate();
|
||||||
|
LWC.getInstance().getModuleLoader().removeModules(Factions.get());
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// LISTENER
|
// LISTENER
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package com.massivecraft.factions.integration.lwc;
|
package com.massivecraft.factions.integration.lwc;
|
||||||
|
|
||||||
import com.griefcraft.lwc.LWC;
|
|
||||||
import com.massivecraft.factions.Factions;
|
|
||||||
import com.massivecraft.massivecore.integration.IntegrationAbstract;
|
import com.massivecraft.massivecore.integration.IntegrationAbstract;
|
||||||
|
|
||||||
public class IntegrationLwc extends IntegrationAbstract
|
public class IntegrationLwc extends IntegrationAbstract
|
||||||
@ -22,16 +20,12 @@ public class IntegrationLwc extends IntegrationAbstract
|
|||||||
public void activate()
|
public void activate()
|
||||||
{
|
{
|
||||||
EngineLwc.get().activate();
|
EngineLwc.get().activate();
|
||||||
|
|
||||||
LWC.getInstance().getModuleLoader().registerModule(Factions.get(), new FactionsLwcModule(Factions.get()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deactivate()
|
public void deactivate()
|
||||||
{
|
{
|
||||||
EngineLwc.get().deactivate();
|
EngineLwc.get().deactivate();
|
||||||
|
|
||||||
LWC.getInstance().getModuleLoader().removeModules(Factions.get());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user