Использование предмета

Начнём с того, что у нас есть 2 способа использовать предмет:

  1. Нажать ПКМ, держа в руке предмет item.right_click

  2. Нажимать предметом ПКМ по блоку 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