2 solutions potables:
1:
Un manager core side, et une table dans ta db qui comptabilise les votes. Le manager remunère en fonction de ce que la table contient.
2:
Le site controle si le perso est en ligne, si oui, refus, si non il controle l'existence d'un quete custom genre "votereward", si elle existe, on continue, sinon le site crée les données de base de la quete pour le perso. Une fois que c'est fait, il te reste plus qu'à incrementer une valeure de cette quete en db, et créer le npc qui lira les données de cette quete pour le perso et se chargera de lui donner les items et reset le compteur.
A ne pas faire: Injecter l'item directement dans l'inventaire du player. Pourquoi? A cause de l'objectId, qui ne sera pas vu par le serveur et qui risque de rentrer en conflit avec un item qui pourrait être créé après que tu ai injecté l'item.