Adds possibility for message customization and translation #5
This commit is contained in:
@@ -5,8 +5,9 @@ import net.knarcraft.blacksmith.config.GlobalSetting;
|
||||
import net.knarcraft.blacksmith.config.GlobalSettings;
|
||||
import net.knarcraft.blacksmith.config.NPCSetting;
|
||||
import net.knarcraft.blacksmith.config.SettingValueType;
|
||||
import net.knarcraft.blacksmith.manager.ItemType;
|
||||
import net.knarcraft.blacksmith.manager.Message;
|
||||
import net.knarcraft.blacksmith.formatting.ItemType;
|
||||
import net.knarcraft.blacksmith.formatting.TranslatableMessage;
|
||||
import net.knarcraft.blacksmith.formatting.Translator;
|
||||
import net.knarcraft.blacksmith.util.InputParsingHelper;
|
||||
import net.knarcraft.blacksmith.util.TypeValidationHelper;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
@@ -18,8 +19,8 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displayErrorMessage;
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displaySuccessMessage;
|
||||
import static net.knarcraft.blacksmith.formatting.StringFormatter.displayErrorMessage;
|
||||
import static net.knarcraft.blacksmith.formatting.StringFormatter.displaySuccessMessage;
|
||||
|
||||
/**
|
||||
* The command used for changing global configuration options
|
||||
@@ -41,9 +42,8 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
|
||||
//Changing reforge-able items' default isn't recommended
|
||||
if (commandName.equalsIgnoreCase(NPCSetting.REFORGE_ABLE_ITEMS.getCommandName())) {
|
||||
displayErrorMessage(sender, "Changing reforge-able items globally will make every new " +
|
||||
"blacksmith unable to reforge anything not in the list, unless it's changed for the " +
|
||||
"individual NPC. If you really want to change this, change it manually.");
|
||||
displayErrorMessage(sender,
|
||||
Translator.getTranslatedMessage(TranslatableMessage.DEFAULT_REFORGE_ABLE_ITEMS_UNCHANGEABLE));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -82,9 +82,10 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
displaySuccessMessage(sender, Message.getCurrentValueMessage(correctCommandName, rawValue));
|
||||
displaySuccessMessage(sender, TranslatableMessage.getCurrentValueMessage(correctCommandName, rawValue));
|
||||
if (printRawValue) {
|
||||
sender.sendMessage("Raw value: " + rawValue.replace(ChatColor.COLOR_CHAR, '&'));
|
||||
sender.sendMessage(TranslatableMessage.getRawValueMessage(
|
||||
rawValue.replace(ChatColor.COLOR_CHAR, '&')));
|
||||
}
|
||||
return true;
|
||||
} else if (args.length == 2 && isSpecialCase(commandName)) {
|
||||
@@ -100,11 +101,11 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
String newValue = args[1];
|
||||
if (detectedGlobalSetting != null) {
|
||||
settings.changeValue(detectedGlobalSetting, newValue);
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(detectedGlobalSetting.getCommandName(), newValue));
|
||||
displaySuccessMessage(sender, TranslatableMessage.getValueChangedMessage(detectedGlobalSetting.getCommandName(), newValue));
|
||||
return true;
|
||||
} else if (detectedNPCSetting != null) {
|
||||
settings.changeValue(detectedNPCSetting, newValue);
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(detectedNPCSetting.getNodeName(), newValue));
|
||||
displaySuccessMessage(sender, TranslatableMessage.getValueChangedMessage(detectedNPCSetting.getNodeName(), newValue));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -132,7 +133,7 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
} else {
|
||||
currentValue = String.valueOf(settings.getPricePerDurabilityPoint(material));
|
||||
}
|
||||
displaySuccessMessage(sender, Message.getItemCurrentValueMessage(setting.getCommandName(), ItemType.MATERIAL,
|
||||
displaySuccessMessage(sender, TranslatableMessage.getItemCurrentValueMessage(setting.getCommandName(), ItemType.MATERIAL,
|
||||
material.name(), currentValue));
|
||||
return true;
|
||||
} else if (setting == GlobalSetting.ENCHANTMENT_COST) {
|
||||
@@ -140,7 +141,7 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
if (enchantment == null) {
|
||||
return false;
|
||||
}
|
||||
displaySuccessMessage(sender, Message.getItemCurrentValueMessage(setting.getCommandName(), ItemType.ENCHANTMENT,
|
||||
displaySuccessMessage(sender, TranslatableMessage.getItemCurrentValueMessage(setting.getCommandName(), ItemType.ENCHANTMENT,
|
||||
enchantment.toString(), String.valueOf(settings.getEnchantmentCost(enchantment))));
|
||||
return true;
|
||||
} else {
|
||||
@@ -204,7 +205,7 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
displaySuccessMessage(sender, Message.getItemValueChangedMessage(detectedGlobalSetting.getCommandName(),
|
||||
displaySuccessMessage(sender, TranslatableMessage.getItemValueChangedMessage(detectedGlobalSetting.getCommandName(),
|
||||
itemType, itemChanged, newValue));
|
||||
return true;
|
||||
}
|
||||
|
@@ -24,11 +24,11 @@ public class BlackSmithConfigTabCompleter implements TabCompleter {
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
if (args.length == 1) {
|
||||
if (!sender.hasPermission("blacksmith.admin")) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
if (!sender.hasPermission("blacksmith.admin")) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
List<String> availableCommands = new ArrayList<>();
|
||||
availableCommands.add("reload");
|
||||
for (NPCSetting setting : NPCSetting.values()) {
|
||||
|
@@ -3,9 +3,10 @@ package net.knarcraft.blacksmith.command;
|
||||
import net.citizensnpcs.api.CitizensAPI;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
import net.knarcraft.blacksmith.config.NPCSetting;
|
||||
import net.knarcraft.blacksmith.manager.Message;
|
||||
import net.knarcraft.blacksmith.formatting.StringFormatter;
|
||||
import net.knarcraft.blacksmith.formatting.TranslatableMessage;
|
||||
import net.knarcraft.blacksmith.formatting.Translator;
|
||||
import net.knarcraft.blacksmith.trait.BlacksmithTrait;
|
||||
import net.knarcraft.blacksmith.util.MessageFormatter;
|
||||
import net.knarcraft.blacksmith.util.TypeValidationHelper;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -13,7 +14,7 @@ import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displaySuccessMessage;
|
||||
import static net.knarcraft.blacksmith.formatting.StringFormatter.displaySuccessMessage;
|
||||
|
||||
/**
|
||||
* The main command used for blacksmith editing
|
||||
@@ -25,7 +26,8 @@ public class BlackSmithEditCommand implements CommandExecutor {
|
||||
@NotNull String[] args) {
|
||||
NPC npc = CitizensAPI.getDefaultNPCSelector().getSelected(sender);
|
||||
if (npc == null || !npc.hasTrait(BlacksmithTrait.class)) {
|
||||
MessageFormatter.displayErrorMessage(sender, "You must select an NPC before running this command");
|
||||
StringFormatter.displayErrorMessage(sender,
|
||||
Translator.getTranslatedMessage(TranslatableMessage.NO_NPC_SELECTED));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -59,18 +61,20 @@ public class BlackSmithEditCommand implements CommandExecutor {
|
||||
if (newValue == null) {
|
||||
//Display the current value of the setting
|
||||
String rawValue = String.valueOf(blacksmithTrait.getSettings().getRawValue(npcSetting));
|
||||
displaySuccessMessage(sender, Message.getCurrentValueMessage(npcSetting.getCommandName(), rawValue));
|
||||
displaySuccessMessage(sender, TranslatableMessage.getCurrentValueMessage(npcSetting.getCommandName(), rawValue));
|
||||
if (npcSetting.getPath().startsWith("defaults.messages")) {
|
||||
sender.sendMessage("Raw value: " + rawValue.replace(ChatColor.COLOR_CHAR, '&'));
|
||||
sender.sendMessage(TranslatableMessage.getRawValueMessage(
|
||||
rawValue.replace(ChatColor.COLOR_CHAR, '&')));
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
boolean isValidType = TypeValidationHelper.isValid(npcSetting.getValueType(), newValue, sender);
|
||||
if (isValidType) {
|
||||
//Change the setting
|
||||
blacksmithTrait.getSettings().changeSetting(npcSetting,
|
||||
ChatColor.translateAlternateColorCodes('&', newValue));
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(npcSetting.getNodeName(), newValue));
|
||||
Object nullCheckedValue = newValue.equalsIgnoreCase("null") ? null :
|
||||
ChatColor.translateAlternateColorCodes('&', newValue);
|
||||
blacksmithTrait.getSettings().changeSetting(npcSetting, nullCheckedValue);
|
||||
displaySuccessMessage(sender, TranslatableMessage.getValueChangedMessage(npcSetting.getNodeName(), newValue));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
@@ -21,15 +21,16 @@ public class BlackSmithEditTabCompleter implements TabCompleter {
|
||||
@Override
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
if (!sender.hasPermission("blacksmith.edit")) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
List<String> npcSettings = new ArrayList<>();
|
||||
for (NPCSetting setting : NPCSetting.values()) {
|
||||
npcSettings.add(setting.getCommandName());
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (!sender.hasPermission("blacksmith.edit")) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return TabCompletionHelper.filterMatchingContains(npcSettings, args[0]);
|
||||
} else {
|
||||
if (npcSettings.contains(args[0]) && args.length <= 2) {
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package net.knarcraft.blacksmith.command;
|
||||
|
||||
import net.knarcraft.blacksmith.BlacksmithPlugin;
|
||||
import net.knarcraft.blacksmith.formatting.TranslatableMessage;
|
||||
import net.knarcraft.blacksmith.formatting.Translator;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -10,7 +12,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displaySuccessMessage;
|
||||
import static net.knarcraft.blacksmith.formatting.StringFormatter.displaySuccessMessage;
|
||||
|
||||
/**
|
||||
* The command for re-loading the plugin
|
||||
@@ -21,7 +23,7 @@ public class ReloadCommand implements TabExecutor {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
BlacksmithPlugin.getInstance().reload();
|
||||
displaySuccessMessage(sender, "Blacksmith config reloaded!");
|
||||
displaySuccessMessage(sender, Translator.getTranslatedMessage(TranslatableMessage.PLUGIN_RELOADED));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user