Improved TypeNameAbstract
This commit is contained in:
parent
b1426a17b3
commit
04cdb09a1a
@ -3,6 +3,7 @@ package com.massivecraft.massivecore.command.type;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.Named;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import com.massivecraft.massivecore.MassiveException;
|
import com.massivecraft.massivecore.MassiveException;
|
||||||
@ -16,7 +17,15 @@ public abstract class TypeNameAbstract extends TypeAbstract<String>
|
|||||||
private final boolean strict;
|
private final boolean strict;
|
||||||
public boolean isStrict() { return this.strict; }
|
public boolean isStrict() { return this.strict; }
|
||||||
public boolean isLenient() { return ! this.isStrict(); }
|
public boolean isLenient() { return ! this.isStrict(); }
|
||||||
|
|
||||||
|
private Integer lengthMin = 1;
|
||||||
|
public Integer getLengthMin() { return this.lengthMin; }
|
||||||
|
public void setLengthMin(Integer lengthMin) { this.lengthMin = lengthMin; }
|
||||||
|
|
||||||
|
private Integer lengthMax = null;
|
||||||
|
public Integer getLengthMax() { return this.lengthMax; }
|
||||||
|
public void setLengthMax(Integer lengthMax) { this.lengthMax = lengthMax; }
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// CONSTRUCT
|
// CONSTRUCT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -42,20 +51,44 @@ public abstract class TypeNameAbstract extends TypeAbstract<String>
|
|||||||
|
|
||||||
if (this.isNameTaken(arg)) throw new MassiveException().addMsg("<b>The name \"<h>%s<b>\" is already in use.",arg);
|
if (this.isNameTaken(arg)) throw new MassiveException().addMsg("<b>The name \"<h>%s<b>\" is already in use.",arg);
|
||||||
|
|
||||||
|
Integer lengthMin = this.getLengthMin();
|
||||||
|
if (lengthMin != null && arg.length() < lengthMin)
|
||||||
|
{
|
||||||
|
throw new MassiveException().addMsg("<b>The name must be at least <h>%d<b> characters.", lengthMin);
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer lengthMax = this.getLengthMax();
|
||||||
|
if (lengthMax != null && arg.length() >lengthMax)
|
||||||
|
{
|
||||||
|
throw new MassiveException().addMsg("<b>The name must be at most <h>%d<b> characters.", lengthMax);
|
||||||
|
}
|
||||||
|
|
||||||
return arg;
|
return arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<String> getTabList(CommandSender sender, String arg)
|
public Collection<String> getTabList(CommandSender sender, String arg)
|
||||||
{
|
{
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// METHODS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public String getCurrentName(CommandSender sender)
|
||||||
|
{
|
||||||
|
Named named = this.getCurrent(sender);
|
||||||
|
if (named == null) return null;
|
||||||
|
return named.getName();
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public abstract String getCurrentName(CommandSender sender);
|
public abstract Named getCurrent(CommandSender sender);
|
||||||
|
|
||||||
public abstract boolean isNameTaken(String name);
|
public abstract boolean isNameTaken(String name);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user