Added types

This commit is contained in:
BuildTools 2021-06-23 21:57:04 +02:00
parent 30c775d0e3
commit 6060cbb995
17 changed files with 131 additions and 56 deletions

View file

@ -3,6 +3,7 @@ package nl.iobyte.commandapi;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.interfaces.ICommandMiddleware;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import nl.iobyte.commandapi.objects.CommandMap;
import nl.iobyte.commandapi.objects.CommandSyntax;
import nl.iobyte.commandapi.interfaces.SubCommand;
@ -111,7 +112,7 @@ public class CommandFactory implements CommandExecutor {
//Pre assign variables
boolean b;
String str = null;
Pair<Boolean, Integer> pair;
ArgumentCheck pair;
List<ICommandArgument<?>> arguments;
List<Object> parsedArguments;
List<CommandSyntax> syntaxList = subCommand.getApplicableSyntaxList(sender);

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,13 +23,13 @@ public class BooleanArgument implements ICommandArgument<Boolean> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
switch (args[0].toLowerCase()) {
case "true":
case "false":
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
default:
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.Arrays;
@ -30,8 +30,8 @@ public class EnumArgument implements ICommandArgument<Enum<?>> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
return new Pair<>(Arrays.stream(validArgumentHolders).map(Enum::toString).anyMatch(args[0]::equalsIgnoreCase), 1);
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
return new ArgumentCheck(Arrays.stream(validArgumentHolders).map(Enum::toString).anyMatch(args[0]::equalsIgnoreCase), 1);
}
/**

View file

@ -0,0 +1,55 @@
package nl.iobyte.commandapi.arguments;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import java.util.Arrays;
import java.util.List;
public class MaterialArgument implements ICommandArgument<Enum<?>> {
private final Material[] validArgumentHolders;
public MaterialArgument(Material... validArgumentHolders) {
this.validArgumentHolders = validArgumentHolders;
}
/**
* Message to display when giving an error
* @return String
*/
public String getMessage(String[] args) {
return "No material with name: "+args[0];
}
/**
* Check if argument is valid Material
* @param sender CommandSender
* @param args Arguments passed by Command
* @param previousArguments Previous arguments
* @return Boolean
*/
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
Material material = Material.getMaterial(args[0]);
if(material == null)
return new ArgumentCheck(false, 0);
if(validArgumentHolders == null || validArgumentHolders.length == 0)
return new ArgumentCheck(true, 1);
return new ArgumentCheck(Arrays.stream(validArgumentHolders).anyMatch(m -> m == material), 1);
}
/**
* Get Material passed by command
* @param sender CommandSender
* @param args Arguments passed by Command
* @param previousArguments Previous arguments
* @return Material
*/
public Material getArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
return Material.getMaterial(args[0]);
}
}

View file

@ -1,8 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import org.bukkit.ChatColor;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,15 +22,15 @@ public class MessageArgument implements ICommandArgument<String> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
if(!args[0].startsWith("\""))
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
for(int i = 1; i < args.length; i++)
if(args[i].endsWith("\""))
return new Pair<>(true, i + 1);
return new ArgumentCheck(true, i + 1);
return new Pair<>(true, args.length);
return new ArgumentCheck(true, args.length);
}
/**

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@ -25,8 +25,8 @@ public class PlayerArgument implements ICommandArgument<Player> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
return new Pair<>(Bukkit.getPlayer(args[0]) != null, 1);
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
return new ArgumentCheck(Bukkit.getPlayer(args[0]) != null, 1);
}
/**

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import nl.iobyte.commandapi.objects.SpigotPlayerSelector;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@ -25,9 +25,9 @@ public class PlayersArgument implements ICommandArgument<List<Player>> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
List<Player> players = new SpigotPlayerSelector(args[0]).getPlayers(sender);
return new Pair<>(players != null && !players.isEmpty(), 1);
return new ArgumentCheck(players != null && !players.isEmpty(), 1);
}
/**

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.Arrays;
@ -30,11 +30,11 @@ public class StringArgument implements ICommandArgument<String> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
if(validArguments == null || validArguments.length == 0)
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
return new Pair<>(Arrays.stream(validArguments).anyMatch(args[0]::equalsIgnoreCase), 1);
return new ArgumentCheck(Arrays.stream(validArguments).anyMatch(args[0]::equalsIgnoreCase), 1);
}
/**

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.array;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -17,15 +17,15 @@ public class IntegerArrayArgument implements ICommandArgument<Integer[]> {
}
@Override
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
String[] items = args[0].replace("[", "").replace("]", "").split(",");
try {
for(String item : items)
Integer.parseInt(item);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.array;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -17,11 +17,11 @@ public class StringArrayArgument implements ICommandArgument<String[]> {
}
@Override
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
if(!args[0].startsWith("[\"") || !args[0].endsWith("\"]"))
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
}
@Override

View file

@ -1,10 +1,9 @@
package nl.iobyte.commandapi.arguments.number;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
public class DoubleArgument implements ICommandArgument<Double> {
@ -24,12 +23,12 @@ public class DoubleArgument implements ICommandArgument<Double> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
try {
Double.parseDouble(args[0]);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.number;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,12 +23,12 @@ public class FloatArgument implements ICommandArgument<Float> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
try {
Float.parseFloat(args[0]);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.number;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,12 +23,12 @@ public class IntegerArgument implements ICommandArgument<Integer> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
try {
Integer.parseInt(args[0]);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.number;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,12 +23,12 @@ public class LongArgument implements ICommandArgument<Long> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
try {
Long.parseLong(args[0]);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,7 +1,7 @@
package nl.iobyte.commandapi.arguments.number;
import javafx.util.Pair;
import nl.iobyte.commandapi.interfaces.ICommandArgument;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -23,12 +23,12 @@ public class ShortArgument implements ICommandArgument<Short> {
* @param previousArguments Previous arguments
* @return Boolean
*/
public Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
public ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments) {
try {
Short.parseShort(args[0]);
return new Pair<>(true, 1);
return new ArgumentCheck(true, 1);
} catch (Exception e) {
return new Pair<>(false, 0);
return new ArgumentCheck(false, 0);
}
}

View file

@ -1,6 +1,6 @@
package nl.iobyte.commandapi.interfaces;
import javafx.util.Pair;
import nl.iobyte.commandapi.objects.ArgumentCheck;
import org.bukkit.command.CommandSender;
import java.util.List;
@ -17,9 +17,9 @@ public interface ICommandArgument<T> {
* @param sender CommandSender
* @param args Arguments passed by Command
* @param previousArguments Previous arguments
* @return Pair<Boolean, Integer>
* @return ArgumentCheck
*/
Pair<Boolean, Integer> checkArgument(CommandSender sender, String[] args, List<Object> previousArguments);
ArgumentCheck checkArgument(CommandSender sender, String[] args, List<Object> previousArguments);
/**
* Get object of argument

View file

@ -0,0 +1,21 @@
package nl.iobyte.commandapi.objects;
public class ArgumentCheck {
private final boolean key;
private final int value;
public ArgumentCheck(boolean key, int value) {
this.key = key;
this.value = value;
}
public boolean getKey() {
return key;
}
public int getValue() {
return value;
}
}