ItemizerX/src/main/java/dev/plex/itemizerx/ItemizerXTab.java

133 lines
4.1 KiB
Java
Raw Normal View History

package dev.plex.itemizerx;
2023-06-15 22:21:19 +00:00
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
2023-06-15 22:21:19 +00:00
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.potion.PotionEffectType;
public class ItemizerXTab implements TabCompleter
{
2023-06-15 22:21:19 +00:00
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String string, String[] args)
{
if (args.length == 1)
{
2023-06-15 22:21:19 +00:00
return Arrays.asList("help", "id", "lore", "potion", "attr", "flag", "enchant", "title", "author",
"head", "sign", "clearall");
}
if (args.length == 2)
{
switch (args[0])
{
case "id":
{
2023-06-15 22:21:19 +00:00
List<String> materials = new ArrayList<>();
for (Material material : Material.values())
{
2023-06-15 22:21:19 +00:00
materials.add(material.name());
}
return materials;
}
case "lore":
{
2023-06-15 22:21:19 +00:00
return Arrays.asList("add", "remove", "change", "clear");
}
case "potion":
{
2023-06-15 22:21:19 +00:00
return Arrays.asList("add", "remove", "change", "color", "list");
}
case "attr":
case "flag":
case "enchant":
{
2023-06-15 22:21:19 +00:00
return Arrays.asList("add", "remove", "list", "listall");
}
default:
{
2023-06-15 22:21:19 +00:00
return Collections.emptyList();
}
}
}
if (args.length == 3)
{
switch (args[0])
{
case "potion":
{
switch (args[1])
{
2023-06-15 22:21:19 +00:00
case "add":
case "remove":
{
2023-06-15 22:21:19 +00:00
List<String> potions = new ArrayList<>();
for (PotionEffectType effect : PotionEffectType.values())
{
2023-06-15 22:21:19 +00:00
potions.add(effect.getName());
}
return potions;
}
}
}
case "attr":
{
switch (args[1])
{
2023-06-15 22:21:19 +00:00
case "add":
case "remove":
{
return Attributes.getAttributeList();
2023-06-15 22:21:19 +00:00
}
}
}
case "flag":
{
switch (args[1])
{
2023-06-15 22:21:19 +00:00
case "add":
case "remove":
{
2023-06-15 22:21:19 +00:00
List<String> flags = new ArrayList<>();
for (ItemFlag flag : ItemFlag.values())
{
2023-06-15 22:21:19 +00:00
flags.add(flag.name());
}
return flags;
}
}
}
case "enchant":
{
switch (args[1])
{
2023-06-15 22:21:19 +00:00
case "add":
case "remove":
{
2023-06-15 22:21:19 +00:00
List<String> enchantments = new ArrayList<>();
for (Enchantment enchantment : Enchantment.values())
{
2023-06-15 22:21:19 +00:00
enchantments.add(enchantment.getKey().getKey());
}
return enchantments;
}
}
}
default:
{
2023-06-15 22:21:19 +00:00
return Collections.emptyList();
}
}
}
return Collections.emptyList();
}
}