// Récupération de l'évènement lorsqu'une entité meurt public void handle(DestructEntityEvent.Death event) throws Exception { String cause = event.getCause().toString(); // Si la mort a été causée par un joueur grâce à une arme if (cause.contains("Name=player, Type=attack")) { // On récupère l'id de l'entité morte String mobId = event.getTargetEntity().getType().getId(); // Achievement KillMob Iterator iterator = this.core.getMobs().iterator(); // On parcoure la liste des achievements de type KillMob et on vérifie si l'id de l'entité // tuée // correspond à l'id enregistrée dans l'achievement // Ensuite on vérifie que le bon nombre d'entité de ce type ont été tuées // Si oui, on valide l'achievement while (iterator.hasNext()) { AchievementKillMob achiev = (AchievementKillMob) iterator.next(); if (mobId.equals(achiev.getMobId())) { String causePlayer = getPlayerFromCause(event.getCause().toString()); String userUUID = core.getGame().getServer().getPlayer(causePlayer).get().getUniqueId().toString(); if (!playerHasAchievment(userUUID, achiev.getName())) { // Récupérer le nombre de mobs tués par le joueur int mobToKill = getMobToKill(achiev, causePlayer); addKilledMob(userUUID, achiev.getBadgeID(), mobToKill - 1); if (mobToKill == 0) { validAchievement(achiev, cause); break; } } } } } }