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

СливПлатные

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

  • Samuera
  • CodEX74
  • Mr_KabAchOk
  • Dafuta565
  • Jungler
  • hamer44644
  • SpookeCraft
  • luuthiethoa
  • warn_zxcremake
  • S0levik
  • kerorozsl..
  • Auriny
  • LaTripulacionLuffy
  • Segagoplay
  • mortnaix
  • CIKI33
  • warface2007man
  • DanyLux23
  • pacmisha
  • minemeow

Помощь 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Вы успешно взяли кит"
 
ВерхНиз