[Решено] Как создать класс который копирует класс ItemStack

Статус
Закрыто для дальнейших ответов.

SashaBrine

Активный участник
Пользователь
Баллы
76
Я это сделал таким образом:
Код:
package ru.RP;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Material;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class AnswerItem extends ItemStack {
    
    
    
    public AnswerItem(Material mat, String answer, String name) {
        this.setType(mat);
        ItemMeta meta = this.getItemMeta();
        meta.setDisplayName("§7"+name);
        List<String> lore = new ArrayList<String>();
        
        lore.add("Ответ: "+answer);
        lore.add("@"+name);
        
        meta.setLore(lore);
        this.setItemMeta(meta);
    }
}
Но оно не работает помогите пожалуйста.
Код:
            Inventory i = Bukkit.createInventory(null, 27, "§0Ответ администратора");
            
            List<String> aargs = new ArrayList<String>();
            for (String i1 : args) aargs.add(i1);
            aargs.remove(0);
            aargs.remove(0);
            String msg = "";
            for (String i1: aargs) msg+=(i1+" ");
            msg.trim();
            

            i.setItem(4, new AnswerItem(Material.PAPER, msg, p.getName()));
Оно не добавляет предмет в инвентарь. Инвентарь просто пустой. Как сделать такой класс? Или как решить мою проблему?
 
Или как решить мою проблему?
Добавить обычный предмет?
Ну, типа в меню ответов не будет никаких других предметов, смысл делать отдельный класс?
 
Начнем с того, что ItemStack это интерфейс, его нельзя расширять через extends ItemStack
Не, это класс таки. Только расширять бесполезно, баккит всё равно похерит инстанс на близжайшем взаимодействии с реальным инвентарём.
 
Не, это класс таки. Только расширять бесполезно, баккит всё равно похерит инстанс на близжайшем взаимодействии с реальным инвентарём.
Тупанул :D. Бошка с утра не варит)
 
Последнее редактирование:
Я это сделал таким образом:
Код:
package ru.RP;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Material;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class AnswerItem extends ItemStack {
  
  
  
    public AnswerItem(Material mat, String answer, String name) {
        this.setType(mat);
        ItemMeta meta = this.getItemMeta();
        meta.setDisplayName("§7"+name);
        List<String> lore = new ArrayList<String>();
      
        lore.add("Ответ: "+answer);
        lore.add("@"+name);
      
        meta.setLore(lore);
        this.setItemMeta(meta);
    }
}
Но оно не работает помогите пожалуйста.
Код:
            Inventory i = Bukkit.createInventory(null, 27, "§0Ответ администратора");
          
            List<String> aargs = new ArrayList<String>();
            for (String i1 : args) aargs.add(i1);
            aargs.remove(0);
            aargs.remove(0);
            String msg = "";
            for (String i1: aargs) msg+=(i1+" ");
            msg.trim();
          

            i.setItem(4, new AnswerItem(Material.PAPER, msg, p.getName()));
Оно не добавляет предмет в инвентарь. Инвентарь просто пустой. Как сделать такой класс? Или как решить мою проблему?
Код:
public class AnswerItem {

    public static ItemStack create(Material mat, String answer, String name) {
        ItemStack stack = new ItemStack(mat);
        ItemMeta meta = stack.getItemMeta();
        meta.setDisplayName("§7" + name);
        List<String> lore = new ArrayList<String>();
        lore.add("Ответ: " + answer);
        lore.add("@" + name);
        meta.setLore(lore);
        stack.setItemMeta(meta);
        return stack;
    }
}
Код:
...
 i.setItem(4,  AnswerItem.create(Material.PAPER, msg, p.getName()));
...
 
Жаль я думал можно но ладно всё таки спасибо.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх