Implemented translation

This commit is contained in:
LabodiDavid 2025-03-28 18:05:22 +01:00
parent f559ace08b
commit b82f47fb3b
11 changed files with 158 additions and 37 deletions

View File

@ -11,6 +11,7 @@ import org.bukkit.ChatColor;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -30,6 +31,8 @@ public final class STPlugin extends JavaPlugin implements CommandExecutor, Liste
private FileConfiguration config; private FileConfiguration config;
public long ServerStartTime; public long ServerStartTime;
private YamlConfiguration langConfig;
private ServerPasswordData serverPasswordData; private ServerPasswordData serverPasswordData;
@Override @Override
@ -186,6 +189,31 @@ public final class STPlugin extends JavaPlugin implements CommandExecutor, Liste
return this.serverPasswordData; return this.serverPasswordData;
} }
private void initLocalization() throws IOException {
File langFolder = new File(getDataFolder(), "lang");
if (!langFolder.exists()) {
langFolder.mkdirs();
}
String[] languages = {"en", "hu"};
for (String l : languages) {
File langFile = new File(langFolder, l + ".yml");
ConfigUpdater.update(this, "lang/"+l+".yml", langFile, Collections.emptyList());
}
String lang = this.config.getString("language", "en");
File langFile = new File(getDataFolder(), "lang/" + lang + ".yml");
if (!langFile.exists()) {
getLogger().warning("Language file for '" + lang + "' not found. Falling back to English.");
langFile = new File(getDataFolder(), "lang/en.yml");
}
this.langConfig = YamlConfiguration.loadConfiguration(langFile);
}
public String getTranslatedText(String key) {
return langConfig.getString(key, "Translation not found: " + key);
}
public boolean reload(){ public boolean reload(){
File configFile = new File(getDataFolder(), "config.yml"); File configFile = new File(getDataFolder(), "config.yml");
@ -199,6 +227,12 @@ public final class STPlugin extends JavaPlugin implements CommandExecutor, Liste
} }
reloadConfig(); reloadConfig();
this.config = getConfig(); this.config = getConfig();
try {
this.initLocalization();
} catch (IOException e) {
e.printStackTrace();
}
return true; return true;
} }

View File

@ -12,7 +12,7 @@ public class PingCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
try { try {
player.sendMessage(plugin.getPrefix() + "Your response time to the server: " + Server.getPlayerPing(player) + " ms"); player.sendMessage(plugin.getPrefix() + plugin.getTranslatedText("cmd.ping") + Server.getPlayerPing(player) + " ms");
return true; return true;
} catch (IllegalArgumentException | SecurityException e) { } catch (IllegalArgumentException | SecurityException e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -11,30 +11,30 @@ public class PluginManagerCommand {
public static boolean LoadPlugin(CommandSender sender, String[] args){ public static boolean LoadPlugin(CommandSender sender, String[] args){
Plugin plugin = Bukkit.getPluginManager().getPlugin(args[2]); Plugin plugin = Bukkit.getPluginManager().getPlugin(args[2]);
if (plugin == null) { if (plugin == null) {
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin not exist!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+ STPlugin.getInstance().getTranslatedText("pmanager.not.exist"));
return false; return false;
} }
if (plugin.isEnabled()){ if (plugin.isEnabled()){
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+" already enabled!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+STPlugin.getInstance().getTranslatedText("pmanager.already.enabled"));
return true; return true;
} }
Bukkit.getPluginManager().enablePlugin(plugin); Bukkit.getPluginManager().enablePlugin(plugin);
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+" successfully enabled!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+STPlugin.getInstance().getTranslatedText("pmanager.success.enabled"));
return true; return true;
} }
public static boolean UnloadPlugin(CommandSender sender, String[] args){ public static boolean UnloadPlugin(CommandSender sender, String[] args){
Plugin plugin = Bukkit.getPluginManager().getPlugin(args[2]); Plugin plugin = Bukkit.getPluginManager().getPlugin(args[2]);
if (plugin == null) { if (plugin == null) {
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin not exist!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+STPlugin.getInstance().getTranslatedText("pmanager.not.exist"));
return false; return false;
} }
if (!plugin.isEnabled()){ if (!plugin.isEnabled()){
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+" already disabled!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+STPlugin.getInstance().getTranslatedText("pmanager.already.disabled"));
return true; return true;
} }
Bukkit.getPluginManager().disablePlugin(plugin); Bukkit.getPluginManager().disablePlugin(plugin);
sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+" successfully disabled!"); sender.sendMessage(STPlugin.getInstance().getPrefix()+"Plugin "+plugin.getName()+STPlugin.getInstance().getTranslatedText("pmanager.success.disabled"));
return true; return true;
} }

View File

@ -9,15 +9,18 @@ public class SettingsCommand {
public static boolean Run(CommandSender sender) { public static boolean Run(CommandSender sender) {
STPlugin plugin = STPlugin.getInstance(); STPlugin plugin = STPlugin.getInstance();
String enabled = plugin.getTranslatedText("settings.enabled");
String disabled = plugin.getTranslatedText("settings.disabled");
sender.sendMessage( ChatColor.GREEN+" === Plugin Information === " + "\n" sender.sendMessage( ChatColor.GREEN+" === Plugin Information === " + "\n"
+ ChatColor.GREEN+"Plugin Version: " + ChatColor.translateAlternateColorCodes('&',"&a[&fSimplify&7Tools&2] &4- &f") + plugin.getDescription().getVersion() + "\n" + ChatColor.GREEN + "Plugin " + plugin.getTranslatedText("version.pre.text") + ChatColor.translateAlternateColorCodes('&',"&a[&fSimplify&7Tools&2] &4- &f") + plugin.getDescription().getVersion() + "\n"
+ ChatColor.GREEN+"Server Version: " + Version.ServerVersion.getCurrent().toString() + "\n" + ChatColor.GREEN + plugin.getTranslatedText("settings.server") + plugin.getTranslatedText("version.pre.text") + Version.ServerVersion.getCurrent().toString() + "\n"
+ ChatColor.GREEN+" -------- Features -------- " + "\n" + ChatColor.GREEN + " -------- " + plugin.getTranslatedText("settings.features") +" -------- " + "\n"
+ ChatColor.GREEN+"Tab customization: "+(plugin.getConfig().getBoolean("Tab.enabled") ? ChatColor.GREEN + "Enabled" : ChatColor.RED+"Disabled") + "\n" + ChatColor.GREEN + plugin.getTranslatedText("settings.feature.tab") + (plugin.getConfig().getBoolean("Tab.enabled") ? ChatColor.GREEN + enabled : ChatColor.RED + disabled) + "\n"
+ ChatColor.GREEN+"Custom Advancement Msg: " + (plugin.getConfig().getBoolean("CustomAdvancement.enabled") ? ChatColor.GREEN+"Enabled" : ChatColor.RED+"Disabled") + "\n" + ChatColor.GREEN + plugin.getTranslatedText("settings.feature.CustomAdvancementMsg") + (plugin.getConfig().getBoolean("CustomAdvancement.enabled") ? ChatColor.GREEN + enabled : ChatColor.RED + disabled) + "\n"
+ ChatColor.GREEN+"Auto saving: " + (plugin.getConfig().getBoolean("Saving.enabled") ? ChatColor.GREEN+"Enabled" : ChatColor.RED+"Disabled") + "\n" + ChatColor.GREEN + plugin.getTranslatedText("settings.feature.AutoSave") + (plugin.getConfig().getBoolean("Saving.enabled") ? ChatColor.GREEN + enabled : ChatColor.RED + disabled) + "\n"
+ ChatColor.GREEN+"Plugin manager: " + (plugin.getConfig().getBoolean("PluginManager.enabled") ? ChatColor.GREEN+"Enabled" : ChatColor.RED+"Disabled") + "\n" + ChatColor.GREEN + plugin.getTranslatedText("settings.feature.pmanager") + (plugin.getConfig().getBoolean("PluginManager.enabled") ? ChatColor.GREEN + enabled : ChatColor.RED + disabled) + "\n"
+ ChatColor.GREEN+" ========================== " + ChatColor.GREEN + " ========================== "
); );
return true; return true;

View File

@ -16,15 +16,17 @@ public class StatCommand {
long hours = totalSeconds / 3600; long hours = totalSeconds / 3600;
long minutes = (totalSeconds % 3600) / 60; long minutes = (totalSeconds % 3600) / 60;
long seconds = totalSeconds % 60; long seconds = totalSeconds % 60;
STPlugin plugin = STPlugin.getInstance();
plugin.getTranslatedText("");
player.sendMessage(STPlugin.getInstance().getPrefix() + ChatColor.GREEN + " === Your statistics === "); player.sendMessage(STPlugin.getInstance().getPrefix() + ChatColor.GREEN + " === "+plugin.getTranslatedText("stats.header")+" === ");
player.sendMessage(ChatColor.AQUA+"Connects: " + (player.getStatistic(Statistic.LEAVE_GAME)+1)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.connects") + (player.getStatistic(Statistic.LEAVE_GAME)+1));
player.sendMessage(ChatColor.AQUA+"Deaths: " + player.getStatistic(Statistic.DEATHS)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.deaths") + player.getStatistic(Statistic.DEATHS));
player.sendMessage(ChatColor.AQUA+"Mob kills: " + player.getStatistic(Statistic.MOB_KILLS)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.MobKills") + player.getStatistic(Statistic.MOB_KILLS));
player.sendMessage(ChatColor.AQUA+"Player kills: " + player.getStatistic(Statistic.PLAYER_KILLS)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.PlayerKills") + player.getStatistic(Statistic.PLAYER_KILLS));
player.sendMessage(ChatColor.AQUA+"Sleep count: " + player.getStatistic(Statistic.SLEEP_IN_BED)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.sleeps") + player.getStatistic(Statistic.SLEEP_IN_BED));
player.sendMessage(ChatColor.AQUA+"Enchant count: " + player.getStatistic(Statistic.ITEM_ENCHANTED)); player.sendMessage(ChatColor.AQUA+plugin.getTranslatedText("stats.enchants") + player.getStatistic(Statistic.ITEM_ENCHANTED));
player.sendMessage(ChatColor.AQUA + "Total Play Time: " + hours + "h " + minutes + "m " + seconds + "s"); player.sendMessage(ChatColor.AQUA + plugin.getTranslatedText("stats.totaltime") + hours + plugin.getTranslatedText("stats.hour") + minutes + plugin.getTranslatedText("stats.minutes") + seconds + plugin.getTranslatedText("stats.seconds"));
player.sendMessage(ChatColor.GREEN+" =================== "); player.sendMessage(ChatColor.GREEN+" =================== ");
return true; return true;
} }

View File

@ -18,7 +18,7 @@ public class CommandHandler implements CommandExecutor {
public CommandHandler(final STPlugin instance) { public CommandHandler(final STPlugin instance) {
this.plugin = instance; this.plugin = instance;
this.noArgMsg = plugin.getPrefix() + ChatColor.DARK_RED + "To list all SimplifyTools commands use the '/help SIMPLIFYTOOLS' command!"; this.noArgMsg = plugin.getPrefix() + ChatColor.DARK_RED + plugin.getTranslatedText("list.help");
this.cd = new Cooldown(plugin); this.cd = new Cooldown(plugin);
this.config = plugin.getConfig(); this.config = plugin.getConfig();
} }
@ -44,7 +44,7 @@ public class CommandHandler implements CommandExecutor {
if (command.getName().equals("st") && (args.length == 0 || args[0].contains("help"))) if (command.getName().equals("st") && (args.length == 0 || args[0].contains("help")))
{ {
sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN+"Version: " + plugin.getDescription().getVersion()); sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN+plugin.getTranslatedText("version.pre.text") + plugin.getDescription().getVersion());
sender.sendMessage(this.noArgMsg); sender.sendMessage(this.noArgMsg);
return true; return true;
} }
@ -58,13 +58,13 @@ public class CommandHandler implements CommandExecutor {
if(plugin.reload()){ if(plugin.reload()){
sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Successfully reload!" + "\n" sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Successfully reload!" + "\n"
+ plugin.getPrefix() + ChatColor.RED + "Notice: Restart your server if the settings didn't applied."); + plugin.getPrefix() + ChatColor.RED + plugin.getTranslatedText("notice.settings.not.applied"));
return true; return true;
} }
} }
if (command.getName().equals("st") && args[0].contains("tps") && sender.hasPermission("st.tps")) { if (command.getName().equals("st") && args[0].contains("tps") && sender.hasPermission("st.tps")) {
sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN+"Plugin Calculated TPS: "+TPS.getColor()+String.format("%.2f", TPS.getTPS())); sender.sendMessage(plugin.getPrefix() + ChatColor.GREEN+plugin.getTranslatedText("plugin.calculated.tps")+TPS.getColor()+String.format("%.2f", TPS.getTPS()));
return true; return true;
} }
@ -72,7 +72,7 @@ public class CommandHandler implements CommandExecutor {
if (command.getName().equalsIgnoreCase("st") && args[0].contains("pmanager")) { if (command.getName().equalsIgnoreCase("st") && args[0].contains("pmanager")) {
if (sender.hasPermission("st.pmanager.unload") || sender.hasPermission("st.pmanager.load") || sender.hasPermission("st.pmanager")) { if (sender.hasPermission("st.pmanager.unload") || sender.hasPermission("st.pmanager.load") || sender.hasPermission("st.pmanager")) {
if (args.length==1){ if (args.length==1){
sender.sendMessage(plugin.getPrefix() + ChatColor.DARK_RED+"Invalid arguments!"); sender.sendMessage(plugin.getPrefix() + ChatColor.DARK_RED+plugin.getTranslatedText("invalid.arguments"));
return true; return true;
} }
if (config.getBoolean("PluginManager.enabled")) { if (config.getBoolean("PluginManager.enabled")) {
@ -85,7 +85,7 @@ public class CommandHandler implements CommandExecutor {
PluginManagerCommand.UnloadPlugin(sender, args); PluginManagerCommand.UnloadPlugin(sender, args);
} }
} else { } else {
sender.sendMessage(plugin.getPrefix() + ChatColor.DARK_RED + "Plugin manager commands are disabled in the config!"); sender.sendMessage(plugin.getPrefix() + ChatColor.DARK_RED + plugin.getTranslatedText("pmanager.disabled"));
return true; return true;
} }
} }

View File

@ -1,6 +1,7 @@
package hu.ditservices.handlers; package hu.ditservices.handlers;
import hu.ditservices.STPlugin; import hu.ditservices.STPlugin;
import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -40,21 +41,21 @@ public class LoginCommandHandler implements CommandExecutor {
UUID pUuid = player.getUniqueId(); UUID pUuid = player.getUniqueId();
if (args.length != 1) { if (args.length != 1) {
player.sendMessage("Usage: /slogin <PASSWORD>"); player.sendMessage(plugin.getTranslatedText("cmd.usage.login"));
return true; return true;
} }
if (plugin.getServerPasswordData().getAuthenticatedPlayers().getOrDefault(pUuid,false)) { if (plugin.getServerPasswordData().getAuthenticatedPlayers().getOrDefault(pUuid,false)) {
player.sendMessage("You are already authenticated."); player.sendMessage(ChatColor.GREEN + plugin.getTranslatedText("serverpassword.already.auth"));
return true; return true;
} }
if (this.authenticate(player, args[0])) { if (this.authenticate(player, args[0])) {
player.sendMessage("You have been authenticated."); player.sendMessage(ChatColor.GREEN + plugin.getTranslatedText("serverpassword.success.auth"));
plugin.getServerPasswordData().getInventoryMap().remove(pUuid); plugin.getServerPasswordData().getInventoryMap().remove(pUuid);
plugin.getServerPasswordData().getArmorMap().remove(pUuid); plugin.getServerPasswordData().getArmorMap().remove(pUuid);
} else { } else {
player.sendMessage("Incorrect password. Try again."); player.sendMessage(ChatColor.RED + plugin.getTranslatedText("serverpassword.incorrect"));
} }
return true; return true;
} }

View File

@ -36,8 +36,8 @@ public class ServerPasswordEvents implements Listener {
player.getInventory().clear(); player.getInventory().clear();
player.getInventory().setArmorContents(null); player.getInventory().setArmorContents(null);
} }
player.sendMessage(ChatColor.RED + "There is server password enabled on this server!"); player.sendMessage(ChatColor.RED + plugin.getTranslatedText("serverpassword.enabled"));
player.sendMessage("Note: This means the same password for all players."); player.sendMessage(plugin.getTranslatedText("serverpassword.note"));
BukkitRunnable authReminder = new BukkitRunnable() { BukkitRunnable authReminder = new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
@ -46,7 +46,7 @@ public class ServerPasswordEvents implements Listener {
this.cancel(); this.cancel();
return; return;
} }
player.sendMessage(ChatColor.RED + "Please login using /slogin <password>"); player.sendMessage(ChatColor.RED + plugin.getTranslatedText("serverpassword.login"));
} }
}; };
authReminder.runTaskTimer(plugin, 0L, 100L); authReminder.runTaskTimer(plugin, 0L, 100L);

View File

@ -11,6 +11,9 @@
# ██████╔╝██║██║░╚═╝░██║██║░░░░░███████╗██║██║░░░░░░░░██║░░░░░░██║░░░╚█████╔╝╚█████╔╝███████╗██████╔╝ # ██████╔╝██║██║░╚═╝░██║██║░░░░░███████╗██║██║░░░░░░░░██║░░░░░░██║░░░╚█████╔╝╚█████╔╝███████╗██████╔╝
# ╚═════╝░╚═╝╚═╝░░░░░╚═╝╚═╝░░░░░╚══════╝╚═╝╚═╝░░░░░░░░╚═╝░░░░░░╚═╝░░░░╚════╝░░╚════╝░╚══════╝╚═════╝░ # ╚═════╝░╚═╝╚═╝░░░░░╚═╝╚═╝░░░░░╚══════╝╚═╝╚═╝░░░░░░░░╚═╝░░░░░░╚═╝░░░░╚════╝░░╚════╝░╚══════╝╚═════╝░
# #
# Localization options
# Currently these languages included by default: en, hu. You can add another language in the lang folder.
language: 'en'
# Logging options # Logging options
# If you enable one of them, a txt file will be created every day automatically with the current date. # If you enable one of them, a txt file will be created every day automatically with the current date.
Log: Log:
@ -61,7 +64,7 @@ Tab:
CustomMsg: CustomMsg:
enabled: false enabled: false
connect: '{PREFIX}{NAME} &aconnected to the server.' connect: '{PREFIX}{NAME} &aconnected to the server.'
disconnect: '{PREFIX}{NAME} leaved the game.' disconnect: '{PREFIX}{NAME} left the game.'
# Auto Save options # Auto Save options
# Saves Worlds/Users data to disk. # Saves Worlds/Users data to disk.

View File

@ -0,0 +1,39 @@
version.pre.text: "Version: "
action.success.reload: "Successfully reload!"
notice.settings.not.applied: "Notice: Restart your server if the settings didn't applied."
plugin.calculated.tps: "Plugin Calculated TPS: "
invalid.arguments: "Invalid arguments!"
pmanager.disabled: "Plugin manager commands are disabled in the config!"
serverpassword.enabled: "There is server password enabled on this server!"
serverpassword.note: "Note: This means the same password for all players."
serverpassword.login: "Please login using /slogin <password>"
serverpassword.already.auth: "You are already authenticated."
serverpassword.success.auth: "You have been authenticated."
serverpassword.incorrect: "Incorrect password. Try again."
cmd.usage.login: "Usage: /slogin <PASSWORD>"
settings.server: "Server "
settings.features: "Features"
settings.enabled: "Enabled"
settings.disabled: "Disabled"
settings.feature.tab: "Tab customization: "
settings.feature.CustomAdvancementMsg: "Custom Advancement Msg: "
settings.feature.AutoSave: "Auto saving: "
settings.feature.pmanager: "Plugin manager: "
stats.header: "Your statistics"
stats.connects: "Connects: "
stats.deaths: "Deaths: "
stats.MobKills: "Mob kills: "
stats.PlayerKills: "Player kills: "
stats.sleeps: "Sleeps: "
stats.enchants: "Enchants: "
stats.totaltime: "Total Play Time: "
stats.hour: "h "
stats.minutes: "m "
stats.seconds: "s"
cmd.ping: "Your response time to the server: "
pmanager.not.exist: "Plugin not exist!"
pmanager.already.enabled: " already enabled!"
pmanager.success.enabled: " successfully enabled!"
pmanager.already.disabled: " already disabled!"
pmanager.success.disabled: " successfully disabled!"
list.help: "To list all SimplifyTools commands use the '/help SIMPLIFYTOOLS' command!"

View File

@ -0,0 +1,39 @@
version.pre.text: "Verzió: "
action.success.reload: "Sikeres újratöltés!"
notice.settings.not.applied: "Figyelem: Indítsd újra a szervert, ha a beállítások nem alkalmazódtak."
plugin.calculated.tps: "Plugin által kalkulált TPS: "
invalid.arguments: "Érvénytelen argumentek!"
pmanager.disabled: "A plugin-kezelő le van tiltva a konfigban!"
serverpassword.enabled: "Ezen a szerveren szerver jelszó van bekapcsolva!"
serverpassword.note: "Figyelem: Ez azt jelenti, hogy mindenki számára ugyanazt a jelszót kell megadni!"
serverpassword.login: "Kérlek, lépj be ezzel: /slogin <jelszó>"
serverpassword.already.auth: "Már bejelentkeztél."
serverpassword.success.auth: "Sikeresen bejelentkeztél!"
serverpassword.incorrect: "Rossz jelszó. Próbáld újra."
cmd.usage.login: "Használat: /slogin <JELSZÓ>"
settings.server: "Szerver "
settings.features: "Tulajdonságok "
settings.enabled: "Bekapcsolva"
settings.disabled: "Kikapcsolva"
settings.feature.tab: "Tablista testreszabás: "
settings.feature.CustomAdvancementMsg: "Teljesítmény-elérés üzenet testreszabás: "
settings.feature.AutoSave: "Automatikus mentés: "
settings.feature.pmanager: "Plugin kezelő: "
stats.header: "A statisztikáid"
stats.connects: "Belépések: "
stats.deaths: "Halálok: "
stats.MobKills: "Mob ölések: "
stats.PlayerKills: "Játékos ölések: "
stats.sleeps: "Alvások: "
stats.enchants: "Enchantolások: "
stats.totaltime: "Összes játékidő: "
stats.hour: "ó "
stats.minutes: "p "
stats.seconds: "mp"
cmd.ping: "A válaszidőd a szerverhez: "
pmanager.not.exist: "Plugin nem létezik!"
pmanager.already.enabled: " már eddig is engedélyezve volt!"
pmanager.success.enabled: " sikeresen engedélyezve!"
pmanager.already.disabled: " már kivolt kapcsolva eddig is!"
pmanager.success.disabled: " sikeresen kikapcsolva!"
list.help: "Használd a '/help SIMPLIFYTOOLS' parancsot a plugin parancsainak listázásához!"