TabooMan!
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package me.skymc.taboolib.commands.internal;
|
||||
|
||||
/**
|
||||
* @Author sky
|
||||
* @Since 2018-05-07 21:36
|
||||
*/
|
||||
public class InternalMainCommand {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package me.skymc.taboolib.commands.internal;
|
||||
|
||||
/**
|
||||
* @Author sky
|
||||
* @Since 2018-05-07 21:38
|
||||
*/
|
||||
public class InternalCommandExecutor {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package me.skymc.taboolib.commands.internal;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* @author Bkm016
|
||||
* @since 2018-04-17
|
||||
*/
|
||||
public interface InternalCommand {
|
||||
|
||||
String getLabel();
|
||||
|
||||
String getDescription();
|
||||
|
||||
InternalCommandArgument[] getArguments();
|
||||
|
||||
void onCommand(CommandSender sender, Command command, String label, String[] args);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package me.skymc.taboolib.commands.internal;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* @author Bkm016
|
||||
* @since 2018-04-17
|
||||
*/
|
||||
public abstract class InternalCommandExecutor implements InternalCommand {
|
||||
|
||||
public InternalCommandType getType() {
|
||||
return InternalCommandType.ALL;
|
||||
}
|
||||
|
||||
public boolean requiredPlayer() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isParameterConform(String[] args) {
|
||||
return IntStream.range(0, getArguments().length).noneMatch(i -> getArguments()[i].isRequired() && (args == null || args.length <= i));
|
||||
}
|
||||
|
||||
public boolean isConfirmType(CommandSender sender, InternalCommandType commandType) {
|
||||
return commandType == InternalCommandType.ALL || sender instanceof ConsoleCommandSender && commandType == InternalCommandType.CONSOLE;
|
||||
}
|
||||
|
||||
public List<String> getTabCompleter(List<InternalCommandExecutor> internalCommandExecutors, String[] args) {
|
||||
return args.length == 1 ? internalCommandExecutors.stream().filter(internalCommandExecutor -> internalCommandExecutor != null && (args[0].isEmpty() || internalCommandExecutor.getLabel().startsWith(args[0]))).map(InternalCommand::getLabel).collect(Collectors.toList()) : null;
|
||||
}
|
||||
|
||||
public String getCommandString(String label) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("§f /");
|
||||
stringBuilder.append(label);
|
||||
stringBuilder.append(" ");
|
||||
stringBuilder.append(getLabel());
|
||||
stringBuilder.append(" ");
|
||||
for (InternalCommandArgument parameter : getArguments()) {
|
||||
stringBuilder.append(parameter.toString());
|
||||
stringBuilder.append(" ");
|
||||
}
|
||||
stringBuilder.append("§6- §e");
|
||||
stringBuilder.append(getDescription());
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package me.skymc.taboolib.commands.internal;
|
||||
|
||||
/**
|
||||
* @author Bkm016
|
||||
* @since 2018-04-17
|
||||
*/
|
||||
public enum InternalCommandType {
|
||||
|
||||
CONSOLE, PLAYER, ALL
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package me.skymc.taboolib.commands.plugin;
|
||||
|
||||
/**
|
||||
* @Author sky
|
||||
* @Since 2018-05-07 20:14
|
||||
*/
|
||||
public class TabooLibPluginCommand {
|
||||
|
||||
}
|
||||
@@ -68,7 +68,7 @@ public class ConfigUtils {
|
||||
}
|
||||
|
||||
public static MemoryConfiguration mapToConf(Map<String, Object> map) {
|
||||
MemoryConfiguration configuration = new MemoryConfiguration();
|
||||
YamlConfiguration configuration = new YamlConfiguration();
|
||||
convertMapsToSections(map, configuration);
|
||||
return configuration;
|
||||
}
|
||||
@@ -112,13 +112,24 @@ public class ConfigUtils {
|
||||
return objToMap(object, Modifier.TRANSIENT & Modifier.STATIC & Ref.ACC_SYNTHETIC);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Map<String, Object> objToMap(Object object, int excludedModifiers) {
|
||||
Map<String, Object> map = Maps.newHashMap();
|
||||
if (object instanceof Map) {
|
||||
((Map<String, ?>) object).forEach((k, v) -> map.put(k, objToMap(v, excludedModifiers)));
|
||||
return map;
|
||||
}
|
||||
if (object instanceof ConfigurationSection) {
|
||||
map.putAll(objToMap(((ConfigurationSection) object).getValues(false), excludedModifiers));
|
||||
return map;
|
||||
}
|
||||
for (Field field : Ref.getDeclaredFields(object.getClass(), excludedModifiers, false)) {
|
||||
try {
|
||||
if (!field.isAccessible()) field.setAccessible(true);
|
||||
Object obj = field.get(object);
|
||||
if (obj instanceof Property) obj = ((Property) obj).get();
|
||||
if (obj instanceof ConfigurationSection)
|
||||
obj = objToMap(((ConfigurationSection) obj).getValues(false), excludedModifiers);
|
||||
map.put(Ref.getSerializedName(field), obj);
|
||||
} catch (IllegalAccessException ignored) {
|
||||
}
|
||||
|
||||
49
src/main/java/me/skymc/taboolib/string/ArrayUtils.java
Normal file
49
src/main/java/me/skymc/taboolib/string/ArrayUtils.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package me.skymc.taboolib.string;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Bkm016
|
||||
* @since 2018-04-16
|
||||
*/
|
||||
public class ArrayUtils {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> List<T> asList(T... args) {
|
||||
List<T> list = new ArrayList<>();
|
||||
for (T value : args) {
|
||||
list.add(value);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static String[] addFirst(String[] args, String... value) {
|
||||
if (args.length < 1) {
|
||||
return value;
|
||||
}
|
||||
List<String> list = asList(args);
|
||||
for (int i = value.length - 1 ; i >= 0 ; i--) {
|
||||
list.add(0, value[i]);
|
||||
}
|
||||
return list.toArray(new String[0]);
|
||||
}
|
||||
|
||||
public static String[] removeFirst(String[] args) {
|
||||
if (args.length <= 1) {
|
||||
return null;
|
||||
}
|
||||
List<String> list = asList(args);
|
||||
list.remove(0);
|
||||
return list.toArray(new String[0]);
|
||||
}
|
||||
|
||||
public static String arrayJoin(String[] args, int start) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (int i = start ; i < args.length ; i++) {
|
||||
stringBuilder.append(args[i]);
|
||||
stringBuilder.append(" ");
|
||||
}
|
||||
return stringBuilder.toString().trim();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user