aboutsummaryrefslogtreecommitdiffstats
path: root/src/me/fatpigsarefat/quests/commands/CommandQuests.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/me/fatpigsarefat/quests/commands/CommandQuests.java')
-rw-r--r--src/me/fatpigsarefat/quests/commands/CommandQuests.java136
1 files changed, 118 insertions, 18 deletions
diff --git a/src/me/fatpigsarefat/quests/commands/CommandQuests.java b/src/me/fatpigsarefat/quests/commands/CommandQuests.java
index a1975ef5..46258d64 100644
--- a/src/me/fatpigsarefat/quests/commands/CommandQuests.java
+++ b/src/me/fatpigsarefat/quests/commands/CommandQuests.java
@@ -4,17 +4,21 @@ import me.fatpigsarefat.quests.Quests;
import me.fatpigsarefat.quests.obj.Messages;
import me.fatpigsarefat.quests.obj.Options;
import me.fatpigsarefat.quests.player.QPlayer;
+import me.fatpigsarefat.quests.player.questprogressfile.QuestProgressFile;
import me.fatpigsarefat.quests.quests.Category;
import me.fatpigsarefat.quests.quests.Quest;
import me.fatpigsarefat.quests.quests.tasktypes.TaskType;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
+import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
+import java.util.UUID;
+
public class CommandQuests implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
@@ -108,41 +112,137 @@ public class CommandQuests implements CommandExecutor {
sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_PLAYERNOTFOUND.getMessage().replace("{player}", args[3]));
return true;
}
- //TODO finish moddata command
showAdminHelp(sender, "opengui");
return true;
} else if (args[1].equalsIgnoreCase("moddata")) {
+ Player player;
+ OfflinePlayer ofp;
+ UUID uuid;
+ String name;
+ if ((player = Bukkit.getPlayer(args[3])) != null) {
+ uuid = player.getUniqueId();
+ name = player.getName();
+ } else if ((ofp = Bukkit.getOfflinePlayer(args[3])) != null) {
+ uuid = ofp.getUniqueId();
+ name = ofp.getName();
+ } else {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_PLAYERNOTFOUND.getMessage().replace("{player}", args[3]));
+ return true;
+ }
+ if (args[2].equalsIgnoreCase("fullreset")) {
+ if (Quests.getPlayerManager().getPlayer(uuid) == null) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_LOADDATA.getMessage().replace("{player}", name));
+ Quests.getPlayerManager().loadPlayer(uuid, true);
+ }
+ if (Quests.getPlayerManager().getPlayer(uuid) == null) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_NODATA.getMessage().replace("{player}", name));
+ return true;
+ }
+ QuestProgressFile questProgressFile = Quests.getPlayerManager().getPlayer(uuid).getQuestProgressFile();
+ questProgressFile.clear();
+ questProgressFile.saveToDisk();
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_FULLRESET.getMessage().replace("{player}", name));
+ return true;
+ }
+ if (Quests.getPlayerManager().getPlayer(uuid).isOnlyDataLoaded()) {
+ Quests.getPlayerManager().removePlayer(uuid);
+ }
showAdminHelp(sender, "moddata");
return true;
}
} else if (args.length == 5) {
- if (args[2].equalsIgnoreCase("c") || args[2].equalsIgnoreCase("category")) {
- if (!Options.CATEGORIES_ENABLED.getBooleanValue()) {
- sender.sendMessage(Messages.COMMAND_CATEGORY_OPEN_DISABLED.getMessage());
+ if (args[1].equalsIgnoreCase("opengui")) {
+ if (args[2].equalsIgnoreCase("c") || args[2].equalsIgnoreCase("category")) {
+ if (!Options.CATEGORIES_ENABLED.getBooleanValue()) {
+ sender.sendMessage(Messages.COMMAND_CATEGORY_OPEN_DISABLED.getMessage());
+ return true;
+ }
+ Category category = Quests.getQuestManager().getCategoryById(args[4]);
+ if (category == null) {
+ sender.sendMessage(Messages.COMMAND_CATEGORY_OPEN_DOESNTEXIST.getMessage().replace("{category}", args[4]));
+ return true;
+ }
+ Player player = Bukkit.getPlayer(args[3]);
+ if (player != null) {
+ QPlayer qPlayer = Quests.getPlayerManager().getPlayer(player.getUniqueId());
+ if (qPlayer != null) {
+ qPlayer.openCategory(category);
+ sender.sendMessage(Messages.COMMAND_QUEST_OPENCATEGORY_ADMIN_SUCCESS.getMessage().replace("{player}", player.getName())
+ .replace("{category}", category.getId()));
+ return true;
+ }
+ }
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_PLAYERNOTFOUND.getMessage().replace("{player}", args[3]));
return true;
}
- Category category = Quests.getQuestManager().getCategoryById(args[4]);
- if (category == null) {
- sender.sendMessage(Messages.COMMAND_CATEGORY_OPEN_DOESNTEXIST.getMessage().replace("{category}", args[4]));
+ } else if (args[1].equalsIgnoreCase("moddata")) {
+ Player player;
+ OfflinePlayer ofp;
+ UUID uuid;
+ String name;
+ if ((player = Bukkit.getPlayer(args[3])) != null) {
+ uuid = player.getUniqueId();
+ name = player.getName();
+ } else if ((ofp = Bukkit.getOfflinePlayer(args[3])) != null) {
+ uuid = ofp.getUniqueId();
+ name = ofp.getName();
+ } else {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_PLAYERNOTFOUND.getMessage().replace("{player}", args[3]));
return true;
}
- Player player = Bukkit.getPlayer(args[3]);
- if (player != null) {
- QPlayer qPlayer = Quests.getPlayerManager().getPlayer(player.getUniqueId());
- if (qPlayer != null) {
- qPlayer.openCategory(category);
- sender.sendMessage(Messages.COMMAND_QUEST_OPENCATEGORY_ADMIN_SUCCESS.getMessage().replace("{player}", player.getName())
- .replace("{category}", category.getId()));
+ if (Quests.getPlayerManager().getPlayer(uuid) == null) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_LOADDATA.getMessage().replace("{player}", name));
+ Quests.getPlayerManager().loadPlayer(uuid, true);
+ }
+ if (Quests.getPlayerManager().getPlayer(uuid) == null) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_NODATA.getMessage().replace("{player}", name));
+ return true;
+ }
+ QuestProgressFile questProgressFile = Quests.getPlayerManager().getPlayer(uuid).getQuestProgressFile();
+ Quest quest = Quests.getQuestManager().getQuestById(args[4]);
+ if (quest == null) {
+ sender.sendMessage(Messages.COMMAND_QUEST_START_DOESNTEXIST.getMessage().replace("{quest}", args[4]));
+ return true;
+ }
+ if (args[2].equalsIgnoreCase("reset")) {
+ questProgressFile.generateBlankQuestProgress(quest.getId());
+ questProgressFile.saveToDisk();
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_RESET_SUCCESS.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
+ } else if (args[2].equalsIgnoreCase("start")) {
+ int response = questProgressFile.startQuest(quest);
+ if (response == 1) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILLIMIT.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
+ } else if (response == 2) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILCOMPLETE.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
+ } else if (response == 3) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILCOOLDOWN.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
+ } else if (response == 4) {
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_FAILLOCKED.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
return true;
}
+ questProgressFile.saveToDisk();
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_START_SUCCESS.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
+ } else if (args[2].equalsIgnoreCase("complete")) {
+ questProgressFile.completeQuest(quest);
+ questProgressFile.saveToDisk();
+ sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_COMPLETE_SUCCESS.getMessage().replace("{player}", name).replace("{quest}", quest.getId()));
+ return true;
}
- sender.sendMessage(Messages.COMMAND_QUEST_ADMIN_PLAYERNOTFOUND.getMessage().replace("{player}", args[3]));
+ if (Quests.getPlayerManager().getPlayer(uuid).isOnlyDataLoaded()) {
+ Quests.getPlayerManager().removePlayer(uuid);
+ }
+ showAdminHelp(sender, "moddata");
return true;
}
- }
- showAdminHelp(sender, null);
- return true;
+ showAdminHelp(sender, null);
+ return true;
+ }
}
if (sender instanceof Player && (args[0].equalsIgnoreCase("q") || args[0].equalsIgnoreCase("quests"))) {
Player player = (Player) sender;