Renaming items

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

  1. Offline

    Postkutsche

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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();

    This post has been edited 2 times. It was last edited by Postkutsche Oct 28, 2012.
  2. Offline

    stirante

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I created it almost month ago :p
  3. Offline

    Postkutsche

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Lol, I haven't seen it :confused:
  4. Offline

    Xx_LeetGamer_xX

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Add CraftBukkit.jar to your libraries.
  6. Offline

    Xx_LeetGamer_xX

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    It is already...
  7. Offline

    Postkutsche

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Have you checked your imports? I believe you're casting a net.minecraft-ItemStack to a CraftItemStack.
  8. Offline

    Comphenix

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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.

    This post has been edited 1 time. It was last edited by Postkutsche Nov 4, 2012.
    Comphenix likes this.
  10. Offline

    xXSniperzzXx_SD

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    post the code
  12. Offline

    finalblade1234

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    NamedItemStack cannot be resovled into a type?
    Any help?
  13. Offline

    chasechocolate

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Just use ItemMeta.
    coobro123 likes this.
  14. Offline

    coobro123

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    So which one of these codes work? Lol
  15. Offline

    stirante

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Use Bukkit's api ItemMeta.

Share This Page