1.8.8 Exact material ID

Discussion in 'Spigot Plugin Development' started by FinnTG, Jun 21, 2021.

  1. Can the material ID of an item be output exactly? The ID of panes of glass is 160 and of black panes of glass the ID is 160:15. When I get the ID of black panes of glass, I don't see 160: 15, but the normal ID 160.
     
  2. Use valueOf rather than matchMaterial .
     
  3. I need the material ID, not the name.
     
  4. why use matchMaterial?
     
  5. Look, when I drop black panes of glass, I want to see the exact Item ID.

    This is my code:

    Code (Java):
    p.sendMessage("" + e.getItemDrop().getItemStack().getTypeId());
    However, it shows me the ID of normal glass panes and not that of black glass panes. The ID of normal glass is 160 and that of black glass is 160:15.
     
  6. You could try getting the MaterialData.getData() (is deprecated) which should give you back the byte (like in your case 15 for black glass panes)

    Code (Java):
    ItemStack itemStack = new ItemStack(Material.STAINED_GLASS_PANE);
    itemStack.getData().setData((byte)15);
    //Easier would be here:
    ItemStack itemStack = new ItemStack(Material.STAINED_GLASS_PANE, 1, (byte)15);
    Code (Java):
    ItemStack itemStack = new ItemStack(Material.STAINED_GLASS_PANE);
    if(itemStack.getData().getData() == (byte)15) ....
     
    #6 SirZiegenKease, Jun 21, 2021
    Last edited: Jun 21, 2021
  7. Ich habe gerade auf deinem Profil geguckt und gesehen, dass du deutsch sprichst.
    Deshalb denke ich, dass ich mit dir deutsch sprechen kann.

    Also... Ich benutze das PlayerDropItemEvent und ich möchte mir bei egal welchem Item die ID ausgeben lassen.
    Es gibt aber nun mal Items, welche sag ich mal eine "Zusatz ID" haben, wie Schwarze Glasscheiben. Von Normalen Glasscheiben lautet die ID 160 und von Schwarzen Glasscheiben 160:5. Wenn ich also Schwarze Glasscheiben droppe, gibt mir das Plugin eine Nachricht aus, in der aber die normale ID von Glasscheiben steht und nicht die von Schwarzen Glasscheiben. Weißt du wie ich mir sozusagen die normale ID
    und die "Zusatz ID" ausgeben kann?

    Mein Code:

    Code (Java):
    p.sendMessage("" + e.getItemDrop().getItemStack().getTypeId());
    Wenn ich also Schwarze Glasscheiben droppe, steht dort 160 und nicht 160:5.
     
  8. First: Please use English to reply that everybody can understand you.
    Your Problem: As @SirZiegenKease said, you can use #getData() to get the sub id of your material.
     
  9. Du musst es dir so ausgeben lassen:
    Code (Java):
    p.sendMessage("" + e.getItemDrop().getItemStack().getTypeId() + e.getItemDrop().getItemStack().getData().getData());
    Wobei getData bei normalen Glasscheiben (also 160) 0 ist.

    Yes, he should do that but I think he isn't particular good in english. Using the code above you will get the ID + SUBID which is normally 0 (when the material doesn't have SUBIDs) and so on...
     
  10. Danke.