Adds tons of changes to messages
This commit is contained in:
@@ -4,7 +4,12 @@ import net.knarcraft.blacksmith.BlacksmithPlugin;
|
||||
import net.knarcraft.blacksmith.config.GlobalSetting;
|
||||
import net.knarcraft.blacksmith.config.GlobalSettings;
|
||||
import net.knarcraft.blacksmith.config.NPCSetting;
|
||||
import org.bukkit.ChatColor;
|
||||
import net.knarcraft.blacksmith.config.SettingValueType;
|
||||
import net.knarcraft.blacksmith.manager.ItemType;
|
||||
import net.knarcraft.blacksmith.manager.Message;
|
||||
import net.knarcraft.blacksmith.util.InputParsingHelper;
|
||||
import net.knarcraft.blacksmith.util.MessageFormatter;
|
||||
import net.knarcraft.blacksmith.util.TypeValidationHelper;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -13,6 +18,9 @@ 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;
|
||||
|
||||
/**
|
||||
* The command used for changing global configuration options
|
||||
*/
|
||||
@@ -33,7 +41,7 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
|
||||
//Changing reforge-able items' default isn't recommended
|
||||
if (commandName.equalsIgnoreCase(NPCSetting.REFORGE_ABLE_ITEMS.getCommandName())) {
|
||||
sender.sendMessage(ChatColor.DARK_RED + "Changing reforge-able items globally will make every new " +
|
||||
displayErrorMessage(sender, "Changing reforge-able items globally will make every new " +
|
||||
"blacksmith unable to re-forge anything not in the list, unless it's changed for the " +
|
||||
"individual NPC. If you really want to change this, change it manually.");
|
||||
return false;
|
||||
@@ -58,27 +66,36 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
//TODO: See if there's a way to remove this duplication
|
||||
if (detectedGlobalSetting != null) {
|
||||
sender.sendMessage(String.format("Current value of %s: %s", detectedGlobalSetting.getCommandName(),
|
||||
settings.getRawValue(detectedGlobalSetting)));
|
||||
displaySuccessMessage(sender, Message.getCurrentValueMessage(detectedGlobalSetting.getCommandName(),
|
||||
MessageFormatter.escapeColorCodes(String.valueOf(settings.getRawValue(detectedGlobalSetting)))));
|
||||
return true;
|
||||
} else if (detectedNPCSetting != null) {
|
||||
sender.sendMessage(String.format("Current value of %s: %s", detectedNPCSetting.getCommandName(),
|
||||
settings.getRawValue(detectedNPCSetting)));
|
||||
displaySuccessMessage(sender, Message.getCurrentValueMessage(detectedNPCSetting.getCommandName(),
|
||||
MessageFormatter.escapeColorCodes(String.valueOf(settings.getRawValue(detectedNPCSetting)))));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else if (args.length == 2 && isSpecialCase(commandName)) {
|
||||
return displaySpecialCaseValue(args[1], sender, detectedGlobalSetting, settings);
|
||||
if (displaySpecialCaseValue(args[1], sender, detectedGlobalSetting, settings)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (updateSpecialCase(settings, commandName, args)) {
|
||||
if (args.length == 3 && updateSpecialCase(settings, detectedGlobalSetting, args, sender)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String newValue = args[1];
|
||||
if (detectedGlobalSetting != null) {
|
||||
settings.changeValue(detectedGlobalSetting, args[1]);
|
||||
settings.changeValue(detectedGlobalSetting, newValue);
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(detectedGlobalSetting.getCommandName(), newValue));
|
||||
return true;
|
||||
} else if (detectedNPCSetting != null) {
|
||||
settings.changeValue(detectedNPCSetting, args[1]);
|
||||
settings.changeValue(detectedNPCSetting, newValue);
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(detectedNPCSetting.getNodeName(), newValue));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -95,30 +112,31 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
*/
|
||||
private boolean displaySpecialCaseValue(String selector, CommandSender sender, GlobalSetting setting,
|
||||
GlobalSettings settings) {
|
||||
if (setting == GlobalSetting.BASE_PRICE) {
|
||||
if (setting == GlobalSetting.BASE_PRICE || setting == GlobalSetting.PRICE_PER_DURABILITY_POINT) {
|
||||
Material material = Material.matchMaterial(selector);
|
||||
if (material == null) {
|
||||
return false;
|
||||
}
|
||||
sender.sendMessage(String.format("Current value of %s for material %s: %s", setting.getCommandName(),
|
||||
material, settings.getBasePrice(material)));
|
||||
String currentValue;
|
||||
if (setting == GlobalSetting.BASE_PRICE) {
|
||||
currentValue = String.valueOf(settings.getBasePrice(material));
|
||||
} else {
|
||||
currentValue = String.valueOf(settings.getPricePerDurabilityPoint(material));
|
||||
}
|
||||
displaySuccessMessage(sender, Message.getItemCurrentValueMessage(setting.getCommandName(), ItemType.MATERIAL,
|
||||
material.name(), currentValue));
|
||||
return true;
|
||||
} else if (setting == GlobalSetting.PRICE_PER_DURABILITY_POINT) {
|
||||
Material material = Material.matchMaterial(selector);
|
||||
if (material == null) {
|
||||
return false;
|
||||
}
|
||||
sender.sendMessage(String.format("Current value of %s for material %s: %s", setting.getCommandName(),
|
||||
material, settings.getPricePerDurabilityPoint(material)));
|
||||
} else if (setting == GlobalSetting.ENCHANTMENT_COST) {
|
||||
Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(selector));
|
||||
if (enchantment == null) {
|
||||
return false;
|
||||
}
|
||||
sender.sendMessage(String.format("Current value of %s for enchantment %s: %s", setting.getCommandName(),
|
||||
enchantment, settings.getEnchantmentCost(enchantment)));
|
||||
displaySuccessMessage(sender, Message.getItemCurrentValueMessage(setting.getCommandName(), ItemType.ENCHANTMENT,
|
||||
enchantment.toString(), String.valueOf(settings.getEnchantmentCost(enchantment))));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -136,40 +154,50 @@ public class BlackSmithConfigCommand implements CommandExecutor {
|
||||
/**
|
||||
* Updates a special-case configuration value if a special-case is encountered
|
||||
*
|
||||
* @param settings <p>The settings to modify</p>
|
||||
* @param commandName <p>The sub-command the player specified</p>
|
||||
* @param args <p>All arguments given</p>
|
||||
* @param settings <p>The settings to modify</p>
|
||||
* @param detectedGlobalSetting <p>The global setting specified</p>
|
||||
* @param args <p>All arguments given</p>
|
||||
* @param sender <p>The command sender to notify if successful</p>
|
||||
* @return <p>True if already handled as a special case</p>
|
||||
*/
|
||||
private boolean updateSpecialCase(GlobalSettings settings, String commandName, String[] args) {
|
||||
if (commandName.equalsIgnoreCase(GlobalSetting.BASE_PRICE.getCommandName())) {
|
||||
Material material = Material.matchMaterial(args[1]);
|
||||
private boolean updateSpecialCase(GlobalSettings settings, GlobalSetting detectedGlobalSetting, String[] args,
|
||||
CommandSender sender) {
|
||||
if (!TypeValidationHelper.isValid(SettingValueType.POSITIVE_DOUBLE, args[2], sender)) {
|
||||
return true;
|
||||
}
|
||||
double newPrice = Double.parseDouble(args[2]);
|
||||
String itemChanged;
|
||||
ItemType itemType;
|
||||
String newValue = String.valueOf(newPrice);
|
||||
|
||||
if (detectedGlobalSetting == GlobalSetting.BASE_PRICE ||
|
||||
detectedGlobalSetting == GlobalSetting.PRICE_PER_DURABILITY_POINT) {
|
||||
Material material = InputParsingHelper.matchMaterial(args[1]);
|
||||
if (material == null) {
|
||||
return false;
|
||||
}
|
||||
settings.setBasePrice(material, Double.parseDouble(args[2]));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (commandName.equalsIgnoreCase(GlobalSetting.PRICE_PER_DURABILITY_POINT.getCommandName())) {
|
||||
Material material = Material.matchMaterial(args[1]);
|
||||
if (material == null) {
|
||||
return false;
|
||||
itemType = ItemType.MATERIAL;
|
||||
itemChanged = material.name();
|
||||
if (detectedGlobalSetting == GlobalSetting.BASE_PRICE) {
|
||||
settings.setBasePrice(material, newPrice);
|
||||
} else {
|
||||
settings.setPricePerDurabilityPoint(material, newPrice);
|
||||
}
|
||||
settings.setPricePerDurabilityPoint(material, Double.parseDouble(args[2]));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (commandName.equalsIgnoreCase(GlobalSetting.ENCHANTMENT_COST.getCommandName())) {
|
||||
Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(args[1]));
|
||||
} else if (detectedGlobalSetting == GlobalSetting.ENCHANTMENT_COST) {
|
||||
Enchantment enchantment = InputParsingHelper.matchEnchantment(args[1]);
|
||||
if (enchantment == null) {
|
||||
return false;
|
||||
}
|
||||
settings.setEnchantmentCost(enchantment, Double.parseDouble(args[2]));
|
||||
return true;
|
||||
itemType = ItemType.ENCHANTMENT;
|
||||
itemChanged = enchantment.toString();
|
||||
settings.setEnchantmentCost(enchantment, newPrice);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
displaySuccessMessage(sender, Message.getItemValueChangedMessage(detectedGlobalSetting.getCommandName(),
|
||||
itemType, itemChanged, newValue));
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -2,8 +2,7 @@ package net.knarcraft.blacksmith.command;
|
||||
|
||||
import net.knarcraft.blacksmith.config.GlobalSetting;
|
||||
import net.knarcraft.blacksmith.config.NPCSetting;
|
||||
import net.knarcraft.blacksmith.util.TabCompleteValuesHelper;
|
||||
import net.knarcraft.blacksmith.util.TabCompletionHelper;
|
||||
import net.knarcraft.blacksmith.config.SettingValueType;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
@@ -13,6 +12,9 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.TabCompleteValuesHelper.getTabCompletions;
|
||||
import static net.knarcraft.blacksmith.util.TabCompletionHelper.filterMatchingContains;
|
||||
|
||||
/**
|
||||
* The tab completer for the command used for changing global configuration options
|
||||
*/
|
||||
@@ -35,7 +37,7 @@ public class BlackSmithConfigTabCompleter implements TabCompleter {
|
||||
for (GlobalSetting globalSetting : GlobalSetting.values()) {
|
||||
availableCommands.add(globalSetting.getCommandName());
|
||||
}
|
||||
return TabCompletionHelper.filterMatchingContains(availableCommands, args[0]);
|
||||
return filterMatchingContains(availableCommands, args[0]);
|
||||
} else if (args.length == 2) {
|
||||
return tabCompleteCommandValues(args[0], args[1]);
|
||||
}
|
||||
@@ -55,17 +57,33 @@ public class BlackSmithConfigTabCompleter implements TabCompleter {
|
||||
}
|
||||
for (GlobalSetting globalSetting : GlobalSetting.values()) {
|
||||
if (globalSetting.getCommandName().equalsIgnoreCase(commandName)) {
|
||||
return TabCompletionHelper.filterMatchingContains(TabCompleteValuesHelper.getTabCompletions(
|
||||
globalSetting.getValueType()), commandValue);
|
||||
return getCompletions(globalSetting, commandValue);
|
||||
}
|
||||
}
|
||||
for (NPCSetting npcSetting : NPCSetting.values()) {
|
||||
if (npcSetting.getCommandName().equalsIgnoreCase(commandName)) {
|
||||
return TabCompletionHelper.filterMatchingContains(TabCompleteValuesHelper.getTabCompletions(
|
||||
return filterMatchingContains(getTabCompletions(
|
||||
npcSetting.getValueType()), commandValue);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets tab-completions for the given global setting and filters on the command value
|
||||
*
|
||||
* @param globalSetting <p>The global setting to get tab-completions for</p>
|
||||
* @param commandValue <p>The command value used to filter between available tab-completions</p>
|
||||
* @return <p>The available tab-completions</p>
|
||||
*/
|
||||
private List<String> getCompletions(GlobalSetting globalSetting, String commandValue) {
|
||||
List<String> returnValues = filterMatchingContains(getTabCompletions(globalSetting.getValueType()), commandValue);
|
||||
if (globalSetting == GlobalSetting.BASE_PRICE || globalSetting == GlobalSetting.PRICE_PER_DURABILITY_POINT) {
|
||||
returnValues.addAll(filterMatchingContains(getTabCompletions(SettingValueType.MATERIAL), commandValue));
|
||||
} else if (globalSetting == GlobalSetting.ENCHANTMENT_COST) {
|
||||
returnValues.addAll(filterMatchingContains(getTabCompletions(SettingValueType.ENCHANTMENT), commandValue));
|
||||
}
|
||||
return returnValues;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -3,7 +3,9 @@ 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.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;
|
||||
@@ -11,6 +13,8 @@ import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displaySuccessMessage;
|
||||
|
||||
/**
|
||||
* The main command used for blacksmith editing
|
||||
*/
|
||||
@@ -21,10 +25,14 @@ public class BlackSmithEditCommand implements CommandExecutor {
|
||||
@NotNull String[] args) {
|
||||
NPC npc = CitizensAPI.getDefaultNPCSelector().getSelected(sender);
|
||||
if (npc == null || !npc.hasTrait(BlacksmithTrait.class)) {
|
||||
sender.sendMessage(ChatColor.DARK_RED + "You must select an NPC before running this command");
|
||||
MessageFormatter.displayErrorMessage(sender, "You must select an NPC before running this command");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
BlacksmithTrait blacksmithTrait = npc.getTrait(BlacksmithTrait.class);
|
||||
|
||||
for (NPCSetting npcSetting : NPCSetting.values()) {
|
||||
@@ -50,8 +58,8 @@ public class BlackSmithEditCommand implements CommandExecutor {
|
||||
CommandSender sender) {
|
||||
if (newValue == null) {
|
||||
//Display the current value of the setting
|
||||
sender.sendMessage(ChatColor.GREEN + "Current value of " + npcSetting.getCommandName() + ": " +
|
||||
ChatColor.GOLD + blacksmithTrait.getSettings().getRawValue(npcSetting));
|
||||
displaySuccessMessage(sender, Message.getCurrentValueMessage(npcSetting.getCommandName(),
|
||||
MessageFormatter.escapeColorCodes(String.valueOf(blacksmithTrait.getSettings().getRawValue(npcSetting)))));
|
||||
return true;
|
||||
} else {
|
||||
boolean isValidType = TypeValidationHelper.isValid(npcSetting.getValueType(), newValue, sender);
|
||||
@@ -59,7 +67,7 @@ public class BlackSmithEditCommand implements CommandExecutor {
|
||||
//Change the setting
|
||||
blacksmithTrait.getSettings().changeSetting(npcSetting,
|
||||
ChatColor.translateAlternateColorCodes('&', newValue));
|
||||
sender.sendMessage(ChatColor.GREEN + npcSetting.getNodeName() + " set to " + ChatColor.GOLD + newValue);
|
||||
displaySuccessMessage(sender, Message.getValueChangedMessage(npcSetting.getNodeName(), newValue));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
@@ -1,7 +1,6 @@
|
||||
package net.knarcraft.blacksmith.command;
|
||||
|
||||
import net.knarcraft.blacksmith.BlacksmithPlugin;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
@@ -11,6 +10,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.knarcraft.blacksmith.util.MessageFormatter.displaySuccessMessage;
|
||||
|
||||
/**
|
||||
* The command for re-loading the plugin
|
||||
*/
|
||||
@@ -20,7 +21,7 @@ public class ReloadCommand implements TabExecutor {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||
@NotNull String[] args) {
|
||||
BlacksmithPlugin.getInstance().reload();
|
||||
sender.sendMessage(ChatColor.GREEN + "Blacksmith config reloaded!");
|
||||
displaySuccessMessage(sender, "Blacksmith config reloaded!");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user