Add meta index info to libsdisguises command
This commit is contained in:
parent
e7dd114705
commit
caf5587ccb
2
pom.xml
2
pom.xml
@ -49,7 +49,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.comphenix.protocol</groupId>
|
<groupId>com.comphenix.protocol</groupId>
|
||||||
<artifactId>ProtocolLib</artifactId>
|
<artifactId>ProtocolLib</artifactId>
|
||||||
<version>4.5.1-SNAPSHOT</version>
|
<version>4.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
|
@ -2,8 +2,12 @@ package me.libraryaddict.disguise.commands;
|
|||||||
|
|
||||||
import me.libraryaddict.disguise.DisguiseConfig;
|
import me.libraryaddict.disguise.DisguiseConfig;
|
||||||
import me.libraryaddict.disguise.LibsDisguises;
|
import me.libraryaddict.disguise.LibsDisguises;
|
||||||
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
import me.libraryaddict.disguise.disguisetypes.MetaIndex;
|
||||||
import me.libraryaddict.disguise.utilities.LibsPremium;
|
import me.libraryaddict.disguise.utilities.LibsPremium;
|
||||||
|
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
||||||
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
|
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||||
|
import net.md_5.bungee.api.chat.HoverEvent;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@ -76,16 +80,61 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter {
|
|||||||
sender.sendMessage(ChatColor.DARK_GREEN + "This server supports the plugin developer!");
|
sender.sendMessage(ChatColor.DARK_GREEN + "This server supports the plugin developer!");
|
||||||
}
|
}
|
||||||
} else if (args.length > 0) {
|
} else if (args.length > 0) {
|
||||||
if (sender.hasPermission("libsdisguises.reload")) {
|
|
||||||
if (args[0].equalsIgnoreCase("reload")) {
|
if (args[0].equalsIgnoreCase("reload")) {
|
||||||
|
if (!sender.hasPermission("libsdisguises.reload")) {
|
||||||
|
sender.sendMessage(LibsMsg.NO_PERM.get());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
DisguiseConfig.loadConfig();
|
DisguiseConfig.loadConfig();
|
||||||
sender.sendMessage(LibsMsg.RELOADED_CONFIG.get());
|
sender.sendMessage(LibsMsg.RELOADED_CONFIG.get());
|
||||||
return true;
|
return true;
|
||||||
|
} else if (args[0].equalsIgnoreCase("metainfo") || args[0].equalsIgnoreCase("meta")) {
|
||||||
|
if (!sender.hasPermission("libsdisguises.metainfo")) {
|
||||||
|
sender.sendMessage(LibsMsg.NO_PERM.get());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length > 1) {
|
||||||
|
MetaIndex index = MetaIndex.getMetaIndexByName(args[1]);
|
||||||
|
|
||||||
|
if (index == null) {
|
||||||
|
sender.sendMessage(LibsMsg.META_NOT_FOUND.get());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(index.toString());
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(LibsMsg.LIBS_RELOAD_WRONG.get());
|
ArrayList<String> names = new ArrayList<>();
|
||||||
|
|
||||||
|
for (MetaIndex index : MetaIndex.values()) {
|
||||||
|
names.add(MetaIndex.getName(index));
|
||||||
|
}
|
||||||
|
|
||||||
|
names.sort(String::compareToIgnoreCase);
|
||||||
|
|
||||||
|
ComponentBuilder builder = new ComponentBuilder("").appendLegacy(LibsMsg.META_VALUES.get());
|
||||||
|
|
||||||
|
Iterator<String> itel = names.iterator();
|
||||||
|
|
||||||
|
while (itel.hasNext()) {
|
||||||
|
String name = itel.next();
|
||||||
|
|
||||||
|
builder.appendLegacy(name);
|
||||||
|
builder.event(
|
||||||
|
new ClickEvent(ClickEvent.Action.RUN_COMMAND, cmd.getName() + " metainfo " + name));
|
||||||
|
builder.event(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
|
||||||
|
new ComponentBuilder("").appendLegacy(LibsMsg.META_CLICK_SHOW.get(name)).create()));
|
||||||
|
|
||||||
|
if (itel.hasNext()) {
|
||||||
|
builder.appendLegacy(LibsMsg.META_VALUE_SEPERATOR.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.spigot().sendMessage(builder.create());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(LibsMsg.NO_PERM.get());
|
sender.sendMessage(LibsMsg.LIBS_COMMAND_WRONG_ARG.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -7,7 +7,7 @@ import com.comphenix.protocol.wrappers.nbt.NbtFactory;
|
|||||||
import com.comphenix.protocol.wrappers.nbt.NbtType;
|
import com.comphenix.protocol.wrappers.nbt.NbtType;
|
||||||
import me.libraryaddict.disguise.disguisetypes.watchers.*;
|
import me.libraryaddict.disguise.disguisetypes.watchers.*;
|
||||||
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
|
||||||
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
|
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Particle;
|
import org.bukkit.Particle;
|
||||||
@ -596,7 +596,6 @@ public class MetaIndex<Y> {
|
|||||||
* All flag types should never occur twice.
|
* All flag types should never occur twice.
|
||||||
*/
|
*/
|
||||||
public static void validateMetadata() {
|
public static void validateMetadata() {
|
||||||
|
|
||||||
HashMap<Class, Integer> maxValues = new HashMap<>();
|
HashMap<Class, Integer> maxValues = new HashMap<>();
|
||||||
|
|
||||||
for (MetaIndex type : values()) {
|
for (MetaIndex type : values()) {
|
||||||
@ -639,10 +638,14 @@ public class MetaIndex<Y> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return LibsMsg.META_INFO.get(getName(this), getFlagWatcher().getSimpleName(), getIndex(),
|
||||||
|
getDefault().getClass().getSimpleName(), DisguiseUtilities.getGson().toJson(getDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used for debugging purposes, prints off the registered MetaIndexes
|
* Used for debugging purposes, prints off the registered MetaIndexes
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
|
||||||
public static void printMetadata() {
|
public static void printMetadata() {
|
||||||
ArrayList<String> toPrint = new ArrayList<>();
|
ArrayList<String> toPrint = new ArrayList<>();
|
||||||
|
|
||||||
@ -653,9 +656,7 @@ public class MetaIndex<Y> {
|
|||||||
|
|
||||||
MetaIndex index = (MetaIndex) field.get(null);
|
MetaIndex index = (MetaIndex) field.get(null);
|
||||||
|
|
||||||
toPrint.add(
|
toPrint.add(index.toString());
|
||||||
index.getFlagWatcher().getSimpleName() + " " + field.getName() + " " + index.getIndex() + " " +
|
|
||||||
index.getDefault().getClass().getSimpleName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
@ -742,10 +743,28 @@ public class MetaIndex<Y> {
|
|||||||
return _values;
|
return _values;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static MetaIndex getMetaIndexByName(String name) {
|
||||||
|
name = name.toUpperCase();
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (Field field : MetaIndex.class.getFields()) {
|
||||||
|
if (!field.getName().equals(name) || field.getType() != MetaIndex.class) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (MetaIndex) field.get(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the field name of a registered MetaIndex
|
* Get the field name of a registered MetaIndex
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
|
||||||
public static String getName(MetaIndex metaIndex) {
|
public static String getName(MetaIndex metaIndex) {
|
||||||
try {
|
try {
|
||||||
for (Field field : MetaIndex.class.getFields()) {
|
for (Field field : MetaIndex.class.getFields()) {
|
||||||
|
@ -113,7 +113,7 @@ public enum LibsMsg {
|
|||||||
PLEASE_WAIT(ChatColor.GRAY + "Please wait..."),
|
PLEASE_WAIT(ChatColor.GRAY + "Please wait..."),
|
||||||
INVALID_CLONE(ChatColor.DARK_RED + "Unknown option '%s' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' " +
|
INVALID_CLONE(ChatColor.DARK_RED + "Unknown option '%s' - Valid options are 'IgnoreEquipment' 'DoSneakSprint' " +
|
||||||
"'DoSneak' 'DoSprint'"),
|
"'DoSneak' 'DoSprint'"),
|
||||||
LIBS_RELOAD_WRONG(ChatColor.RED + "[LibsDisguises] Did you mean 'reload'?"),
|
LIBS_COMMAND_WRONG_ARG(ChatColor.RED + "[LibsDisguises] Did you mean 'reload' or 'metainfo'?"),
|
||||||
LIMITED_RADIUS(ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"),
|
LIMITED_RADIUS(ChatColor.RED + "Limited radius to %s! Don't want to make too much lag right?"),
|
||||||
LISTEN_ENTITY_ENTITY_DISG_ENTITY(ChatColor.RED + "Disguised %s as a %s!"),
|
LISTEN_ENTITY_ENTITY_DISG_ENTITY(ChatColor.RED + "Disguised %s as a %s!"),
|
||||||
LISTEN_ENTITY_ENTITY_DISG_ENTITY_FAIL(ChatColor.RED + "Failed to disguise %s as a %s!"),
|
LISTEN_ENTITY_ENTITY_DISG_ENTITY_FAIL(ChatColor.RED + "Failed to disguise %s as a %s!"),
|
||||||
@ -220,7 +220,8 @@ public enum LibsMsg {
|
|||||||
"Means '/savedisguise Notch player Notch setsneaking'"),
|
"Means '/savedisguise Notch player Notch setsneaking'"),
|
||||||
SAVE_DISG_HELP_5(ChatColor.GREEN + "Remember! You can upload your own skins, then reference those skins!"),
|
SAVE_DISG_HELP_5(ChatColor.GREEN + "Remember! You can upload your own skins, then reference those skins!"),
|
||||||
GRAB_DISG_HELP_1(ChatColor.GREEN +
|
GRAB_DISG_HELP_1(ChatColor.GREEN +
|
||||||
"You can choose a name to save the skins under, the names will be usable as if it was an actual player skin"),
|
"You can choose a name to save the skins under, the names will be usable as if it was an actual player " +
|
||||||
|
"skin"),
|
||||||
GRAB_DISG_HELP_2(ChatColor.DARK_GREEN + "/grabskin https://somesite.com/myskin.png <Optional Name>"),
|
GRAB_DISG_HELP_2(ChatColor.DARK_GREEN + "/grabskin https://somesite.com/myskin.png <Optional Name>"),
|
||||||
GRAB_DISG_HELP_3(ChatColor.DARK_GREEN + "/grabskin myskin.png <Optional Name> - Skins must be in the folder!"),
|
GRAB_DISG_HELP_3(ChatColor.DARK_GREEN + "/grabskin myskin.png <Optional Name> - Skins must be in the folder!"),
|
||||||
GRAB_DISG_HELP_4(ChatColor.DARK_GREEN + "/grabskin <Player name or UUID> <Optional Name>"),
|
GRAB_DISG_HELP_4(ChatColor.DARK_GREEN + "/grabskin <Player name or UUID> <Optional Name>"),
|
||||||
@ -229,7 +230,12 @@ public enum LibsMsg {
|
|||||||
CUSTOM_DISGUISE_NAME_CONFLICT(
|
CUSTOM_DISGUISE_NAME_CONFLICT(
|
||||||
ChatColor.RED + "Cannot create the custom disguise '%s' as there is a name conflict!"),
|
ChatColor.RED + "Cannot create the custom disguise '%s' as there is a name conflict!"),
|
||||||
ERROR_LOADING_CUSTOM_DISGUISE(ChatColor.RED + "Error while loading custom disguise '%s'%s"),
|
ERROR_LOADING_CUSTOM_DISGUISE(ChatColor.RED + "Error while loading custom disguise '%s'%s"),
|
||||||
SKIN_API_INTERNAL_ERROR(ChatColor.RED + "Internal error in the skin API, perhaps bad data?");
|
SKIN_API_INTERNAL_ERROR(ChatColor.RED + "Internal error in the skin API, perhaps bad data?"),
|
||||||
|
META_INFO(ChatColor.GREEN + "Name: %s, Watcher: %s, Index: %s, Type: %s, Default: %s"),
|
||||||
|
META_NOT_FOUND(ChatColor.RED + "No meta exists under that name!"),
|
||||||
|
META_VALUES(ChatColor.BLUE + "Metas: " + ChatColor.DARK_AQUA),
|
||||||
|
META_VALUE_SEPERATOR(ChatColor.AQUA + ", " + ChatColor.DARK_AQUA),
|
||||||
|
META_CLICK_SHOW(ChatColor.GOLD + "Click to show %s");
|
||||||
|
|
||||||
private String string;
|
private String string;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user