mirror of
https://github.com/songoda/EpicHoppers.git
synced 2024-11-22 10:15:43 +01:00
langauge
This commit is contained in:
parent
b5dc97d830
commit
abd1bc75df
@ -51,7 +51,14 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
@ -118,17 +125,15 @@ public class EpicHoppersPlugin extends JavaPlugin implements EpicHoppers {
|
||||
setupConfig();
|
||||
enchantmentHandler = new EnchantmentHandler();
|
||||
|
||||
// Locales
|
||||
String langMode = getConfig().getString("System.Language Mode");
|
||||
Locale.init(this);
|
||||
Locale.saveDefaultLocale("en_US");
|
||||
Locale.saveDefaultLocale("fr_FR");
|
||||
Locale.saveDefaultLocale("nl_NL");
|
||||
Locale.saveDefaultLocale("es_ES");
|
||||
Locale.saveDefaultLocale("pr_FA");
|
||||
Locale.saveDefaultLocale("pt_BR");
|
||||
this.locale = Locale.getLocale(getConfig().getString("System.Language Mode", langMode));
|
||||
|
||||
if (getConfig().getBoolean("System.Download Needed Data Files")) {
|
||||
this.update();
|
||||
}
|
||||
|
||||
hopperManager = new EHopperManager();
|
||||
playerDataManager = new PlayerDataManager();
|
||||
boostManager = new BoostManager();
|
||||
@ -241,6 +246,39 @@ public class EpicHoppersPlugin extends JavaPlugin implements EpicHoppers {
|
||||
console.sendMessage(Arconix.pl().getApi().format().formatText("&a============================="));
|
||||
}
|
||||
|
||||
private void update() {
|
||||
try {
|
||||
URL url = new URL("http://update.songoda.com/index.php?plugin=" + getDescription().getName() + "&version=" + getDescription().getVersion());
|
||||
URLConnection urlConnection = url.openConnection();
|
||||
InputStream is = urlConnection.getInputStream();
|
||||
InputStreamReader isr = new InputStreamReader(is);
|
||||
|
||||
int numCharsRead;
|
||||
char[] charArray = new char[1024];
|
||||
StringBuffer sb = new StringBuffer();
|
||||
while ((numCharsRead = isr.read(charArray)) > 0) {
|
||||
sb.append(charArray, 0, numCharsRead);
|
||||
}
|
||||
String jsonString = sb.toString();
|
||||
JSONObject json = (JSONObject) new JSONParser().parse(jsonString);
|
||||
|
||||
JSONArray files = (JSONArray) json.get("neededFiles");
|
||||
for (Object o : files) {
|
||||
JSONObject file = (JSONObject) o;
|
||||
|
||||
switch ((String)file.get("type")) {
|
||||
case "locale":
|
||||
InputStream in = new URL((String) file.get("link")).openStream();
|
||||
Locale.saveDefaultLocale(in, (String) file.get("name"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("Failed to update.");
|
||||
//e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void checkStorage() {
|
||||
if (getConfig().getBoolean("Database.Activate Mysql Support")) {
|
||||
|
@ -3,7 +3,6 @@ package com.songoda.epichoppers;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@ -23,11 +22,10 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
public class Locale {
|
||||
|
||||
private static JavaPlugin plugin;
|
||||
private static final List<Locale> LOCALES = Lists.newArrayList();
|
||||
|
||||
private static final Pattern NODE_PATTERN = Pattern.compile("(\\w+(?:\\.\\w+)*)\\s*=\\s*\"(.*)\"");
|
||||
private static final Pattern NODE_PATTERN = Pattern.compile("(\\w+(?:\\.{1}\\w+)*)\\s*=\\s*\"(.*)\"");
|
||||
private static final String FILE_EXTENSION = ".lang";
|
||||
private static JavaPlugin plugin;
|
||||
private static File localeFolder;
|
||||
|
||||
private static String defaultLocale;
|
||||
@ -52,123 +50,6 @@ public class Locale {
|
||||
plugin.getLogger().info("Loaded locale " + fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the language that this locale is based on.
|
||||
* (i.e. "en" for English, or "fr" for French)
|
||||
*
|
||||
* @return the name of the language
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the region that this locale is from.
|
||||
* (i.e. "US" for United States or "CA" for Canada)
|
||||
*
|
||||
* @return the name of the region
|
||||
*/
|
||||
public String getRegion() {
|
||||
return region;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the entire locale tag (i.e. "en_US")
|
||||
*
|
||||
* @return the language tag
|
||||
*/
|
||||
public String getLanguageTag() {
|
||||
return name + "_" + region;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file that represents this locale
|
||||
*
|
||||
* @return the locale file (.lang)
|
||||
*/
|
||||
public File getFile() {
|
||||
return file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node
|
||||
*
|
||||
* @param node the node to get
|
||||
* @return the message for the specified node
|
||||
*/
|
||||
public String getMessage(String node) {
|
||||
return ChatColor.translateAlternateColorCodes('&', this.getMessageOrDefault(node, node));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node and replace its params with a supplied arguments.
|
||||
*
|
||||
* @param node the node to get
|
||||
* @param args the replacement arguments
|
||||
* @return the message for the specified node
|
||||
*/
|
||||
public String getMessage(String node, Object... args) {
|
||||
String message = getMessage(node);
|
||||
for (Object arg : args) {
|
||||
message = message.replaceFirst("%.*?%", arg.toString());
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node
|
||||
*
|
||||
* @param node the node to get
|
||||
* @param defaultValue the default value given that a value for the node was not found
|
||||
*
|
||||
* @return the message for the specified node. Default if none found
|
||||
*/
|
||||
public String getMessageOrDefault(String node, String defaultValue) {
|
||||
return this.nodes.getOrDefault(node, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the key-value map of nodes to messages
|
||||
*
|
||||
* @return node-message map
|
||||
*/
|
||||
public Map<String, String> getMessageNodeMap() {
|
||||
return ImmutableMap.copyOf(nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the previous message cache and load new messages directly from file
|
||||
*
|
||||
* @return reload messages from file
|
||||
*/
|
||||
public boolean reloadMessages() {
|
||||
if (!this.file.exists()) {
|
||||
plugin.getLogger().warning("Could not find file for locale " + this.name);
|
||||
return false;
|
||||
}
|
||||
|
||||
this.nodes.clear(); // Clear previous data (if any)
|
||||
|
||||
try(BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
String line;
|
||||
for (int lineNumber = 0; (line = reader.readLine()) != null; lineNumber++) {
|
||||
if (line.isEmpty() || line.startsWith("#") /* Comment */) continue;
|
||||
|
||||
Matcher matcher = NODE_PATTERN.matcher(line);
|
||||
if (!matcher.find()) {
|
||||
System.err.println("Invalid locale syntax at (line=" + lineNumber + ")");
|
||||
continue;
|
||||
}
|
||||
|
||||
nodes.put(matcher.group(1), matcher.group(2));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the locale class to generate information and search for localizations.
|
||||
* This must be called before any other methods in the Locale class can be invoked.
|
||||
@ -269,12 +150,11 @@ public class Locale {
|
||||
/**
|
||||
* Save a default locale file from the project source directory, to the locale folder
|
||||
*
|
||||
* @param path the path to the file to save
|
||||
* @param fileName the name of the file to save
|
||||
*
|
||||
* @param in file to save
|
||||
* @param fileName the name of the file to save
|
||||
* @return true if the operation was successful, false otherwise
|
||||
*/
|
||||
public static boolean saveDefaultLocale(String path, String fileName) {
|
||||
public static boolean saveDefaultLocale(InputStream in, String fileName) {
|
||||
if (!localeFolder.exists()) localeFolder.mkdirs();
|
||||
|
||||
if (!fileName.endsWith(FILE_EXTENSION))
|
||||
@ -286,7 +166,7 @@ public class Locale {
|
||||
}
|
||||
|
||||
try (OutputStream outputStream = new FileOutputStream(destinationFile)) {
|
||||
IOUtils.copy(plugin.getResource(fileName), outputStream);
|
||||
copy(in == null ? plugin.getResource(fileName) : in, outputStream);
|
||||
|
||||
fileName = fileName.substring(0, fileName.lastIndexOf('.'));
|
||||
String[] localeValues = fileName.split("_");
|
||||
@ -309,7 +189,7 @@ public class Locale {
|
||||
* @return true if the operation was successful, false otherwise
|
||||
*/
|
||||
public static boolean saveDefaultLocale(String fileName) {
|
||||
return saveDefaultLocale("", fileName);
|
||||
return saveDefaultLocale(null, fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -345,7 +225,8 @@ public class Locale {
|
||||
|
||||
if (!existingLines.contains(key)) {
|
||||
if (!changed) {
|
||||
writer.newLine(); writer.newLine();
|
||||
writer.newLine();
|
||||
writer.newLine();
|
||||
writer.write("# New messages for " + plugin.getName() + " v" + plugin.getDescription().getVersion());
|
||||
}
|
||||
|
||||
@ -362,4 +243,133 @@ public class Locale {
|
||||
return changed;
|
||||
}
|
||||
|
||||
private static void copy(InputStream input, OutputStream output) {
|
||||
int n;
|
||||
byte[] buffer = new byte[1024 * 4];
|
||||
|
||||
try {
|
||||
while ((n = input.read(buffer)) != -1) {
|
||||
output.write(buffer, 0, n);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the language that this locale is based on.
|
||||
* (i.e. "en" for English, or "fr" for French)
|
||||
*
|
||||
* @return the name of the language
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of the region that this locale is from.
|
||||
* (i.e. "US" for United States or "CA" for Canada)
|
||||
*
|
||||
* @return the name of the region
|
||||
*/
|
||||
public String getRegion() {
|
||||
return region;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the entire locale tag (i.e. "en_US")
|
||||
*
|
||||
* @return the language tag
|
||||
*/
|
||||
public String getLanguageTag() {
|
||||
return name + "_" + region;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file that represents this locale
|
||||
*
|
||||
* @return the locale file (.lang)
|
||||
*/
|
||||
public File getFile() {
|
||||
return file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node
|
||||
*
|
||||
* @param node the node to get
|
||||
* @return the message for the specified node
|
||||
*/
|
||||
public String getMessage(String node) {
|
||||
return ChatColor.translateAlternateColorCodes('&', this.getMessageOrDefault(node, node));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node and replace its params with a supplied arguments.
|
||||
*
|
||||
* @param node the node to get
|
||||
* @param args the replacement arguments
|
||||
* @return the message for the specified node
|
||||
*/
|
||||
public String getMessage(String node, Object... args) {
|
||||
String message = getMessage(node);
|
||||
for (Object arg : args) {
|
||||
message = message.replaceFirst("\\%.*?\\%", arg.toString());
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a message set for a specific node
|
||||
*
|
||||
* @param node the node to get
|
||||
* @param defaultValue the default value given that a value for the node was not found
|
||||
* @return the message for the specified node. Default if none found
|
||||
*/
|
||||
public String getMessageOrDefault(String node, String defaultValue) {
|
||||
return this.nodes.getOrDefault(node, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the key-value map of nodes to messages
|
||||
*
|
||||
* @return node-message map
|
||||
*/
|
||||
public Map<String, String> getMessageNodeMap() {
|
||||
return ImmutableMap.copyOf(nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the previous message cache and load new messages directly from file
|
||||
*
|
||||
* @return reload messages from file
|
||||
*/
|
||||
public boolean reloadMessages() {
|
||||
if (!this.file.exists()) {
|
||||
plugin.getLogger().warning("Could not find file for locale " + this.name);
|
||||
return false;
|
||||
}
|
||||
|
||||
this.nodes.clear(); // Clear previous data (if any)
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
String line;
|
||||
for (int lineNumber = 0; (line = reader.readLine()) != null; lineNumber++) {
|
||||
if (line.isEmpty() || line.startsWith("#") /* Comment */) continue;
|
||||
|
||||
Matcher matcher = NODE_PATTERN.matcher(line);
|
||||
if (!matcher.find()) {
|
||||
System.err.println("Invalid locale syntax at (line=" + lineNumber + ")");
|
||||
continue;
|
||||
}
|
||||
|
||||
nodes.put(matcher.group(1), matcher.group(2));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -196,37 +196,37 @@ public class SettingsManager implements Listener {
|
||||
}
|
||||
|
||||
public enum Setting {
|
||||
o1("Upgrading-enabled", "Main.Allow hopper Upgrading", true),
|
||||
o2("Upgrade-with-eco", "Main.Upgrade With Economy", true),
|
||||
o3("Upgrade-with-xp", "Main.Upgrade With XP", true),
|
||||
o4("Teleport-hoppers", "Main.Allow Players To Teleport Through Hoppers", true),
|
||||
o6("EnderChest-support", "Main.Support Enderchests", true),
|
||||
o7("Upgrade-particle-type", "Main.Upgrade Particle Type", "SPELL_WITCH"),
|
||||
o8("Hop-Tick", "Main.Amount of Ticks Between Hops", 8L),
|
||||
o9("Tele-Tick", "Main.Amount of Ticks Between Teleport", 10L),
|
||||
o10("Sync-Timeout", "Main.Timeout When Syncing Hoppers", 300L),
|
||||
o11("hopper-Limit", "Main.Max Hoppers Per Chunk", -1),
|
||||
o12("Helpful-Tips", "Main.Display Helpful Tips For Operators", true),
|
||||
o13("Sounds", "Main.Sounds Enabled", true),
|
||||
o14("BlockBreak-Particle-Type", "Main.BlockBreak Particle Type", "LAVA"),
|
||||
o15("BlockBreak-Blacklist", "Main.BlockBreak Blacklisted Blocks", Arrays.asList("BEDROCK")),
|
||||
o1("Main.Allow hopper Upgrading", true),
|
||||
o2("Main.Upgrade With Economy", true),
|
||||
o3("Main.Upgrade With XP", true),
|
||||
o4("Main.Allow Players To Teleport Through Hoppers", true),
|
||||
o6("Main.Support Enderchests", true),
|
||||
o7("Main.Upgrade Particle Type", "WITCH_MAGIC"),
|
||||
o8("Main.Amount of Ticks Between Hops", 8L),
|
||||
o9("Main.Amount of Ticks Between Teleport", 10L),
|
||||
o10("Main.Timeout When Syncing Hoppers", 300L),
|
||||
o11("Main.Max Hoppers Per Chunk", -1),
|
||||
o12("Main.Display Helpful Tips For Operators", true),
|
||||
o13("Main.Sounds Enabled", true),
|
||||
o14("Main.BlockBreak Particle Type", "LAVA"),
|
||||
o15("Main.BlockBreak Blacklisted Blocks", Arrays.asList("BEDROCK")),
|
||||
o16("Interfaces.Replace Glass Type 1 With Rainbow Glass", false),
|
||||
o17("Interfaces.Economy Icon", "SUNFLOWER"),
|
||||
o18("Interfaces.XP Icon", "EXPERIENCE_BOTTLE"),
|
||||
o19("Interfaces.Glass Type 1", 7),
|
||||
o20("Interfaces.Glass Type 2", 11),
|
||||
o21("Interfaces.Glass Type 3", 3),
|
||||
|
||||
o16("Rainbow-Glass", "Interfaces.Replace Glass Type 1 With Rainbow Glass", false),
|
||||
o17("ECO-Icon", "Interfaces.Economy Icon", "SUNFLOWER"),
|
||||
o18("XP-Icon", "Interfaces.XP Icon", "EXPERIENCE_BOTTLE"),
|
||||
o19("Glass-Type-1", "Interfaces.Glass Type 1", 7),
|
||||
o20("Glass-Type-2", "Interfaces.Glass Type 2", 11),
|
||||
o21("Glass-Type-3", "Interfaces.Glass Type 3", 3),
|
||||
DATABASE_SUPPORT("Database.Activate Mysql Support", false),
|
||||
DATABASE_IP("Database.IP", "127.0.0.1"),
|
||||
DATABASE_PORT("Database.Port", 3306),
|
||||
DATABASE_NAME("Database.Database Name", "EpicHoppers"),
|
||||
DATABASE_USERNAME("Database.Username", "PUT_USERNAME_HERE"),
|
||||
DATABASE_PASSWORD("Database.Password", "PUT_PASSWORD_HERE"),
|
||||
|
||||
DATABASE_SUPPORT("-", "Database.Activate Mysql Support", false),
|
||||
DATABASE_IP("-", "Database.IP", "127.0.0.1"),
|
||||
DATABASE_PORT("-", "Database.Port", 3306),
|
||||
DATABASE_NAME("-", "Database.Database Name", "EpicHoppers"),
|
||||
DATABASE_USERNAME("-", "Database.Username", "PUT_USERNAME_HERE"),
|
||||
DATABASE_PASSWORD("-", "Database.Password", "PUT_PASSWORD_HERE"),
|
||||
|
||||
LANGUGE_MODE("-", "System.Language Mode", "en_US"),
|
||||
o22("Debug-Mode", "System.Debugger Enabled", false);
|
||||
DOWNLOAD_FILES("System.Download Needed Data Files", true),
|
||||
LANGUGE_MODE("System.Language Mode", "en_US"),
|
||||
o22("System.Debugger Enabled", false);
|
||||
|
||||
private String setting;
|
||||
private String oldSetting;
|
||||
|
@ -1,63 +0,0 @@
|
||||
#Mensajes Generales
|
||||
|
||||
general.nametag.prefix = "&7[&6TolvasÉpicas&7]"
|
||||
general.nametag.next = "&9Siguiente"
|
||||
general.nametag.back = "&9Atrás"
|
||||
general.nametag.nameformat = "&eNivel %level% &fTolva"
|
||||
|
||||
#Mensajes de Interfaz
|
||||
|
||||
interface.hopper.boostedstats = "&a&lActualmente acelerado!|&7Objetos transferidos multiplicados por &6%amount%x&7.|&7Expira en &6%time%&7."
|
||||
interface.hopper.upgradewithxp = "&aMejorar con XP"
|
||||
interface.hopper.upgradewithxplore = "&7Costo: &a%cost% Niveles"
|
||||
interface.hopper.upgradewitheconomy = "&aMejorar con Dinero"
|
||||
interface.hopper.upgradewitheconomylore = "&7Costo: &a$%cost%"
|
||||
interface.hopper.currentlevel = "&6Tolva Nivel &7%level%"
|
||||
interface.hopper.nextlevel = "&6Siguiente Nivel &7%level%"
|
||||
interface.hopper.range = "&7Rango: &6%range%"
|
||||
interface.hopper.amount = "&7Cantidad: &6%amount%"
|
||||
interface.hopper.teleport = "&7Teletransportación: &6%enabled%"
|
||||
interface.hopper.filter = "&7Filtro: &6%enabled%"
|
||||
interface.hopper.crafting = "&7AutoCreación: &6%enabled%"
|
||||
interface.hopper.suction = "&7Succión: &6%suction%"
|
||||
interface.hopper.blockbreak = "&7Romper Bloque: &6Cada %ticks% ticks"
|
||||
interface.hopper.alreadymaxed = "&7Esta tolva ya está al máximo!"
|
||||
interface.hopper.synclore = "|&7Haz click izquierdo luego haz click en|&7una tolva o un cofre para sincronizar!||&7Haz click derecho para cancelar la sincronización."
|
||||
interface.hopper.perltitle = "&6Haz click para Teletransportarte"
|
||||
interface.hopper.perllore2 = "|&7Haz click izquierda para teletransportarte a|&7el final de la cadena.||&7Haz click derecho para cambiar el|&7modo de teletransporte.|&7Actualmente establecido a: &a%type%&7."
|
||||
interface.hopper.filtertitle = "&cHaz click para Filtrar"
|
||||
interface.hopper.filterlore = "|&7Esto te permite elegir|&7cuales objetos van adonde."
|
||||
interface.hopper.craftingtitle = "&cHaz click para instalar la AutoCreación"
|
||||
interface.hopper.craftinglore = "|&7Esto te permite elegir|&7que objetos esta tolva|&7creará automáticamente."
|
||||
interface.hopper.synchopper = "&6Haga clic para sincronizar esta tolva"
|
||||
interface.hopper.rejectsync = "&6Haga clic para sincronizar objetos rechazados"
|
||||
interface.filter.infotitle = "&aGuía de Filtro"
|
||||
interface.filter.infolore = "&7Objetos colocados en la parte superior izquierda|&7se añadirán en la lista blanca.||&7Objetos colocados en la parte derecha|&7se anularán.||&7Objetos colocados en la parte inferior izquierda|&7se añadirán a la lista negra.||&cEl uso de la lista blanca desactivará|&clos objetos en lista negra y nulos."
|
||||
interface.filter.whitelist = "&f&lLista Blanca"
|
||||
interface.filter.blacklist = "&8&lLista Negra"
|
||||
interface.filter.void = "&c&lVacío"
|
||||
|
||||
#Mensajes de Comandos
|
||||
|
||||
command.give.success = "&7Has recibido una &7tolva &6nivel %level%&7."
|
||||
|
||||
#Mensajes de Eventos
|
||||
|
||||
event.general.nopermission = "&cNo tienes permitido hacer eso."
|
||||
event.upgrade.cannotafford = "&cNo puedes pagar esta mejora."
|
||||
event.upgrade.success = "&7Has mejorado esta tolva a &6nivel %level%&7!"
|
||||
event.upgrade.maxed = "&7Has llevado esta tolva al máximo con el &6nivel %level%&7."
|
||||
event.inventory.noroom = "&7No tienes espacio suficiente en tu inventario."
|
||||
event.hopper.syncsuccess = "&aSincrozado con éxito."
|
||||
event.hopper.desync = "&7Has cancelado la sincronización de esta tolva."
|
||||
event.hopper.syncnext = "&7Haz click en otra tolva o contenedor para sincronizar."
|
||||
event.hopper.syncself = "&cNo puedes sincronizar esta tolva con sí misma."
|
||||
event.hopper.synctimeout = "&cSe agotó el tiempo de espera."
|
||||
event.hopper.syncoutofrange = "&cEste bloque está muy lejos de tu tolva."
|
||||
event.hopper.syncdidnotplace = "&cLo sentimos! Necesitas colocar esta tolva para sincronizarla."
|
||||
event.hopper.toomany = "&cSolo puedes colocar %amount% tolvas por chunk..."
|
||||
event.hopper.walkteleenabled = "La teletransportación ha sido activada para esta tolva."
|
||||
event.hopper.walkteledisabled = "La teletransportación ha sido desactivada en esta tolva."
|
||||
event.hopper.onlyone = "&cSolo puedes colocar un objeto a la vez."
|
||||
event.hopper.syncchest = "&7Has sincronizado &9%name% &7con este cofre."
|
||||
event.hopper.desyncchest = "&7Has cancelado la sincronización de &9%name% &7con este cofre."
|
@ -1,63 +0,0 @@
|
||||
#General Messages
|
||||
|
||||
general.nametag.prefix = "&7[&6EpicHoppers&7]"
|
||||
general.nametag.next = "&9Suivant"
|
||||
general.nametag.back = "&9Next"
|
||||
general.nametag.nameformat = "&fHopper &eLevel %level%"
|
||||
|
||||
#Interface Messages
|
||||
|
||||
interface.hopper.boostedstats = "&a&lActuellement boosté!|&7Taux de transfert d'article multiplié par &6%amount%x&7.|&7Expire dans &6%time%&7."
|
||||
interface.hopper.upgradewithxp = "&aAmélioration avec l'exp"
|
||||
interface.hopper.upgradewithxplore = "&7Coût: &a%cost% Levels"
|
||||
interface.hopper.upgradewitheconomy = "&aAmélioration avec l'économie"
|
||||
interface.hopper.upgradewitheconomylore = "&7Coût: &a$%cost%"
|
||||
interface.hopper.currentlevel = "&6Hopper Level &7%level%"
|
||||
interface.hopper.nextlevel = "&6Level suivant dans &7%level% levels"
|
||||
interface.hopper.range = "&7Portée: &6%range%"
|
||||
interface.hopper.amount = "&7Montant: &6%amount%"
|
||||
interface.hopper.teleport = "&7Teleportation: &6%enabled%"
|
||||
interface.hopper.filter = "&7Filtre: &6%enabled%"
|
||||
interface.hopper.crafting = "&7CraftAuto: &6%enabled%"
|
||||
interface.hopper.suction = "&7Respiration: &6%suction%"
|
||||
interface.hopper.blockbreak = "&7Blocs cassés: &6Tout les %ticks% ticks"
|
||||
interface.hopper.alreadymaxed = "&7Ce hopper est déjà au maximum!"
|
||||
interface.hopper.synclore = "|&7Clic gauche puis cliquez sur un autre|&7hopper ou coffre pour synchro!||&7Clic droit pour désynchro."
|
||||
interface.hopper.perltitle = "&6Clic pour téléporter"
|
||||
interface.hopper.perllore2 = "|&7Clic gauche pour téléporter à|&7la fin de la chaîne.||&7Clic droit pour changer de|&7mode de téléportation.|&7Actuellement défini sur: &a%type%&7."
|
||||
interface.hopper.filtertitle = "&cClic pour filtrer"
|
||||
interface.hopper.filterlore = "|&7Cela vous permet de choisir|&7quel item va ici."
|
||||
interface.hopper.craftingtitle = "&cClic pour définir l'AutoCraft"
|
||||
interface.hopper.craftinglore = "|&7Cela vous permet de choisir|&7quel item ce hopper|&7va craft automatiquement."
|
||||
interface.hopper.synchopper = "&6Clic pour synchro ce hopper"
|
||||
interface.hopper.rejectsync = "&6Clic synchro les objets rejetés"
|
||||
interface.filter.infotitle = "&aGuide de filtrage"
|
||||
interface.filter.infolore = "&7Items placés dans l'espace supérieur gauche|&7seront placés dans la liste blanche.||&7Items placés à droit |&7willsont nuls.||&7Items placés dans l'espace inférieur gauche|&7seront sur la liste noire.||&cL'activation de la liste blanche désactivera|&cLa liste noire et les nuls"
|
||||
interface.filter.whitelist = "&f&lListe blanche"
|
||||
interface.filter.blacklist = "&8&lListe noire"
|
||||
interface.filter.void = "&c&lVide"
|
||||
|
||||
#Command Messages
|
||||
|
||||
command.give.success = "&7Vous avez reçu un Hopper &6level %level%."
|
||||
|
||||
#Event Messages
|
||||
|
||||
event.general.nopermission = "&cVous n'avez pas la permission."
|
||||
event.upgrade.cannotafford = "&cVous ne pouvez pas améliorer."
|
||||
event.upgrade.success = "&7Vous avez amélioré ce hopper &6level %level%&7!"
|
||||
event.upgrade.maxed = "&7Vous avez maximisé ce hopper au &6level %level%&7."
|
||||
event.inventory.noroom = "&7vous n'avez pas assez de place dans votre inventaire."
|
||||
event.hopper.syncsuccess = "&aSynchronisation réussie."
|
||||
event.hopper.desync = "&7Vous avez déssynchronisé ce hopper."
|
||||
event.hopper.syncnext = "&7Clic sur un autre coffre ou hopper pour synchro."
|
||||
event.hopper.syncself = "&cVous ne pouvez pas synchro un hopper avec lui même."
|
||||
event.hopper.synctimeout = "&cSynchro terminée."
|
||||
event.hopper.syncoutofrange = "&cCe bloc est hors portée de votre hopper."
|
||||
event.hopper.syncdidnotplace = "&cDésolé! Vous devez avoir placé ce hopper pour synchroniser les choses avec elle."
|
||||
event.hopper.toomany = "&cVous pouvez seulement placer %amount% hoppers par chunk..."
|
||||
event.hopper.walkteleenabled = "Téléportation activée pour ce hopper."
|
||||
event.hopper.walkteledisabled = "La marche sur la téléportation a été désactivée pour ce hopper."
|
||||
event.hopper.onlyone = "&cVous ne pouvez placer qu'un seul objet à la fois."
|
||||
event.hopper.syncchest = "&7Vous avez synchronisé votre &9%name% &7avec ce coffre."
|
||||
event.hopper.desyncchest = "&7Vous avez déssynchronisé votre &9%name% &7avec ce coffre."
|
@ -1,63 +0,0 @@
|
||||
#General Messages
|
||||
|
||||
general.nametag.prefix = "&7[&6EpicHoppers&7]"
|
||||
general.nametag.next = "&9Volgende"
|
||||
general.nametag.back = "&9Vorige"
|
||||
general.nametag.nameformat = "&eTrechter Level %level%"
|
||||
|
||||
#Interface Messages
|
||||
|
||||
interface.hopper.boostedstats = "&a&lMomenteel versterkt!|&7Artikeloverdrachtssnelheid vermenigvuldigd met &6%amount%x&7.|&7Verloopt over &6%time%&7."
|
||||
interface.hopper.upgradewithxp = "&aUpgrade met XP"
|
||||
interface.hopper.upgradewithxplore = "&7Kosten: &a%cost% Levels"
|
||||
interface.hopper.upgradewitheconomy = "&aUpgrade met Geld"
|
||||
interface.hopper.upgradewitheconomylore = "&7Kosten: &a$%cost%"
|
||||
interface.hopper.currentlevel = "&6Trechter Niveau &7%level%"
|
||||
interface.hopper.nextlevel = "&6Volgende Niveau &7%level%"
|
||||
interface.hopper.range = "&7Bereik: &6%range%"
|
||||
interface.hopper.amount = "&7Bedrag: &6%amount%"
|
||||
interface.hopper.teleport = "&7Teleporteren: &6%enabled%"
|
||||
interface.hopper.filter = "&7Filter: &6%enabled%"
|
||||
interface.hopper.crafting = "&7Automatische werkbank: &6%enabled%"
|
||||
interface.hopper.suction = "&7Zuigkracht: &6%suction%"
|
||||
interface.hopper.blockbreak = "&7Blokken gebroken: &6Elke %ticks% tikken"
|
||||
interface.hopper.alreadymaxed = "&7Deze trechter is al op het hoogste niveau geupgrade!"
|
||||
interface.hopper.synclore = "|&7Linker-Klik en klik dan op een andere|&7trechter of kist om het te synchroniseren!||&7Rechts-klik om het te desynchroniseren."
|
||||
interface.hopper.perltitle = "&6Klik om te teleporteren"
|
||||
interface.hopper.perllore2 = "|&7Linker-Klik om teleporteren|&7het einde van de ketting.||&7Linker-KLik om te veranderen|&7 naar teleporteer mode.|&7Momenteel ingesteld op: &a%type%&7."
|
||||
interface.hopper.filtertitle = "&cKlik om te Filteren"
|
||||
interface.hopper.filterlore = "|&7Dit staat je toe om te kiezen|&7welke items waar naar toe gaan."
|
||||
interface.hopper.craftingtitle = "&cKlik om Automatische werkbank in te stellen"
|
||||
interface.hopper.craftinglore = "|&7Dit staat je toe om te kiezen|&7elke item(s) deze trechter|&7automatisch zal maken."
|
||||
interface.hopper.synchopper = "&6Klik om deze trechter te synchroniseren"
|
||||
interface.hopper.rejectsync = "&6Klik om verworpen items te synchroniseren"
|
||||
interface.filter.infotitle = "&aFilter handleiding"
|
||||
interface.filter.infolore = "&7Items die links bovenin zijn geplaatst|&7worden op de witte lijst gezet.||&7Items zie rechts zijn geplaatst|&7worden verwijderd.||&7Items die links onderin zijn geplaatst|&7worden op de zwarte lijst gezet.||&cDoor de witte lijst te gebruiken|&cwordt zowel de zwarte lijst en de verwijder lijst uitgeschakeld."
|
||||
interface.filter.whitelist = "&f&lWitte lijst"
|
||||
interface.filter.blacklist = "&8&lZwarte lijst"
|
||||
interface.filter.void = "&c&lVerwijder lijst"
|
||||
|
||||
#Command Messages
|
||||
|
||||
command.give.success = "&7Je hebt een &6level %level% &7trechter gekregen."
|
||||
|
||||
#Event Messages
|
||||
|
||||
event.general.nopermission = "&cJe hebt geen toestemming om dat te doen."
|
||||
event.upgrade.cannotafford = "&cJe kunt deze upgrade niet betalen."
|
||||
event.upgrade.success = "&7Je hebt deze trechter met succes geüpgraded naar &6level %level%&7!"
|
||||
event.upgrade.maxed = "&7Je hebt deze trechter geupgrade naar het maximale &6level %level%&7."
|
||||
event.inventory.noroom = "&7Je hebt hiervoor geen ruimte in je inventaris."
|
||||
event.hopper.syncsuccess = "&aSynchronisatie geslaagd."
|
||||
event.hopper.desync = "&7Je hebt deze trechter gedesynchroniseerd."
|
||||
event.hopper.syncnext = "&7Klik op een andere trechter of container om te synchroniseren."
|
||||
event.hopper.syncself = "&cJe kunt een trechter niet met zichzelf laten synchroniseren."
|
||||
event.hopper.synctimeout = "&cSynchronisatie duurde te lang."
|
||||
event.hopper.syncoutofrange = "&cDit blok is buiten je trechter bereik."
|
||||
event.hopper.syncdidnotplace = "&cSorry! Je moet deze trechter hebben geplaatst om er dingen mee te synchroniseren."
|
||||
event.hopper.toomany = "&cJe kunt alleen %amount% trechter per chunk plaatsen..."
|
||||
event.hopper.walkteleenabled = "Teleporteren is ingeschakeld voor deze trechter."
|
||||
event.hopper.walkteledisabled = "Teleporteren door te lopen is uitgeschakeld voor deze trechter."
|
||||
event.hopper.onlyone = "&cJe mag slecht een item per keer plaatsen."
|
||||
event.hopper.syncchest = "&7Je hebt je &9%name% &7gesynchroniseerd met deze kist."
|
||||
event.hopper.desyncchest = "&7Je hebt je &9%name% &7gedesynchroniseerd met deze kist."
|
@ -1,63 +0,0 @@
|
||||
#General Messages
|
||||
|
||||
general.nametag.prefix = "&7[&6EpicHoppers&7]"
|
||||
general.nametag.next = "&9Bad"
|
||||
general.nametag.back = "&9Ghabl"
|
||||
general.nametag.nameformat = "&fHopper &eLevel %level%"
|
||||
|
||||
#Interface Messages
|
||||
|
||||
interface.hopper.boostedstats = "&a&lDar hale hazer boost shode ast!|&7Sorat jabejayi item &6%amount%x&7 barabaar shode ast.|&7Zaman Engheza:&6%time%&7."
|
||||
interface.hopper.upgradewithxp = "&aErtegha ba XP"
|
||||
interface.hopper.upgradewithxplore = "&7Hazine: &a%cost% level"
|
||||
interface.hopper.upgradewitheconomy = "&aErtegha ba POOL"
|
||||
interface.hopper.upgradewitheconomylore = "&7Hazine: &a$%cost%"
|
||||
interface.hopper.currentlevel = "&6Hopper Level &7%level%"
|
||||
interface.hopper.nextlevel = "&6Level bad &7%level%"
|
||||
interface.hopper.range = "&7Mahdode: &6%range%"
|
||||
interface.hopper.amount = "&7Tedad: &6%amount%"
|
||||
interface.hopper.teleport = "&7Teleport: &6%enabled%"
|
||||
interface.hopper.filter = "&7Saafii: &6%enabled%"
|
||||
interface.hopper.crafting = "&7Sakhtan khodkar: &6%enabled%"
|
||||
interface.hopper.suction = "&7Makesh: &6%suction%"
|
||||
interface.hopper.blockbreak = "&7kandan block: &6Har %ticks% tick"
|
||||
interface.hopper.alreadymaxed = "&7In Hopper be akharin level reside!"
|
||||
interface.hopper.synclore = "|&7Click chap konid sepas bar roye|&7hopper ya chest baraye etesal click konid!||&7Baraye ghatee etesal click rast konid."
|
||||
interface.hopper.perltitle = "&6Baraye teleport click konid"
|
||||
interface.hopper.perllore2 = "|&7Click chap konid baraye teleport shodan|&7be akhar in zanjire.||&7Click rast konid baraye taghir|&7nahve teleport.|&7Dar hale hazer rpye &a%type%&7 gharar darad."
|
||||
interface.hopper.filtertitle = "&cBaraye Saafii click konid"
|
||||
interface.hopper.filterlore = "|&7In be shoma ejaze midahad ta entekhab konid|&7kodam item koja beravad."
|
||||
interface.hopper.craftingtitle = "&cBaraye anjam tanzimat khodkar click konid"
|
||||
interface.hopper.craftinglore = "|&7In be shoma ejaze midahad ta entekhab konid|&7kodam item dar in hopper|&7be sorat khodkar sakhte shavad."
|
||||
interface.hopper.synchopper = "&6Baraye motasel kardan in hopper click konid"
|
||||
interface.hopper.rejectsync = "&6Barae motasel kardan item haye blacklist click konid"
|
||||
interface.filter.infotitle = "&aAmozesh Saafii"
|
||||
interface.filter.infolore = "&7Item haye bala samte chap|&7whitelist hastand.||&7Iteem haye samt rast|&7pooch hastand.||&7Item haye payin samte chap|&7blacklist hastand.||&cEstafade kardab az whitelist hengam|&cestefade az blacklist va pooch be sorat ham zaman gheyre faal ast."
|
||||
interface.filter.whitelist = "&f&lWhite List"
|
||||
interface.filter.blacklist = "&8&lBlack List"
|
||||
interface.filter.void = "&c&lPooch"
|
||||
|
||||
#Command Messages
|
||||
|
||||
command.give.success = "&7Shoma Hopper &6level %level% &7gereftid."
|
||||
|
||||
#Event Messages
|
||||
|
||||
event.general.nopermission = "&cShoma ejaze anjam in kar ra nadarid."
|
||||
event.upgrade.cannotafford = "&cErtegha Emal nashod."
|
||||
event.upgrade.success = "&7Shoma in Hopper ra be &6level %level%&7 ertegha dadid!"
|
||||
event.upgrade.maxed = "&7Shoma in Hopper ra be akharin levle ertegha dadid &6level %level%&7."
|
||||
event.inventory.noroom = "&7Shoma baraye in Hopper fazaye khali dar inventory khod nadarid."
|
||||
event.hopper.syncsuccess = "&aEtesal ba movafaghiat anjam shod."
|
||||
event.hopper.desync = "&7Etesal shoma ba movafaghiat ghaat shod."
|
||||
event.hopper.syncnext = "&7Baraye etesal bar roye Hopper ya Chest click konid."
|
||||
event.hopper.syncself = "&cShoma nemitavanid Hopper ra be khodash motasel konid."
|
||||
event.hopper.synctimeout = "&cZaman etesal tamam shod."
|
||||
event.hopper.syncoutofrange = "&cIn block kharej az mahdode hopper shoma hast."
|
||||
event.hopper.syncdidnotplace = "&cShoma baraye sync kardan item ebteda bayad Hopper ra begozarid!"
|
||||
event.hopper.toomany = "&cShoma tanha mitavanid %amount% adad Hopper dar har chunk begozarid."
|
||||
event.hopper.walkteleenabled = "Teleport baraye in hopper faal shod."
|
||||
event.hopper.walkteledisabled = "Teleport shodan ba rah raftan baraye in hopper gheyre faal shod."
|
||||
event.hopper.onlyone = "&cShooma faghat mitavanid yek item daron inja gharar dahid."
|
||||
event.hopper.syncchest = "&7Shoma &9%name% &7khod ra be in Chest etesal dadid."
|
||||
event.hopper.desyncchest = "&7Shoma Etesal &9%name% &7ra ba chest ghaat kardid."
|
@ -1,63 +0,0 @@
|
||||
#General Messages
|
||||
|
||||
general.nametag.prefix = "&7[&6EpicHoppers&7]"
|
||||
general.nametag.next = "&9Prox"
|
||||
general.nametag.back = "&9Voltar"
|
||||
general.nametag.nameformat = "&fHopper Nivel &e%level%"
|
||||
|
||||
#Interface Messages
|
||||
|
||||
interface.hopper.boostedstats = "&a&lCurrently boosted!|&7Item transfer rate multiplied by &6%amount%x&7.|&7Expires in &6%time%&7."
|
||||
interface.hopper.upgradewithxp = "&aUpgrade usando XP"
|
||||
interface.hopper.upgradewithxplore = "&7Valor: &a%cost% Niveis"
|
||||
interface.hopper.upgradewitheconomy = "&aUpgrade usando Money"
|
||||
interface.hopper.upgradewitheconomylore = "&7Valor: &a$%cost%"
|
||||
interface.hopper.currentlevel = "&6Hopper Nivel &7%level%"
|
||||
interface.hopper.nextlevel = "&6Prox. Nivel &7%level%"
|
||||
interface.hopper.range = "&7Alcance: &6%range%"
|
||||
interface.hopper.amount = "&7Quantidade: &6%amount%"
|
||||
interface.hopper.teleport = "&7Teleporte: &6%enabled%"
|
||||
interface.hopper.filter = "&7Filtro: &6%enabled%"
|
||||
interface.hopper.crafting = "&7AutoCrafting: &6%enabled%"
|
||||
interface.hopper.suction = "&7Succao: &6%suction%"
|
||||
interface.hopper.blockbreak = "&7Block Break: &6Every %ticks% ticks"
|
||||
interface.hopper.alreadymaxed = "&7Esse Hopper esta no maximo!"
|
||||
interface.hopper.synclore = "|&7Left-Click em seguida, clique em outro|&7funil ou peito para sincronizar!||&7Right-Click para sincronizar."
|
||||
interface.hopper.perltitle = "&6Clique para teleporta"
|
||||
interface.hopper.perllore2 = "|&7Left-Click to teleport to|&7the end of the chain.||&7Right-Click to switch the|&7teleport trigger mode.|&7Currently set to: &a%type%&7."
|
||||
interface.hopper.filtertitle = "&cClique para filtrar"
|
||||
interface.hopper.filterlore = "|&7Isso permite que você escolha | &7que os itens vão para onde."
|
||||
interface.hopper.craftingtitle = "&cClique para configurar o AutoCrafting"
|
||||
interface.hopper.craftinglore = "|&7Isso permite que você escolha | & 7que item este funil | & 7will automaticly craft."
|
||||
interface.hopper.synchopper = "&6Clique para sincronizar este funil"
|
||||
interface.hopper.rejectsync = "&6Clique para sincronizar itens rejeitados"
|
||||
interface.filter.infotitle = "&aGuia de filtro"
|
||||
interface.filter.infolore = "&7Itens colocados na parte superior esquerda | & 7space serão colocados na lista branca. || & 7Itens colocados à direita | & 7 serão anulados. || & 7Itens colocados na parte inferior esquerda | & 7serão colocados na lista negra || & cUtilizar a lista de permissões desativará | & cboth a lista negra e vazio."
|
||||
interface.filter.whitelist = "&f&lWhite List"
|
||||
interface.filter.blacklist = "&8&lBlack List"
|
||||
interface.filter.void = "&c&lVoid"
|
||||
|
||||
#Command Messages
|
||||
|
||||
command.give.success = "&7Você recebeu um &6Nivel %level% &7Hopper."
|
||||
|
||||
#Event Messages
|
||||
|
||||
event.general.nopermission = "&cVocê não tem permissão para fazer isso."
|
||||
event.upgrade.cannotafford = "&cVocê não pode permitir esta atualização."
|
||||
event.upgrade.success = "&7Você atualizou com sucesso este depósito para &6Nivel %level%&7!"
|
||||
event.upgrade.maxed = "&7Você maximizou este funil em &6Nivel %level%&7."
|
||||
event.inventory.noroom = "&7Você não tem espaço no seu inventário para isso."
|
||||
event.hopper.syncsuccess = "&aSincronização bem sucedida."
|
||||
event.hopper.desync = "&7Você desincronizou este funil."
|
||||
event.hopper.syncnext = "&7Clique em outro funil ou recipiente para sincronizar."
|
||||
event.hopper.syncself = "&cVocê não pode sincronizar um funil para si."
|
||||
event.hopper.synctimeout = "&cA sincronização expirou."
|
||||
event.hopper.syncoutofrange = "&cEste bloco está fora da sua gama de tremonhas."
|
||||
event.hopper.syncdidnotplace = "&cDesculpa! Você precisa ter colocado este funil para sincronizar as coisas com ele."
|
||||
event.hopper.toomany = "&cVocê só pode colocar %amount% hoppers por chunk..."
|
||||
event.hopper.walkteleenabled = "O teletransporte foi ativado para este funil."
|
||||
event.hopper.walkteledisabled = "Ande no teleporte foi desativado para este funil."
|
||||
event.hopper.onlyone = "&cVocê só pode colocar um único item de cada vez."
|
||||
event.hopper.syncchest = "&7Você sincronizou seu &9%name% &7com esse peito."
|
||||
event.hopper.desyncchest = "&7Você desincronizou seu &9%name% &7com esse peito."
|
Loading…
Reference in New Issue
Block a user