I was browsing the forum for something similar to this, but couldn't find one. i took it upon myself to make this and share it.
The String array is pretty long due to the amount of different events there are and the NPCs accociated. Personally I used the NPC interaction in a case statement, but whatever works for you.
I made a Woodcutting script with path walking and banking, and a Slayer script with ground item pickup, each took about 2 days with custom anti-ban, given I already know some java.