#####1) You should use Map instead of HashMap for your maps when you do not need the extended features of a HashMap.
Map<Something, SomethingElse> map = new HashMap<>();
This is known as the Liskov substitution principle.
#####2) Try to make variables final when possible. http://stackoverflow.com/questions/137868/using-final-modifier-whenever-applicable-in-java
#####3) Take a look at using abstract constructors. This will make it much cleaner & harder to make mistakes when adding new commands. See my example below.
There are other small things I could pick up on, but these are the main ones.
Thanks for the suggestions, however for the abstract constructor, I don't like it how it's setup that way (personal preference) IMO it looks a bit unorganized as it's all just one line and such. I like the way I have it setup where I can just put in what I need and I feel like it looks better. I will definitely keep in mind everything else though, thanks!