Pomoc z kodem

Pytania i problemy
java, bukkit
xSeKaBo
xSeKaBo

Witam, mam mały problem z kodem.

public void repeatingTask() { task = new BukkitRunnable() {

  	@SuppressWarnings("deprecation")
  	@Override
  	public void run() {
  		int messageSize = messages.size();
  		Random rand = new Random();
  		int randomNumber = rand.nextInt(messageSize);
  		
  		for(messages m : messages) {
  			if(m.id == randomNumber) {	
  				Player[] player = new Player[Bukkit.getOnlinePlayers().size()];
  				player = Bukkit.getOnlinePlayers().toArray(player);
  				MaterialData material = new MaterialData(Material.DIAMOND_AXE,(byte) 1504);
  				Main.getInstance().sendInformation(Colour(m.message + "                   "), "", material, player);
  			}
  		}
  	}
  }
  	.runTaskTimer(this, 20 * timer, 20 * timer);

}

Mój problem polega na tym że chce aby "material" miał NBTTag "unbreakable, durability: 9 (damage: 1552)", tylko nie wiem jak to zrobić. Prosiłbym o pomoc. Z góry dziękuję ;)

luxDev
luxDev Pionier

Nigdy nie byłem nawet dobry w NBT ale to jest przykład stworzenia itemstacka z danym durability + unbreakable true, może ci się przyda nie wiem :) Miałem tylko CB 1.8 ale możesz zmienić.

net.minecraft.server.v1_8_R3.ItemStack itemstack = CraftItemStack.asNMSCopy(new 
ItemStack(Material.DIAMOND_SWORD, 1));
NBTTagCompound tag = itemstack.hasTag() ? itemstack.getTag() : new NBTTagCompound();
tag.setInt("Durability", 1504);
tag.setBoolean("Unbreakable", true);
itemstack.setTag(tag);
ItemStack is = CraftItemStack.asCraftMirror(itemstack);
zrobCosZTymItemStackiem(is);

edit: jak nie zadziała to taguje osobe która musi sie bawić z NBT 24/7 @Marcoral.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

nie wiem po co kombinujecie.. D:

public ItemStack test() {

    ItemStack item = new ItemStack(Material.DIAMOND_AXE, 1);
    item.setDurability((short) 9);

    ItemMeta meta = item.getItemMeta();
    meta.setUnbreakable(true);
    meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
    item.setItemMeta(meta);

    return item;
}

tak się robi itemy do gui

xSeKaBo
xSeKaBo

Niestety to nie działa. 😦 Zapomniałem dodać że korzystam z API (AdvancementAPI) Kod AdvancementAPI

luxDev
luxDev Pionier

No tak od 1.8 już są wspierane te bzdurki, zapomniałem :P

xSeKaBo
xSeKaBo

Prosiłbym o zamknięcie tematu. Jeśli chodzi o rozwiązanie, to po prostu zamieniłem domyślną texture blokady i "material" ustawiłem jako blokadę. Chyba było to najprostsze i najłatwiejsze rozwiązanie. Serdecznie dziękuje za poświęcenie chwili nad tym tematem.

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.