Использование предмета
Начнём с того, что у нас есть 2 способа использовать предмет:
Нажать
ПКМ
, держа в руке предметitem.right_click
Нажимать предметом
ПКМ
по блокуblock.right_click
Разберём первый способ.
Зайдите в папку с серверным скриптом. Вы можете создать новый скрипт .js или писать всё в script.js. Нам нужно установить приоритет // priority: 0
, а потом создать ивент -item.right_click onEvent(’item.right_click’, event => {})
Далее понадобится вывести сообщение в чат, чтобы убедиться в правильности работы скрипта - Utils.server.tell("Вы используете n-ый предмет")
// priority: 0
onEvent('item.right_click', event => {
Utils.server.tell("Вы используете какой-то предмет")
})
Пишем /reload
и пытаемся нажать ПКМ
с любым предметом в руке Теперь попробуем вывести сообщение при использовании алмаза: Если event.item.id == ‘minecraft:diamond’
то Utils.server.tell("Вы используете Алмаз")
onEvent('item.right_click', event => {
if(event.item.id == 'minecraft:diamond'){
Utils.server.tell("Вы используете Алмаз")
}
})
Пишем /reload
и проверяем использование Алмаза с зажатым ПКМ
. Давайте теперь удалим Алмаз при применении. Для этого воспользуемся: item.setCount
и item.getCount (Int)
Нам нужно установить количество предметов, которое мы получим при применении, а потом заберём 1 шт.
onEvent('item.right_click', event => {
if(event.item.id == 'minecraft:diamond'){
event.item.setCount( event.item.getCount() - 1)
Utils.server.tell("Вы используете Алмаз")
}
})
Давайте теперь выдадим предмет игроку (изумруд) после удаления алмаза: player.give
onEvent('item.right_click', event => {
if(event.item.id == 'minecraft:diamond'){
event.item.setCount( event.item.getCount() - 1)
Utils.server.tell("Вы используете Алмаз")
event.player.give('minecraft:emerald')
}
})
Но что, если мы хотим выдать игроку изумруд при использовании алмаза на Изумрудном блоке? Тогда нам нужно использовать другой ивент: block.right_click
В этом примере будем использовать константу var, чтобы упростить понимание кода.
Опираемся на конструкцию: item.id
block.id
player.give
onEvent('block.right_click', event => {
var block = event.block;
var blockid = block.id;
var item = event.item;
var itemid = item.id;
var player = event.player;
if(itemid == 'minecraft:diamond' && blockid == 'minecraft:emerald_block'){
event.item.setCount( item.getCount() - 1)
event.player.give('minecraft:emerald')
}
})
Last updated