Better use an active fork or L2J itself and join their community (generally, each project got at least a Discord) - you will generally find dedicated ppl to answer your questions.
About practicing, as I said, you have to at least understand Java OOP concepts (mandatory, will help you a lot to understand what you exactly do - if not, you will eventually guess it after 2-3 months).
You should apply manually customs (adapting them from one project to another is even better, since it forces you to seek through files). Start with basic customs, few lines max. Then raise the difficulty with more advanced customs.
In the meantime, try to modify them for your needs or experiment.
It's really annoying and hard to apprehend for a newbie, but you should also read and understand about git/svn (version control systems). Those systems allow you to generate "restore points" everytime you commit in your project, allowing you to eventually revert back. It will be extremely useful once you do crap. Gitlab / github (GIT technology) is the way to go those days, but SVN is really fine (and easier to use, since more basic) if you work alone. Try even with a non Java project, it's not important, from the moment you understand how to generate such a repository, commit over it, and be able to revert back.
If you don't use such system, your project will eventually break one day, and you won't be able to revert what you did. That's basically how I lost my first Java project, back in 2010.
Back in the days we had l2robot. It was specially designed to spam F1-F12 only over the l2 game window, so you could minimize the game and still keep the so called bot running. After the new anti - boting services came up i couldn't inject it to the l2.exe process anymore. You never know... give it a try:
Download Link (tested and working, without password on the rar): https://www.4shared.com/s/f4WXcQIwGge
YouTuBe Video with instructions how to use it: https://www.youtube.com/watch?v=ypVN3pucmvM