Essentials/Essentials/src/main/java/com/earth2me/essentials/commands/Commanditemdb.java

81 lines
2.8 KiB
Java
Raw Normal View History

package com.earth2me.essentials.commands;
import com.earth2me.essentials.CommandSource;
import com.earth2me.essentials.utils.MaterialUtil;
import com.earth2me.essentials.utils.StringUtil;
2018-12-31 12:57:15 +01:00
import com.earth2me.essentials.utils.VersionUtil;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
2015-04-15 06:06:16 +02:00
public class Commanditemdb extends EssentialsCommand {
public Commanditemdb() {
super("itemdb");
}
2015-04-15 06:06:16 +02:00
@Override
2020-10-03 19:46:05 +02:00
protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
2015-04-15 06:06:16 +02:00
ItemStack itemStack = null;
boolean itemHeld = false;
if (args.length == 0) {
if (sender.isPlayer() && sender.getPlayer() != null) {
2015-04-15 06:06:16 +02:00
itemHeld = true;
itemStack = ess.getUser(sender.getPlayer()).getItemInHand();
2015-04-15 06:06:16 +02:00
}
if (itemStack == null) {
throw new NotEnoughArgumentsException();
}
} else {
itemStack = ess.getItemDb().get(args[0]);
}
2019-01-05 17:28:53 +01:00
String itemId = "none";
2012-09-08 19:41:21 +02:00
if (VersionUtil.PRE_FLATTENING) {
2019-01-05 17:28:53 +01:00
itemId = itemStack.getType().getId() + ":" + itemStack.getDurability();
}
sender.sendTl("itemType", itemStack.getType().toString(), itemId);
2019-01-05 17:28:53 +01:00
// Don't send IDs twice
if (!sender.tl("itemType").contains("{1}") && !itemId.equals("none")) {
sender.sendTl("itemId", itemId);
2018-12-31 12:57:15 +01:00
}
2015-04-15 06:06:16 +02:00
if (itemHeld && itemStack.getType() != Material.AIR) {
2020-10-03 19:46:05 +02:00
final int maxuses = itemStack.getType().getMaxDurability();
final int durability = (maxuses + 1) - MaterialUtil.getDamage(itemStack);
2015-04-15 06:06:16 +02:00
if (maxuses != 0) {
sender.sendTl("durability", Integer.toString(durability));
2015-04-15 06:06:16 +02:00
}
}
List<String> nameList = ess.getItemDb().nameList(itemStack);
nameList = nameList != null ? new ArrayList<>(nameList) : new ArrayList<>();
nameList.addAll(ess.getCustomItemResolver().getAliasesFor(ess.getItemDb().name(itemStack)));
if (nameList.isEmpty()) {
return;
}
Collections.sort(nameList);
if (nameList.size() > 15) {
nameList = nameList.subList(0, 14);
2015-04-15 06:06:16 +02:00
}
final String itemNameList = StringUtil.joinList(", ", nameList);
sender.sendTl("itemNames", itemNameList);
2015-04-15 06:06:16 +02:00
}
@Override
2020-10-03 19:46:05 +02:00
protected List<String> getTabCompleteOptions(final Server server, final CommandSource sender, final String commandLabel, final String[] args) {
if (args.length == 1) {
return getItems();
} else {
return Collections.emptyList();
}
}
}