Ink Sack

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
bana leatherarmormeta meta; gibi ink sack'ın da metasını nasıl yapabilirim kodu nedir ya da ben soruyu şöyle sorıyım, ink sack'ı nasıl renkli yapabilirim?

Kod:
        meta = damage.getItemMeta();
        meta.setDisplayName(ChatColor.RED + "Gücünü Arttır");
        meta.addEnchant(Enchantment.ARROW_DAMAGE, 1, true);
        meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
        meta.setLore(Arrays.asList("", ChatColor.GRAY + "Her bir puan için %2.5 güçlenirsin."));
        damage.setItemMeta(meta);

bu damage denilen ıtemstakc(material.ink_sack)'ın nasıl rengini değiştirebilirim?

@Krumb069 @Schaffer79
 


KilllerDragons

Kızıltaş Madencisi
Mesajlar
569
En iyi cevaplar
0
Beğeniler
143
Puanları
560
Ruh hali
O kodda yazan Chatcolor.Gray yazan tarafa ingilizce renk yaz böyl bilindik bişi öyle rengi değişir gibi geliyo bana
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
O kodda yazan Chatcolor.Gray yazan tarafa ingilizce renk yaz böyl bilindik bişi öyle rengi değişir gibi geliyo bana
demek istediğimi anlamamışsın galiba hani boyalar varya mc de onun özü ink sack bende ana materyali alıp renkli yapmaya çalışıyorum çünkü boyalı olan itemlerin kodunu bilmiyorum

metanın damageini değiştireceksin 0-15 olması lazım renkler
biliyorum ancak nasıl data değiştiricem?
 

KilllerDragons

Kızıltaş Madencisi
Mesajlar
569
En iyi cevaplar
0
Beğeniler
143
Puanları
560
Ruh hali
bende pek boyalı ıtemlerle uğraşmadığımdan sanırım mcnin renk kodlarıyla yapılıyo aban göre prefix öyle yapılıyodu
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
Arkadaş damagei değiştireceksin. Çünkü inksac yerine yeni itemlar yok. Eğer damage 0 ise siyah boya oluyor. (Atıyorum gerçek değerler için minecraft wikiye bak) 3 ise kırmızı oluyor.
ne saçma bi sistem

meta.setDamage(int) gibi bir fonksiyon olması lazım.
iyide meta.setDamage diye bişi yok?

bana gereken şey şu:
ItemMeta meta = damage.getItemMeta()
gibi yapıyoruz ya itemin bişilerini değiştirmek için banada ItemMeta yazan yere aynen LeatherArmorMeta da ki gibi ink sack lar için özel ItemMeta ismi gerekiyor onu bilsem gerisini yaparım
 

Centeglassered

Kızıltaş Madencisi
Mesajlar
579
En iyi cevaplar
0
Beğeniler
268
Puanları
900
Ruh hali
ne saçma bi sistem


iyide meta.setDamage diye bişi yok?

bana gereken şey şu:
ItemMeta meta = damage.getItemMeta()
gibi yapıyoruz ya itemin bişilerini değiştirmek için banada ItemMeta yazan yere aynen LeatherArmorMeta da ki gibi ink sack lar için özel ItemMeta ismi gerekiyor onu bilsem gerisini yaparım
şu an bir şey yazdım test ediyorum çalışırsa atarım.

Buyur bunun ile havaya elinde boya (veya mürekkep) ile sağ tıkladığında bir sonraki renge geçiyor.
PHP:
package infert.boyalar;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

/**
* Boyalar - Deneme
*
* @author Infert 3 Mar 2016 22:03:12
*
*/
public class Boyalar extends JavaPlugin implements Listener
{
    @Override
    public void onEnable()
    {
        Bukkit.getPluginManager().registerEvents(this, this);
    }
   
    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent event)
    {
        if (event.getAction() != Action.RIGHT_CLICK_AIR) return;
        ItemStack item = event.getPlayer().getItemInHand();
        if (item.getType() != Material.INK_SACK) return;
        short d = item.getDurability();
        d++;
        if (d >= 15) d = 0;
        item.setDurability(d);
    }
}

İşin özü damage.setDurability(short) metodunu kulanacaksın. Bak int değil short
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
şu an bir şey yazdım test ediyorum çalışırsa atarım.

Buyur bunun ile havaya elinde boya (veya mürekkep) ile sağ tıkladığında bir sonraki renge geçiyor.
PHP:
package infert.boyalar;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

/**
* Boyalar - Deneme
*
* @author Infert 3 Mar 2016 22:03:12
*
*/
public class Boyalar extends JavaPlugin implements Listener
{
    @Override
    public void onEnable()
    {
        Bukkit.getPluginManager().registerEvents(this, this);
    }
  
    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent event)
    {
        if (event.getAction() != Action.RIGHT_CLICK_AIR) return;
        ItemStack item = event.getPlayer().getItemInHand();
        if (item.getType() != Material.INK_SACK) return;
        short d = item.getDurability();
        d++;
        if (d >= 15) d = 0;
        item.setDurability(d);
    }
}

İşin özü damage.setDurability(short) metodunu kulanacaksın. Bak int değil short
yani durability renk değiştiriyor?
 

Üst