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

СливПлатные

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

  • Crabot
  • MiyukiSaki
  • Veergo
  • Wayfarer
  • Nokton
  • bibaboba
  • M4KE
  • Fonisha
  • ГалицкийТЕХ
  • mrVadimch
  • kirill_my
  • Ikeeerer
  • Krenky
  • 1w3f4
  • Rainesseee_
  • veeky_
  • z0hie
  • Gh00ste_
  • d1ma
  • RedBull89
  • Makibasu
  • Malinbl4
  • takopain
  • Icecicerv
  • asdfgsdfgsdfg
  • MetalMortum
  • Iriskas
  • makksgam
  • kanortoplay
  • Typ1calyy
  • thachrc0315
  • fcPlugins

Помощь DeluxeMenu /kits

marazmatik34
ДРУЗЬЯ, столкнулся с проблемой, не могу понять как сделать вывод сообщения в чат при нажатии на предмет в меню
То есть у меня есть кит, к примеру Игрока и Випа, Стоит permission у игрока на взятия кита start, а на кит випа нету, но в меню (DeluxeMenu) любой игрок с любом донатом при нажатии на любой кит, либо получает кит/либо просто закрывается меню китов, без СООБЩЕНИЯ.

Помогите пожалуйста с кодом, как сделать так, чтобы выводилились сообщения
"Вы успешно взяли кит"
"Вы не можете взять этот кит"
 
GPT-4o
Для решения вашей задачи необходимо использовать события в вашем плагине, чтобы обрабатывать нажатия на предметы в меню. Вот пример кода, который поможет вам реализовать вывод сообщений в чат при нажатии на предмет в меню:

Java:
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;

public class KitMenuListener implements Listener {

    @EventHandler
    public void onKitMenuClick(InventoryClickEvent event) {
        Inventory inventory = event.getInventory();
        Player player = (Player) event.getWhoClicked();

        // Проверяем, что клик был в нужном меню
        if (inventory.getName().equals("Меню Китов")) {
            event.setCancelled(true); // Отменяем стандартное поведение

            // Получаем предмет, на который кликнули
            if (event.getCurrentItem() != null) {
                String kitName = event.getCurrentItem().getItemMeta().getDisplayName();

                // Проверяем разрешение на получение кита
                if (player.hasPermission("kit." + kitName.toLowerCase())) {
                    // Логика выдачи кита
                    player.sendMessage(ChatColor.GREEN + "Вы успешно взяли кит " + kitName + "!");
                } else {
                    player.sendMessage(ChatColor.RED + "Вы не можете взять этот кит!");
                }
            }
        }
    }
}

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

Java:
@Override
public void onEnable() {
    getServer().getPluginManager().registerEvents(new KitMenuListener(), this);
}

Этот код проверяет, кликнули ли игрок на предмет в меню китов, и в зависимости от наличия разрешения отправляет соответствующее сообщение в чат.
 
LiSnow
  • LiSnow
  • 💙 ᴜᴋʀᴀɪɴᴇ 💛 мᴇʜюшᴋᴏдᴇл, дизᴀйʜ-ᴋᴏпипᴀᴄтᴇᴘ
  • 166
как-то так:
  click_requirement:
    requirements:
      check_group:
        type: string equals
        input: "%vault_group%"
        output: "donate"
        deny_commands:
          - "[message] &cВы не можете взять этот кит"
  click_commands:
    - "[console] kit <kit> %player_name%"
    - "[message] &aВы успешно взяли кит"
 
ВерхНиз