add some javadocs, update some formatting
replace ArrayList with HashSet where appropriate

lists of materials to check membership of with .contains() method
add no leash permission message