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

СливПлатные

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

  • vovansmf
  • qbao1702
  • ViRTi
  • Sheix
  • капец
  • hell4nge1
  • Zenkxs
  • asdas1231wss
  • bulamaznox
  • fl1xman
  • frendlifaerslols
  • Sukicraig
  • warxyu3
  • mrmesniy
  • terrorist0987
  • nesquik
  • NINSTIF
  • WyToP
  • MrKawak
  • DANILATY
  • kadald
  • goi676
  • GIGABAIT
  • MilaPchela
  • Bagdack
  • sona127
  • lyucaNova
  • Exlazzy
  • za9
  • hackers5656
  • _Ka6aN4uK_
  • FirewallL
  • brandonTALENT
  • penaples
  • WaffleFt
  • arsenii.demin
  • pivocvoidka
  • grigorya
  • MURlan4ik
  • ihdsfysf
  • yacoxe
  • VanillaFox
  • saki4nn
  • kostyangg
  • adlan
  • NumaniaVSBG
  • ivdbrkkk
  • abczx2kk
  • YaCookies
  • nykiz
  • RayzeN11
  • minecr4pture(хаёт)#9647
  • Bulb1122
  • Toolki1
  • Guyst
  • we1zr
  • darkgan
  • 4532vsew
  • wertychku
  • Edsongreen
  • Darkmage366
  • clownpierce1998
  • Truthmaker
  • Vvuunya101
  • BeDanGames
  • Nyx_ss
  • sergeypro770
  • Fhugu63
  • lifedestroyed

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

Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
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
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз