Add API methods to get a parsed custom disguise
This commit is contained in:
parent
d307264211
commit
3d4ee8a020
@ -9,10 +9,13 @@ import me.libraryaddict.disguise.utilities.parser.DisguiseParser;
|
||||
import me.libraryaddict.disguise.utilities.parser.DisguisePerm;
|
||||
import me.libraryaddict.disguise.utilities.translations.TranslateType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Entity;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@ -127,6 +130,28 @@ public class DisguiseConfig {
|
||||
explicitDisguisePermissions = explictDisguisePermission;
|
||||
}
|
||||
|
||||
public static Entry<DisguisePerm, Disguise> getParsedCustomDisguise(
|
||||
String disguise) throws IllegalAccessException, DisguiseParseException, InvocationTargetException {
|
||||
Entry<DisguisePerm, String> entry = getCustomDisguise(disguise);
|
||||
|
||||
return new HashMap.SimpleEntry(entry.getKey(), DisguiseParser.parseDisguise(entry.getValue()));
|
||||
}
|
||||
|
||||
public static Entry<DisguisePerm, Disguise> getParsedCustomDisguise(Entity target,
|
||||
String disguise) throws IllegalAccessException, DisguiseParseException, InvocationTargetException {
|
||||
Entry<DisguisePerm, String> entry = getCustomDisguise(disguise);
|
||||
|
||||
return new HashMap.SimpleEntry(entry.getKey(),
|
||||
DisguiseParser.parseDisguise(Bukkit.getConsoleSender(), target, entry.getValue()));
|
||||
}
|
||||
|
||||
public static Entry<DisguisePerm, Disguise> getParsedCustomDisguise(CommandSender invoker, Entity target,
|
||||
String disguise) throws IllegalAccessException, DisguiseParseException, InvocationTargetException {
|
||||
Entry<DisguisePerm, String> entry = getCustomDisguise(disguise);
|
||||
|
||||
return new HashMap.SimpleEntry(entry.getKey(), DisguiseParser.parseDisguise(invoker, target, entry.getValue()));
|
||||
}
|
||||
|
||||
public static Entry<DisguisePerm, String> getCustomDisguise(String disguise) {
|
||||
for (Entry<DisguisePerm, String> entry : customDisguises.entrySet()) {
|
||||
String name = entry.getKey().toReadable();
|
||||
@ -367,18 +392,6 @@ public class DisguiseConfig {
|
||||
try {
|
||||
String[] disguiseArgs = DisguiseUtilities.split(toParse);
|
||||
|
||||
for (int i = 0; i < disguiseArgs.length; i++) {
|
||||
String arg = disguiseArgs[i];
|
||||
|
||||
// If argument is for the command user name
|
||||
if (arg.equals("%player%")) {
|
||||
disguiseArgs[i] = "libraryaddict";
|
||||
} else if (arg.equals("%skin%")) { // If argument is for the command user skin
|
||||
disguiseArgs[i] = "{\"id\":\"a149f81bf7844f8987c554afdd4db533\",\"name\":\"libraryaddict\"," +
|
||||
"\"properties\":[]}";
|
||||
}
|
||||
}
|
||||
|
||||
Disguise disguise = DisguiseParser
|
||||
.parseTestDisguise(Bukkit.getConsoleSender(), "disguise", disguiseArgs,
|
||||
DisguiseParser.getPermissions(Bukkit.getConsoleSender(), "disguise"));
|
||||
|
@ -8,6 +8,7 @@ import me.libraryaddict.disguise.utilities.parser.params.ParamInfo;
|
||||
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
||||
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
||||
import me.libraryaddict.disguise.utilities.translations.TranslateType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -269,6 +270,17 @@ public class DisguiseParser {
|
||||
return parseDisguise(sender, null, permNode, args, permissions);
|
||||
}
|
||||
|
||||
public static Disguise parseDisguise(
|
||||
String disguise) throws IllegalAccessException, InvocationTargetException, DisguiseParseException {
|
||||
return parseDisguise(Bukkit.getConsoleSender(), null, disguise);
|
||||
}
|
||||
|
||||
public static Disguise parseDisguise(CommandSender sender, Entity target,
|
||||
String disguise) throws IllegalAccessException, InvocationTargetException, DisguiseParseException {
|
||||
return parseDisguise(sender, target, "disguise", DisguiseUtilities.split(disguise),
|
||||
new DisguisePermissions(Bukkit.getConsoleSender(), "disguise"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the disguise if it all parsed correctly. Returns a exception with a complete message if it didn't. The
|
||||
* commandsender is purely used for checking permissions. Would defeat the purpose otherwise. To reach this
|
||||
|
Loading…
Reference in New Issue
Block a user