xSeKaBo | 2021-02-17 10:25:57 UTC | #1
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 | 2017-06-30 18:01:15 UTC | #2
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 | 2017-06-30 18:10:08 UTC | #3
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 | 2017-06-30 18:22:53 UTC | #4
Niestety to nie działa. :frowning:
Zapomniałem dodać że korzystam z API (AdvancementAPI)
Kod AdvancementAPI
luxDev | 2017-06-30 21:57:54 UTC | #5
No tak od 1.8 już są wspierane te bzdurki, zapomniałem :P
xSeKaBo | 2017-07-01 09:10:53 UTC | #6
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 | 2021-02-17 10:26:11 UTC | #7
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.