1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

Fixed recipe types showing missing string message

This commit is contained in:
TheBusyBiscuit 2021-05-25 11:04:59 +02:00
parent 709b329c78
commit 1be165ca44
2 changed files with 24 additions and 9 deletions

View File

@ -40,6 +40,7 @@
* Fixed a permissions issue with `/sf charge`
* Fixed #3053
* Fixed #3075
* Fixed recipe types showing missing string message
## Release Candidate 23 (19 May 2021)
https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#23

View File

@ -171,11 +171,11 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
@ParametersAreNonnullByDefault
private @Nonnull String getString(@Nullable Language language, LanguageFile file, String path) {
String string = getStringOrNull(language, file, path);
return string != null ? string : "Error: Missing string \"" + path + '"';
return string != null ? string : "! Missing string \"" + path + '"';
}
@ParametersAreNonnullByDefault
private @Nonnull List<String> getStringList(@Nullable Language language, LanguageFile file, String path) {
private @Nullable List<String> getStringListOrNull(@Nullable Language language, LanguageFile file, String path) {
Validate.notNull(file, "You need to provide a LanguageFile!");
Validate.notNull(path, "The path cannot be null!");
@ -200,7 +200,13 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
List<String> defaultValue = defaults.getStringList(path);
// Return the default value or an error message
return !defaultValue.isEmpty() ? defaultValue : Arrays.asList("Error: Missing string \"" + path + '"');
return !defaultValue.isEmpty() ? defaultValue : null;
}
@ParametersAreNonnullByDefault
private @Nonnull List<String> getStringList(@Nullable Language language, LanguageFile file, String path) {
List<String> list = getStringListOrNull(language, file, path);
return list != null ? list : Arrays.asList("! Missing string \"" + path + '"');
}
@Override
@ -265,7 +271,7 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
return getStringOrNull(getLanguage(p), LanguageFile.RESOURCES, key);
}
public @Nullable ItemStack getRecipeTypeItem(@Nonnull Player p, @Nonnull RecipeType recipeType) {
public @Nonnull ItemStack getRecipeTypeItem(@Nonnull Player p, @Nonnull RecipeType recipeType) {
Validate.notNull(p, "Player cannot be null!");
Validate.notNull(recipeType, "Recipe type cannot be null!");
@ -274,12 +280,20 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
NamespacedKey key = recipeType.getKey();
return new CustomItem(item, meta -> {
String displayName = getString(language, LanguageFile.RECIPES, key.getNamespace() + "." + key.getKey() + ".name");
meta.setDisplayName(ChatColor.AQUA + displayName);
String displayName = getStringOrNull(language, LanguageFile.RECIPES, key.getNamespace() + "." + key.getKey() + ".name");
List<String> lore = getStringList(language, LanguageFile.RECIPES, key.getNamespace() + "." + key.getKey() + ".lore");
lore.replaceAll(line -> ChatColor.GRAY + line);
meta.setLore(lore);
// Set the display name if possible, else keep the default item name.
if (displayName != null) {
meta.setDisplayName(ChatColor.AQUA + displayName);
}
List<String> lore = getStringListOrNull(language, LanguageFile.RECIPES, key.getNamespace() + "." + key.getKey() + ".lore");
// Set the lore if possible, else keep the default lore.
if (lore != null) {
lore.replaceAll(line -> ChatColor.GRAY + line);
meta.setLore(lore);
}
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);