Players should only be spammed with a message at the following points:
Once when the plugin first tries to promote them,
Once when the player logs in to the server,
Once every hour.
Possible implementation
A good possible implementation would be to schedule a task to run every hour to notify all relevant players, along with in a onPlayerJoin method.
In the updatePlayer method utilize a variable stored in the config with the player's data called e.g. promotePending to ensure that the message is only shown once, either set this when the player is added to the config (the value being false) or when the plugin first tries to promote them.
When the plugin first tries to promote them, if they are not forum registered set this to true, then each time the method is called check to see if the variable exists and if it's true don't display the message, then once promoted remove the variable from the config or set it to false.
Players should only be spammed with a message at the following points:
Possible implementation
A good possible implementation would be to schedule a task to run every hour to notify all relevant players, along with in a onPlayerJoin method.
In the updatePlayer method utilize a variable stored in the config with the player's data called e.g. promotePending to ensure that the message is only shown once, either set this when the player is added to the config (the value being false) or when the plugin first tries to promote them.
When the plugin first tries to promote them, if they are not forum registered set this to true, then each time the method is called check to see if the variable exists and if it's true don't display the message, then once promoted remove the variable from the config or set it to false.