diff --git a/pom.xml b/pom.xml
index 4a91078..d578e18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,8 +35,8 @@
1.8
2.0.2
- 1.15.2-R0.1-SNAPSHOT
- 1.15.4
+ 1.16.5-R0.1-SNAPSHOT
+ 1.16.0
2.5.0
1.7
diff --git a/src/main/java/world/bentobox/challenges/panel/CommonGUI.java b/src/main/java/world/bentobox/challenges/panel/CommonGUI.java
index e3d69af..6252fc4 100644
--- a/src/main/java/world/bentobox/challenges/panel/CommonGUI.java
+++ b/src/main/java/world/bentobox/challenges/panel/CommonGUI.java
@@ -7,6 +7,7 @@ import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
+import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.conversations.Conversation;
@@ -27,6 +28,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.inventory.meta.SpawnEggMeta;
import org.bukkit.inventory.meta.TropicalFishBucketMeta;
import org.bukkit.potion.PotionData;
+import org.bukkit.potion.PotionEffect;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
@@ -36,6 +38,7 @@ import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.panels.PanelItem;
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
import world.bentobox.bentobox.api.user.User;
+import world.bentobox.bentobox.hooks.LangUtilsHook;
import world.bentobox.bentobox.util.Util;
import world.bentobox.challenges.ChallengesAddon;
import world.bentobox.challenges.ChallengesManager;
@@ -746,7 +749,7 @@ public abstract class CommonGUI
for (Map.Entry entry : challenge.getRequiredBlocks().entrySet())
{
result.add(this.user.getTranslation("challenges.gui.descriptions.block",
- "[block]", Util.prettifyText(entry.getKey().name()),
+ "[block]", LangUtilsHook.getMaterialName(entry.getKey(), user),
"[count]", Integer.toString(entry.getValue())));
}
}
@@ -759,7 +762,7 @@ public abstract class CommonGUI
for (Map.Entry entry : challenge.getRequiredEntities().entrySet())
{
result.add(this.user.getTranslation("challenges.gui.descriptions.entity",
- "[entity]", Util.prettifyText(entry.getKey().name()),
+ "[entity]", LangUtilsHook.getEntityName(entry.getKey(), user),
"[count]", Integer.toString(entry.getValue())));
}
}
@@ -913,7 +916,7 @@ public abstract class CommonGUI
List result = new ArrayList<>();
result.add(this.user.getTranslation("challenges.gui.item-description.item",
- "[item]", Util.prettifyText(itemStack.getType().name()),
+ "[item]", LangUtilsHook.getItemName(itemStack, user),
"[count]", Integer.toString(itemStack.getAmount())));
if (itemStack.hasItemMeta())
@@ -942,7 +945,8 @@ public abstract class CommonGUI
{
((EnchantmentStorageMeta) meta).getStoredEnchants().forEach(((enchantment, level) -> {
result.add(this.user.getTranslation("challenges.gui.item-description.item-enchant",
- "[enchant]", enchantment.getKey().getKey(), "[level]", Integer.toString(level)));
+ "[enchant]", LangUtilsHook.getEnchantName(enchantment, user),
+ "[level]", LangUtilsHook.getEnchantLevelName(level, user)));
}));
}
else if (meta instanceof KnowledgeBookMeta)
@@ -952,8 +956,10 @@ public abstract class CommonGUI
}
else if (meta instanceof LeatherArmorMeta)
{
- result.add(this.user.getTranslation("challenges.gui.item-description.armor-color",
- "[color]", ((LeatherArmorMeta) meta).getColor().toString()));
+ // The color value should be displayed like "#2B50E1"
+ Color color = ((LeatherArmorMeta) meta).getColor();
+ String cols = String.format("#%02X%02X%02X", color.getRed(), color.getGreen(), color.getBlue());
+ result.add(this.user.getTranslation("challenges.gui.item-description.armor-color", "[color]", cols));
}
else if (meta instanceof PotionMeta)
{
@@ -962,33 +968,37 @@ public abstract class CommonGUI
if (data.isExtended() && data.isUpgraded())
{
result.add(this.user.getTranslation("challenges.gui.item-description.potion-type-extended-upgraded",
- "[name]", Util.prettifyText(data.getType().name())));
+ "[name]", LangUtilsHook.getPotionTypeName(data.getType(), user)));
}
else if (data.isUpgraded())
{
result.add(this.user.getTranslation("challenges.gui.item-description.potion-type-upgraded",
- "[name]", Util.prettifyText(data.getType().name())));
+ "[name]", LangUtilsHook.getPotionTypeName(data.getType(), user)));
}
else if (data.isExtended())
{
result.add(this.user.getTranslation("challenges.gui.item-description.potion-type-extended",
- "[name]", Util.prettifyText(data.getType().name())));
+ "[name]", LangUtilsHook.getPotionTypeName(data.getType(), user)));
}
else
{
result.add(this.user.getTranslation("challenges.gui.item-description.potion-type",
- "[name]", Util.prettifyText(data.getType().name())));
+ "[name]", LangUtilsHook.getPotionTypeName(data.getType(), user)));
}
if (((PotionMeta) meta).hasCustomEffects())
{
result.add(this.user.getTranslation("challenges.gui.item-description.custom-effects"));
- ((PotionMeta) meta).getCustomEffects().forEach(potionEffect ->
- result.add(this.user.getTranslation("challenges.gui.item-description.potion-effect",
- "[effect]", Util.prettifyText(potionEffect.getType().getName()),
- "[duration]", Integer.toString(potionEffect.getDuration()),
- "[amplifier]", Integer.toString(potionEffect.getAmplifier()))));
+ ((PotionMeta) meta).getCustomEffects().forEach(potionEffect -> {
+ int duration = potionEffect.getDuration();
+ int m = duration / 20 / 60;
+ int s = duration / 20 % 60;
+ result.add(this.user.getTranslation("challenges.gui.item-description.potion-effect",
+ "[effect]", LangUtilsHook.getPotionEffectName(potionEffect.getType(), user),
+ "[duration]", String.format("%d:%02d", m, s),
+ "[amplifier]", LangUtilsHook.getEffectAmplifierName(potionEffect.getAmplifier(), user)));
+ });
}
}
else if (meta instanceof SkullMeta)
@@ -1002,16 +1012,17 @@ public abstract class CommonGUI
else if (meta instanceof SpawnEggMeta)
{
result.add(this.user.getTranslation("challenges.gui.item-description.egg-meta",
- "[mob]", Util.prettifyText(((SpawnEggMeta) meta).getSpawnedType().name())));
+ "[mob]", LangUtilsHook.getEntityName(((SpawnEggMeta) meta).getSpawnedType(), user)));
}
else if (meta instanceof TropicalFishBucketMeta)
{
- if (((TropicalFishBucketMeta) meta).hasVariant())
+ TropicalFishBucketMeta fishMeta = (TropicalFishBucketMeta) meta;
+ if ((fishMeta).hasVariant())
{
result.add(this.user.getTranslation("challenges.gui.item-description.fish-meta",
- "[pattern]", Util.prettifyText(((TropicalFishBucketMeta) meta).getPattern().name()),
- "[pattern-color]", Util.prettifyText(((TropicalFishBucketMeta) meta).getPatternColor().name()),
- "[body-color]", Util.prettifyText(((TropicalFishBucketMeta) meta).getBodyColor().name())));
+ "[pattern]", LangUtilsHook.getTropicalFishTypeName(fishMeta.getPattern(), user),
+ "[pattern-color]", LangUtilsHook.getDyeColorName(fishMeta.getPatternColor(), user),
+ "[body-color]", LangUtilsHook.getDyeColorName(fishMeta.getBodyColor(), user)));
}
}
@@ -1020,9 +1031,9 @@ public abstract class CommonGUI
itemStack.getEnchantments().forEach((enchantment, level) -> {
result.add(this.user.getTranslation("challenges.gui.item-description.item-enchant",
"[enchant]",
- enchantment.getKey().getKey(),
+ LangUtilsHook.getEnchantName(enchantment, user),
"[level]",
- Integer.toString(level)));
+ LangUtilsHook.getEnchantLevelName(level, user)));
});
}
}
diff --git a/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java b/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java
index 837e7ee..2dab206 100644
--- a/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java
+++ b/src/main/java/world/bentobox/challenges/panel/admin/EditChallengeGUI.java
@@ -17,6 +17,7 @@ import world.bentobox.bentobox.api.panels.PanelItem;
import world.bentobox.bentobox.api.panels.builders.PanelBuilder;
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
import world.bentobox.bentobox.api.user.User;
+import world.bentobox.bentobox.hooks.LangUtilsHook;
import world.bentobox.bentobox.util.Util;
import world.bentobox.challenges.ChallengesAddon;
import world.bentobox.challenges.database.object.Challenge;
@@ -644,7 +645,7 @@ public class EditChallengeGUI extends CommonGUI
for (Map.Entry entry : requirements.getRequiredEntities().entrySet())
{
description.add(this.user.getTranslation("challenges.gui.descriptions.entity",
- "[entity]", Util.prettifyText(entry.getKey().name()),
+ "[entity]", LangUtilsHook.getEntityName(entry.getKey(), user),
"[count]", Integer.toString(entry.getValue())));
}
@@ -694,7 +695,7 @@ public class EditChallengeGUI extends CommonGUI
for (Map.Entry entry : requirements.getRequiredBlocks().entrySet())
{
description.add(this.user.getTranslation("challenges.gui.descriptions.block",
- "[block]", entry.getKey().name(),
+ "[block]", LangUtilsHook.getMaterialName(entry.getKey(), user),
"[count]", Integer.toString(entry.getValue())));
}
diff --git a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java
index 1b29ace..52dff5d 100644
--- a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java
+++ b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java
@@ -29,6 +29,7 @@ import org.bukkit.util.BoundingBox;
import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
+import world.bentobox.bentobox.hooks.LangUtilsHook;
import world.bentobox.bentobox.util.Util;
import world.bentobox.challenges.ChallengesAddon;
import world.bentobox.challenges.ChallengesManager;
@@ -758,7 +759,7 @@ public class TryToComplete
{
this.user.sendMessage("challenges.errors.not-enough-items",
"[items]",
- Util.prettifyText(required.getType().toString()));
+ LangUtilsHook.getItemName(required, user));
return EMPTY_RESULT;
}
@@ -1016,7 +1017,7 @@ public class TryToComplete
blocks.forEach((k, v) -> user.sendMessage("challenges.errors.you-still-need",
"[amount]", String.valueOf(v),
- "[item]", Util.prettifyText(k.toString())));
+ "[item]", LangUtilsHook.getMaterialName(k, user)));
// kick garbage collector
@@ -1097,7 +1098,7 @@ public class TryToComplete
minimalRequirements.forEach((reqEnt, amount) -> this.user.sendMessage("challenges.errors.you-still-need",
"[amount]", String.valueOf(amount),
- "[item]", Util.prettifyText(reqEnt.toString())));
+ "[item]", LangUtilsHook.getEntityName(reqEnt, user)));
// Kick garbage collector
entitiesFound.clear();