From 431aaf46fce8cc991e59e27946579fd7d0d6bed5 Mon Sep 17 00:00:00 2001 From: BONNe Date: Thu, 2 Feb 2023 23:29:06 +0200 Subject: [PATCH] Add requirement-not-met-material and requirement-not-met-entity to display statistic required item on error. --- .../challenges/tasks/TryToComplete.java | 27 ++++++++++++++++--- src/main/resources/locales/en-US.yml | 2 ++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java index 22d2ef7..41b2ed3 100644 --- a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java +++ b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java @@ -1461,10 +1461,29 @@ public class TryToComplete if (currentValue < requirements.getAmount()) { - Utils.sendMessage(this.user, this.user.getTranslation("challenges.errors.requirement-not-met", - TextVariables.NUMBER, String.valueOf(requirements.getAmount()), - "[statistic]", Utils.prettifyObject(requirements.getStatistic(), this.user), - "[value]", String.valueOf(currentValue))); + switch (Objects.requireNonNull(requirements.getStatistic()).getType()) + { + case ITEM, BLOCK -> { + Utils.sendMessage(this.user, this.user.getTranslation("challenges.errors.requirement-not-met-material", + TextVariables.NUMBER, String.valueOf(requirements.getAmount()), + "[statistic]", Utils.prettifyObject(requirements.getStatistic(), this.user), + "[material]", Utils.prettifyObject(requirements.getMaterial(), this.user), + "[value]", String.valueOf(currentValue))); + } + case ENTITY -> { + Utils.sendMessage(this.user, this.user.getTranslation("challenges.errors.requirement-not-met-entity", + TextVariables.NUMBER, String.valueOf(requirements.getAmount()), + "[statistic]", Utils.prettifyObject(requirements.getStatistic(), this.user), + "[entity]", Utils.prettifyObject(requirements.getEntity(), this.user), + "[value]", String.valueOf(currentValue))); + } + default -> { + Utils.sendMessage(this.user, this.user.getTranslation("challenges.errors.requirement-not-met", + TextVariables.NUMBER, String.valueOf(requirements.getAmount()), + "[statistic]", Utils.prettifyObject(requirements.getStatistic(), this.user), + "[value]", String.valueOf(currentValue))); + } + } } else { diff --git a/src/main/resources/locales/en-US.yml b/src/main/resources/locales/en-US.yml index f80e638..1b8b67b 100755 --- a/src/main/resources/locales/en-US.yml +++ b/src/main/resources/locales/en-US.yml @@ -1204,6 +1204,8 @@ challenges: not-hooked: "&c Challenges Addon could not find any GameMode." timeout: "&c This challenge requires to wait [timeout] between completions. You must wait [wait-time] till complete it again." requirement-not-met: "&c This challenge requires [statistic] to have [number]. You have only [value]. " + requirement-not-met-entity: "&c This challenge requires [statistic] [entity] to have [number]. You have only [value]. " + requirement-not-met-material: "&c This challenge requires [statistic] [material] to have [number]. You have only [value]. " # # Showcase for manual material translation # materials: # # Names should be lowercase.