#1338 Implement ''/authme messages help' to generate a fully complete help text file (#1349)

This commit is contained in:
ljacqu
2017-10-09 07:19:38 +02:00
committed by GitHub
parent 5be3f8facc
commit 7afda20288
8 changed files with 187 additions and 17 deletions
@@ -2,8 +2,10 @@ package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.command.ExecutableCommand;
import fr.xephi.authme.command.help.HelpMessagesService;
import fr.xephi.authme.initialization.DataFolder;
import fr.xephi.authme.message.Messages;
import fr.xephi.authme.service.HelpTranslationGenerator;
import fr.xephi.authme.service.MessageUpdater;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.PluginSettings;
@@ -11,6 +13,7 @@ import org.bukkit.command.CommandSender;
import javax.inject.Inject;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
@@ -28,11 +31,33 @@ public class MessagesCommand implements ExecutableCommand {
private File dataFolder;
@Inject
private Messages messages;
@Inject
private HelpTranslationGenerator helpTranslationGenerator;
@Inject
private HelpMessagesService helpMessagesService;
@Override
public void executeCommand(CommandSender sender, List<String> arguments) {
final String language = settings.getProperty(PluginSettings.MESSAGES_LANGUAGE);
if (!arguments.isEmpty() && "help".equalsIgnoreCase(arguments.get(0))) {
updateHelpFile(sender);
} else {
updateMessagesFile(sender);
}
}
private void updateHelpFile(CommandSender sender) {
try {
helpTranslationGenerator.updateHelpFile();
sender.sendMessage("Successfully updated the help file");
helpMessagesService.reload();
} catch (IOException e) {
sender.sendMessage("Could not update help file: " + e.getMessage());
ConsoleLogger.logException("Could not update help file:", e);
}
}
private void updateMessagesFile(CommandSender sender) {
final String language = settings.getProperty(PluginSettings.MESSAGES_LANGUAGE);
try {
boolean isFileUpdated = new MessageUpdater(
new File(dataFolder, getMessagePath(language)),