Thanks for the plugin!  The logic in OnPlayerConnected() needs to be optimized or the player user id in data (in WakeInfo.json) duplicates every time the plugin is reloaded, the server restarts, or the player connects.

Function Update/Fixes:

private void OnPlayerConnected(BasePlayer player)
{
if (player == null) return;

bool bPlayerAlreadyAdded = _data.Players.Contains(player.userID);
if (_config.Introduce && bPlayerAlreadyAdded) return;

_config.Notes
.FindAll(note => note.Enabled && (string.IsNullOrEmpty(note.Permission) || permission.UserHasPermission(player.UserIDString, note.Permission)))
.ForEach(note => note.Get(player));

if (!bPlayerAlreadyAdded) { _data.Players.Add(player.userID); }
}