Renaming items

Discussion in 'Plugin Development' started by Postkutsche, Oct 28, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    Postkutsche

    I just created a little API to rename any item you want in Minecraft 1.4.
    It changes itemnames like using an anvil.

    You can easily copy+paste it from here: http://pastie.org/5126792

    Easy to use:
    Code:
    ItemStack anvil = new ItemStack(Material.ANVIL);
    NamedItemStack namedItemStack = new NamedItemStack(anvil);
    // Give it a name
    namedItemStack.setName("Minecraft 1.4 is there!");
    // Reset the name to default
    namedItemStack.setName(null);
    // Get the item's name (returns null if it hasn't been renamed)
    namedItemStack.getName();
     
  2. Offline

    stirante

    I created it almost month ago :p
     
  3. Offline

    Postkutsche

    Lol, I haven't seen it :confused:
     
  4. Offline

    Xx_LeetGamer_xX

    I get an exception:

    Code:
    Caused by: java.lang.ClassCastException: org.bukkit.inventory.ItemStack cannot b
    e cast to org.bukkit.craftbukkit.inventory.CraftItemStack
    On this line: (Line 14)
    Code:
    CraftItemStack cis = ((CraftItemStack)this.itemStack);
    How can I fix this?
     
  5. Offline

    epicfacecreeper

    Add CraftBukkit.jar to your libraries.
     
  6. Offline

    Xx_LeetGamer_xX

    It is already...
     
  7. Offline

    Postkutsche

    Have you checked your imports? I believe you're casting a net.minecraft-ItemStack to a CraftItemStack.
     
  8. Offline

    Comphenix

    That's because the class above expects a CraftItemStack - that is, an item stack that's created by Minecraft and wrapped by Craftbukkit, and not a bog standard "Bukkit" item stack.

    To be fair, that's exactly what OP did in the code example (which is clearly not tested). :p

    To fix this, convert the ItemStack you created to a CraftItemStack first:
    Code:java
    1. private void performAction(Player player) {
    2. ItemStack brick = toCraftBukkit(new ItemStack(Material.BRICK));
    3. NamedItemStack namedItemStack = new NamedItemStack(brick);
    4. namedItemStack.setName("Minecraft 1.4 is there!");
    5.  
    6. player.setItemInHand(brick);
    7. }
    8.  
    9. private static ItemStack toCraftBukkit(ItemStack stack) {
    10. if (!(stack instanceof CraftItemStack))
    11. return new CraftItemStack(stack);
    12. else
    13. return stack;
    14. }
     
  9. Offline

    Postkutsche

    The code was tested and works fine for me.

    EDIIT: Ahhh.. now I know what you mean, I'll fix it when I come home.
     
    Comphenix likes this.
  10. Offline

    xXSniperzzXx_SD

    This doesn't work right... And by that i mean that there are no errors or anything, it just doesn't rename it... and in case it matters i'm trying to rename a redstone
     
  11. Offline

    fireblast709

    post the code
     
  12. Offline

    finalblade1234

    NamedItemStack cannot be resovled into a type?
    Any help?
     
  13. Offline

    chasechocolate

    Just use ItemMeta.
     
    coobro123 likes this.
  14. Offline

    coobro123

    So which one of these codes work? Lol
     
  15. Offline

    stirante

    Use Bukkit's api ItemMeta.
     
Thread Status:
Not open for further replies.

Share This Page