- Баллы
- 66
- Ник в Minecraft
- Isus
Есть JS-плейсхолдер, который подсчитывает количество нужных предметов в инвентаре игрока. (%javascript_amount_STONE%). Но проблема в том, что в 1.12 предметы уникальны по ID, а не NBT, так что начиная от камня и заканчивая андезитом, плейсхолдер считает это как один материал.
Необходимо переделать плейсхолдер так, чтобы можно было передавать в параметры числовой ID и получать количество необходимых предметов именно по нему. К примеру, %javascript_amount_1:3%
Вот сам плейсхолдер:
Необходимо переделать плейсхолдер так, чтобы можно было передавать в параметры числовой ID и получать количество необходимых предметов именно по нему. К примеру, %javascript_amount_1:3%
Вот сам плейсхолдер:
var player = BukkitPlayer;
var searchItem = null;
var searchName = null;
var amountOfItem = 0;
function checkForItem() {
if (args !== undefined) {
if (args.length >= 1) {
searchItem = args[0].toUpperCase();
searchItem = searchItem.replace("-", "_")
.replace("WOODEN", "WOOD")
.replace("SHOVEL", "SPADE");
};
if (args.length == 2) {
searchName = args[1];
};
};
var itemsInInventory = player.getInventory().getContents();
for (i = 0; i < itemsInInventory.length; i++) {
if (searchName != null) {
if (itemsInInventory != null && itemsInInventory.getType() == searchItem && itemsInInventory.getItemMeta().getDisplayName() == searchName) {
amountOfItem += itemsInInventory.getAmount();
};
}
else if (itemsInInventory != null && itemsInInventory.getType() == searchItem) {
amountOfItem += itemsInInventory.getAmount();
};
};
if (searchItem == null) {
return "&cSyntax: %" + "javascript_[MATERIAL]<,NAME>" + "%";
}
return amountOfItem.toString();
};
checkForItem();
var searchItem = null;
var searchName = null;
var amountOfItem = 0;
function checkForItem() {
if (args !== undefined) {
if (args.length >= 1) {
searchItem = args[0].toUpperCase();
searchItem = searchItem.replace("-", "_")
.replace("WOODEN", "WOOD")
.replace("SHOVEL", "SPADE");
};
if (args.length == 2) {
searchName = args[1];
};
};
var itemsInInventory = player.getInventory().getContents();
for (i = 0; i < itemsInInventory.length; i++) {
if (searchName != null) {
if (itemsInInventory != null && itemsInInventory.getType() == searchItem && itemsInInventory.getItemMeta().getDisplayName() == searchName) {
amountOfItem += itemsInInventory.getAmount();
};
}
else if (itemsInInventory != null && itemsInInventory.getType() == searchItem) {
amountOfItem += itemsInInventory.getAmount();
};
};
if (searchItem == null) {
return "&cSyntax: %" + "javascript_[MATERIAL]<,NAME>" + "%";
}
return amountOfItem.toString();
};
checkForItem();