Update ArgReaders

This commit is contained in:
Magnus Ulf 2015-04-09 14:35:39 +02:00 committed by Olof Larsson
parent 6c61da2b8d
commit 43d2354f04
7 changed files with 96 additions and 25 deletions

View File

@ -1,16 +1,20 @@
package com.massivecraft.factions.cmd.arg;
import java.util.Collection;
import java.util.List;
import org.bukkit.command.CommandSender;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.factions.entity.Faction;
import com.massivecraft.factions.entity.FactionColl;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.massivecore.MassiveCore;
import com.massivecraft.massivecore.MassiveException;
import com.massivecraft.massivecore.cmd.arg.ArgReaderAbstract;
import com.massivecraft.massivecore.cmd.arg.ARAbstract;
import com.massivecraft.massivecore.collections.MassiveList;
import com.massivecraft.massivecore.util.IdUtil;
public class ARFaction extends ArgReaderAbstract<Faction>
public class ARFaction extends ARAbstract<Faction>
{
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
@ -55,5 +59,18 @@ public class ARFaction extends ArgReaderAbstract<Faction>
throw new MassiveException().addMsg("<b>No faction or player matching \"<p>%s<b>\".", str);
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
List<String> ret = new MassiveList<String>();
for (Faction faction : FactionColl.get().getAll())
{
ret.add(faction.getName());
}
return ret;
}
}

View File

@ -24,7 +24,7 @@ public class ARMFlag extends ARAbstractSelect<MFlag>
// -------------------------------------------- //
@Override
public String typename()
public String getTypeName()
{
return "faction flag";
}
@ -70,6 +70,12 @@ public class ARMFlag extends ARAbstractSelect<MFlag>
return ret;
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
return this.altNames(sender);
}
// -------------------------------------------- //
// UTIL
@ -84,5 +90,5 @@ public class ARMFlag extends ARAbstractSelect<MFlag>
{
return getComparable(mflag.getName());
}
}

View File

@ -24,7 +24,7 @@ public class ARMPerm extends ARAbstractSelect<MPerm>
// -------------------------------------------- //
@Override
public String typename()
public String getTypeName()
{
return "faction permission";
}
@ -70,6 +70,12 @@ public class ARMPerm extends ARAbstractSelect<MPerm>
return ret;
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
return this.altNames(sender);
}
// -------------------------------------------- //
// UTIL
@ -84,5 +90,5 @@ public class ARMPerm extends ARAbstractSelect<MPerm>
{
return getComparable(mperm.getName());
}
}

View File

@ -2,7 +2,7 @@ package com.massivecraft.factions.cmd.arg;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.factions.entity.MPlayerColl;
import com.massivecraft.massivecore.cmd.arg.ArgReader;
import com.massivecraft.massivecore.cmd.arg.AR;
public class ARMPlayer
{
@ -10,12 +10,12 @@ public class ARMPlayer
// INSTANCE
// -------------------------------------------- //
public static ArgReader<MPlayer> getAny()
public static AR<MPlayer> getAny()
{
return MPlayerColl.get().getAREntity();
}
public static ArgReader<MPlayer> getOnline()
public static AR<MPlayer> getOnline()
{
return MPlayerColl.get().getAREntity(true);
}

View File

@ -1,6 +1,8 @@
package com.massivecraft.factions.cmd.arg;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.bukkit.command.CommandSender;
@ -12,6 +14,19 @@ import com.massivecraft.massivecore.util.Txt;
public class ARRank extends ARAbstractSelect<Rel>
{
// -------------------------------------------- //
// CONSTANTS
// -------------------------------------------- //
public static final List<String> ALT_NAMES = Collections.unmodifiableList(MUtil.list(
Txt.getNicedEnum(Rel.LEADER),
Txt.getNicedEnum(Rel.OFFICER),
Txt.getNicedEnum(Rel.MEMBER),
Txt.getNicedEnum(Rel.RECRUIT),
"Promote",
"Demote"
));
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
@ -52,7 +67,7 @@ public class ARRank extends ARAbstractSelect<Rel>
// This is especially useful when one rank can have aliases.
// In the case of promote/demote,
// that would require 10 lines of code repeated for each alias.
arg = this.prepareArg(arg);
arg = getComparable(arg);
// All the normal ranks
if (arg.equals("leader")) return Rel.LEADER;
@ -91,27 +106,34 @@ public class ARRank extends ARAbstractSelect<Rel>
@Override
public Collection<String> altNames(CommandSender sender)
{
return MUtil.list(
Txt.getNicedEnum(Rel.LEADER),
Txt.getNicedEnum(Rel.OFFICER),
Txt.getNicedEnum(Rel.MEMBER),
Txt.getNicedEnum(Rel.RECRUIT),
"Promote",
"Demote"
);
return ALT_NAMES;
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
return this.altNames(sender);
}
@Override
public String typename()
public boolean isValid(String arg, CommandSender sender)
{
return "rank";
try
{
return this.select(arg, sender) != null;
}
catch (MassiveException e)
{
return true;
}
}
// -------------------------------------------- //
// ARG
// -------------------------------------------- //
public String prepareArg(String str)
public static String getComparable(String str)
{
String ret = str.toLowerCase();

View File

@ -24,7 +24,7 @@ public class ARRel extends ARAbstractSelect<Rel>
// -------------------------------------------- //
@Override
public String typename()
public String getTypeName()
{
return "role";
}
@ -47,5 +47,11 @@ public class ARRel extends ARAbstractSelect<Rel>
return ret;
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
return this.altNames(sender);
}
}

View File

@ -1,7 +1,9 @@
package com.massivecraft.factions.cmd.arg;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.bukkit.command.CommandSender;
@ -14,6 +16,12 @@ import com.massivecraft.massivecore.util.MUtil;
public class ARSortMPlayer extends ARAbstractSelect<Comparator<MPlayer>>
{
// -------------------------------------------- //
// CONSTANTS
// -------------------------------------------- //
public static final List<String> ALT_NAMES = Collections.unmodifiableList(MUtil.list("rank", "power", "time"));
// -------------------------------------------- //
// INSTANCE & CONSTRUCT
// -------------------------------------------- //
@ -26,7 +34,7 @@ public class ARSortMPlayer extends ARAbstractSelect<Comparator<MPlayer>>
// -------------------------------------------- //
@Override
public String typename()
public String getTypeName()
{
return "player sorter";
}
@ -58,7 +66,13 @@ public class ARSortMPlayer extends ARAbstractSelect<Comparator<MPlayer>>
@Override
public Collection<String> altNames(CommandSender sender)
{
return MUtil.list("rank", "power", "time");
return ALT_NAMES;
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
return this.altNames(sender);
}
}