diff --git a/src/main/java/com/alttd/altitudequests/commands/CommandManager.java b/src/main/java/com/alttd/altitudequests/commands/CommandManager.java index 4cc7c7c..9f4aec8 100644 --- a/src/main/java/com/alttd/altitudequests/commands/CommandManager.java +++ b/src/main/java/com/alttd/altitudequests/commands/CommandManager.java @@ -36,7 +36,9 @@ public class CommandManager implements CommandExecutor, TabExecutor { new CommandTurnIn(), new CommandSetQuest(), new CommandGetReward(), - new CommandProgress()); + new CommandProgress(), + new CommandReRoll() + ); } @Override diff --git a/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java new file mode 100644 index 0000000..e707351 --- /dev/null +++ b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandReRoll.java @@ -0,0 +1,50 @@ +package com.alttd.altitudequests.commands.subcommands; + +import com.alttd.altitudequests.commands.SubCommand; +import com.alttd.altitudequests.config.MessagesConfig; +import com.alttd.altitudequests.objects.Quest; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class CommandReRoll extends SubCommand { + @Override + public boolean onCommand(CommandSender commandSender, String[] args) { + if (!(commandSender instanceof Player player)) { + commandSender.sendMiniMessage(MessagesConfig.NO_CONSOLE, null); + return true; + } + if (player.hasPermission("aquest.reroll.on-cooldown")) { + commandSender.sendMiniMessage(MessagesConfig.NO_RE_ROLL_YET, null); + return true; + } + Quest.createDailyQuest(player); + commandSender.sendMiniMessage(MessagesConfig.QUEST_RE_ROLLED, null); + ConsoleCommandSender consoleSender = Bukkit.getConsoleSender(); + Bukkit.dispatchCommand(consoleSender, "lp user %s permission settemp aquest.reroll.on-cooldown true 7d"); + return true; + } + + @Override + public String getName() { + return "reroll"; + } + + @Override + public List getTabComplete(CommandSender commandSender, String[] args) { + return List.of(); + } + + @Override + public String getHelpMessage() { + return MessagesConfig.RE_ROLL_HELP; + } + + @Override + public boolean shouldTabComplete() { + return true; + } +} diff --git a/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java b/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java index 195e736..7c8b1ae 100644 --- a/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java +++ b/src/main/java/com/alttd/altitudequests/config/MessagesConfig.java @@ -21,6 +21,7 @@ public class MessagesConfig extends AbstractConfig{ public static String RELOAD_HELP_MESSAGE = "Reload configs: /aquest reload"; public static String CREATE_SCRUFF_MESSAGE = "Create Scruff: /aquest createscruff "; public static String SET_QUEST_HELP = "Set quest: /aquest setquest "; + public static String RE_ROLL_HELP = "Get a new quest: /aquest reroll"; private static void loadHelp() { HELP_MESSAGE_WRAPPER = config.getString("help.help-wrapper", HELP_MESSAGE_WRAPPER); @@ -38,6 +39,8 @@ public class MessagesConfig extends AbstractConfig{ public static String REWARD_SENT = "[Mascot] Scruff: Thank you for completing the quest! Your reward has been sent!"; public static String FINISHED_QUEST = "[Mascot] Scruff: You finished your quest! Don't forget to collect your reward at the end of the quest book!"; public static String NOT_FINISHED_QUEST = "You have not finished this quest yet."; + public static String QUEST_RE_ROLLED = "[Mascot] Scruff: I see, that last quest was too much for you, that's okay I have given you another one!"; + public static String NO_RE_ROLL_YET = "[Mascot] Scruff: Sorry, you already rerolled your quest within the last 7 days. I can't give you a different quest quite yet."; private static void loadMessages() { TOO_FAR_FROM_NPC = config.getString("messages.too-far-from-npc", TOO_FAR_FROM_NPC); DAILY_ALREADY_DONE = config.getString("messages.daily-already-done", DAILY_ALREADY_DONE); @@ -46,6 +49,8 @@ public class MessagesConfig extends AbstractConfig{ FINISHED_QUEST = config.getString("messages.finished-quest", FINISHED_QUEST); REWARD_SENT = config.getString("messages.reward-send", REWARD_SENT); NOT_FINISHED_QUEST = config.getString("messages.not-finished-quest", NOT_FINISHED_QUEST); + QUEST_RE_ROLLED = config.getString("messages.re-rolled-quest", QUEST_RE_ROLLED); + NO_RE_ROLL_YET = config.getString("messages.no-re-rolled-yet", NO_RE_ROLL_YET); } public static String NO_PERMISSION = "You do not have permission to do that.";