[JAVA] Vérifié si le bloc à été posé par un joueur quand on le casse

  • Auteur de la discussion Auteur de la discussion Kenda
  • Date de début Date de début

Kenda

Architecte en herbe
16 Juillet 2016
316
1
2
125
32
www.youtube.com
Bonjour/Bonsoir,

Je suis actuellement à la recherche d'un moyen afin de savoir si le bloc que le joueur casse, si il à été posé par un joueur (dans ce cas là, un message s'affiche pour un test).

Test :
Si le joueur 1 casse un bloc qui à été généré par le monde, on affiche "Généré par le monde"
Si le joueur 1 casse le bloc posé par le joueur 2, on affiche "posé par un joueur"
Si le joueur 1 casse un bloc généré par le monde, puis reposé par lui, pour la suite le recassé, on affiche "posé par un joueur".
(J'espère que vous aurez compris)

Si certains aurais une méthode car j'ai pas réellement trouvé de solution sur internet :)

Merci d'avance.
 
Bonsoir,

Le jeu ne sauvegarde pas si le bloc a été généré par le générateur de monde ou s'il a été posé par un joueur, c'est donc à toi de sauvegarder et d'invalider les coordonnées de tous les blocs posés par les joueurs et partir du principe que s'il n'a pas été posé alors le bloc a été généré par le monde.

Cordialement,
ShE3py
 
Bonsoir.

Personnellement, j'utiliserai CoreProtect (https://www.spigotmc.org/resources/coreprotect.8631/) pour logger les informations sur les plugins, et je ferai un petit plugin fait main en utilisant l'API de CoreProtect (https://www.spigotmc.org/resources/coreprotect.8631/).

Aucune idée si c'est la méthode la plus optimisée, mais sur le papier, ça devrait fonctionner:
Quand le monde est généré par le générateur de monde (qu'il s'agit du générateur de basse ou d'un plugin tier), CoreProtect ne log rien (et heureusement !). De ce fait, il te suffit de tester si la localisation possède un historique ou non.
Si le joueur ne possède pas une permission et si la localisation possède un historique, tu cancel l'event et tu envoies le message de test que tu souhaitais, sinon rien.

En espérant t'avoir aidé !