The constructor ItemStack(int, int, short) is undefined.

Discussion in 'Plugin Development' started by cyberfreak82, Sep 24, 2019.

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

    cyberfreak82

    Hey,
    I have the following problem : I try to develop a Plugin which give me the head of my opponent
    at a kill in the PVP... but I get the following error message and I do not know how to fix it.

    ---------------------------------------------------------------------------------------------------------------
    error message: The constructor ItemStack(int, int, short) is undefined.
    ---------------------------------------------------------------------------------------------------------------
    Code:
    package listeners;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    
    public class Head implements Listener {
    
    
    @EventHandler (priority=EventPriority.NORMAL)
    public void onDeath(PlayerDeathEvent e) {
    if(e.getEntity().getKiller() instanceof Player) {
    Player killer = e.getEntity().getKiller();
    
    ItemStack Kopf = new ItemStack(397, 1, (short) 3); // <-----here is the problem
    ItemMeta meta = Kopf.getItemMeta();
    meta.setDisplayName("§6"+e.getEntity().getName());
    Kopf.setItemMeta(meta);
    killer.getInventory().addItem(Kopf);
    
    }
    
    }
    }
     
    Last edited by a moderator: Sep 24, 2019
  2. Offline

    timtower Administrator Administrator Moderator

    @cyberfreak82 Don't know where you got that code but that constructor got removed a couple years ago.
    You need to use a Material there.
     
  3. Offline

    cyberfreak82

    Can you show me an example for my code? that would be great because i am a beginner
     
  4. Offline

    timtower Administrator Administrator Moderator

  5. Offline

    cyberfreak82

    Okay ...
    no error message but nothing happens :(
    Do not have any experience with plugins ...please do not be mad
    Code:
    package listeners;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.Material;
    
    public class Head implements Listener {
      
      
       @EventHandler (priority=EventPriority.NORMAL)
       public void onDeath(PlayerDeathEvent e) {
         if(e.getEntity().getKiller() instanceof Player) {
           Player killer = e.getEntity().getKiller();
           ItemStack Kopf = new ItemStack(Material.STONE_SWORD, 1);//[B] <-------New
           ItemMeta meta = Kopf.getItemMeta();
           meta.setDisplayName("§6"+e.getEntity().getName());
           Kopf.setItemMeta(meta);
           killer.getInventory().addItem(Kopf);
          
         }
        
       }
    }
     
    Last edited: Sep 24, 2019
  6. Offline

    timtower Administrator Administrator Moderator

  7. Offline

    KarimAKL

    @cyberfreak82 You don't need to check if the killer is a player, just if it's null.
    Reason (open)
    Player#getKiller() returns a Player, so it can only be a Player object, something that inherits Player (which it won't return), or null.
     
  8. Offline

    cyberfreak82

    in main registerd but nothing happens ... Main:
    Code:
    package me.cyberfreak.Belohnung;
    
    
    
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    
    import commands.heal;
    import listeners.Head;
    
    public class Main extends JavaPlugin {
       
       
       public void onEnable(){
         PluginManager pm = this.getServer().getPluginManager();
         System.out.println("Plugin erfolgreich aktiviert");
         this.getCommand("heal").setExecutor(new heal());
         
         //registieren des Events
         pm.registerEvents(new Head(), this);
         
         
       }
       
       public void onDisable() {
         
       }
    
    }
     
    Last edited by a moderator: Sep 24, 2019
  9. Offline

    KarimAKL

  10. Offline

    cyberfreak82

    I would like to... if I knew how... this is my first Plugin :(
    please do not laugh
     
  11. Offline

    Sir_Jonn

    Learn java first, then read the bukkit docs
     
Thread Status:
Not open for further replies.

Share This Page