Best way to learn how to make plugins?

Discussion in 'Plugin Development' started by jeroenhero123, Oct 15, 2014.

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

    jeroenhero123

    Hey guys,

    Since +- a week I've started
    learning how to make plugins.
    I've watched a lot of video tutorials from this channel: http://www.youtube.com/user/TheBCBroz , and I looked at some sites.
    But, the video tutorials I saw are +-2 years old, and big parts aren't working...
    I've already made a very easy plugin....


    What video guides / channels do you recommend to learn how to make plugins?
    And, how did you learn it?
     
  2. Offline

    es359


     
  3. Offline

    fireblast709

    Learn Java, read Bukkit wiki, avoid any Bukkit tutorials on youtube (unless you want to learn bad habits), win internet.
     
    Dudemister1999, es359 and andrewpo like this.
  4. Offline

    xMrPoi

    What would you define as bad habits? And also, there are a few good people out there that as far as I know, have good technique. sgtcaze makes good videos.
     
  5. Offline

    Tecno_Wizard

    No one is going to be perfect with any YouTube tutorial. No one. One thing is for certain though, TheBCBroz is one of the WORST YouTube tutorials you can possibly watch. I personally used Appljuze, who also had is faults (kept using command label instead of cmd.getName();), but they were minimal. I believe he frequently forgot the @Override annotation too. But in all, the best way to learn is to have an actual programmer teach you. I am teaching a friend at the moment and trying to avoid every bad practice possible.

    One of the biggest things we always push here is that before you begin Minecraft Plugins, you MUST understand Java, or you will be leaving problems left and right. One of the best Youtubers I have ever found is thenewboston, who will teach you Java, but not Minecraft. Anyone else know of any Bukkit YouTubers who don't constantly make dumb mistakes?

    Good Luck!

    Using commandLabel instead of cmd.getName(); is a big one I see quite a lot. I've also seen people forget the @Override annotation, use ArrayLists for things that really should be arrays, and try to serialize objects that are not serliazable (I see this way too much).

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

    mythbusterma

    xMrPoi

    Abusing static, unchecked casts, creating unnecessary members, etc. and that's only the videos I've seen.
     
  7. Offline

    fireblast709

    As for sgtcaze, creating a new instance of the main class in the first video. And even aside the fact that it would throw an error, it's wasting memory. After all, you are in an instance of that class you are constructing, and you have no reason to create a new instance.

    More general, I see a lot of Minecraft Loggers (Bukkit.getLogger() returns that same Logger, btw), unchecked casting, commandLabel usage static abuse.
     
  8. Offline

    Rocoty

    Books! They'll teach you more than any youtube tutorial ever will.
     
    Hawktasard, xTrollxDudex and es359 like this.
  9. Offline

    es359

    What Rocoty said.

    :3

    These are my two favorite.

    [​IMG]
     
    Rocoty likes this.
  10. Offline

    VG.Developments

    There are a few ways. 1. Get books (i.e Java for dummies), 2. Youtube videos(I prefer PogoStick29 , his tutorials helped me through the beginning). Lastly, read up on the bukkit plugin tutorial wiki page.
    With videos its a good starting point, but as you learn you will pick up better methods of coding. Not saying videos are the best way of learning, but they can help!
     
    PogoStick29 likes this.
  11. Offline

    teej107

    VG.Developments Everybody has their own way of learning. I just gotta say that learning Bukkit via Youtube is shaky ground. Some channels have gotten some reputation for bad code.
     
    VG.Developments likes this.
  12. Offline

    hubeb

    jeroenhero123 I recommend learning java first, you can do this by taking classes, reading books or watching videos. Depending on what type of learner you are you can do any of those but I recommend watching TheNewBoston's tutorials.
    Java Tutorial (Beginner): https://www.youtube.com/playlist?list=PLFE2CE09D83EE3E28
    Java Tutorial (Intermediate): https://www.youtube.com/playlist?list=PL27BCE863B6A864E3

    You can also watch a bukkit related channel, and since you have already provided TheBCBroz, you can check out pogostick29dev here: https://www.youtube.com/channel/UCI5kTq_eoaZslY9TQ4XlmmA

    Good luck on your java learning adventures.
     
    PogoStick29 likes this.
  13. Offline

    TacticalQuiver

    I would help you if you like.
     
  14. Offline

    CheesyFreezy

    Hi! Here is what i did when i sarted learning plugins and how i ended up like this (i'm a proffesional plugin dev. :p)
    • Learn Some Little Basic Stuff About Java, Search For Some Application Tutorials For Java
    • Learn Episode 1, 2 & 3 Of And No; The Old Videos Are Still Working Without Any Errors Or Changes In The Coding.
    • Go To And Search For Some Stuff You Like Between Part 1 - 12
    • If You Learned Some Videos From PogoStick29Dev You Can Choose Every Episode Of TheBCBroz & PogoStick29Dev Because You Already Learned The Basics. The Advanced Coding Is Coming Now! :D
    • For Fun Plugins Tutorials: PogoStick29Dev
    • For Some Plugins Tutorials You Learn About: TheBCBroz

    Regards,
    CheesyFreezy
     
    PogoStick29 and MordorKing78 like this.
  15. Offline

    fireblast709

    CheesyFreezy hubeb please don't spread the bad habits around. One simply does not learn Bukkit through youtube.
     
    Funergy likes this.
  16. Offline

    xMrPoi

    Why are you so negative about youtube video tutorials? They're not all that bad. You can get a basic premise of how Bukkit works through a few youtube videos. Everyone has to start somewhere. And imho, it's easier to learn from a video than through text. That's just me. I know that some of the techniques they use aren't very good, but if you are starting off and want to improve, you could always make a thread for people to help you. If you're open to constructive criticism and truly want to get better, you'll be able to learn from both youtube videos and the forums.

    If anyone knows and good people that make youtube videos, please post them. There has to be someone that doesn't have these bad habits.
     
    PogoStick29 and MordorKing78 like this.
  17. Offline

    hubeb

    fireblast709 Youtube is a vast knowledge bank and the most used search engine right behind google, if there is something you wish to know look it up on youtube and I can almost guarantee that there will be a video for it.
     
  18. Offline

    Skionz

    Learn about control statements, classes, methods basically just learn java. Then read bukkit's documentation. If you already know java it shouldn't be too difficult to figure out.
     
  19. Offline

    teej107

    xMrPoi Just like you said,
    . Some of the popular videos do things badly and new devs don't think that they are bad. They won't do anything about it until errors show up. In a sense, it might be good if they ask for help and if somebody tells them why their code is bad. The problem I have with videos is they don't explain enough things about why they are doing this or that and what goes into it. I made this thread to help unfortunate devs who stumbled across bad tutorials and started using them.
     
  20. Offline

    fireblast709

    xMrPoi Notify me when you find a Bukkit tutorial without static abuse, with no unchecked casts, without using the Minecraft Logger (and Bukkit.getLogger() returns this very Logger), where they use cmd.getName() instead of the label, etc.

    hubeb I never said youtube as a whole was bad, just all the Bukkit tutorials I've seen people link on the forums ;3.
     
  21. Offline

    MordorKing78

    I Recommend watching pogostick on youtube.
     
    PogoStick29 likes this.
  22. Offline

    xMrPoi


     
  23. Offline

    fireblast709

    xMrPoi Using Bukkit.getLogger() (which is the Minecraft Logger). I could also add that his code in episode 11 isn't thread safe.

    [EDIT] Getting better and better, potential memory leak in his SettingsManager.
     
  24. Offline

    FerusGrim


    Maybe a few people should get together and make a tutorial series that specifically aims to reduce bad habits among new developers...?
     
    JaguarJo likes this.
  25. Offline

    teej107

  26. Offline

    xMrPoi

    Oh I didn't catch that haha. What exactly makes it not thread safe?
     
  27. Offline

    FerusGrim

    Probably the portion that isn't thread safe.
     
  28. FerusGrim Most likely the people who have the knowledge to make the videos without the bad habits and such either don't have the time, or the faith in the medium, or don't think the results will become popular enough. That's a real problem with these popular youtube tutorials that contain bad habits - inertia. People learn from them, and then tell new developers that they learned from them. The new developers see lots of people have watched the videos, and assume they are good. The new developers then go on to tell others about the videos, and the cycle continues. The videos spread, kind of like a virus.

    xMrPoi and any others who'd like to read some of the negative points about video tutorials, I have outlined my opinion here. Feel free to give it a read if you want. :)
     
  29. Offline

    Skionz

    1. NEVER use youtube videos (fact). Buy this http://www.amazon.com/Fundamentals-Java-TM-Computer-Essentials/dp/0538744928

    2. Don't leave whole lines for your brackets; it's annoying. (opinion)
    3. Its better to overuse brackets instead of underusing them. It provides better readability. (opinion)
    Instead of
    Code:
    if(stuff == otherstuff)
      doMoreStuff();
    Do this
    Code:
    if(stuff == otherStuff) {
      doMoreStuff();
    }
     
    Funergy, xMrPoi and FerusGrim like this.
  30. Offline

    FerusGrim

    Skionz
    I've been thinking of trying different bracketing.
    Code:java
    1. public class SomeClass
    2. {
    3. public void someMethod()
    4. {
    5. // someCode
    6. }
    7. }


    Edit: Though, currently, I use the one you displayed.
     
Thread Status:
Not open for further replies.

Share This Page