Сборки серверов

СливПлатные

Сейчас онлайн

  • Zernovsky
  • lyucaNova
  • tetsumo
  • AllFiRE
  • windusfeed
  • Skyns1
  • Kir_000
  • 32rbv23
  • no1c
  • ggshe4ka
  • Grecha123
  • Tamsy
  • cocick
  • Sevitv912
  • adamant
  • Feyz1
  • ksenija_griginat
  • KAHABA888
  • lol2222
  • kottok
  • Daniik
  • MilaPchela
  • darkgan
  • gckvb
  • kykyepta10
  • artem000
  • SoulessVoid
  • ckrt1
  • shito_kn26
  • Jerix1337
  • Jujarodjer
  • stikov
  • Frust
  • Vias
  • flompi_1
  • dozfi
  • Enotik1106
  • DASDASBVasb
  • TheProkty
  • Foksikk
  • WysSicky
  • Tieumiu
  • Gleb52Peterburg
  • MrPandi212
  • Jabback
  • za9
  • fasdfasdfdsafsafsa
  • dfvbfvhss
  • saprikon
  • AlexeiKek
  • unfix
  • Doremus
  • asdas1231wss
  • SomPacks
  • Tzima7
  • HeroBrine
  • PingvinchikTop
  • Jjlop
  • 341213
  • p3d1kkkdsk
  • terrorist0987
  • abczx2kk
  • Ytuslich
  • Morgart
  • fineworld123
  • ewgen2289
  • rokfey
  • HANSON
  • goi676
  • ortemlein
  • faser
  • JustHater
  • hexpypstm
  • @meme
  • autosmm7
  • Dlambo4
  • STIW1003
  • vivivi207
  • ARTETIK

Помощь Как запретить игрокам переименовывать кастомные предметы в наковальне?

Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
sova1n
Версия ядра сервера
1.21+
Я сейчас разрабатываю около-ванильный сервер на ядре Paper для версии 1.21.10 и использую плагин Nexo для добавления своих предметов, и мне нужно как-то сделать чтобы у игроков никак не получалось переименовать мой предмет в наковальне. Артефакты как никак, а если переименовывать - форматы текста слетают :D

ВАЖНО: заблокировать возможность использовать наковальню полностью - это не тот подход, который мне нужен)
 
Решение
sova1n
Сделал при помощи плагина Skript, и аддона к нему SkBee. Вот скрип, для тех кому понадобится.


JSON:
on inventory click:
    if event-inventory is anvil inventory:
        if name of event-item contains "<название>":
            cancel event
            close player's inventory
GPT-4o
Чтобы запретить игрокам переименовывать предметы в наковальне, но при этом оставить возможность использовать наковальню для других предметов, можно воспользоваться событиями в вашем плагине. Вот пример кода, который можно использовать для обработки события PrepareAnvilEvent и блокировки переименования конкретного предмета:

Java:
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.PrepareAnvilEvent;
import org.bukkit.inventory.ItemStack;

public class AnvilListener implements Listener {

    @EventHandler
    public void onAnvilUse(PrepareAnvilEvent event) {
        ItemStack result = event.getResult();
        
        // Проверяем, что результат не null и является вашим предметом
        if (result != null && result.getType() == YOUR_CUSTOM_ITEM_TYPE) {
            // Блокируем переименование, устанавливая результат в null
            event.setResult(null);
            // Можно также отправить сообщение игроку, если нужно
            event.getPlayer().sendMessage("Вы не можете переименовать этот предмет!");
        }
    }
}

Не забудьте зарегистрировать ваш слушатель в основном классе плагина:

Java:
import org.bukkit.plugin.java.JavaPlugin;

public class YourPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new AnvilListener(), this);
    }
}

Замените YOUR_CUSTOM_ITEM_TYPE на тип вашего предмета. Это позволит блокировать переименование только для ваших артефактов, оставляя наковальню доступной для других действий.
 
sova1n
Сделал при помощи плагина Skript, и аддона к нему SkBee. Вот скрип, для тех кому понадобится.


JSON:
on inventory click:
    if event-inventory is anvil inventory:
        if name of event-item contains "<название>":
            cancel event
            close player's inventory
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз