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

СливПлатные

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

  • Gamerhindi
  • yssze
  • zzhw
  • Aqzuds
  • JabbaMan
  • kirkabak
  • trapsiiide
  • Tarekizor
  • thegitt
  • Corvo
  • EmpireOverLord
  • colldinworld
  • danbobo
  • dergen
  • SusBruh
  • fector
  • DenPlayStar
  • GOJOst
  • capitan_afk
  • GlebTR90
  • idjdifhfjfj
  • ggftgbbjj
  • fleyn37
  • loganbodart_

Обмен предметов DeluxeMenus

D
Версия ядра сервера
1.16+
В общем, мне для определённых предметов с градиентным названием (&#FFFFFF типо) нужно сделать меню, где эти предметы можно обменять на деньги

Я пробовал кучу способов, но работает чот не особо. 1.16.5, paper
 
GPT-4o
Создание меню для обмена предметов на деньги в Minecraft с использованием Paper API может быть выполнено с использованием GUI. Вот пример, как это можно сделать:

1. Создайте класс для вашего меню.
2. Используйте методы Paper API для создания инвентаря и обработки кликов.

Вот пример кода:

Java:
import org.bukkit.Bukkit;
import org.bukkit.Material;
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;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class TradeMenuPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    public void openTradeMenu(Player player) {
        Inventory tradeMenu = Bukkit.createInventory(null, 27, "Обмен предметов");
        
        // Пример предмета с градиентным названием
        ItemStack item = new ItemStack(Material.DIAMOND);
        item.getItemMeta().setDisplayName("§f§lГрадиентный предмет"); // Используйте цветовые коды
        tradeMenu.addItem(item);
        
        player.openInventory(tradeMenu);
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        if (event.getView().getTitle().equals("Обмен предметов")) {
            event.setCancelled(true);
            Player player = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();

            if (clickedItem != null && clickedItem.getType() == Material.DIAMOND) {
                // Логика обмена предмета на деньги
                player.sendMessage("Вы обменяли предмет на деньги!");
                // Здесь вы можете добавить код для добавления денег игроку
                player.getInventory().removeItem(clickedItem);
            }
        }
    }
}

Этот код создает меню, в котором игрок может обменять предметы (в данном случае, алмазы) на деньги. Не забудьте добавить логику для начисления денег игроку, в зависимости от вашей экономики.
 
jFrostyBoy
Пример:
type: has item
material: DIAMOND
name: "&#FFFFFFТипо алмаз"

P.S: Хоть иногда опускайте глаза в документацию
 
Последнее редактирование:
ВерхНиз