Seems to do as advertised, but there's a few things I'd change
- Namespace your variables. For example {staffchatsk.staffchat::*} instead of just {staffchat::*}.
- Use lists. Lists are wonderful and make the lives of both you and the end-user much easier. In a lot of cases, using lists can be done simply by replacing . with :: - Lists provide all kinds of useful features, such as getting or clearing all elements of a list
- Use UUIDs. Names can be changed by the player, which is both a vulnerability and storage issue. UUIDs persist through name changes, and in most cases, you can easily replace %player% with %player's uuid% and have your script remain unaffected (except better).
Overall, although there's some things I'd change, it's an alright script and it has potential. Keep going! :)