[Développement plugin] Problème API Citizens2

Hautension25

Despote retraité
27 Juillet 2015
4
1
4
Bonsoir tout le monde,

Tout d'abord je vous explique le contexte : je suis en train de coder mon propre plugin permettant d'installer un service postal sur serveur. Je me suis dit pour animer un peu la chose, je me suis permis de prendre l'API de Citizens 2 pour faire les facteurs. En effet des pnjs qui courent dans tous les sens pour livrer le courrier ça fait beaucoup plus vivant.

Bref on s’écarte du sujet, mon problème est le suivant :

Pour créer un PNJ j'utilise :
Code:
NPCRegistry registry = CitizensAPI.getNPCRegistry();
   
NPC facteur = registry.createNPC(EntityType.PLAYER, "Intendant");

Une fois mes pnjs créés, ils se mettent à travailler, tout va bien.

Mais je souhaite, lors d'un reboot ou d'un reload du serveur, pouvoir récupérer mes pnjs.

Pour ça, lors du redémarrage du serveur, est appelé :
Code:
NPCRegistry registry = CitizensAPI.getNPCRegistry();
facteur = registry.getByUniqueId(sc.getIdNPC());

ET LA C'EST LE DRAME !

Le NPCRegistry registry semble être différent que celui avant le reboot et ne contient aucun pnj ... Or dans le save.yml de Citizens ils existent ...

Notez que le sc.getIdNPC() fonctionne correctement et retourne le bon UUID ( vérifié dans le .yml)

D'autres part j'ai remarqué que lorsque l'on appelait à nouveau la méthode pour instancier le registre, il était à nouveau différent.

Il m'est donc impossible de récupérer mes pauvres facteurs ... Pourtant ils existent physiquement sur le serveur.

Les configs :
- serveur Spigot 1.8.7

- Citizens 2 : 2.0.16

Voilà je me tourne vers vous pour m'éclairer car même la page 2 de notre ami Google n'a pas su m'aider ...

En vous remerciant

(et j'espère ne pas avoir posté dans la mauvaise partie :s )