I need help with the Material API

Discussion in 'Plugin Development' started by WasabiLover, Aug 1, 2013.

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

    WasabiLover

    I'm very new to programming, and I no it's not great to jump into things you don't know. But I thought I would give it a try. Right now I'm trying to learn how to use the Material API. I have everything imported , but I was wondering how do I actually make a new item?
     
  2. Offline

    xxMOxMOxx

    @WasabiLoverMake a new item or ItemStack? The first is impossible.

    To make a new item stack do
    Code:
    ItemStack itemstack = new ItemStack(Material.NAME);
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  3. Offline

    WasabiLover

    Thanks i'll try that!

    Here is what I have so far...

    package me.WasabiLover.Plugin;


    import me.cybermaxke.materialapi.material.CustomMaterial;
    import org.bukkit.Material;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.block.BlockDamageEvent;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerItemHeldEvent;

    public class MyCustomMaterial extends CustomMaterial implements Listener{
    public MyCustomMaterial(String id, Material material) {
    super(id, material);
    }
    public void onHit(EntityDamageByEntityEvent event) { }
    public void onInteract(PlayerInteractEvent event) { }
    public void onInteractEntity(PlayerInteractEntityEvent event) { }
    public void onBlockPlaced(BlockPlaceEvent event) { }
    public void onBlockBreak(BlockBreakEvent event) { }
    public void onBlockDamage(BlockDamageEvent event) { }
    public void onBlockInteract(PlayerInteractEvent event) { }
    public void onHold(PlayerItemHeldEvent event) { }

    }
    My question is how do I make this new Item possible to get in game?

    @xxMOxMOxx Sorry I know my questions are not very straight forward. Ok so I've used the ItemStack itemstack = new ItemStack(Material.NAME); how should I make a new Id?


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  4. Offline

    Taketheword

    That's a lot of Events to handle for a first time programmer. Looks as if you're trying to make a logger of some sort. Anyways, don't give up. It is usually best to learn some Java then go to plugins but I'm sure you'll do just fine :)
     
  5. Offline

    WasabiLover

    Thanks I think I may have gotten it. I guess I'll have to launch my server and see
     
  6. Offline

    Taketheword

    WasabiLover
    If you could use some additional help just add me on Skype: retrocraft.mc
     
  7. Offline

    WasabiLover

    Now I have a different problem
    when ever I start my server I get this error:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:603)
    at org.bukkit.Bukkit.reload(Bukkit.java:275)
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
    at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
    at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
    at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173)
    ... 14 more
    Caused by: java.lang.ClassNotFoundException: me.cybermaxke.materialapi.material.CustomMaterial
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 30 more
     
  8. Offline

    callum2904

    first of all can you use the [.CODE][/.CODE] without the . so that we can see it more clearly
     
  9. Offline

    WasabiLover

    Code:
    org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:603)
        at org.bukkit.Bukkit.reload(Bukkit.java:275)
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
        at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173)
        ... 14 more
    Caused by: java.lang.ClassNotFoundException: me.cybermaxke.materialapi.material.CustomMaterial
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 30 more
    
    Code:
    org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:603)
        at org.bukkit.Bukkit.reload(Bukkit.java:275)
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
        at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
        at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NoClassDefFoundError: me/cybermaxke/materialapi/material/CustomMaterial
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173)
        ... 14 more
    Caused by: java.lang.ClassNotFoundException: me.cybermaxke.materialapi.material.CustomMaterial
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 30 more
    
    Is this better? Sorry also new to the forums. I think I have the plugin working but do I need to install the Material API, if so how would I go about doing that?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  10. Offline

    ZachBora

    WasabiLover It sounds like you are missing a library or another plugin. Where does
    import me.cybermaxke.materialapi.material.CustomMaterial;

    come from? Is it another plugin?
     
  11. Offline

    WasabiLover

    It comes from the Bukkit MaterialAPI
     
  12. Offline

    ZachBora

    It sounds like you didn't install that on your server.

    Edit: also, even though you call it "Bukkit", note that it isn't official. Bukkit does not use package me.cybermaxke
     
  13. Offline

    callum2904

    I have read over your post and it says your new to java and the bukkit api, i would highly recommend not doing this as my friends decided to do this since they couldnt be botherd and wanted to be able to help me or do what i can do but as the had no previous java knowledge it has took them twice as long to get the basics than it did for me. I would recommend watching these tutorials.

    For detailed tutorials which most people most likely learn from is:
    http://www.youtube.com/user/thenewboston

    He has Beginner:http://www.youtube.com/playlist?list=PLFE2CE09D83EE3E28
    And Intermediate: http://www.youtube.com/playlist?list=PL27BCE863B6A864E3&feature=playlist-comment
     
  14. Offline

    WasabiLover

    Thats odd because I found a link from the forums. It comes from this link:
    https://forums.bukkit.org/threads/materialapi-create-new-items-and-blocks.123851/
    And I believe I've installed it properly

    Thanks, I've already watched several tutorials but I never found anything quite like what I'm currently trying to do.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  15. Offline

    callum2904

    Another way you could try is looking through the resources section of the bukkit forums. Im sure iv saw 1 or 2 Material Api Tutorials but i dont have the time too look
    http://forums.bukkit.org/forums/resources.60/
     
  16. Offline

    WasabiLover

    Thanks! I'll try them out.
     
  17. Offline

    ZachBora

  18. Offline

    WasabiLover

Thread Status:
Not open for further replies.

Share This Page