Hardening config cmd aliases and adding pageheight-aware pager.

This commit is contained in:
Olof Larsson
2013-01-08 18:10:53 +01:00
parent e4da009bfc
commit 9a66c7ce2c
8 changed files with 94 additions and 16 deletions

View File

@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import com.massivecraft.mcore5.cmd.CmdMcore;
import com.massivecraft.mcore5.usys.cmd.CmdUsys;
import com.massivecraft.mcore5.util.MUtil;
@@ -16,7 +17,22 @@ public class Conf extends SimpleConfig
public static String dburi = "gson://./mstore";
public static String serverid = UUID.randomUUID().toString();
public static Map<String, List<String>> cmdaliases = MUtil.map(CmdUsys.USYS, MUtil.list(CmdUsys.USYS));
public static Map<String, List<String>> cmdaliases = MUtil.map(
CmdUsys.USYS, MUtil.list(CmdUsys.USYS),
CmdMcore.MCORE, MUtil.list(CmdMcore.MCORE)
);
public static List<String> getCmdAliases(String name)
{
List<String> ret = cmdaliases.get(name);
if (ret == null)
{
ret = MUtil.list(name);
cmdaliases.put(name, ret);
i.save();
}
return ret;
}
// -------------------------------------------- //
// META

View File

@@ -11,6 +11,7 @@ import com.massivecraft.mcore5.adapter.InventoryAdapter;
import com.massivecraft.mcore5.adapter.ItemStackAdapter;
import com.massivecraft.mcore5.adapter.MongoURIAdapter;
import com.massivecraft.mcore5.adapter.PSAdapter;
import com.massivecraft.mcore5.cmd.CmdMcore;
import com.massivecraft.mcore5.store.Coll;
import com.massivecraft.mcore5.store.Db;
import com.massivecraft.mcore5.store.MStore;
@@ -81,6 +82,7 @@ public class MCore extends MPlugin
public InternalListener internalListener;
public CmdUsys cmdUsys;
public CmdMcore cmdMcore;
@Override
public void onEnable()
@@ -113,6 +115,9 @@ public class MCore extends MPlugin
this.cmdUsys = new CmdUsys();
this.cmdUsys.register(true);
this.cmdMcore = new CmdMcore();
this.cmdMcore.register(true);
this.postEnable();
}

View File

@@ -21,6 +21,7 @@ public enum Permission
CMD_USYS_ASPECT_LIST("cmd.usys.aspect.list"),
CMD_USYS_ASPECT_SHOW("cmd.usys.aspect.show"),
CMD_USYS_ASPECT_USE("cmd.usys.aspect.use"),
CMD_MCORE("cmd.mcore"),
;
public final String node;

View File

@@ -0,0 +1,30 @@
package com.massivecraft.mcore5.cmd;
import com.massivecraft.mcore5.Conf;
import com.massivecraft.mcore5.MCore;
import com.massivecraft.mcore5.Permission;
import com.massivecraft.mcore5.cmd.req.ReqHasPerm;
public class CmdMcore extends MCommand
{
public final static String MCORE = "mcore";
public CmdMcore()
{
this.addAliases(Conf.getCmdAliases(MCORE));
this.addRequirements(ReqHasPerm.get(Permission.CMD_MCORE.node));
}
@Override
public void perform()
{
this.msg("<i>You are running %s", MCore.p.getDescription().getFullName());
this.msg("<i>The id of this server is \"<h>%s<i>\".", Conf.serverid);
}
@Override
public MCore p()
{
return MCore.p;
}
}

View File

@@ -18,7 +18,7 @@ public class CmdUsys extends UsysCommand
{
super();
this.addAliases(Conf.cmdaliases.get(USYS));
this.addAliases(Conf.getCmdAliases(USYS));
this.addSubCommand(this.cmdUsysMultiverse);
this.addSubCommand(this.cmdUsysUniverse);

View File

@@ -207,8 +207,11 @@ public class PlayerUtil implements Listener
// The player file may not exist yet
if (playerfolder == null) return;
File[] playerfiles = playerfolder.listFiles();
if (playerfiles == null) return;
// Populate by removing .dat
for (File playerfile : playerfolder.listFiles())
for (File playerfile : playerfiles)
{
String filename = playerfile.getName();
String playername = filename.substring(0, filename.length()-4);

View File

@@ -8,13 +8,18 @@ import java.util.regex.Pattern;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Txt
{
{
// -------------------------------------------- //
// STATIC
// -------------------------------------------- //
public static final int PAGEHEIGHT_PLAYER = 9;
public static final int PAGEHEIGHT_CONSOLE = 50;
public static final Map<String, String> parseReplacements;
public static final Pattern parsePattern;
@@ -31,19 +36,18 @@ public class Txt
"a", "e", "i", "o", "u", "y", "å", "ä", "ö"
);
public static Map<String, Long> unitMillis;
public static final Map<String, Long> unitMillis = MUtil.map(
"years", millisPerYear,
"months", millisPerMonth,
"weeks", millisPerWeek,
"days", millisPerDay,
"hours", millisPerHour,
"minutes", millisPerMinute,
"seconds", millisPerSecond
);
static
{
unitMillis = new LinkedHashMap<String, Long>();
unitMillis.put("years", millisPerYear);
unitMillis.put("months", millisPerMonth);
unitMillis.put("weeks", millisPerWeek);
unitMillis.put("days", millisPerDay);
unitMillis.put("hours", millisPerHour);
unitMillis.put("minutes", millisPerMinute);
unitMillis.put("seconds", millisPerSecond);
// Create the parce replacements map
parseReplacements = new HashMap<String, String>();
@@ -395,7 +399,21 @@ public class Txt
public static ArrayList<String> getPage(List<String> lines, int pageHumanBased, String title)
{
return getPage(lines, pageHumanBased, title, 9);
return getPage(lines, pageHumanBased, title, PAGEHEIGHT_PLAYER);
}
public static ArrayList<String> getPage(List<String> lines, int pageHumanBased, String title, CommandSender sender)
{
int pageheight;
if (sender instanceof Player)
{
pageheight = PAGEHEIGHT_PLAYER;
}
else
{
pageheight = PAGEHEIGHT_CONSOLE;
}
return getPage(lines, pageHumanBased, title, pageheight);
}
public static ArrayList<String> getPage(List<String> lines, int pageHumanBased, String title, int pageheight)