added /mi quest finish <player>

This commit is contained in:
Indyuce 2021-12-22 12:39:15 +01:00
parent 5014fbfd65
commit 3178d702c5
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,45 @@
package net.Indyuce.mmocore.command.rpg.quest;
import io.lumine.mythic.lib.commands.mmolib.api.CommandTreeNode;
import io.lumine.mythic.lib.commands.mmolib.api.Parameter;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.quest.PlayerQuests;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class FinishCommandTreeNode extends CommandTreeNode {
public FinishCommandTreeNode(CommandTreeNode parent) {
super(parent, "finish");
addParameter(Parameter.PLAYER);
}
@Override
public CommandResult execute(CommandSender sender, String[] args) {
if (args.length < 3)
return CommandResult.THROW_USAGE;
Player player = Bukkit.getPlayer(args[2]);
if (player == null) {
sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + ".");
return CommandResult.FAILURE;
}
PlayerQuests quests = PlayerData.get(player).getQuestData();
if (!quests.hasCurrent()) {
if (sender instanceof Player)
sender.sendMessage(ChatColor.RED + player.getName() + " has no ongoing quest.");
return CommandResult.SUCCESS;
}
// Complete all objectives
while (quests.hasCurrent())
quests.getCurrent().completeObjective();
if (sender instanceof Player)
sender.sendMessage(ChatColor.YELLOW + player.getName() + " no longer has any ongoing quest.");
return CommandResult.SUCCESS;
}
}

View File

@ -11,6 +11,7 @@ public class QuestCommandTreeNode extends CommandTreeNode {
addChild(new StartCommandTreeNode(this));
addChild(new CancelCommandTreeNode(this));
addChild(new FinishCommandTreeNode(this));
}
@Override