diff --git a/src/com/dogonfire/exams/ExamManager.java b/src/com/dogonfire/exams/ExamManager.java index ec1ec46..20b603a 100644 --- a/src/com/dogonfire/exams/ExamManager.java +++ b/src/com/dogonfire/exams/ExamManager.java @@ -27,6 +27,10 @@ import org.bukkit.entity.Player; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.plugin.RegisteredServiceProvider; +import org.bukkit.advancement.Advancement; +import org.bukkit.advancement.AdvancementProgress; +import org.bukkit.entity.Player; +import org.bukkit.NamespacedKey; import net.milkbowl.vault.economy.Economy; @@ -417,6 +421,21 @@ public void calculateExamResult(String playerName) plugin.sendMessage(playerName, ChatColor.GREEN + "Congratulations, you passed the exam!"); plugin.sendToAll(ChatColor.GREEN + playerName + " just PASSED the " + ChatColor.YELLOW + plugin.getStudentManager().getExamForStudent(playerName) + ChatColor.GREEN + " exam!"); + + // giving player an advancement for passing an exam if set to true + if (plugin.grantAdvancement) { + Advancement a = Bukkit.getAdvancement(NamespacedKey.fromString(plugin.examAdvacementName)); + if(a != null){ + Player player = Bukkit.getServer().getPlayer(playerName); + AdvancementProgress progress = player.getAdvancementProgress(a); + if(progress.isDone() == false) { + player.getAdvancementProgress(a).awardCriteria("Student"); + } + }else{ + plugin.logDebug("Failed to find Advancement"); + } + } + } else { diff --git a/src/com/dogonfire/exams/Exams.java b/src/com/dogonfire/exams/Exams.java index 61b0e1c..0877e6e 100644 --- a/src/com/dogonfire/exams/Exams.java +++ b/src/com/dogonfire/exams/Exams.java @@ -20,9 +20,11 @@ public class Exams extends JavaPlugin public boolean debug = false; public boolean examPricesEnabled = true; + public boolean grantAdvancement = false; public String serverName = "Your Server"; public String languageFilename = "english.yml"; + public String examAdvacementName = "doggycraft:doggycraft/student"; public int minExamTime = 60; public int autoCleanTime = 8*60; @@ -86,6 +88,8 @@ public void loadSettings() serverName = config.getString("ServerName", "Your Server"); minExamTime = config.getInt("MinExamTime", 60); requiredExamScore = config.getInt("RequiredExamScore", 80); + examAdvacementName = config.getString("AdvancementName", "doggycraft:doggycraft/student"); + grantAdvancement = config.getBoolean("GrantAdvancement", false); debug = config.getBoolean("Debug", false); } @@ -94,6 +98,8 @@ public void saveSettings() config.set("ServerName", serverName); config.set("MinExamTime", minExamTime); config.set("RequiredExamScore", requiredExamScore); + config.set("AdvancementName", examAdvacementName); + config.set("GrantAdvancement", grantAdvancement); config.set("Debug", debug); saveConfig();