Add command to list available enchantments
This commit is contained in:
parent
03d0f9492e
commit
abc8d7475e
@ -6,17 +6,22 @@ import nl.pim16aap2.armoredElytra.util.messages.Message;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class CommandHandler implements CommandExecutor
|
public class CommandHandler implements CommandExecutor
|
||||||
{
|
{
|
||||||
private final ArmoredElytra plugin;
|
private final ArmoredElytra plugin;
|
||||||
|
private static Field BY_KEY_FIELD;
|
||||||
|
|
||||||
public CommandHandler(ArmoredElytra plugin)
|
public CommandHandler(ArmoredElytra plugin)
|
||||||
{
|
{
|
||||||
@ -93,6 +98,12 @@ public class CommandHandler implements CommandExecutor
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.length == 1 && args[0].equalsIgnoreCase("listAvailable"))
|
||||||
|
{
|
||||||
|
listAvailableEnchantments();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length == 2)
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
ItemStack newElytra;
|
ItemStack newElytra;
|
||||||
@ -119,4 +130,27 @@ public class CommandHandler implements CommandExecutor
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listAvailableEnchantments()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (BY_KEY_FIELD == null)
|
||||||
|
{
|
||||||
|
BY_KEY_FIELD = Enchantment.class.getDeclaredField("byKey");
|
||||||
|
BY_KEY_FIELD.setAccessible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
final Map<NamespacedKey, Enchantment> byKey = (Map<NamespacedKey, Enchantment>) BY_KEY_FIELD.get(null);
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder("\nAvailable enchantments: \n");
|
||||||
|
for (NamespacedKey key : byKey.keySet())
|
||||||
|
sb.append(" - ").append(key.toString()).append("\n");
|
||||||
|
Bukkit.getLogger().info(sb.toString());
|
||||||
|
}
|
||||||
|
catch (NoSuchFieldException | IllegalAccessException e)
|
||||||
|
{
|
||||||
|
throw new RuntimeException("Failed to get registered enchantments!", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user