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

СливПлатные

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

  • nidedipai
  • wuring
  • kurban111
  • prmx1234
  • YT_joker2_YT
  • instyle
  • HakiZahn
  • dextralvio
  • sinaptico
  • Mihalych4
  • ofinar
  • EXRTIM PLAY
  • Veergo
  • Vasq
  • E_NeLsOn

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