Les quêtes
Mis à jour
Ce contenu vous a-t-il été utile ?
Ce contenu vous a-t-il été utile ?
package fr.openmc.core.features.quests.quests;
import fr.openmc.core.features.quests.objects.Quest;
import fr.openmc.core.features.quests.objects.QuestTier;
import fr.openmc.core.features.quests.rewards.QuestMoneyReward;
import org.bukkit.Material;
public class MinerQuest extends Quest {
public MinerQuest() {
// Nom de la quête: String, description: String, icône: ItemStack ou Material, Action bar: boolean *facultatif*
super("Mineur professionnel", "Miner {target} blocs", Material.DIAMOND_PICKAXE, false);
this.addTiers(
new QuestTier(10, new QuestMoneyReward(100)),
new QuestTier(50, new QuestMoneyReward(500)),
new QuestTier(100, new QuestMoneyReward(1000))
);
}
}public void loadDefaultQuests() {
this.registerQuests(
new MinerQuest(),
new FishingQuest(),
// Autres quêtes...
);
} @EventHandler
public void onPlayerBreakBlock(BlockBreakEvent event) {
if (event.getBlock().getType() == Material.DIAMOND_ORE) {
// incrementer la progression de la quête de 1
this.incrementProgress(event.getPlayer().getUniqueId());
}
} @EventHandler
public void onPlayerBreakBlock(FurnaceExtractEvent event) {
if (event.getBlock().getType() == Material.DIAMOND_ORE) {
if (event.getItemType().equals(Material.IRON_INGOT)) {
int amount = event.getItemAmount(); // Récupérer le nombre d'items extraits
// incrementer la progression de la quête de amount (n)
this.incrementProgress(event.getPlayer().getUniqueId(), amount);
}
}
} this.incrementStepProgress(playerUUID, 0); // Incrémente la progression de l'étape 0 (= index)
this.incrementProgress(playerUUID); // Incrémente la progression de la quête// Donne 5 diamants
new QuestItemReward(Material.DIAMOND, 5);
// Ou avec un ItemStack personnalisé
ItemStack customItem = new ItemStack(Material.DIAMOND_SWORD);
// Personnalisation de l'objet...
new QuestItemReward(customItem);// Donne 500 unités de monnaie
new QuestMoneyReward(500);Quest armorQuest = new QuestBuilder("Armure précieuse", "Fabriquer une armure complète en diamant", new ItemStack(Material.DIAMOND_CHESTPLATE))
.tier(4, "Fabriquer une armure complète en diamant", new QuestItemReward(Material.DIAMOND, 10))
.step("Casque en diamant", 1)
.step("Plastron en diamant", 1)
.step("Pantalon en diamant", 1)
.step("Bottes en diamant", 1)
.requireAllSteps(true)
.build();
// Enregistrer la quête
for (int i = 0; i < armorQuest.getTiers().size(); i++) {
this.addTier(armorQuest.getTiers().get(i)); // Ajoute chaque palier à la quête
}