From 1a820ad9b7d2564d836f3044f770aec56c0b04a1 Mon Sep 17 00:00:00 2001 From: Trent Hensler Date: Tue, 12 Dec 2017 22:06:25 -0800 Subject: [PATCH 001/140] Initial removal of item IDs. We do not rely on Bukkit's item ids anymore, though we still support them in commands via a mapping built off of the items.csv. --- .../essentials/EssentialsPlayerListener.java | 6 +- .../com/earth2me/essentials/ISettings.java | 5 +- .../src/com/earth2me/essentials/IUser.java | 3 +- .../src/com/earth2me/essentials/ItemDb.java | 83 ++++++++++++++----- .../src/com/earth2me/essentials/Settings.java | 17 ++-- .../src/com/earth2me/essentials/User.java | 5 +- .../src/com/earth2me/essentials/UserData.java | 38 +++++---- .../src/com/earth2me/essentials/Worth.java | 46 +++++++--- .../com/earth2me/essentials/api/IItemDb.java | 5 ++ .../essentials/commands/Commandgive.java | 3 +- .../essentials/commands/Commanditem.java | 5 +- .../essentials/commands/Commanditemdb.java | 8 +- .../essentials/commands/Commandmore.java | 7 +- .../essentials/commands/Commandrepair.java | 15 ++-- .../essentials/commands/Commandsell.java | 2 +- .../essentials/commands/Commandsetworth.java | 4 +- .../essentials/commands/Commandunlimited.java | 12 +-- .../essentials/commands/Commandworth.java | 2 +- .../essentials/storage/BukkitConstructor.java | 30 ++----- .../antibuild/EssentialsAntiBuild.java | 13 +-- .../EssentialsAntiBuildListener.java | 40 ++++----- .../essentials/antibuild/IAntiBuild.java | 5 +- .../essentials/protect/EssentialsProtect.java | 9 +- .../earth2me/essentials/protect/IProtect.java | 3 +- 24 files changed, 225 insertions(+), 141 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 275b05cf6..e2a5df9c0 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -596,7 +596,7 @@ public class EssentialsPlayerListener implements Listener { case LEFT_CLICK_BLOCK: if (event.getItem() != null && event.getItem().getType() != Material.AIR) { final User user = ess.getUser(event.getPlayer()); - if (user.hasPowerTools() && user.arePowerToolsEnabled() && usePowertools(user, event.getItem().getTypeId())) { + if (user.hasPowerTools() && user.arePowerToolsEnabled() && usePowertools(user, event.getItem().getType())) { event.setCancelled(true); } } @@ -630,8 +630,8 @@ public class EssentialsPlayerListener implements Listener { } } - private boolean usePowertools(final User user, final int id) { - final List commandList = user.getPowertool(id); + private boolean usePowertools(final User user, final Material material) { + final List commandList = user.getPowertool(material); if (commandList == null || commandList.isEmpty()) { return false; } diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 8f6a3eaae..a0385d787 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -5,6 +5,7 @@ import com.earth2me.essentials.signs.EssentialsSign; import com.earth2me.essentials.textreader.IText; import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.EventPriority; @@ -80,7 +81,7 @@ public interface ISettings extends IConf { int getProtectCreeperMaxHeight(); - List getProtectList(final String configName); + List getProtectList(final String configName); boolean getProtectPreventSpawn(final String creatureName); @@ -120,7 +121,7 @@ public interface ISettings extends IConf { boolean isTradeInStacks(int id); - List itemSpawnBlacklist(); + List itemSpawnBlacklist(); List enabledSigns(); diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index 6a9c98230..66945addc 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -4,6 +4,7 @@ import com.earth2me.essentials.commands.IEssentialsCommand; import net.ess3.api.ITeleport; import net.ess3.api.MaxMoneyException; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.entity.Player; import java.math.BigDecimal; @@ -35,7 +36,7 @@ public interface IUser { boolean canAfford(BigDecimal value); - Boolean canSpawnItem(final int itemId); + Boolean canSpawnItem(final Material material); void setLastLocation(); diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 73d4e1024..2e169409f 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -20,6 +20,7 @@ import org.bukkit.potion.Potion; import org.bukkit.potion.PotionEffect; import java.util.*; +import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,10 +28,12 @@ import static com.earth2me.essentials.I18n.tl; public class ItemDb implements IConf, net.ess3.api.IItemDb { + protected static final Logger LOGGER = Logger.getLogger("Essentials"); private final transient IEssentials ess; private final transient Map items = new HashMap<>(); private final transient Map> names = new HashMap<>(); private final transient Map primaryName = new HashMap<>(); + private final transient Map legacyIds = new HashMap<>(); private final transient Map durabilities = new HashMap<>(); private final transient Map nbtData = new HashMap<>(); private final transient ManagedFile file; @@ -95,13 +98,19 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { if (itemName == null || numeric < 0) { continue; } + + Material material = Material.matchMaterial(itemName); + if (material == null) { + LOGGER.warning(String.format("Failed to find material for %s", itemName)); + continue; + } durabilities.put(itemName, data); items.put(itemName, numeric); if (nbt != null) { nbtData.put(itemName, nbt); } - ItemData itemData = new ItemData(numeric, data); + ItemData itemData = new ItemData(material, numeric, data); if (names.containsKey(itemData)) { List nameList = names.get(itemData); nameList.add(itemName); @@ -111,6 +120,8 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { names.put(itemData, nameList); primaryName.put(itemData, itemName); } + + legacyIds.put(numeric, itemData); } for (List nameList : names.values()) { @@ -152,16 +163,6 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { if (durabilities.containsKey(itemname) && metaData == 0) { metaData = durabilities.get(itemname); } - } else if (Material.getMaterial(itemname.toUpperCase(Locale.ENGLISH)) != null) { - Material bMaterial = Material.getMaterial(itemname.toUpperCase(Locale.ENGLISH)); - itemid = bMaterial.getId(); - } else { - try { - Material bMaterial = Bukkit.getUnsafe().getMaterialFromInternalName(itemname.toLowerCase(Locale.ENGLISH)); - itemid = bMaterial.getId(); - } catch (Throwable throwable) { - throw new Exception(tl("unknownItemName", itemname), throwable); - } } } @@ -169,10 +170,12 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { throw new Exception(tl("unknownItemName", itemname)); } - final Material mat = Material.getMaterial(itemid); - if (mat == null) { + ItemData data = legacyIds.get(itemid); + if (data == null) { throw new Exception(tl("unknownItemId", itemid)); } + + Material mat = data.getMaterial(); ItemStack retval = new ItemStack(mat); if (nbtData.containsKey(itemname)) { String nbt = nbtData.get(itemname); @@ -241,10 +244,10 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { @Override public String names(ItemStack item) { - ItemData itemData = new ItemData(item.getTypeId(), item.getDurability()); + ItemData itemData = new ItemData(item.getType(), item.getDurability()); List nameList = names.get(itemData); if (nameList == null) { - itemData = new ItemData(item.getTypeId(), (short) 0); + itemData = new ItemData(item.getType(), (short) 0); nameList = names.get(itemData); if (nameList == null) { return null; @@ -259,10 +262,10 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { @Override public String name(ItemStack item) { - ItemData itemData = new ItemData(item.getTypeId(), item.getDurability()); + ItemData itemData = new ItemData(item.getType(), item.getDurability()); String name = primaryName.get(itemData); if (name == null) { - itemData = new ItemData(item.getTypeId(), (short) 0); + itemData = new ItemData(item.getType(), (short) 0); name = primaryName.get(itemData); if (name == null) { return null; @@ -415,22 +418,56 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { return sb.toString().trim().replaceAll("ยง", "&"); } + @Override + public Material getFromLegacyId(int id) { + ItemData data = this.legacyIds.get(id); + if(data == null) { + return null; + } + + return data.getMaterial(); + } + + @Override + public int getLegacyId(Material material) throws Exception { + for(Map.Entry entry : items.entrySet()) { + if(material.name().toLowerCase(Locale.ENGLISH).equalsIgnoreCase(entry.getKey())) { + return entry.getValue(); + } + } + + throw new Exception("Itemid not found for material: " + material.name()); + } + @Override public Collection listNames() { return primaryName.values(); } static class ItemData { - final private int itemNo; + final private Material material; + private int legacyId; final private short itemData; - ItemData(final int itemNo, final short itemData) { - this.itemNo = itemNo; + ItemData(Material material, short itemData) { + this.material = material; this.itemData = itemData; } + @Deprecated + ItemData(Material material, final int legacyId, final short itemData) { + this.material = material; + this.legacyId = legacyId; + this.itemData = itemData; + } + + public Material getMaterial() { + return material; + } + + @Deprecated public int getItemNo() { - return itemNo; + return legacyId; } public short getItemData() { @@ -439,7 +476,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { @Override public int hashCode() { - return (31 * itemNo) ^ itemData; + return (31 * material.hashCode()) ^ itemData; } @Override @@ -451,7 +488,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { return false; } ItemData pairo = (ItemData) o; - return this.itemNo == pairo.getItemNo() && this.itemData == pairo.getItemData(); + return this.material == pairo.getMaterial() && this.itemData == pairo.getItemData(); } } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index d924653d6..61bd9ada6 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -10,6 +10,7 @@ import com.earth2me.essentials.utils.NumberUtil; import net.ess3.api.IEssentials; import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.MemoryConfiguration; import org.bukkit.event.EventPriority; @@ -555,15 +556,15 @@ public class Settings implements net.ess3.api.ISettings { unprotectedSigns = _getUnprotectedSign(); } - private List itemSpawnBl = new ArrayList(); + private List itemSpawnBl = new ArrayList(); @Override - public List itemSpawnBlacklist() { + public List itemSpawnBlacklist() { return itemSpawnBl; } - private List _getItemSpawnBlacklist() { - final List epItemSpwn = new ArrayList(); + private List _getItemSpawnBlacklist() { + final List epItemSpwn = new ArrayList<>(); if (ess.getItemDb() == null) { logger.log(Level.FINE, "Aborting ItemSpawnBL read, itemDB not yet loaded."); return epItemSpwn; @@ -575,7 +576,7 @@ public class Settings implements net.ess3.api.ISettings { } try { final ItemStack iStack = ess.getItemDb().get(itemName); - epItemSpwn.add(iStack.getTypeId()); + epItemSpwn.add(iStack.getType()); } catch (Exception ex) { logger.log(Level.SEVERE, tl("unknownItemInList", itemName, "item-spawn-blacklist")); } @@ -685,8 +686,8 @@ public class Settings implements net.ess3.api.ISettings { } @Override - public List getProtectList(final String configName) { - final List list = new ArrayList(); + public List getProtectList(final String configName) { + final List list = new ArrayList<>(); for (String itemName : config.getString(configName, "").split(",")) { itemName = itemName.trim(); if (itemName.isEmpty()) { @@ -695,7 +696,7 @@ public class Settings implements net.ess3.api.ISettings { ItemStack itemStack; try { itemStack = ess.getItemDb().get(itemName); - list.add(itemStack.getTypeId()); + list.add(itemStack.getType()); } catch (Exception ex) { logger.log(Level.SEVERE, tl("unknownItemInList", itemName, configName)); } diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index a3213b595..c644eea5e 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -18,6 +18,7 @@ import net.ess3.nms.refl.ReflUtil; import org.bukkit.ChatColor; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; @@ -222,8 +223,8 @@ public class User extends UserData implements Comparable, IMessageRecipien } @Override - public Boolean canSpawnItem(final int itemId) { - return !ess.getSettings().itemSpawnBlacklist().contains(itemId); + public Boolean canSpawnItem(final Material material) { + return !ess.getSettings().itemSpawnBlacklist().contains(material); } @Override diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 7ea09b3e9..3c7a13bbf 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -7,6 +7,7 @@ import net.ess3.api.IEssentials; import net.ess3.api.InvalidWorldException; import net.ess3.api.MaxMoneyException; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -231,26 +232,35 @@ public abstract class UserData extends PlayerExtension implements IConf { config.save(); } - private List unlimited; + private List unlimited; - private List _getUnlimited() { - return config.getIntegerList("unlimited"); + private List _getUnlimited() { + List retlist = new ArrayList<>(); + List configList = config.getStringList("unlimited"); + for(String s : configList) { + Material mat = Material.matchMaterial(s); + if(mat != null) { + retlist.add(mat); + } + } + + return retlist; } - public List getUnlimited() { + public List getUnlimited() { return unlimited; } public boolean hasUnlimited(ItemStack stack) { - return unlimited.contains(stack.getTypeId()); + return unlimited.contains(stack.getType()); } public void setUnlimited(ItemStack stack, boolean state) { - if (unlimited.contains(stack.getTypeId())) { - unlimited.remove(Integer.valueOf(stack.getTypeId())); + if (unlimited.contains(stack.getType())) { + unlimited.remove(stack.getType()); } if (state) { - unlimited.add(stack.getTypeId()); + unlimited.add(stack.getType()); } config.setProperty("unlimited", unlimited); config.save(); @@ -262,7 +272,7 @@ public abstract class UserData extends PlayerExtension implements IConf { if (config.isConfigurationSection("powertools")) { return config.getConfigurationSection("powertools").getValues(false); } - return new HashMap(); + return new HashMap<>(); } public void clearAllPowertools() { @@ -273,19 +283,19 @@ public abstract class UserData extends PlayerExtension implements IConf { @SuppressWarnings("unchecked") public List getPowertool(ItemStack stack) { - return (List) powertools.get("" + stack.getTypeId()); + return (List) powertools.get(stack.getType().name().toLowerCase(Locale.ENGLISH)); } @SuppressWarnings("unchecked") - public List getPowertool(int id) { - return (List) powertools.get("" + id); + public List getPowertool(Material material) { + return (List) powertools.get(material.name().toLowerCase(Locale.ENGLISH)); } public void setPowertool(ItemStack stack, List commandList) { if (commandList == null || commandList.isEmpty()) { - powertools.remove("" + stack.getTypeId()); + powertools.remove(stack.getType().name().toLowerCase(Locale.ENGLISH)); } else { - powertools.put("" + stack.getTypeId(), commandList); + powertools.put(stack.getType().name().toLowerCase(Locale.ENGLISH), commandList); } config.setProperty("powertools", powertools); config.save(); diff --git a/Essentials/src/com/earth2me/essentials/Worth.java b/Essentials/src/com/earth2me/essentials/Worth.java index d029f3f59..ef3c4c034 100644 --- a/Essentials/src/com/earth2me/essentials/Worth.java +++ b/Essentials/src/com/earth2me/essentials/Worth.java @@ -21,9 +21,17 @@ public class Worth implements IConf { config.load(); } - public BigDecimal getPrice(ItemStack itemStack) { - String itemname = itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); + public BigDecimal getPrice(IEssentials essentials, ItemStack itemStack) { BigDecimal result; + int itemId; + + try { + itemId = essentials.getItemDb().getLegacyId(itemStack.getType()); + } catch (Exception e) { + return null; + } + + String itemname = itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); //First check for matches with item name result = config.getBigDecimal("worth." + itemname + "." + itemStack.getDurability(), BigDecimal.ONE.negate()); @@ -42,24 +50,24 @@ public class Worth implements IConf { //Now we should check for item ID if (result.signum() < 0) { - result = config.getBigDecimal("worth." + itemStack.getTypeId() + "." + itemStack.getDurability(), BigDecimal.ONE.negate()); + result = config.getBigDecimal("worth." + itemId + "." + itemStack.getDurability(), BigDecimal.ONE.negate()); } if (result.signum() < 0) { - final ConfigurationSection itemNumberMatch = config.getConfigurationSection("worth." + itemStack.getTypeId()); + final ConfigurationSection itemNumberMatch = config.getConfigurationSection("worth." + itemId); if (itemNumberMatch != null && itemNumberMatch.getKeys(false).size() == 1) { - result = config.getBigDecimal("worth." + itemStack.getTypeId() + ".0", BigDecimal.ONE.negate()); + result = config.getBigDecimal("worth." + itemId + ".0", BigDecimal.ONE.negate()); } } if (result.signum() < 0) { - result = config.getBigDecimal("worth." + itemStack.getTypeId() + ".*", BigDecimal.ONE.negate()); + result = config.getBigDecimal("worth." + itemId + ".*", BigDecimal.ONE.negate()); } if (result.signum() < 0) { - result = config.getBigDecimal("worth." + itemStack.getTypeId(), BigDecimal.ONE.negate()); + result = config.getBigDecimal("worth." + itemId, BigDecimal.ONE.negate()); } //This is to match the old worth syntax if (result.signum() < 0) { - result = config.getBigDecimal("worth-" + itemStack.getTypeId(), BigDecimal.ONE.negate()); + result = config.getBigDecimal("worth-" + itemId, BigDecimal.ONE.negate()); } if (result.signum() < 0) { return null; @@ -71,7 +79,15 @@ public class Worth implements IConf { if (is == null || is.getType() == Material.AIR) { throw new Exception(tl("itemSellAir")); } - int id = is.getTypeId(); + + int id; + + try { + id = ess.getItemDb().getLegacyId(is.getType()); + } catch (Exception e) { + return 0; + } + int amount = 0; if (args.length > 1) { @@ -123,14 +139,22 @@ public class Worth implements IConf { return amount; } - public void setPrice(ItemStack itemStack, double price) { + public void setPrice(IEssentials ess, ItemStack itemStack, double price) { if (itemStack.getType().getData() == null) { config.setProperty("worth." + itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""), price); } else { // Bukkit-bug: getDurability still contains the correct value, while getData().getData() is 0. config.setProperty("worth." + itemStack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "") + "." + itemStack.getDurability(), price); } - config.removeProperty("worth-" + itemStack.getTypeId()); + + int itemId; + try { + itemId = ess.getItemDb().getLegacyId(itemStack.getType()); + } catch (Exception e) { + return; + } + + config.removeProperty("worth-" + itemId); config.save(); } diff --git a/Essentials/src/com/earth2me/essentials/api/IItemDb.java b/Essentials/src/com/earth2me/essentials/api/IItemDb.java index cae937710..00f073d5f 100644 --- a/Essentials/src/com/earth2me/essentials/api/IItemDb.java +++ b/Essentials/src/com/earth2me/essentials/api/IItemDb.java @@ -1,6 +1,7 @@ package com.earth2me.essentials.api; import com.earth2me.essentials.User; +import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import java.util.Collection; @@ -21,4 +22,8 @@ public interface IItemDb { String serialize(ItemStack is); Collection listNames(); + + Material getFromLegacyId(int id); + + int getLegacyId(Material material) throws Exception; } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java index 47f81e7c3..0dfda9505 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java @@ -31,9 +31,10 @@ public class Commandgive extends EssentialsCommand { } ItemStack stack = ess.getItemDb().get(args[1]); + int itemId = ess.getItemDb().getLegacyId(stack.getType()); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); - if (sender.isPlayer() && (ess.getSettings().permissionBasedItemSpawn() ? (!ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-all") && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-" + itemname) && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-" + stack.getTypeId())) : (!ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.exempt") && !ess.getUser(sender.getPlayer()).canSpawnItem(stack.getTypeId())))) { + if (sender.isPlayer() && (ess.getSettings().permissionBasedItemSpawn() ? (!ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-all") && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-" + itemname) && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.item-" + itemId)) : (!ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.exempt") && !ess.getUser(sender.getPlayer()).canSpawnItem(stack.getType())))) { throw new Exception(tl("cantSpawnItem", itemname)); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java index 2bae7df6a..8e054a84b 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java @@ -25,10 +25,13 @@ public class Commanditem extends EssentialsCommand { if (args.length < 1) { throw new NotEnoughArgumentsException(); } + ItemStack stack = ess.getItemDb().get(args[0]); + int itemId = ess.getItemDb().getLegacyId(stack.getType()); + final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); - if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname) && !user.isAuthorized("essentials.itemspawn.item-" + stack.getTypeId())) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getTypeId()))) { + if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname) && !user.isAuthorized("essentials.itemspawn.item-" + itemId)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) { throw new Exception(tl("cantSpawnItem", itemname)); } try { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java b/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java index b4015558c..43f29e49a 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java @@ -21,9 +21,9 @@ public class Commanditemdb extends EssentialsCommand { ItemStack itemStack = null; boolean itemHeld = false; if (args.length < 1) { - if (sender.isPlayer()) { + if (sender.isPlayer() && sender.getPlayer() != null) { itemHeld = true; - itemStack = sender.getPlayer().getItemInHand(); + itemStack = sender.getPlayer().getInventory().getItemInMainHand(); } if (itemStack == null) { throw new NotEnoughArgumentsException(); @@ -31,7 +31,9 @@ public class Commanditemdb extends EssentialsCommand { } else { itemStack = ess.getItemDb().get(args[0]); } - sender.sendMessage(tl("itemType", itemStack.getType().toString(), itemStack.getTypeId() + ":" + Integer.toString(itemStack.getDurability()))); + + int itemId = ess.getItemDb().getLegacyId(itemStack.getType()); + sender.sendMessage(tl("itemType", itemStack.getType().toString(), itemId + ":" + Integer.toString(itemStack.getDurability()))); if (itemHeld && itemStack.getType() != Material.AIR) { int maxuses = itemStack.getType().getMaxDurability(); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandmore.java b/Essentials/src/com/earth2me/essentials/commands/Commandmore.java index 3a08a4966..efdb1125f 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandmore.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandmore.java @@ -16,15 +16,18 @@ public class Commandmore extends EssentialsCommand { @Override public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { - final ItemStack stack = user.getBase().getItemInHand(); + final ItemStack stack = user.getBase().getInventory().getItemInMainHand(); if (stack == null) { throw new Exception(tl("cantSpawnItem", "Air")); } + + int itemId = ess.getItemDb().getLegacyId(stack.getType()); + if (stack.getAmount() >= ((user.isAuthorized("essentials.oversizedstacks")) ? ess.getSettings().getOversizedStackSize() : stack.getMaxStackSize())) { throw new Exception(tl("fullStack")); } final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); - if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname) && !user.isAuthorized("essentials.itemspawn.item-" + stack.getTypeId())) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getTypeId()))) { + if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname) && !user.isAuthorized("essentials.itemspawn.item-" + itemId)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) { throw new Exception(tl("cantSpawnItem", itemname)); } if (user.isAuthorized("essentials.oversizedstacks")) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java index 0d4cfbe41..b60ec05df 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java @@ -38,7 +38,7 @@ public class Commandrepair extends EssentialsCommand { } public void repairHand(User user) throws Exception { - final ItemStack item = user.getBase().getItemInHand(); + final ItemStack item = user.getBase().getInventory().getItemInMainHand(); if (item == null || item.getType().isBlock() || item.getDurability() == 0) { throw new Exception(tl("repairInvalidType")); } @@ -47,8 +47,10 @@ public class Commandrepair extends EssentialsCommand { throw new Exception(tl("repairEnchanted")); } + int itemId = ess.getItemDb().getLegacyId(item.getType()); + final String itemName = item.getType().toString().toLowerCase(Locale.ENGLISH); - final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-" + item.getTypeId(), new Trade("repair-item", ess), ess), ess); + final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-" + itemId, new Trade("repair-item", ess), ess), ess); charge.isAffordableFor(user); @@ -76,7 +78,7 @@ public class Commandrepair extends EssentialsCommand { } private void repairItem(final ItemStack item) throws Exception { - final Material material = Material.getMaterial(item.getTypeId()); + final Material material = item.getType(); if (material.isBlock() || material.getMaxDurability() < 1) { throw new Exception(tl("repairInvalidType")); } @@ -88,13 +90,16 @@ public class Commandrepair extends EssentialsCommand { item.setDurability((short) 0); } - private void repairItems(final ItemStack[] items, final IUser user, final List repaired) { + private void repairItems(final ItemStack[] items, final IUser user, final List repaired) throws Exception { for (ItemStack item : items) { if (item == null || item.getType().isBlock() || item.getDurability() == 0) { continue; } + + int itemId = ess.getItemDb().getLegacyId(item.getType()); + final String itemName = item.getType().toString().toLowerCase(Locale.ENGLISH); - final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-" + item.getTypeId(), new Trade("repair-item", ess), ess), ess); + final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-" + itemId, new Trade("repair-item", ess), ess), ess); try { charge.isAffordableFor(user); } catch (ChargeException ex) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsell.java b/Essentials/src/com/earth2me/essentials/commands/Commandsell.java index 8c775bcd3..e6c41a98b 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsell.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsell.java @@ -69,7 +69,7 @@ public class Commandsell extends EssentialsCommand { private BigDecimal sellItem(User user, ItemStack is, String[] args, boolean isBulkSell) throws Exception { int amount = ess.getWorth().getAmount(ess, user, is, args, isBulkSell); - BigDecimal worth = ess.getWorth().getPrice(is); + BigDecimal worth = ess.getWorth().getPrice(ess, is); if (worth == null) { throw new Exception(tl("itemCannotBeSold")); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsetworth.java b/Essentials/src/com/earth2me/essentials/commands/Commandsetworth.java index efde7ee97..d3e61c528 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsetworth.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsetworth.java @@ -31,7 +31,7 @@ public class Commandsetworth extends EssentialsCommand { price = args[1]; } - ess.getWorth().setPrice(stack, FloatUtil.parseDouble(price)); + ess.getWorth().setPrice(ess, stack, FloatUtil.parseDouble(price)); user.sendMessage(tl("worthSet")); } @@ -42,7 +42,7 @@ public class Commandsetworth extends EssentialsCommand { } ItemStack stack = ess.getItemDb().get(args[0]); - ess.getWorth().setPrice(stack, FloatUtil.parseDouble(args[1])); + ess.getWorth().setPrice(ess, stack, FloatUtil.parseDouble(args[1])); sender.sendMessage(tl("worthSet")); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java b/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java index 158da4bc1..67d676af0 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java @@ -32,12 +32,12 @@ public class Commandunlimited extends EssentialsCommand { final String list = getList(target); user.sendMessage(list); } else if (args[0].equalsIgnoreCase("clear")) { - final List itemList = target.getUnlimited(); + final List itemList = target.getUnlimited(); int index = 0; while (itemList.size() > index) { - final Integer item = itemList.get(index); - if (toggleUnlimited(user, target, item.toString()) == false) { + final Material item = itemList.get(index); + if (!toggleUnlimited(user, target, item.toString())) { index++; } } @@ -50,16 +50,16 @@ public class Commandunlimited extends EssentialsCommand { final StringBuilder output = new StringBuilder(); output.append(tl("unlimitedItems")).append(" "); boolean first = true; - final List items = target.getUnlimited(); + final List items = target.getUnlimited(); if (items.isEmpty()) { output.append(tl("none")); } - for (Integer integer : items) { + for (Material material : items) { if (!first) { output.append(", "); } first = false; - final String matname = Material.getMaterial(integer).toString().toLowerCase(Locale.ENGLISH).replace("_", ""); + final String matname = material.toString().toLowerCase(Locale.ENGLISH).replace("_", ""); output.append(matname); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java index ec7bd8928..31b55be55 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandworth.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandworth.java @@ -84,7 +84,7 @@ public class Commandworth extends EssentialsCommand { amount = ess.getWorth().getAmount(ess, user, is, args, true); } - BigDecimal worth = ess.getWorth().getPrice(is); + BigDecimal worth = ess.getWorth().getPrice(ess, is); if (worth == null) { throw new Exception(tl("itemCannotBeSold")); diff --git a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java index 54f780e52..959d5e3d6 100644 --- a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java +++ b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java @@ -36,15 +36,9 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { public Object construct(final Node node) { if (node.getType().equals(Material.class)) { final String val = (String) constructScalar((ScalarNode) node); - Material mat; - if (NumberUtil.isInt(val)) { - final int typeId = Integer.parseInt(val); - mat = Material.getMaterial(typeId); - } else { - mat = Material.matchMaterial(val); - } - return mat; + return Material.matchMaterial(val); } + if (node.getType().equals(MaterialData.class)) { final String val = (String) constructScalar((ScalarNode) node); if (val.isEmpty()) { @@ -54,13 +48,9 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { if (split.length == 0) { return null; } - Material mat; - if (NumberUtil.isInt(split[0])) { - final int typeId = Integer.parseInt(split[0]); - mat = Material.getMaterial(typeId); - } else { - mat = Material.matchMaterial(split[0]); - } + + Material mat = Material.matchMaterial(split[0]); + if (mat == null) { return null; } @@ -83,13 +73,9 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { if (split2.length == 0) { return null; } - Material mat; - if (NumberUtil.isInt(split2[0])) { - final int typeId = Integer.parseInt(split2[0]); - mat = Material.getMaterial(typeId); - } else { - mat = Material.matchMaterial(split2[0]); - } + + Material mat = Material.matchMaterial(split2[0]); + if (mat == null) { return null; } diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuild.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuild.java index 41378ad3a..e19078f99 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuild.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuild.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.antibuild; +import org.bukkit.Material; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -10,8 +11,8 @@ import java.util.Map; public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild { - private final transient Map settingsBoolean = new EnumMap(AntiBuildConfig.class); - private final transient Map> settingsList = new EnumMap>(AntiBuildConfig.class); + private final transient Map settingsBoolean = new EnumMap<>(AntiBuildConfig.class); + private final transient Map> settingsList = new EnumMap<>(AntiBuildConfig.class); private transient EssentialsConnect ess = null; @Override @@ -28,9 +29,9 @@ public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild { } @Override - public boolean checkProtectionItems(final AntiBuildConfig list, final int id) { - final List itemList = settingsList.get(list); - return itemList != null && !itemList.isEmpty() && itemList.contains(id); + public boolean checkProtectionItems(final AntiBuildConfig list, final Material mat) { + final List itemList = settingsList.get(list); + return itemList != null && !itemList.isEmpty() && itemList.contains(mat); } @Override @@ -44,7 +45,7 @@ public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild { } @Override - public Map> getSettingsList() { + public Map> getSettingsList() { return settingsList; } diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java index f60ec5854..1fe6840ce 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java @@ -40,16 +40,16 @@ public class EssentialsAntiBuildListener implements Listener { } return false; } - return metaPermCheck(user, action, block.getTypeId(), block.getData()); + return metaPermCheck(user, action, block.getType(), block.getData()); } - private boolean metaPermCheck(final User user, final String action, final int blockId) { - final String blockPerm = "essentials.build." + action + "." + blockId; + private boolean metaPermCheck(final User user, final String action, final Material material) { + final String blockPerm = "essentials.build." + action + "." + material; return user.isAuthorized(blockPerm); } - private boolean metaPermCheck(final User user, final String action, final int blockId, final short data) { - final String blockPerm = "essentials.build." + action + "." + blockId; + private boolean metaPermCheck(final User user, final String action, final Material material, final short data) { + final String blockPerm = "essentials.build." + action + "." + material; final String dataPerm = blockPerm + ":" + data; if (user.getBase().isPermissionSet(dataPerm)) { @@ -78,7 +78,7 @@ public class EssentialsAntiBuildListener implements Listener { return; } - if (prot.checkProtectionItems(AntiBuildConfig.blacklist_placement, typeId) && !user.isAuthorized("essentials.protect.exemptplacement")) { + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_placement, type) && !user.isAuthorized("essentials.protect.exemptplacement")) { if (ess.getSettings().warnOnBuildDisallow()) { user.sendMessage(tl("antiBuildPlace", type.toString())); } @@ -86,7 +86,7 @@ public class EssentialsAntiBuildListener implements Listener { return; } - if (prot.checkProtectionItems(AntiBuildConfig.alert_on_placement, typeId) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { + if (prot.checkProtectionItems(AntiBuildConfig.alert_on_placement, type) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { prot.getEssentialsConnect().alert(user, type.toString(), tl("alertPlaced")); } } @@ -106,7 +106,7 @@ public class EssentialsAntiBuildListener implements Listener { return; } - if (prot.checkProtectionItems(AntiBuildConfig.blacklist_break, typeId) && !user.isAuthorized("essentials.protect.exemptbreak")) { + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_break, type) && !user.isAuthorized("essentials.protect.exemptbreak")) { if (ess.getSettings().warnOnBuildDisallow()) { user.sendMessage(tl("antiBuildBreak", type.toString())); } @@ -114,7 +114,7 @@ public class EssentialsAntiBuildListener implements Listener { return; } - if (prot.checkProtectionItems(AntiBuildConfig.alert_on_break, typeId) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { + if (prot.checkProtectionItems(AntiBuildConfig.alert_on_break, type) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { prot.getEssentialsConnect().alert(user, type.toString(), tl("alertBroke")); } } @@ -127,12 +127,12 @@ public class EssentialsAntiBuildListener implements Listener { final EntityType type = event.getEntity().getType(); final boolean warn = ess.getSettings().warnOnBuildDisallow(); if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")) { - if (type == EntityType.PAINTING && !metaPermCheck(user, "break", Material.PAINTING.getId())) { + if (type == EntityType.PAINTING && !metaPermCheck(user, "break", Material.PAINTING)) { if (warn) { user.sendMessage(tl("antiBuildBreak", Material.PAINTING.toString())); } event.setCancelled(true); - } else if (type == EntityType.ITEM_FRAME && !metaPermCheck(user, "break", Material.ITEM_FRAME.getId())) { + } else if (type == EntityType.ITEM_FRAME && !metaPermCheck(user, "break", Material.ITEM_FRAME)) { if (warn) { user.sendMessage(tl("antiBuildBreak", Material.ITEM_FRAME.toString())); } @@ -145,7 +145,7 @@ public class EssentialsAntiBuildListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockPistonExtend(final BlockPistonExtendEvent event) { for (Block block : event.getBlocks()) { - if (prot.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId())) { + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getType())) { event.setCancelled(true); return; } @@ -158,7 +158,7 @@ public class EssentialsAntiBuildListener implements Listener { return; } final Block block = event.getBlock(); - if (prot.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId())) { + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getType())) { event.setCancelled(true); } } @@ -169,7 +169,7 @@ public class EssentialsAntiBuildListener implements Listener { final User user = ess.getUser(event.getPlayer()); final ItemStack item = event.getItem(); - if (item != null && prot.checkProtectionItems(AntiBuildConfig.blacklist_usage, item.getTypeId()) && !user.isAuthorized("essentials.protect.exemptusage")) { + if (item != null && prot.checkProtectionItems(AntiBuildConfig.blacklist_usage, item.getType()) && !user.isAuthorized("essentials.protect.exemptusage")) { if (ess.getSettings().warnOnBuildDisallow()) { user.sendMessage(tl("antiBuildUse", item.getType().toString())); } @@ -177,12 +177,12 @@ public class EssentialsAntiBuildListener implements Listener { return; } - if (item != null && prot.checkProtectionItems(AntiBuildConfig.alert_on_use, item.getTypeId()) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { + if (item != null && prot.checkProtectionItems(AntiBuildConfig.alert_on_use, item.getType()) && !user.isAuthorized("essentials.protect.alerts.notrigger")) { prot.getEssentialsConnect().alert(user, item.getType().toString(), tl("alertUsed")); } if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) { - if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getDurability())) { + if (event.hasItem() && !metaPermCheck(user, "interact", item.getType(), item.getDurability())) { event.setCancelled(true); if (ess.getSettings().warnOnBuildDisallow()) { user.sendMessage(tl("antiBuildUse", item.getType().toString())); @@ -207,7 +207,7 @@ public class EssentialsAntiBuildListener implements Listener { final ItemStack item = event.getRecipe().getResult(); if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) { - if (!metaPermCheck(user, "craft", item.getTypeId(), item.getDurability())) { + if (!metaPermCheck(user, "craft", item.getType(), item.getDurability())) { event.setCancelled(true); if (ess.getSettings().warnOnBuildDisallow()) { user.sendMessage(tl("antiBuildCraft", item.getType().toString())); @@ -224,7 +224,7 @@ public class EssentialsAntiBuildListener implements Listener { final ItemStack item = event.getItem().getItemStack(); if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) { - if (!metaPermCheck(user, "pickup", item.getTypeId(), item.getDurability())) { + if (!metaPermCheck(user, "pickup", item.getType(), item.getDurability())) { event.setCancelled(true); event.getItem().setPickupDelay(50); } @@ -238,7 +238,7 @@ public class EssentialsAntiBuildListener implements Listener { final ItemStack item = event.getItemDrop().getItemStack(); if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build")) { - if (!metaPermCheck(user, "drop", item.getTypeId(), item.getDurability())) { + if (!metaPermCheck(user, "drop", item.getType(), item.getDurability())) { event.setCancelled(true); user.getBase().updateInventory(); if (ess.getSettings().warnOnBuildDisallow()) { @@ -251,7 +251,7 @@ public class EssentialsAntiBuildListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockDispense(final BlockDispenseEvent event) { final ItemStack item = event.getItem(); - if (prot.checkProtectionItems(AntiBuildConfig.blacklist_dispenser, item.getTypeId())) { + if (prot.checkProtectionItems(AntiBuildConfig.blacklist_dispenser, item.getType())) { event.setCancelled(true); } } diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/IAntiBuild.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/IAntiBuild.java index bfb8facd3..cb19d75de 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/IAntiBuild.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/IAntiBuild.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.antibuild; +import org.bukkit.Material; import org.bukkit.plugin.Plugin; import java.util.List; @@ -7,7 +8,7 @@ import java.util.Map; public interface IAntiBuild extends Plugin { - boolean checkProtectionItems(final AntiBuildConfig list, final int id); + boolean checkProtectionItems(final AntiBuildConfig list, final Material mat); boolean getSettingBool(final AntiBuildConfig protectConfig); @@ -15,5 +16,5 @@ public interface IAntiBuild extends Plugin { Map getSettingsBoolean(); - Map> getSettingsList(); + Map> getSettingsList(); } diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java index be3679365..964c9972c 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.protect; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; @@ -14,9 +15,9 @@ import java.util.logging.Logger; public class EssentialsProtect extends JavaPlugin implements IProtect { private static final Logger LOGGER = Logger.getLogger("Minecraft"); - private final Map settingsBoolean = new EnumMap(ProtectConfig.class); - private final Map settingsString = new EnumMap(ProtectConfig.class); - private final Map> settingsList = new EnumMap>(ProtectConfig.class); + private final Map settingsBoolean = new EnumMap<>(ProtectConfig.class); + private final Map settingsString = new EnumMap<>(ProtectConfig.class); + private final Map> settingsList = new EnumMap<>(ProtectConfig.class); private EssentialsConnect ess = null; @Override @@ -65,7 +66,7 @@ public class EssentialsProtect extends JavaPlugin implements IProtect { } @Override - public Map> getSettingsList() { + public Map> getSettingsList() { return settingsList; } diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java index 23ba0cebb..7d12107ad 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.protect; +import org.bukkit.Material; import org.bukkit.plugin.Plugin; import java.util.List; @@ -17,5 +18,5 @@ public interface IProtect extends Plugin { Map getSettingsString(); - Map> getSettingsList(); + Map> getSettingsList(); } From ace361af60a6dc373d9850cec8f93ed56a2f8773 Mon Sep 17 00:00:00 2001 From: Trent Hensler Date: Thu, 18 Jan 2018 17:52:44 -0800 Subject: [PATCH 002/140] Compile against 1.13 preview. Still a lot of work to do. One thing to note is that I used LEGACY materials in a few spots where I didn't know what the new ones are as I'm not very familiar with the 1.13 update and what it changes. --- .../essentials/EssentialsPlayerListener.java | 2 +- .../src/com/earth2me/essentials/ItemDb.java | 27 ++- .../earth2me/essentials/MetaItemStack.java | 20 +- .../src/com/earth2me/essentials/MobData.java | 10 +- .../earth2me/essentials/OfflinePlayer.java | 24 +-- .../src/com/earth2me/essentials/Potions.java | 4 +- .../src/com/earth2me/essentials/SpawnMob.java | 16 +- .../com/earth2me/essentials/api/Economy.java | 4 +- .../essentials/commands/Commandbook.java | 4 +- .../commands/Commandclearinventory.java | 14 +- .../essentials/commands/Commandfirework.java | 4 +- .../essentials/commands/Commandhat.java | 4 +- .../essentials/commands/Commandrecipe.java | 6 +- .../essentials/commands/Commandskull.java | 6 +- .../essentials/commands/Commandunlimited.java | 2 +- .../essentials/commands/Commandwhois.java | 2 +- .../essentials/craftbukkit/FakeWorld.java | 31 +-- .../earth2me/essentials/settings/Spawns.java | 3 +- .../essentials/signs/EssentialsSign.java | 2 +- .../essentials/signs/SignBlockListener.java | 2 +- .../essentials/signs/SignEntityListener.java | 4 +- .../essentials/signs/SignPlayerListener.java | 2 +- .../essentials/signs/SignProtection.java | 7 +- .../essentials/utils/LocationUtil.java | 193 ++++-------------- .../com/earth2me/essentials/FakeServer.java | 11 + .../EssentialsAntiBuildListener.java | 2 - .../EssentialsProtectBlockListener.java | 4 +- .../src/net/ess3/nms/refl/SpawnEggRefl.java | 5 +- pom.xml | 2 +- 29 files changed, 159 insertions(+), 258 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index e2a5df9c0..1f17b8817 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -577,7 +577,7 @@ public class EssentialsPlayerListener implements Listener { public void onPlayerInteract(final PlayerInteractEvent event) { switch (event.getAction()) { case RIGHT_CLICK_BLOCK: - if (!event.isCancelled() && event.getClickedBlock().getType() == Material.BED_BLOCK && ess.getSettings().getUpdateBedAtDaytime()) { + if (!event.isCancelled() && event.getClickedBlock().getType() == Material.LEGACY_BED && ess.getSettings().getUpdateBedAtDaytime()) { User player = ess.getUser(event.getPlayer()); if (player.isAuthorized("essentials.sethome.bed")) { player.getBase().setBedSpawnLocation(event.getClickedBlock().getLocation()); diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 2e169409f..6f5ec31db0 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -191,7 +191,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { } catch (IllegalArgumentException e) { throw new Exception("Can't spawn entity ID " + metaData + " from mob spawners."); } - } else if (mat == Material.MONSTER_EGG) { + } else if (mat == Material.LEGACY_MONSTER_EGG) { EntityType type; try { type = EntityType.fromId(metaData); @@ -226,7 +226,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { } } else if (args[0].equalsIgnoreCase("blocks")) { for (ItemStack stack : user.getBase().getInventory().getContents()) { - if (stack == null || stack.getTypeId() > 255 || stack.getType() == Material.AIR) { + if (stack == null || stack.getType() == Material.AIR) { continue; } is.add(stack.clone()); @@ -332,7 +332,8 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { sb.append(e.getName().toLowerCase()).append(":").append(enchantmentStorageMeta.getStoredEnchantLevel(e)).append(" "); } break; - case FIREWORK: + case FIREWORK_ROCKET: + case FIREWORK_STAR: // Everything from http://wiki.ess3.net/wiki/Item_Meta#Fireworks in that order. FireworkMeta fireworkMeta = (FireworkMeta) is.getItemMeta(); if (fireworkMeta.hasEffects()) { @@ -374,7 +375,8 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { sb.append("splash:").append(potion.isSplash()).append(" ").append("effect:").append(e.getType().getName().toLowerCase()).append(" ").append("power:").append(e.getAmplifier()).append(" ").append("duration:").append(e.getDuration() / 20).append(" "); } break; - case SKULL_ITEM: + case SKELETON_SKULL: + case WITHER_SKELETON_SKULL: // item stack with meta SkullMeta skullMeta = (SkullMeta) is.getItemMeta(); if (skullMeta != null && skullMeta.hasOwner()) { @@ -389,7 +391,22 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { int rgb = leatherArmorMeta.getColor().asRGB(); sb.append("color:").append(rgb).append(" "); break; - case BANNER: + case BLACK_BANNER: + case BLUE_BANNER: + case BROWN_BANNER: + case CYAN_BANNER: + case GRAY_BANNER: + case GREEN_BANNER: + case LIGHT_BLUE_BANNER: + case LIGHT_GRAY_BANNER: + case LIME_BANNER: + case MAGENTA_BANNER: + case ORANGE_BANNER: + case PINK_BANNER: + case PURPLE_BANNER: + case RED_BANNER: + case WHITE_BANNER: + case YELLOW_BANNER: BannerMeta bannerMeta = (BannerMeta) is.getItemMeta(); if (bannerMeta != null) { int basecolor = bannerMeta.getBaseColor().getColor().asRGB(); diff --git a/Essentials/src/com/earth2me/essentials/MetaItemStack.java b/Essentials/src/com/earth2me/essentials/MetaItemStack.java index dbe30cfde..f15297d5d 100644 --- a/Essentials/src/com/earth2me/essentials/MetaItemStack.java +++ b/Essentials/src/com/earth2me/essentials/MetaItemStack.java @@ -29,8 +29,9 @@ import static com.earth2me.essentials.I18n.tl; public class MetaItemStack { - private static final Map colorMap = new HashMap(); - private static final Map fireworkShape = new HashMap(); + private static final Map colorMap = new HashMap<>(); + private static final Map fireworkShape = new HashMap<>(); + private static final Set banners = new HashSet<>(); static { for (DyeColor color : DyeColor.values()) { @@ -39,6 +40,11 @@ public class MetaItemStack { for (FireworkEffect.Type type : FireworkEffect.Type.values()) { fireworkShape.put(type.name(), type); } + for (Material mat : Material.values()) { + if (mat.name().contains("BANNER")) { + banners.add(mat); + } + } } private final transient Pattern splitPattern = Pattern.compile("[:+',;.]"); @@ -181,7 +187,7 @@ public class MetaItemStack { } else if (split[0].equalsIgnoreCase("unbreakable") && hasMetaPermission(sender, "unbreakable", false, true, ess)) { boolean value = split.length > 1 ? Boolean.valueOf(split[1]) : true; setUnbreakable(stack, value); - } else if (split.length > 1 && (split[0].equalsIgnoreCase("player") || split[0].equalsIgnoreCase("owner")) && stack.getType() == Material.SKULL_ITEM && hasMetaPermission(sender, "head", false, true, ess)) { + } else if (split.length > 1 && (split[0].equalsIgnoreCase("player") || split[0].equalsIgnoreCase("owner")) && (stack.getType() == Material.SKELETON_SKULL || stack.getType() == Material.WITHER_SKELETON_SKULL) && hasMetaPermission(sender, "head", false, true, ess)) { if (stack.getDurability() == 3) { final String owner = split[1]; final SkullMeta meta = (SkullMeta) stack.getItemMeta(); @@ -208,12 +214,12 @@ public class MetaItemStack { final BookMeta meta = (BookMeta) stack.getItemMeta(); meta.setTitle(title); stack.setItemMeta(meta); - } else if (split.length > 1 && split[0].equalsIgnoreCase("power") && stack.getType() == Material.FIREWORK && hasMetaPermission(sender, "firework-power", false, true, ess)) { + } else if (split.length > 1 && split[0].equalsIgnoreCase("power") && (stack.getType() == Material.FIREWORK_ROCKET || stack.getType() == Material.FIREWORK_STAR)&& hasMetaPermission(sender, "firework-power", false, true, ess)) { final int power = NumberUtil.isInt(split[1]) ? Integer.parseInt(split[1]) : 0; final FireworkMeta meta = (FireworkMeta) stack.getItemMeta(); meta.setPower(power > 3 ? 4 : power); stack.setItemMeta(meta); - } else if (stack.getType() == Material.FIREWORK) {//WARNING - Meta for fireworks will be ignored after this point. + } else if (stack.getType() == Material.FIREWORK_ROCKET || stack.getType() == Material.FIREWORK_STAR) {//WARNING - Meta for fireworks will be ignored after this point. addFireworkMeta(sender, false, string, ess); } else if (isPotion(stack.getType())) { //WARNING - Meta for potions will be ignored after this point. addPotionMeta(sender, false, string, ess); @@ -251,7 +257,7 @@ public class MetaItemStack { } public void addFireworkMeta(final CommandSource sender, final boolean allowShortName, final String string, final IEssentials ess) throws Exception { - if (stack.getType() == Material.FIREWORK) { + if (stack.getType() == Material.FIREWORK_ROCKET || stack.getType() == Material.FIREWORK_STAR) { final String[] split = splitPattern.split(string, 2); if (split.length < 2) { return; @@ -444,7 +450,7 @@ public class MetaItemStack { } public void addBannerMeta(final CommandSource sender, final boolean allowShortName, final String string, final IEssentials ess) throws Exception { - if (stack.getType() == Material.BANNER && string != null) { + if (banners.contains(stack.getType()) && string != null) { final String[] split = splitPattern.split(string, 2); if (split.length < 2) { diff --git a/Essentials/src/com/earth2me/essentials/MobData.java b/Essentials/src/com/earth2me/essentials/MobData.java index df56adc41..033123fa5 100644 --- a/Essentials/src/com/earth2me/essentials/MobData.java +++ b/Essentials/src/com/earth2me/essentials/MobData.java @@ -53,9 +53,9 @@ public enum MobData { BAY_HORSE("bay", EntityType.HORSE, Horse.Color.BROWN, true), BROWN_HORSE("brown", EntityType.HORSE, Horse.Color.BROWN, false), SADDLE_HORSE("saddle", EntityType.HORSE, Data.HORSESADDLE, true), - GOLD_ARMOR_HORSE("goldarmor", EntityType.HORSE, Material.GOLD_BARDING, true), - DIAMOND_ARMOR_HORSE("diamondarmor", EntityType.HORSE, Material.DIAMOND_BARDING, true), - ARMOR_HORSE("armor", EntityType.HORSE, Material.IRON_BARDING, true), + GOLD_ARMOR_HORSE("goldarmor", EntityType.HORSE, Material.GOLDEN_HORSE_ARMOR, true), + DIAMOND_ARMOR_HORSE("diamondarmor", EntityType.HORSE, Material.DIAMOND_HORSE_ARMOR, true), + ARMOR_HORSE("armor", EntityType.HORSE, Material.IRON_HORSE_ARMOR, true), SIAMESE_CAT("siamese", EntityType.OCELOT, Ocelot.Type.SIAMESE_CAT, true), WHITE_CAT("white", EntityType.OCELOT, Ocelot.Type.SIAMESE_CAT, false), RED_CAT("red", EntityType.OCELOT, Ocelot.Type.RED_CAT, true), @@ -66,12 +66,12 @@ public enum MobData { BABY_ZOMBIE("baby", EntityType.ZOMBIE.getEntityClass(), Data.BABYZOMBIE, true), ADULT_ZOMBIE("adult", EntityType.ZOMBIE.getEntityClass(), Data.ADULTZOMBIE, true), DIAMOND_SWORD_ZOMBIE("diamondsword", EntityType.ZOMBIE.getEntityClass(), Material.DIAMOND_SWORD, true), - GOLD_SWORD_ZOMBIE("goldsword", EntityType.ZOMBIE.getEntityClass(), Material.GOLD_SWORD, true), + GOLD_SWORD_ZOMBIE("goldsword", EntityType.ZOMBIE.getEntityClass(), Material.GOLDEN_SWORD, true), IRON_SWORD_ZOMBIE("ironsword", EntityType.ZOMBIE.getEntityClass(), Material.IRON_SWORD, true), STONE_SWORD_ZOMBIE("stonesword", EntityType.ZOMBIE.getEntityClass(), Material.STONE_SWORD, false), SWORD_ZOMBIE("sword", EntityType.ZOMBIE.getEntityClass(), Material.STONE_SWORD, true), DIAMOND_SWORD_SKELETON("diamondsword", EntityType.SKELETON, Material.DIAMOND_SWORD, true), - GOLD_SWORD_SKELETON("goldsword", EntityType.SKELETON, Material.GOLD_SWORD, true), + GOLD_SWORD_SKELETON("goldsword", EntityType.SKELETON, Material.GOLDEN_SWORD, true), IRON_SWORD_SKELETON("ironsword", EntityType.SKELETON, Material.IRON_SWORD, true), STONE_SWORD_SKELETON("stonesword", EntityType.SKELETON, Material.STONE_SWORD, false), SWORD_SKELETON("sword", EntityType.SKELETON, Material.STONE_SWORD, true), diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index e1c3d3d4d..ecf44956e 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -200,21 +200,11 @@ public class OfflinePlayer implements Player { return Collections.emptyList(); } - @Override - public Block getTargetBlock(HashSet hs, int i) { - return null; - } - @Override public Block getTargetBlock(Set mat, int i) { return null; } - @Override - public List getLastTwoTargetBlocks(HashSet hs, int i) { - return Collections.emptyList(); - } - @Override public List getLastTwoTargetBlocks(Set mat, int i) { return Collections.emptyList(); @@ -480,10 +470,6 @@ public class OfflinePlayer implements Player { public void sendBlockChange(Location lctn, Material mtrl, byte b) { } - @Override - public void sendBlockChange(Location lctn, int i, byte b) { - } - @Override public void setLastDamageCause(EntityDamageEvent ede) { } @@ -742,10 +728,20 @@ public class OfflinePlayer implements Player { public void hidePlayer(Player player) { } + @Override + public void hidePlayer(Plugin plugin, Player player) { + + } + @Override public void showPlayer(Player player) { } + @Override + public void showPlayer(Plugin plugin, Player player) { + + } + @Override public boolean canSee(Player player) { return false; diff --git a/Essentials/src/com/earth2me/essentials/Potions.java b/Essentials/src/com/earth2me/essentials/Potions.java index 075002430..e86842f87 100644 --- a/Essentials/src/com/earth2me/essentials/Potions.java +++ b/Essentials/src/com/earth2me/essentials/Potions.java @@ -11,8 +11,8 @@ import java.util.Set; public class Potions { - private static final Map POTIONS = new HashMap(); - private static final Map ALIASPOTIONS = new HashMap(); + private static final Map POTIONS = new HashMap<>(); + private static final Map ALIASPOTIONS = new HashMap<>(); static { diff --git a/Essentials/src/com/earth2me/essentials/SpawnMob.java b/Essentials/src/com/earth2me/essentials/SpawnMob.java index 9ae334290..85fa6d499 100644 --- a/Essentials/src/com/earth2me/essentials/SpawnMob.java +++ b/Essentials/src/com/earth2me/essentials/SpawnMob.java @@ -191,10 +191,10 @@ public class SpawnMob { invent.setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE, 1)); invent.setHelmet(new ItemStack(Material.DIAMOND_HELMET, 1)); } else if (inputData.contains("gold")) { - invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1)); - invent.setLeggings(new ItemStack(Material.GOLD_LEGGINGS, 1)); - invent.setChestplate(new ItemStack(Material.GOLD_CHESTPLATE, 1)); - invent.setHelmet(new ItemStack(Material.GOLD_HELMET, 1)); + invent.setBoots(new ItemStack(Material.GOLDEN_BOOTS, 1)); + invent.setLeggings(new ItemStack(Material.GOLDEN_LEGGINGS, 1)); + invent.setChestplate(new ItemStack(Material.GOLDEN_CHESTPLATE, 1)); + invent.setHelmet(new ItemStack(Material.GOLDEN_HELMET, 1)); } else if (inputData.contains("leather")) { invent.setBoots(new ItemStack(Material.LEATHER_BOOTS, 1)); invent.setLeggings(new ItemStack(Material.LEATHER_LEGGINGS, 1)); @@ -228,7 +228,7 @@ public class SpawnMob { InventoryWorkaround.setItemInMainHand(invent, new ItemStack(Material.BOW, 1)); InventoryWorkaround.setItemInMainHandDropChance(invent, 0.1f); - invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1)); + invent.setBoots(new ItemStack(Material.GOLDEN_BOOTS, 1)); invent.setBootsDropChance(0.0f); } @@ -237,10 +237,10 @@ public class SpawnMob { setVillager(zombie, false); final EntityEquipment invent = zombie.getEquipment(); - InventoryWorkaround.setItemInMainHand(invent, new ItemStack(Material.GOLD_SWORD, 1)); + InventoryWorkaround.setItemInMainHand(invent, new ItemStack(Material.GOLDEN_SWORD, 1)); InventoryWorkaround.setItemInMainHandDropChance(invent, 0.1f); - invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1)); + invent.setBoots(new ItemStack(Material.GOLDEN_BOOTS, 1)); invent.setBootsDropChance(0.0f); } @@ -249,7 +249,7 @@ public class SpawnMob { setVillager(zombie, false); final EntityEquipment invent = zombie.getEquipment(); - invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1)); + invent.setBoots(new ItemStack(Material.GOLDEN_BOOTS, 1)); invent.setBootsDropChance(0.0f); } diff --git a/Essentials/src/com/earth2me/essentials/api/Economy.java b/Essentials/src/com/earth2me/essentials/api/Economy.java index cbd6215b2..6a4275509 100644 --- a/Essentials/src/com/earth2me/essentials/api/Economy.java +++ b/Essentials/src/com/earth2me/essentials/api/Economy.java @@ -178,7 +178,7 @@ public class Economy { * Divides the balance of a user by a value * * @param name Name of the user - * @param value The balance is divided by this value + * @param amount The balance is divided by this value * * @throws UserDoesNotExistException If a user by that name does not exists * @throws NoLoanPermittedException If the user is not allowed to have a negative balance @@ -202,7 +202,7 @@ public class Economy { * Multiplies the balance of a user by a value * * @param name Name of the user - * @param value The balance is multiplied by this value + * @param amount The balance is multiplied by this value * * @throws UserDoesNotExistException If a user by that name does not exists * @throws NoLoanPermittedException If the user is not allowed to have a negative balance diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbook.java b/Essentials/src/com/earth2me/essentials/commands/Commandbook.java index 8883858c2..c3eba124c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbook.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbook.java @@ -45,7 +45,7 @@ public class Commandbook extends EssentialsCommand { } } else { if (isAuthor(bmeta, player) || user.isAuthorized("essentials.book.others")) { - ItemStack newItem = new ItemStack(Material.BOOK_AND_QUILL, item.getAmount()); + ItemStack newItem = new ItemStack(Material.WRITABLE_BOOK, item.getAmount()); newItem.setItemMeta(bmeta); InventoryWorkaround.setItemInMainHand(user.getBase(), newItem); user.sendMessage(tl("editBookContents")); @@ -53,7 +53,7 @@ public class Commandbook extends EssentialsCommand { throw new Exception(tl("denyBookEdit")); } } - } else if (item.getType() == Material.BOOK_AND_QUILL) { + } else if (item.getType() == Material.WRITABLE_BOOK) { BookMeta bmeta = (BookMeta) item.getItemMeta(); if (!user.isAuthorized("essentials.book.author")) { bmeta.setAuthor(player); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java b/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java index 6de51fe12..0de694577 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandclearinventory.java @@ -3,11 +3,13 @@ package com.earth2me.essentials.commands; import static com.earth2me.essentials.I18n.tl; import com.earth2me.essentials.CommandSource; +import com.earth2me.essentials.ItemDb; import com.earth2me.essentials.User; import com.earth2me.essentials.craftbukkit.InventoryWorkaround; import com.earth2me.essentials.utils.NumberUtil; import com.earth2me.essentials.utils.StringUtil; +import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -85,6 +87,7 @@ public class Commandclearinventory extends EssentialsCommand { short data = -1; int type = -1; int amount = -1; + Material mat = null; if (args.length > (offset + 1) && NumberUtil.isInt(args[(offset + 1)])) { amount = Integer.parseInt(args[(offset + 1)]); @@ -95,7 +98,8 @@ public class Commandclearinventory extends EssentialsCommand { } else if (!args[offset].equalsIgnoreCase("*")) { final String[] split = args[offset].split(":"); final ItemStack item = ess.getItemDb().get(split[0]); - type = item.getTypeId(); + type = ess.getItemDb().getLegacyId(item.getType()); + mat = item.getType(); if (split.length > 1 && NumberUtil.isInt(split[1])) { data = Short.parseShort(split[1]); @@ -121,14 +125,14 @@ public class Commandclearinventory extends EssentialsCommand { } else { if (data == -1) // data -1 means that all subtypes will be cleared { - ItemStack stack = new ItemStack(type); + ItemStack stack = new ItemStack(mat); if (showExtended) { sender.sendMessage(tl("inventoryClearingAllStack", stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName())); } - player.getInventory().clear(type, data); + player.getInventory().remove(mat); } else if (amount == -1) // amount -1 means all items will be cleared { - ItemStack stack = new ItemStack(type, BASE_AMOUNT, data); + ItemStack stack = new ItemStack(mat, BASE_AMOUNT, data); ItemStack removedStack = player.getInventory().removeItem(stack).get(0); final int removedAmount = (BASE_AMOUNT - removedStack.getAmount()); if (removedAmount > 0 || showExtended) { @@ -138,7 +142,7 @@ public class Commandclearinventory extends EssentialsCommand { if (amount < 0) { amount = 1; } - ItemStack stack = new ItemStack(type, amount, data); + ItemStack stack = new ItemStack(mat, amount, data); if (player.getInventory().containsAtLeast(stack, amount)) { sender.sendMessage(tl("inventoryClearingStack", amount, stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName())); player.getInventory().removeItem(stack); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java b/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java index 2087d78d6..344c5db77 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java @@ -43,8 +43,8 @@ public class Commandfirework extends EssentialsCommand { @Override protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { - final ItemStack stack = user.getBase().getItemInHand(); - if (stack.getType() == Material.FIREWORK) { + final ItemStack stack = user.getBase().getInventory().getItemInMainHand(); + if (stack.getType() == Material.FIREWORK_ROCKET || stack.getType() == Material.FIREWORK_STAR) { if (args.length > 0) { if (args[0].equalsIgnoreCase("clear")) { FireworkMeta fmeta = (FireworkMeta) stack.getItemMeta(); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandhat.java b/Essentials/src/com/earth2me/essentials/commands/Commandhat.java index e77438208..662a57cd0 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandhat.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandhat.java @@ -33,8 +33,8 @@ public class Commandhat extends EssentialsCommand { user.sendMessage(tl("hatRemoved")); } } else { - if (user.getBase().getItemInHand().getType() != Material.AIR) { - final ItemStack hand = user.getBase().getItemInHand(); + if (user.getBase().getInventory().getItemInMainHand().getType() != Material.AIR) { + final ItemStack hand = user.getBase().getInventory().getItemInMainHand(); if (hand.getType().getMaxDurability() == 0) { final PlayerInventory inv = user.getBase().getInventory(); final ItemStack head = inv.getHelmet(); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrecipe.java b/Essentials/src/com/earth2me/essentials/commands/Commandrecipe.java index dd957fe41..df21eb1e0 100755 --- a/Essentials/src/com/earth2me/essentials/commands/Commandrecipe.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrecipe.java @@ -64,11 +64,11 @@ public class Commandrecipe extends EssentialsCommand { } else if (selectedRecipe instanceof ShapedRecipe) { shapedRecipe(sender, (ShapedRecipe) selectedRecipe, sender.isPlayer()); } else if (selectedRecipe instanceof ShapelessRecipe) { - if (recipesOfType.size() == 1 && itemType.getType() == Material.FIREWORK) { + if (recipesOfType.size() == 1 && (itemType.getType() == Material.FIREWORK_ROCKET || itemType.getType() == Material.FIREWORK_STAR)) { ShapelessRecipe shapelessRecipe = new ShapelessRecipe(itemType); - shapelessRecipe.addIngredient(Material.SULPHUR); + shapelessRecipe.addIngredient(Material.LEGACY_SULPHUR); shapelessRecipe.addIngredient(Material.PAPER); - shapelessRecipe.addIngredient(Material.FIREWORK_CHARGE); + shapelessRecipe.addIngredient(Material.FIREWORK_ROCKET); shapelessRecipe(sender, shapelessRecipe, sender.isPlayer()); } else { shapelessRecipe(sender, (ShapelessRecipe) selectedRecipe, sender.isPlayer()); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandskull.java b/Essentials/src/com/earth2me/essentials/commands/Commandskull.java index d1082a7f8..e37e00468 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandskull.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandskull.java @@ -31,14 +31,14 @@ public class Commandskull extends EssentialsCommand { owner = user.getName(); } - ItemStack itemSkull = user.getBase().getItemInHand(); + ItemStack itemSkull = user.getBase().getInventory().getItemInMainHand(); SkullMeta metaSkull = null; boolean spawn = false; - if (itemSkull != null && itemSkull.getType() == Material.SKULL_ITEM && itemSkull.getDurability() == 3) { + if (itemSkull != null && itemSkull.getType() == Material.LEGACY_SKULL_ITEM && itemSkull.getDurability() == 3) { metaSkull = (SkullMeta) itemSkull.getItemMeta(); } else if (user.isAuthorized("essentials.skull.spawn")) { - itemSkull = new ItemStack(Material.SKULL_ITEM, 1, (byte) 3); + itemSkull = new ItemStack(Material.LEGACY_SKULL_ITEM, 1, (byte) 3); metaSkull = (SkullMeta) itemSkull.getItemMeta(); spawn = true; } else { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java b/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java index 67d676af0..36b34ca27 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandunlimited.java @@ -71,7 +71,7 @@ public class Commandunlimited extends EssentialsCommand { stack.setAmount(Math.min(stack.getType().getMaxStackSize(), 2)); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); - if (ess.getSettings().permissionBasedItemSpawn() && (!user.isAuthorized("essentials.unlimited.item-all") && !user.isAuthorized("essentials.unlimited.item-" + itemname) && !user.isAuthorized("essentials.unlimited.item-" + stack.getTypeId()) && !((stack.getType() == Material.WATER_BUCKET || stack.getType() == Material.LAVA_BUCKET) && user.isAuthorized("essentials.unlimited.item-bucket")))) { + if (ess.getSettings().permissionBasedItemSpawn() && (!user.isAuthorized("essentials.unlimited.item-all") && !user.isAuthorized("essentials.unlimited.item-" + itemname) && !((stack.getType() == Material.WATER_BUCKET || stack.getType() == Material.LAVA_BUCKET) && user.isAuthorized("essentials.unlimited.item-bucket")))) { throw new Exception(tl("unlimitedItemPermission", itemname)); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java index af002af5b..6cc33f6d7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java @@ -36,7 +36,7 @@ public class Commandwhois extends EssentialsCommand { sender.sendMessage(tl("whoisHunger", user.getBase().getFoodLevel(), user.getBase().getSaturation())); sender.sendMessage(tl("whoisExp", SetExpFix.getTotalExperience(user.getBase()), user.getBase().getLevel())); sender.sendMessage(tl("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); - long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_TICK) * 50); + long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60); sender.sendMessage(tl("whoisPlaytime", DateUtil.formatDateDiff(playtimeMs))); if (!ess.getSettings().isEcoDisabled()) { sender.sendMessage(tl("whoisMoney", NumberUtil.displayCurrency(user.getMoney(), ess))); diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index 1d346f951..d6810d023 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -3,6 +3,7 @@ package com.earth2me.essentials.craftbukkit; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.*; import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.ChunkGenerator; @@ -38,16 +39,6 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public int getBlockTypeIdAt(int i, int i1, int i2) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int getBlockTypeIdAt(Location lctn) { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public int getHighestBlockYAt(int i, int i1) { throw new UnsupportedOperationException("Not supported yet."); @@ -163,11 +154,6 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public boolean generateTree(Location lctn, TreeType tt, BlockChangeDelegate bcd) { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public LightningStrike strikeLightning(Location lctn) { throw new UnsupportedOperationException("Not supported yet."); @@ -203,6 +189,11 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public boolean setSpawnLocation(Location location) { + throw new UnsupportedOperationException("Not supported yet."); + } + @Override public boolean setSpawnLocation(int i, int i1, int i2) { throw new UnsupportedOperationException("Not supported yet."); @@ -348,6 +339,11 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public FallingBlock spawnFallingBlock(Location location, BlockData blockData) throws IllegalArgumentException { + throw new UnsupportedOperationException("Not supported yet."); + } + @Override public ChunkSnapshot getEmptyChunkSnapshot(int i, int i1, boolean bln, boolean bln1) { throw new UnsupportedOperationException("Not supported yet."); @@ -583,11 +579,6 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public FallingBlock spawnFallingBlock(Location location, int blockId, byte blockData) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public void playSound(Location arg0, Sound arg1, float arg2, float arg3) { throw new UnsupportedOperationException("Not supported yet."); diff --git a/Essentials/src/com/earth2me/essentials/settings/Spawns.java b/Essentials/src/com/earth2me/essentials/settings/Spawns.java index 0ece0f2bf..cac982c48 100644 --- a/Essentials/src/com/earth2me/essentials/settings/Spawns.java +++ b/Essentials/src/com/earth2me/essentials/settings/Spawns.java @@ -9,8 +9,7 @@ import org.bukkit.Location; import java.util.HashMap; import java.util.Map; - @Data @EqualsAndHashCode(callSuper = false) public class Spawns implements StorageObject { @MapValueType(Location.class) - private Map spawns = new HashMap(); + private Map spawns = new HashMap<>(); } diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index 69a3585e9..19660446a 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -213,7 +213,7 @@ public class EssentialsSign { protected static boolean checkIfBlockBreaksSigns(final Block block) { final Block sign = block.getRelative(BlockFace.UP); - if (sign.getType() == Material.SIGN_POST && isValidSign(new BlockSign(sign))) { + if (sign.getType() == Material.SIGN && isValidSign(new BlockSign(sign))) { return true; } final BlockFace[] directions = new BlockFace[]{BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST}; diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index bf6ce02f1..285834e38 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -22,7 +22,7 @@ import java.util.logging.Logger; public class SignBlockListener implements Listener { private static final Logger LOGGER = Logger.getLogger("Essentials"); private static final Material WALL_SIGN = Material.WALL_SIGN; - private static final Material SIGN_POST = Material.SIGN_POST; + private static final Material SIGN_POST = Material.SIGN; private final transient IEssentials ess; public SignBlockListener(IEssentials ess) { diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java index 192470ed3..e8277ad55 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -25,7 +25,7 @@ public class SignEntityListener implements Listener { } for (Block block : event.blockList()) { - if (((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST) && EssentialsSign.isValidSign(ess, new EssentialsSign.BlockSign(block))) || EssentialsSign.checkIfBlockBreaksSigns(block)) { + if (((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN) && EssentialsSign.isValidSign(ess, new EssentialsSign.BlockSign(block))) || EssentialsSign.checkIfBlockBreaksSigns(block)) { event.setCancelled(true); return; } @@ -46,7 +46,7 @@ public class SignEntityListener implements Listener { } final Block block = event.getBlock(); - if (((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST) && EssentialsSign.isValidSign(ess, new EssentialsSign.BlockSign(block))) || EssentialsSign.checkIfBlockBreaksSigns(block)) { + if (((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN) && EssentialsSign.isValidSign(ess, new EssentialsSign.BlockSign(block))) || EssentialsSign.checkIfBlockBreaksSigns(block)) { event.setCancelled(true); return; } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java index 6d6188b98..1e3fe81fb 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java @@ -54,7 +54,7 @@ public class SignPlayerListener implements Listener { } final Material mat = block.getType(); - if (mat == Material.SIGN_POST || mat == Material.WALL_SIGN) { + if (mat == Material.SIGN || mat == Material.WALL_SIGN) { final String csign = ((Sign) block.getState()).getLine(0); for (EssentialsSign sign : ess.getSettings().enabledSigns()) { if (csign.equalsIgnoreCase(sign.getSuccessName(ess))) { diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java index befbedbfe..aee948a24 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -26,7 +26,6 @@ public class SignProtection extends EssentialsSign { public SignProtection() { super("Protection"); protectedBlocks.add(Material.CHEST); - protectedBlocks.add(Material.BURNING_FURNACE); protectedBlocks.add(Material.FURNACE); protectedBlocks.add(Material.DISPENSER); } @@ -103,7 +102,7 @@ public class SignProtection extends EssentialsSign { } private SignProtectionState checkProtectionSign(final Block block, final User user, final String username) { - if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN) { + if (block.getType() == Material.SIGN || block.getType() == Material.WALL_SIGN) { final BlockSign sign = new BlockSign(block); if (sign.getLine(0).equals(this.getSuccessName())) { // TODO call getSuccessName(IEssentials) return checkProtectionSign(sign, user, username); @@ -160,7 +159,7 @@ public class SignProtection extends EssentialsSign { public boolean isBlockProtected(final Block block) { final Block[] faces = getAdjacentBlocks(block); for (Block b : faces) { - if (b.getType() == Material.SIGN_POST || b.getType() == Material.WALL_SIGN) { + if (b.getType() == Material.SIGN || b.getType() == Material.WALL_SIGN) { final Sign sign = (Sign) b.getState(); if (sign.getLine(0).equalsIgnoreCase("ยง1[Protection]")) { return true; @@ -170,7 +169,7 @@ public class SignProtection extends EssentialsSign { final Block[] faceChest = getAdjacentBlocks(b); for (Block a : faceChest) { - if (a.getType() == Material.SIGN_POST || a.getType() == Material.WALL_SIGN) { + if (a.getType() == Material.SIGN || a.getType() == Material.WALL_SIGN) { final Sign sign = (Sign) a.getState(); if (sign.getLine(0).equalsIgnoreCase("ยง1[Protection]")) { return true; diff --git a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java index 64d5bb2c6..6fdfbe05d 100644 --- a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.utils; +import com.earth2me.essentials.IEssentials; import net.ess3.api.IUser; import org.bukkit.GameMode; import org.bukkit.Location; @@ -13,9 +14,6 @@ import java.util.*; import static com.earth2me.essentials.I18n.tl; -import com.earth2me.essentials.Essentials; -import com.earth2me.essentials.IEssentials; - public class LocationUtil { // The player can stand inside these materials @@ -24,147 +22,22 @@ public class LocationUtil { static { // Materials from Material.isTransparent() - HOLLOW_MATERIALS.add(Material.AIR); - HOLLOW_MATERIALS.add(Material.SAPLING); - HOLLOW_MATERIALS.add(Material.POWERED_RAIL); - HOLLOW_MATERIALS.add(Material.DETECTOR_RAIL); - HOLLOW_MATERIALS.add(Material.LONG_GRASS); - HOLLOW_MATERIALS.add(Material.DEAD_BUSH); - HOLLOW_MATERIALS.add(Material.YELLOW_FLOWER); - HOLLOW_MATERIALS.add(Material.RED_ROSE); - HOLLOW_MATERIALS.add(Material.BROWN_MUSHROOM); - HOLLOW_MATERIALS.add(Material.RED_MUSHROOM); - HOLLOW_MATERIALS.add(Material.TORCH); - HOLLOW_MATERIALS.add(Material.FIRE); - HOLLOW_MATERIALS.add(Material.REDSTONE_WIRE); - HOLLOW_MATERIALS.add(Material.CROPS); - HOLLOW_MATERIALS.add(Material.LADDER); - HOLLOW_MATERIALS.add(Material.RAILS); - HOLLOW_MATERIALS.add(Material.LEVER); - HOLLOW_MATERIALS.add(Material.REDSTONE_TORCH_OFF); - HOLLOW_MATERIALS.add(Material.REDSTONE_TORCH_ON); - HOLLOW_MATERIALS.add(Material.STONE_BUTTON); - HOLLOW_MATERIALS.add(Material.SNOW); - HOLLOW_MATERIALS.add(Material.SUGAR_CANE_BLOCK); - HOLLOW_MATERIALS.add(Material.PORTAL); - HOLLOW_MATERIALS.add(Material.DIODE_BLOCK_OFF); - HOLLOW_MATERIALS.add(Material.DIODE_BLOCK_ON); - HOLLOW_MATERIALS.add(Material.PUMPKIN_STEM); - HOLLOW_MATERIALS.add(Material.MELON_STEM); - HOLLOW_MATERIALS.add(Material.VINE); - HOLLOW_MATERIALS.add(Material.WATER_LILY); - HOLLOW_MATERIALS.add(Material.NETHER_WARTS); - HOLLOW_MATERIALS.add(Material.ENDER_PORTAL); - HOLLOW_MATERIALS.add(Material.COCOA); - HOLLOW_MATERIALS.add(Material.TRIPWIRE_HOOK); - HOLLOW_MATERIALS.add(Material.TRIPWIRE); - HOLLOW_MATERIALS.add(Material.FLOWER_POT); - HOLLOW_MATERIALS.add(Material.CARROT); - HOLLOW_MATERIALS.add(Material.POTATO); - HOLLOW_MATERIALS.add(Material.WOOD_BUTTON); - HOLLOW_MATERIALS.add(Material.SKULL); - HOLLOW_MATERIALS.add(Material.REDSTONE_COMPARATOR_OFF); - HOLLOW_MATERIALS.add(Material.REDSTONE_COMPARATOR_ON); - HOLLOW_MATERIALS.add(Material.ACTIVATOR_RAIL); - HOLLOW_MATERIALS.add(Material.CARPET); - HOLLOW_MATERIALS.add(Material.DOUBLE_PLANT); - - // Additional Materials added in by Essentials - HOLLOW_MATERIALS.add(Material.SEEDS); - HOLLOW_MATERIALS.add(Material.SIGN_POST); - HOLLOW_MATERIALS.add(Material.WOODEN_DOOR); - HOLLOW_MATERIALS.add(Material.WALL_SIGN); - HOLLOW_MATERIALS.add(Material.STONE_PLATE); - HOLLOW_MATERIALS.add(Material.IRON_DOOR_BLOCK); - HOLLOW_MATERIALS.add(Material.WOOD_PLATE); - HOLLOW_MATERIALS.add(Material.FENCE_GATE); + for (Material mat : Material.values()) { + if (mat.isTransparent()) { + HOLLOW_MATERIALS.add(mat); + } + } TRANSPARENT_MATERIALS.addAll(HOLLOW_MATERIALS); TRANSPARENT_MATERIALS.add(Material.WATER); - TRANSPARENT_MATERIALS.add(Material.STATIONARY_WATER); + TRANSPARENT_MATERIALS.add(Material.FLOWING_WATER); } public static final int RADIUS = 3; public static final Vector3D[] VOLUME; public static ItemStack convertBlockToItem(final Block block) { - final ItemStack is = new ItemStack(block.getType(), 1, (short) 0, block.getData()); - switch (is.getType()) { - case WOODEN_DOOR: - is.setType(Material.WOOD_DOOR); - is.setDurability((short) 0); - break; - case IRON_DOOR_BLOCK: - is.setType(Material.IRON_DOOR); - is.setDurability((short) 0); - break; - case SIGN_POST: - case WALL_SIGN: - is.setType(Material.SIGN); - is.setDurability((short) 0); - break; - case CROPS: - is.setType(Material.SEEDS); - is.setDurability((short) 0); - break; - case CAKE_BLOCK: - is.setType(Material.CAKE); - is.setDurability((short) 0); - break; - case BED_BLOCK: - is.setType(Material.BED); - is.setDurability((short) 0); - break; - case REDSTONE_WIRE: - is.setType(Material.REDSTONE); - is.setDurability((short) 0); - break; - case REDSTONE_TORCH_OFF: - case REDSTONE_TORCH_ON: - is.setType(Material.REDSTONE_TORCH_ON); - is.setDurability((short) 0); - break; - case DIODE_BLOCK_OFF: - case DIODE_BLOCK_ON: - is.setType(Material.DIODE); - is.setDurability((short) 0); - break; - case DOUBLE_STEP: - is.setType(Material.STEP); - break; - case TORCH: - case RAILS: - case LADDER: - case WOOD_STAIRS: - case COBBLESTONE_STAIRS: - case LEVER: - case STONE_BUTTON: - case FURNACE: - case DISPENSER: - case PUMPKIN: - case JACK_O_LANTERN: - case WOOD_PLATE: - case STONE_PLATE: - case PISTON_STICKY_BASE: - case PISTON_BASE: - case IRON_FENCE: - case THIN_GLASS: - case TRAP_DOOR: - case FENCE: - case FENCE_GATE: - case NETHER_FENCE: - is.setDurability((short) 0); - break; - case FIRE: - return null; - case PUMPKIN_STEM: - is.setType(Material.PUMPKIN_SEEDS); - break; - case MELON_STEM: - is.setType(Material.MELON_SEEDS); - break; - } - return is; + return new ItemStack(block.getType(), 1); } @@ -200,15 +73,11 @@ public class LocationUtil { @SuppressWarnings("deprecation") public static Location getTarget(final LivingEntity entity) throws Exception { - Block block; + Block block = null; try { block = entity.getTargetBlock(TRANSPARENT_MATERIALS, 300); } catch (NoSuchMethodError e) { - HashSet legacyTransparent = new HashSet<>(); // Bukkit API prevents declaring as Set - for (Material m : TRANSPARENT_MATERIALS) { - legacyTransparent.add((byte) m.getId()); - } - block = entity.getTargetBlock(legacyTransparent, 300); + // failing now :( } if (block == null) { throw new Exception("Not targeting a block"); @@ -217,10 +86,7 @@ public class LocationUtil { } static boolean isBlockAboveAir(final World world, final int x, final int y, final int z) { - if (y > world.getMaxHeight()) { - return true; - } - return HOLLOW_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType()); + return y > world.getMaxHeight() || HOLLOW_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType()); } public static boolean isBlockUnsafeForUser(final IUser user, final World world, final int x, final int y, final int z) { @@ -235,26 +101,39 @@ public class LocationUtil { } public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z) { - if (isBlockDamaging(world, x, y, z)) { - return true; - } - return isBlockAboveAir(world, x, y, z); + return isBlockDamaging(world, x, y, z) || isBlockAboveAir(world, x, y, z); } public static boolean isBlockDamaging(final World world, final int x, final int y, final int z) { final Block below = world.getBlockAt(x, y - 1, z); - if (below.getType() == Material.LAVA || below.getType() == Material.STATIONARY_LAVA) { - return true; - } - if (below.getType() == Material.FIRE) { - return true; - } - if (below.getType() == Material.BED_BLOCK) { - return true; + + switch (below.getType()) { + case LAVA: + case FLOWING_LAVA: + case FIRE: + case BLACK_BED: + case BLUE_BED: + case BROWN_BED: + case CYAN_BED: + case GRAY_BED: + case GREEN_BED: + case LIGHT_BLUE_BED: + case LIGHT_GRAY_BED: + case LIME_BED: + case MAGENTA_BED: + case ORANGE_BED: + case PINK_BED: + case PURPLE_BED: + case RED_BED: + case WHITE_BED: + case YELLOW_BED: + return true; } + if (world.getBlockAt(x, y, z).getType() == Material.PORTAL) { return true; } + return (!HOLLOW_MATERIALS.contains(world.getBlockAt(x, y, z).getType())) || (!HOLLOW_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType())); } diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 41d50879d..20b0d0fad 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -5,6 +5,7 @@ import org.bukkit.*; import org.bukkit.Warning.WarningState; import org.bukkit.World.Environment; import org.bukkit.advancement.Advancement; +import org.bukkit.block.data.BlockData; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarFlag; import org.bukkit.boss.BarStyle; @@ -969,6 +970,16 @@ public class FakeServer implements Server { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public BlockData createData(Material material) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Tag getTag(String s, NamespacedKey namespacedKey, Class aClass) { + throw new UnsupportedOperationException("Not supported yet."); + } + class FakePluginManager implements PluginManager { ArrayList listeners = new ArrayList(); diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java index 1fe6840ce..854e47d56 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java @@ -67,7 +67,6 @@ public class EssentialsAntiBuildListener implements Listener { public void onBlockPlace(final BlockPlaceEvent event) { final User user = ess.getUser(event.getPlayer()); final Block block = event.getBlockPlaced(); - final int typeId = block.getTypeId(); final Material type = block.getType(); if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build") && !metaPermCheck(user, "place", block)) { @@ -95,7 +94,6 @@ public class EssentialsAntiBuildListener implements Listener { public void onBlockBreak(final BlockBreakEvent event) { final User user = ess.getUser(event.getPlayer()); final Block block = event.getBlock(); - final int typeId = block.getTypeId(); final Material type = block.getType(); if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build") && !metaPermCheck(user, "break", block)) { diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java index c052d5521..385899b72 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java @@ -57,12 +57,12 @@ public class EssentialsProtectBlockListener implements Listener { public void onBlockFromTo(final BlockFromToEvent event) { final Block block = event.getBlock(); - if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER) { + if (block.getType() == Material.WATER || block.getType() == Material.WATER) { event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_water_flow)); return; } - if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) { + if (block.getType() == Material.LAVA || block.getType() == Material.LAVA) { event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_lava_flow)); return; } diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java index 6f7f8617b..6838aae58 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/SpawnEggRefl.java @@ -79,7 +79,8 @@ public class SpawnEggRefl { */ @SuppressWarnings("deprecation") public ItemStack toItemStack(int amount) throws Exception { - ItemStack item = new ItemStack(Material.MONSTER_EGG, amount); + // TODO: Get off of the deprecated LEGACY material. + ItemStack item = new ItemStack(Material.LEGACY_MONSTER_EGG, amount); Class craftItemStackClass = ReflUtil.getOBCClass("inventory.CraftItemStack"); Method asNMSCopyMethod = ReflUtil.getMethodCached(craftItemStackClass, "asNMSCopy", ItemStack.class); @@ -122,7 +123,7 @@ public class SpawnEggRefl { public static SpawnEggRefl fromItemStack(ItemStack item) throws Exception { if (item == null) throw new IllegalArgumentException("Item cannot be null"); - if (item.getType() != Material.MONSTER_EGG) + if (item.getType() != Material.LEGACY_MONSTER_EGG) throw new IllegalArgumentException("Item is not a monster egg"); Class NMSItemStackClass = ReflUtil.getNMSClass("ItemStack"); diff --git a/pom.xml b/pom.xml index e369c413c..8e557c94b 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ org.bukkit bukkit - 1.12-R0.1-SNAPSHOT + 18w02a-R0.1-SNAPSHOT provided From b29f98c525c49647828b96c4986ee55dd28b92b4 Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Sun, 29 Apr 2018 07:49:49 -0700 Subject: [PATCH 003/140] [Feature] Add world specific /back dest. perms (#1948) @Ichbinjoe Adds world specific perms for whether a player may use /back to teleport back to a given world. Adds logic to default essentials.back.into. permissions for loaded worlds to true to maintain backwards compatibility. --- .../com/earth2me/essentials/Essentials.java | 19 +++++++++++++++++++ .../essentials/commands/Commandback.java | 12 ++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index e15d39e02..d49761f49 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -60,6 +60,8 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.event.world.WorldUnloadEvent; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; import org.bukkit.plugin.InvalidDescriptionException; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; @@ -246,6 +248,9 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { Economy.setEss(this); execTimer.mark("RegHandler"); + for (World w : Bukkit.getWorlds()) + addDefaultBackPermissionsToWorld(w); + metrics = new Metrics(this); if (!metrics.isOptOut()) { getLogger().info("Starting Metrics. Opt-out using the global bStats config."); @@ -867,6 +872,18 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { return potionMetaProvider; } + private static void addDefaultBackPermissionsToWorld(World w) { + String permName = "essentials.back.into." + w.getName(); + + Permission p = Bukkit.getPluginManager().getPermission(permName); + if (p == null) { + p = new Permission(permName, + "Allows access to /back when the destination location is within world " + w.getName(), + PermissionDefault.TRUE); + Bukkit.getPluginManager().addPermission(p); + } + } + private static class EssentialsWorldListener implements Listener, Runnable { private transient final IEssentials ess; @@ -876,6 +893,8 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { @EventHandler(priority = EventPriority.LOW) public void onWorldLoad(final WorldLoadEvent event) { + addDefaultBackPermissionsToWorld(event.getWorld()); + ess.getJails().onReload(); ess.getWarps().reloadConfig(); for (IConf iConf : ((Essentials) ess).confList) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandback.java b/Essentials/src/com/earth2me/essentials/commands/Commandback.java index 618c84e7a..4e28ac0bb 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandback.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandback.java @@ -17,9 +17,17 @@ public class Commandback extends EssentialsCommand { if (user.getLastLocation() == null) { throw new Exception(tl("noLocationFound")); } - if (user.getWorld() != user.getLastLocation().getWorld() && ess.getSettings().isWorldTeleportPermissions() && !user.isAuthorized("essentials.worlds." + user.getLastLocation().getWorld().getName())) { - throw new Exception(tl("noPerm", "essentials.worlds." + user.getLastLocation().getWorld().getName())); + + String lastWorldName = user.getLastLocation().getWorld().getName(); + + if (user.getWorld() != user.getLastLocation().getWorld() && ess.getSettings().isWorldTeleportPermissions() && !user.isAuthorized("essentials.worlds." + lastWorldName)) { + throw new Exception(tl("noPerm", "essentials.worlds." + lastWorldName)); } + + if (!user.isAuthorized("essentials.back.into." + lastWorldName)) { + throw new Exception(tl("noPerm", "essentials.back.into." + lastWorldName)); + } + final Trade charge = new Trade(this.getName(), ess); charge.isAffordableFor(user); user.getTeleport().back(charge); From 3237632eb4a17000e078882ec1d560f43fc396d8 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 18 May 2018 09:23:20 +0100 Subject: [PATCH 004/140] Fix versioning of NMS modules (#1971) Resolves numerous build errors that emerged in 613e852ffd828b85b7e3fdbcb06be3c6cfdce3c5 and for some reason didn't cause a build error on ender.zone, but did everywhere else. Fixes #1970 --- Essentials/pom.xml | 12 ++++++------ nms/1_8_R1Provider/pom.xml | 4 ++-- nms/1_8_R2Provider/pom.xml | 4 ++-- nms/LegacyProvider/pom.xml | 4 ++-- nms/NMSProvider/pom.xml | 2 +- nms/ReflectionProvider/pom.xml | 4 ++-- nms/UpdatedMetaProvider/pom.xml | 4 ++-- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Essentials/pom.xml b/Essentials/pom.xml index a379e1b11..d4031d2cc 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -83,19 +83,19 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 compile net.ess3 UpdatedMetaProvider - 2.0.1 + 2.15.0 compile net.ess3 1_8_R1Provider - 2.0.1 + 2.15.0 compile @@ -107,7 +107,7 @@ net.ess3 1_8_R2Provider - 2.0.1 + 2.15.0 compile @@ -119,13 +119,13 @@ net.ess3 LegacyProvider - 2.0.1 + 2.15.0 compile net.ess3 ReflectionProvider - 2.0.1 + 2.15.0 compile diff --git a/nms/1_8_R1Provider/pom.xml b/nms/1_8_R1Provider/pom.xml index 8bacf56b9..03bbc2a9f 100644 --- a/nms/1_8_R1Provider/pom.xml +++ b/nms/1_8_R1Provider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 @@ -30,7 +30,7 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 \ No newline at end of file diff --git a/nms/1_8_R2Provider/pom.xml b/nms/1_8_R2Provider/pom.xml index f40bc218a..d4b6d1681 100644 --- a/nms/1_8_R2Provider/pom.xml +++ b/nms/1_8_R2Provider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 @@ -30,7 +30,7 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 \ No newline at end of file diff --git a/nms/LegacyProvider/pom.xml b/nms/LegacyProvider/pom.xml index e862140e7..8cd2b15da 100644 --- a/nms/LegacyProvider/pom.xml +++ b/nms/LegacyProvider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 @@ -16,7 +16,7 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 \ No newline at end of file diff --git a/nms/NMSProvider/pom.xml b/nms/NMSProvider/pom.xml index 00bebbaa1..19c3e7c29 100644 --- a/nms/NMSProvider/pom.xml +++ b/nms/NMSProvider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 diff --git a/nms/ReflectionProvider/pom.xml b/nms/ReflectionProvider/pom.xml index 101327ba5..3c9a17aee 100644 --- a/nms/ReflectionProvider/pom.xml +++ b/nms/ReflectionProvider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 @@ -23,7 +23,7 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 \ No newline at end of file diff --git a/nms/UpdatedMetaProvider/pom.xml b/nms/UpdatedMetaProvider/pom.xml index 9ed83fb85..b6b949c5b 100644 --- a/nms/UpdatedMetaProvider/pom.xml +++ b/nms/UpdatedMetaProvider/pom.xml @@ -5,7 +5,7 @@ EssentialsXParent net.ess3 - 2.0.1 + 2.15.0 ../../pom.xml 4.0.0 @@ -23,7 +23,7 @@ net.ess3 NMSProvider - 2.0.1 + 2.15.0 \ No newline at end of file From 030eb3375b650ec769bb7b92255fb41a4682fdc7 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sat, 26 May 2018 21:34:31 +0200 Subject: [PATCH 005/140] Block ignite only for PvP, not for PvE (#1967) @Brokkonaut Players with god mode enabled could not ignite mobs with bows while only igniting players should be blocked. --- .../src/com/earth2me/essentials/EssentialsEntityListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java index 97630f72b..fbf5abfd9 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java @@ -124,7 +124,7 @@ public class EssentialsEntityListener implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onEntityCombustByEntity(final EntityCombustByEntityEvent event) { - if (event.getCombuster() instanceof Arrow) { + if (event.getCombuster() instanceof Arrow && event.getEntity() instanceof Player) { Arrow combuster = (Arrow) event.getCombuster(); if (combuster.getShooter() instanceof Player) { final User srcCombuster = ess.getUser(((Player) combuster.getShooter()).getUniqueId()); From 2ff29dab80902cf2de5ef4280fc63ec65e58d784 Mon Sep 17 00:00:00 2001 From: montlikadani Date: Sat, 26 May 2018 21:40:45 +0200 Subject: [PATCH 006/140] Update Commanddeljail.java (#2002) @montlikadani When the user entered a word to delete the jail, deleted it, but removed anything because no jail existed. --- .../src/com/earth2me/essentials/commands/Commanddeljail.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanddeljail.java b/Essentials/src/com/earth2me/essentials/commands/Commanddeljail.java index 4d0d2ef16..01643e81d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commanddeljail.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commanddeljail.java @@ -19,6 +19,10 @@ public class Commanddeljail extends EssentialsCommand { throw new NotEnoughArgumentsException(); } + if (ess.getJails().getJail(args[0]) == null) { + throw new Exception(tl("jailNotExist")); + } + ess.getJails().removeJail(args[0]); sender.sendMessage(tl("deleteJail", args[0])); } From 817caf299fc8076d2a2481a3caadb174598c2077 Mon Sep 17 00:00:00 2001 From: FlashLight34 Date: Sat, 26 May 2018 15:42:51 -0400 Subject: [PATCH 007/140] setwarp owner uuid in yml file (#1961) @FlashLight34 * Update Warps.java its not a real change i dont know if user.getuuid() exist or onother possible cmd maybe * Update Warps.java * Update Commandsetwarp.java * Update Warps.java * Update Warps.java * Update Commandsetwarp.java * Update Warps.java * Update Warps.java * Update Commandsetwarp.java * Update Warps.java --- .../src/com/earth2me/essentials/Warps.java | 24 ++++++++++++++++--- .../essentials/commands/Commandsetwarp.java | 2 +- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Warps.java b/Essentials/src/com/earth2me/essentials/Warps.java index bff2f970f..785d6b4c7 100644 --- a/Essentials/src/com/earth2me/essentials/Warps.java +++ b/Essentials/src/com/earth2me/essentials/Warps.java @@ -6,13 +6,11 @@ import net.ess3.api.InvalidNameException; import net.ess3.api.InvalidWorldException; import org.bukkit.Location; import org.bukkit.Server; - import java.io.File; import java.io.IOException; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; - import static com.earth2me.essentials.I18n.tl; @@ -57,6 +55,11 @@ public class Warps implements IConf, net.ess3.api.IWarps { @Override public void setWarp(String name, Location loc) throws Exception { + setWarp(null, name, loc); + } + + @Override + public void setWarp(User user, String name, Location loc) throws Exception { String filename = StringUtil.sanitizeFileName(name); EssentialsConf conf = warpPoints.get(new StringIgnoreCase(name)); if (conf == null) { @@ -69,13 +72,28 @@ public class Warps implements IConf, net.ess3.api.IWarps { } conf.setProperty(null, loc); conf.setProperty("name", name); + if (user != null) conf.setProperty("lastowner", user.getBase().getUniqueId().toString()); try { conf.saveWithError(); } catch (IOException ex) { throw new IOException(tl("invalidWarpName")); } } - + + @Override + public UUID getLastOwner(String warp) throws WarpNotFoundException { + EssentialsConf conf = warpPoints.get(new StringIgnoreCase(warp)); + if (conf == null) { + throw new WarpNotFoundException(); + } + UUID uuid = null; + try { + uuid = UUID.fromString(conf.getString("lastowner")); + } + catch (Exception ex) {} + return uuid; + } + @Override public void removeWarp(String name) throws Exception { EssentialsConf conf = warpPoints.get(new StringIgnoreCase(name)); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java b/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java index 796fa1fb4..a6cf878f6 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java @@ -36,7 +36,7 @@ public class Commandsetwarp extends EssentialsCommand { } if (warpLoc == null || user.isAuthorized("essentials.warp.overwrite." + StringUtil.safeString(args[0]))) { - warps.setWarp(args[0], loc); + warps.setWarp(user, args[0], loc); } else { throw new Exception(tl("warpOverwrite")); } From 7298393ec9832c852c0f4661b5213608b7798629 Mon Sep 17 00:00:00 2001 From: Xeyame <34656654+Xeyame@users.noreply.github.com> Date: Sat, 26 May 2018 21:43:31 +0200 Subject: [PATCH 008/140] Add permission to bypass other's msgtoggle (#1955) @Xeyame * Add permission to bypass other's msgtoggle Also thanks to MD for helping me with the code :) * Correct comment * Remove checking for console in favour of the already existing IUser check * Fix comments, again * Re add isIgnoreMsg() check Accidently removed it, sorry * Combine 2 checks --- .../messaging/SimpleMessageRecipient.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java b/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java index 612daeb69..b5a2fb7dc 100644 --- a/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java +++ b/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java @@ -17,7 +17,7 @@ import java.lang.ref.WeakReference; *
  • {@link IMessageRecipient#getReplyRecipient()}
  • *
  • {@link IMessageRecipient#setReplyRecipient(IMessageRecipient)}
  • * - * + * * The given {@code parent} must implement the following methods to prevent overflow: *
      *
    • {@link IMessageRecipient#sendMessage(String)}
    • @@ -25,14 +25,14 @@ import java.lang.ref.WeakReference; *
    • {@link IMessageRecipient#getDisplayName()}
    • *
    • {@link IMessageRecipient#isReachable()}
    • *
    - * + * * The reply-recipient is wrapped in a {@link WeakReference}. */ public class SimpleMessageRecipient implements IMessageRecipient { private final IEssentials ess; private final IMessageRecipient parent; - + private long lastMessageMs; private WeakReference replyRecipient; @@ -42,7 +42,7 @@ public class SimpleMessageRecipient implements IMessageRecipient { } return recipient instanceof User ? (User) recipient : null; } - + public SimpleMessageRecipient(IEssentials ess, IMessageRecipient parent) { this.ess = ess; this.parent = parent; @@ -117,13 +117,12 @@ public class SimpleMessageRecipient implements IMessageRecipient { if (!isReachable()) { return MessageResponse.UNREACHABLE; } - + User user = getUser(this); boolean afk = false; if (user != null) { - if (user.isIgnoreMsg() - && !(sender instanceof Console)) { // Console must never be ignored. - return MessageResponse.MESSAGES_IGNORED; + if (user.isIgnoreMsg() && sender instanceof IUser && !((IUser) sender).isAuthorized("essentials.msgtoggle.bypass")) { // Don't ignore console and senders with permission + return MessageResponse.MESSAGES_IGNORED; } afk = user.isAfk(); // Check whether this recipient ignores the sender, only if the sender is not the console. @@ -138,7 +137,7 @@ public class SimpleMessageRecipient implements IMessageRecipient { // If this recipient doesn't have a reply recipient, initiate by setting the first // message sender to this recipient's replyRecipient. long timeout = ess.getSettings().getLastMessageReplyRecipientTimeout() * 1000; - if (getReplyRecipient() == null || !getReplyRecipient().isReachable() + if (getReplyRecipient() == null || !getReplyRecipient().isReachable() || System.currentTimeMillis() - this.lastMessageMs > timeout) { setReplyRecipient(sender); } From 967bb44d94c56dd929a0241c6e08376d6b823a8e Mon Sep 17 00:00:00 2001 From: FlashLight34 Date: Sun, 27 May 2018 02:33:37 -0400 Subject: [PATCH 009/140] Update IWarps.java (#2017) @FlashLight34 Maybe the compilation fails because that :P --- .../com/earth2me/essentials/api/IWarps.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/api/IWarps.java b/Essentials/src/com/earth2me/essentials/api/IWarps.java index 207b2afdb..ab94d2187 100644 --- a/Essentials/src/com/earth2me/essentials/api/IWarps.java +++ b/Essentials/src/com/earth2me/essentials/api/IWarps.java @@ -54,6 +54,25 @@ public interface IWarps extends IConf { */ void setWarp(String name, Location loc) throws Exception; + /** + * Set a warp + * + * @param user - User of warp + * @param name - Name of warp + * @param loc - Location of warp + * + * @throws Exception + */ + void setWarp(User user, String name, Location loc) throws Exception; + + /** + * Gets Lastowner UUID + * + * @param name - Name of warp + * + * @throws WarpNotFoundException + */ + UUID getLastOwner(String warp) throws WarpNotFoundException; /** * Check to see if the file is empty * From 3d60aa17476c67c8244d45f07d2b4289da2bd09b Mon Sep 17 00:00:00 2001 From: md678685 Date: Mon, 28 May 2018 20:21:23 +0100 Subject: [PATCH 010/140] Fix build errors (#2018) Fixes build errors caused by the warp owner PRs (#1961 and #2017) --- Essentials/src/com/earth2me/essentials/Warps.java | 2 +- Essentials/src/com/earth2me/essentials/api/IWarps.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Warps.java b/Essentials/src/com/earth2me/essentials/Warps.java index 785d6b4c7..f66fce9d5 100644 --- a/Essentials/src/com/earth2me/essentials/Warps.java +++ b/Essentials/src/com/earth2me/essentials/Warps.java @@ -59,7 +59,7 @@ public class Warps implements IConf, net.ess3.api.IWarps { } @Override - public void setWarp(User user, String name, Location loc) throws Exception { + public void setWarp(IUser user, String name, Location loc) throws Exception { String filename = StringUtil.sanitizeFileName(name); EssentialsConf conf = warpPoints.get(new StringIgnoreCase(name)); if (conf == null) { diff --git a/Essentials/src/com/earth2me/essentials/api/IWarps.java b/Essentials/src/com/earth2me/essentials/api/IWarps.java index ab94d2187..3a5dcb7f1 100644 --- a/Essentials/src/com/earth2me/essentials/api/IWarps.java +++ b/Essentials/src/com/earth2me/essentials/api/IWarps.java @@ -1,11 +1,13 @@ package com.earth2me.essentials.api; import com.earth2me.essentials.IConf; +import com.earth2me.essentials.IUser; import com.earth2me.essentials.commands.WarpNotFoundException; import org.bukkit.Location; import java.io.File; import java.util.Collection; +import java.util.UUID; public interface IWarps extends IConf { @@ -63,7 +65,7 @@ public interface IWarps extends IConf { * * @throws Exception */ - void setWarp(User user, String name, Location loc) throws Exception; + void setWarp(IUser user, String name, Location loc) throws Exception; /** * Gets Lastowner UUID From 45c806128a4eb170455642f432566d8ca76dcc2b Mon Sep 17 00:00:00 2001 From: montlikadani Date: Thu, 31 May 2018 20:23:48 +0200 Subject: [PATCH 011/140] Updated the messages_hu.properties file --- Essentials/src/messages_hu.properties | 518 +++++++++++++------------- 1 file changed, 259 insertions(+), 259 deletions(-) diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index b2662cd07..ed12273eb 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -17,121 +17,121 @@ antiBuildCraft=\u00a74Nincs jogod, hogy a k\u00f6vetkez\u0151t k\u00e9sz\u00edts antiBuildDrop=\u00a74Nincs jogod, hogy eldobd a k\u00f6vetkez\u0151t\:\u00a7c {0}\u00a74. antiBuildInteract=\u00a74Nincs jogod, hogy interakci\u00f3ba l\u00e9pj a\u00a7c {0}\u00a74-val/-vel. antiBuildPlace=\u00a74Nincs jogod, hogy lehelyezed\u00a7c {0} \u00a74ide. -antiBuildUse=\u00a74NIncs jogod, hogy haszn\u00e1ld a k\u00f6vetkez\u0151t\:\u00a7c {0}\u00a74. +antiBuildUse=\u00a74Nincs jogod, hogy haszn\u00e1ld a k\u00f6vetkez\u0151t\:\u00a7c {0}\u00a74. autoAfkKickReason=Kickelve lett\u00e9l {0} perc AFK miatt\! backAfterDeath=\u00a76Meghalt\u00e1l\! A \u00a74/back\u00a76 paranccsal visszajuthatsz hal\u00e1lod sz\u00ednhely\u00e9re. -backupDisabled=\u00a74A ment\u00e9s nincs k\u00e9sz -backupFinished=\u00a76Biztons\u00e1gi ment\u00e9s k\u00e9sz. -backupStarted=\u00a76Biztons\u00e1gi ment\u00e9s elkezdve. +backupDisabled=\u00a74A ment\u00e9s nincs k\u00e9sz. +backupFinished=\u00a76A biztons\u00e1gi ment\u00e9s k\u00e9sz. +backupStarted=\u00a76A biztons\u00e1gi ment\u00e9s elkezdve. backUsageMsg=\u00a76Visszat\u00e9r\u00e9s az el\u0151z\u0151 helyre. balance=\u00a7aEgyenleged\:\u00a7c {0} balanceOther={0}\u00a7a egyenlege\:\u00a7c {1} balanceTop=\u00a76Legmagasabb egyenlegek ({0}) banExempt=\u00a74Nem tilthatod ki ezt a j\u00e1t\u00e9kost. -banExemptOffline=\u00a74Nem bannolhatsz Offline j\u00e1t\u00e9kost. +banExemptOffline=\u00a74Nem bannolhatsz offline j\u00e1t\u00e9kost. banFormat=\u00a74Kitiltva\:\n\u00a7r{0} -banIpJoin=Az IP cรญmed kitiltva a szerverrล‘l. Oka: {0} -banJoin=Ki lettรฉl tiltva a szerverrล‘l. Oka: {0} +banIpJoin=IP c\u00edmedr\u0151l lett\u00e9l kitiltva a szerverr\u0151l. Oka: {0} +banJoin=Ki lett\u00e9l tiltva a szerverr\u0151l. Oka: {0} bed=\u00a7o\u00e1gy\u00a7r bedMissing=\u00a74Az \u00e1gyad nincs be\u00e1ll\u00edtva vagy eltorlaszolt\u00e1k. bedNull=\u00a7m\u00e1gy\u00a7r bedSet=\u00a76\u00c1gyi kezd\u00f5hely be\u00e1ll\u00edtva\! bigTreeFailure=\u00a74Nagy fa gener\u00e1l\u00e1si hiba\! Pr\u00f3b\u00e1ld \u00fajra f\u00fcv\u00f6n vagy f\u00f6ld\u00f6n. -bigTreeSuccess=\u00a76Nagy fa legener\u00e1lva. +bigTreeSuccess=\u00a76Nagy fa gener\u00e1lva. blockList=\u00a76Az Essentials \u00e1tengedte a k\u00f6vetkez\u0151 parancsokat egy m\u00e1sik pluginnak\: bookAuthorSet=\u00a76Mostant\u00f3l a k\u00f6nyv \u00edr\u00f3ja\: {0}. bookLocked=\u00a76K\u00f6nyv lez\u00e1rva. bookTitleSet=\u00a76A k\u00f6nyv c\u00edme mostant\u00f3l\: {0}. broadcast=\u00a7r\u00a76[\u00a74K\u00f6zvet\u00edt\u00e9s\u00a76]\u00a7a {0} buildAlert=\u00a74Nincs jogod, hogy \u00e9p\u00edts. -bukkitFormatChanged=A Bukkit verziรณformรกtuma megvรกltozott. Nem ellenล‘rzรถtt verziรณ. -burnMsg=\u00a76Be\u00e1ll\u00edtottad\u00a7c {0}\u00a76-nak/nek a t\u00fczet\u00a7c {1} m\u00e1sodpercre\u00a76. -cannotStackMob=\u00a74Nincs jogod tรถbb szรถrnyet stackelni. +bukkitFormatChanged=A Bukkit verzi\u00f3form\u00e1tuma megv\u00e1ltozott. Nem ellen\u0151rz\u00f6tt verzi\u00f3. +burnMsg=\u00a76Be\u00e1ll\u00edtottad\u00a7c {0}\u00a76-nak/-nek a t\u00fczet\u00a7c {1} m\u00e1sodpercre\u00a76. +cannotStackMob=\u00a74Nincs jogod t\u00f6bb mobot stackelni. canTalkAgain=\u00a76Besz\u00e9lhetsz \u00fajra. cantFindGeoIpDB=A GeoIP adatb\u00e1zisa nem tal\u00e1lhat\u00f3\! -cantGamemode=\u00a74Nincs jogod megvรกltoztani a jรกtรฉk mรณdot {0} +cantGamemode=\u00a74Nincs jogod megv\u00e1ltoztani a j\u00e1t\u00e9k m\u00f3dot {0} cantReadGeoIpDB=Nem tudom beolvasni a GeoIP adatb\u00e1zist\! -cantSpawnItem=\u00a74Nincs jogod, hogy lek\u00e9rd a k\u00f6vetkez\u0151 cuccot\:\u00a7c {0}\u00a74. +cantSpawnItem=\u00a74Nincs jogod, hogy lek\u00e9rd a k\u00f6vetkez\u0151 t\u00e1rgyat\:\u00a7c {0}\u00a74. chatTypeAdmin=[A] chatTypeLocal=[L] chatTypeSpy=\u00a72[K\u00e9m]\u00a7r cleaned=J\u00e1t\u00e9kos f\u00e1jlok t\u00f6r\u00f6lve. cleaning=J\u00e1t\u00e9kos f\u00e1jlok tiszt\u00edt\u00e1sa. -clearInventoryConfirmToggleOff=\u00a76Az eszkรถztรกr tรถrlรฉse nem lesz รฉrvรฉnyben. -clearInventoryConfirmToggleOn=\u00a76Most meg kell adnod az eszkรถztรกr tรถrlรฉsรฉt. -commandCooldown=\u00a7cEzt a parancsot nem รญrhatod {0}. +clearInventoryConfirmToggleOff=\u00a76Az eszk\u00f6zt\u00e1r t\u00f6rl\u00e9se nem lesz \u00e9rv\u00e9nyben. +clearInventoryConfirmToggleOn=\u00a76Most meg kell adnod az eszk\u00f6zt\u00e1r t\u00f6rl\u00e9s\u00e9t. +commandCooldown=\u00a7cEzt a parancsot nem \u00edrhatod {0}. commandFailed=Parancs {0} sikertelen\: -commandHelpFailedForPlugin=Hiba a seg\u00edts\u00e9g lek\u00e9r\u00e9sben a(z) {0} pluginban -commandNotLoaded=\u00a74Parancs {0} nincs bet\u00f6ltve. -compassBearing=\u00a76Ir\u00e1ny\: {0} ({1} fok). -configFileMoveError=Nem sikerรผlt รกthelyezni a config.yml fรกjlt a mentรฉsi helyre. -configFileRenameError=Nem sikerรผlt รกtnevezni a temp fรกjlt a config.yml-be. -confirmClear=\u00a77Az eszkรถztรกr tรถrlรฉsรฉhez \u00a7lMEGERลSรT\u00a77 kรฉrjรผk, ismรฉteld meg a parancsot: \u00a76{0} -confirmPayment=\u00a77A \u00a7lMEGERลSรT\u00a77 fizetรฉs \u00a76{0}\u00a77, kรฉrlek, ismรฉteld meg a prancsot: \u00a76{1} +commandHelpFailedForPlugin=Hiba a seg\u00edts\u00e9g lek\u00e9r\u00e9sben a(z) {0} pluginban. +commandNotLoaded=\u00a74A parancs {0} nincs bet\u00f6ltve. +compassBearing=\u00a76Ir\u00e1ny\: {0} ({1} fok). +configFileMoveError=Nem siker\u00fclt \u00e1thelyezni a config.yml f\u00e1jlt a ment\u00e9si helyre. +configFileRenameError=Nem siker\u00fclt \u00e1tnevezni a temp f\u00e1jlt a config.yml-be. +confirmClear=\u00a77Az eszk\u00f6zt\u00e1r t\u00f6rl\u00e9s\u00e9hez \u00a7lMEGER\u0150S\u00cdT\u00c9S\u00a77 k\u00e9rlek, ism\u00e9teld meg a parancsot: \u00a76{0} +confirmPayment=\u00a77A \u00a7lMEGER\u0150S\u00cdT\u00a77 fizet\u00e9s \u00a76{0}\u00a77, k\u00e9rlek, ism\u00e9teld meg a parancsot: \u00a76{1} connectedPlayers=\u00a76Csatlakozott j\u00e1t\u00e9kosok\u00a7r -connectionFailed=Nem sikerรผlt megnyitni a kapcsolatot. -cooldownWithMessage=\u00a74Kรฉsleltetล‘\: {0} +connectionFailed=Nem siker\u00fclt megnyitni a kapcsolatot. +cooldownWithMessage=\u00a74K\u00e9sleltet\u0151\: {0} coordsKeyword={0}, {1}, {2} -corruptNodeInConfig=\u00a74Megjegyzรฉs\: A konfigurรกciรณs fรกjlod sรฉrรผlt {0} csomรณponttal rendelkezik. -couldNotFindTemplate=\u00a74Nem talรกltam sablont {0} -createdKit=\u00a76Csomag lรฉtrehozva \u00a7c{0} \u00a7c{1} \u00a76bejegyzรฉs รฉs kรฉsรฉssel \u00a7c{2} -createKitFailed=\u00a74Hiba tรถrtรฉnt a csomag lรฉtrehozรกsakor {0}. +corruptNodeInConfig=\u00a74Megjegyz\u00e9s\: A konfigur\u00e1ci\u00f3s f\u00e1jlod s\u00e9r\u00fclt {0} csom\u00f3ponttal rendelkezik. +couldNotFindTemplate=\u00a74Nem tal\u00e1ltam sablont {0} +createdKit=\u00a76Csomag l\u00e9trehozva \u00a7c{0} \u00a7c{1} \u00a76bejegyz\u00e9s \u00e9s k\u00e9s\u00e9ssel \u00a7c{2} +createKitFailed=\u00a74Hiba t\u00f6rt\u00e9nt a csomag l\u00e9trehoz\u00e1sakor {0}. createKitSeparator=\u00a7m----------------------- -createKitSuccess=\u00a76Csomag lรฉtrehozva: \u00a7f{0}\n\u00a76Kรฉsรฉs: \u00a7f{1}\n\u00a76Link: \u00a7f{2}\n\u00a76A fenti hivatkozรกs tartalmรกnak mรกsolรกsa a config.yml-be. -creatingConfigFromTemplate=Konfigurรกlรกs lรฉtrehozรกsa sablonbรณl\: {0} -creatingEmptyConfig=รœres config lรฉtrehozรกsa\: {0} +createKitSuccess=\u00a76Csomag l\u00e9trehozva: \u00a7f{0}\n\u00a76K\u00e9s\u00e9s: \u00a7f{1}\n\u00a76Link: \u00a7f{2}\n\u00a76A fenti hivatkoz\u00e1s tartalm\u00e1nak m\u00e1sol\u00e1sa a config.yml-be. +creatingConfigFromTemplate=Konfigur\u00e1l\u00e1s l\u00e9trehoz\u00e1sa sablonb\u00f3l\: {0} +creatingEmptyConfig=\u00dcres konfig l\u00e9trehoz\u00e1sa\: {0} creative=kreat\u00edv currency={0}{1} -currentWorld=\u00a76Jelenlegi vilรกg\:\u00a7c {0} +currentWorld=\u00a76Jelenlegi vil\u00e1g\:\u00a7c {0} day=nap days=nap defaultBanReason=Ki lett\u00e9l tiltva\! -deleteFileError=Nem lehet tรถrรถlni a fรกjlt\: {0} +deleteFileError=Nem lehet t\u00f6r\u00f6lni a f\u00e1jlt\: {0} deleteHome=\u00a76Az otthon\u00a7c {0} \u00a76sikeresen elt\u00e1vol\u00edtva. deleteJail=\u00a76B\u00f6rt\u00f6n\u00a7c {0} \u00a76sikeresen elt\u00e1vol\u00edtva. deleteWarp=\u00a76Warp\u00a7c {0} \u00a76sikeresen elt\u00e1vol\u00edtva. -deniedAccessCommand=\u00a7c{0} \u00a74megtagadva a parancs elรฉrรฉsรฉt. -denyBookEdit=\u00a74Nem tudod kinyitni ezt a kรถnyvet. -denyChangeAuthor=\u00a74Nem mรณdosรญthatod a kรถnyv szerzล‘jรฉt. -denyChangeTitle=\u00a74Nem mรณdosรญthatod a kรถnyv cรญmรฉt. +deniedAccessCommand=\u00a7c{0} \u00a74megtagadva a parancs el\u00e9r\u00e9s\u00e9t. +denyBookEdit=\u00a74Nem tudod kinyitni ezt a k\u00f6nyvet. +denyChangeAuthor=\u00a74Nem m\u00f3dos\u00edthatod a k\u00f6nyv szerz\u0151j\u00e9t. +denyChangeTitle=\u00a74Nem m\u00f3dos\u00edthatod a k\u00f6nyv c\u00edm\u00e9t. depth=\u00a76Tengeren vagy. -depthAboveSea=\u00a7c {0} \u00a76blokk(ok) tengerszint felett. -depthBelowSea=\u00a7c {0} \u00a76block(ok) tengerszint alatt. -destinationNotSet=A cรฉl nem lett beรกllรญtva\! +depthAboveSea=\u00a7c {0} \u00a76blokk(ok) a tengerszint felett. +depthBelowSea=\u00a7c {0} \u00a76blokk(ok) a tengerszint alatt. +destinationNotSet=A c\u00e9l nem lett be\u00e1ll\u00edtva\! disabled=letiltva -disabledToSpawnMob=\u00a74Ennek a l\u00e9nynek a leh\u00edv\u00e1sa jelenleg le van tiltva a config f\u00e1jlban. -disableUnlimited=\u00a76Letiltva korlรกtlan szรกmรบ\u00a7c {0} \u00a76 {1}. +disabledToSpawnMob=\u00a74Ennek a l\u00e9nynek a leh\u00edv\u00e1sa jelenleg le van tiltva a konfig f\u00e1jlban. +disableUnlimited=\u00a76Letiltva korl\u00e1tlan sz\u00e1m\u00fa\u00a7c {0} \u00a76 {1}. distance=\u00a76T\u00e1vols\u00e1g\: {0} dontMoveMessage=\u00a76A teleport\u00e1l\u00e1s elkezd\u00f5dik\u00a7c {0}\u00a76 bel\u00fcl. Ne mozogj\! -downloadingGeoIp=GeoIP adatb\u00e1zis let\u00f6lt\u00e9se folyamatban... eltarthat egy kis ideig (orszรกg\: 1.7 MB, vรกros\: 30MB) +downloadingGeoIp=GeoIP adatb\u00e1zis let\u00f6lt\u00e9se folyamatban... Eltarthat egy kis ideig (orsz\u00e1g\: 1.7 MB, v\u00e1ros\: 30MB) duplicatedUserdata=Duplik\u00e1lt felhaszn\u00e1l\u00f3i adatok\: {0} \u00e9s {1}. -durability=\u00a76Ez az eszkรถz \u00a7c{0}\u00a76 hasznรกlja balra +durability=\u00a76Ez az eszk\u00f6z \u00a7c{0}\u00a76 haszn\u00e1ld balra. editBookContents=\u00a76Mostant\u00f3l tudod szerkeszteni ezt a k\u00f6nyvet. -enabled=bekapcsolva +enabled=enged\u00e9lyezve enableUnlimited=\u00a76Lek\u00e9rve v\u00e9gtelen mennyis\u00e9g\u0171 \u00a7c {0} \u00a76\u00a7c{1}\u00a76-nak/-nek. -enchantmentApplied=\u00a76A k\u00f6vetkez\u0151 varรกzs\:\u00a7c {0} \u00a76sikeresen r\u00e1 lett rakva a kezedbe l\u00e9v\u0151 dologra. -enchantmentNotFound=\u00a74A varรกzslat nem tal\u00e1lhat\u00f3\! -enchantmentPerm=\u00a74Nincs jogod a k\u00f6vetkez\u0151 varรกzslathoz\:\u00a7c {0}\u00a74. -enchantmentRemoved=\u00a76A k\u00f6vetkez\u0151 enchant\:\u00a7c {0} \u00a76sikeresen le lett v\u00e9ve a kezedbe l\u00e9v\u0151 dologr\u00f3l. -enchantments=\u00a76Varรกzslatok\:\u00a7r {0} +enchantmentApplied=\u00a76A k\u00f6vetkez\u0151 var\u00e1zs\:\u00a7c {0} \u00a76sikeresen r\u00e1 lett rakva a kezedbe l\u00e9v\u0151 dologra. +enchantmentNotFound=\u00a74A var\u00e1zslat nem tal\u00e1lhat\u00f3\! +enchantmentPerm=\u00a74Nincs jogod a k\u00f6vetkez\u0151 var\u00e1zslathoz\:\u00a7c {0}\u00a74. +enchantmentRemoved=\u00a76A k\u00f6vetkez\u0151 varรกzslat\:\u00a7c {0} \u00a76sikeresen le lett v\u00e9ve a kezedben l\u00e9v\u0151 dologr\u00f3l. +enchantments=\u00a76Var\u00e1zslatok\:\u00a7r {0} errorCallingCommand=Hiba a parancs h\u00edv\u00e1s\u00e1ban /{0} errorWithMessage=\u00a7cHiba\:\u00a74 {0} -essentialsHelp1=A fรกjl tรถrรถtt, รฉs az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijavรญtani a fรกjlt, akkor menjen http\://tiny.cc/EssentialsChat -essentialsHelp2=A fรกjl tรถrรถtt, รฉs az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijavรญtani a fรกjlt, รญrja be /essentialshelp a jรกtรฉkba vagy menjen http\://tiny.cc/EssentialsChat +essentialsHelp1=A f\u00e1jl t\u00f6r\u00f6tt, \u00e9s az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijav\u00edtani a f\u00e1jlt, akkor menjen http\://tiny.cc/EssentialsChat +essentialsHelp2=A f\u00e1jl t\u00f6r\u00f6tt, \u00e9s az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijav\u00edtani a f\u00e1jlt, \u00edrja be /essentials help a j\u00e1t\u00e9kban vagy menjen http\://tiny.cc/EssentialsChat essentialsReload=\u00a76Essentials \u00fajrat\u00f6ltve\u00a7c {0}. -exp=\u00a7c{0}\u00a7c {1} \u00a76exp (level\u00a7c {2}\u00a76) รฉs kell\u00a7c {3} \u00a76tรถbb xp a szintlรฉpรฉshez. -expSet=\u00a7c{0} \u00a76most van\u00a7c {1} \u00a76exp. +exp=\u00a7c{0}\u00a7c {1} \u00a76xp (szint\u00a7c {2}\u00a76) \u00e9s kell\u00a7c {3} \u00a76t\u00f6bb xp a szintl\u00e9p\u00e9shez. +expSet=\u00a7c{0} \u00a76most van\u00a7c {1} \u00a76xp. extinguish=\u00a76Eloltottad magad. extinguishOthers=\u00a76Eloltottad {0}\u00a76-t. -failedToCloseConfig=Nem siker\u00fclt bez\u00e1rni a config f\u00e1jlt {0}. -failedToCreateConfig=Nem siker\u00fclt a config f\u00e1ljt l\u00e1trehozni {0}. -failedToWriteConfig=Nem siker\u00fclt a config f\u00e1jlba \u00edrni {0}. +failedToCloseConfig=Nem siker\u00fclt bez\u00e1rni a konfig f\u00e1jlt {0}. +failedToCreateConfig=Nem siker\u00fclt a konfig f\u00e1ljt l\u00e1trehozni {0}. +failedToWriteConfig=Nem siker\u00fclt a konfig f\u00e1jlba \u00edrni {0}. false=\u00a74hamis\u00a7r feed=\u00a76Meg lett\u00e9l etetve. feedOther=\u00a76Megetetted {0}\u00a76-t. fileRenameError=A(z) {0} f\u00e1jlt nem siker\u00fclt \u00e1tnevezni\! fireworkColor=\u00a74Nem val\u00f3s param\u00e9rtert adt\u00e1l meg a t\u00f6ltetnek, el\u0151sz\u00f6r a sz\u00edn kell. -fireworkEffectsCleared=\u00a76Az \u00f6sszes effekt elt\u00e1vol\u00edtva. +fireworkEffectsCleared=\u00a76Az \u00f6sszes hat\u00e1s elt\u00e1vol\u00edtva. fireworkSyntax=\u00a76T\u00fczij\u00e1t\u00e9k param\u00e9terek\:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Ahhoz, hogy t\u00f6bb adatot adj meg, vessz\u0151vel kell elv\u00e1lasztanod. pl\: \u00a7cred,blue,pink\n\u00a76Alakzatok\:\u00a7c star, ball, large, creeper, burst \u00a76Effektek\:\u00a7c trail, twinkle. flying=rep\u00fcl flyMode=\u00a76Rep\u00fcl\u0151 m\u00f3d\u00a7c {0} \u00a76{1} \u00a76j\u00e1t\u00e9kosnak. @@ -142,13 +142,13 @@ gameModeInvalid=\u00a74Meg kell adnod egy \u00e9rv\u00e9nyes j\u00e1t\u00e9kost/ gcfree=\u00a76Szabad mem\u00f3ria\:\u00a7c {0} MB. gcmax=\u00a76Maximum mem\u00f3ria\:\u00a7c {0} MB. gctotal=\u00a76Lefoglalt mem\u00f3ria\:\u00a7c {0} MB. -gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 chunk, \u00a7c{3}\u00a76 entit\u00e1s, \u00a7c{4}\u00a76 blokkok. +gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 darab, \u00a7c{3}\u00a76 entit\u00e1s, \u00a7c{4}\u00a76 blokk. geoipJoinFormat=\u00a7c{0} \u00a76\u00a7c{1}\u00a76-b\u00f3l/b\u0151l csatlakozott. geoIpUrlEmpty=GeoIP let\u00f6lt\u00e9si URL hi\u00e1nyzik. geoIpUrlInvalid=GeoIP let\u00f6lt\u00e9si URL \u00e9rv\u00e9nytelen. givenSkull=\u00a76Megkaptad \u00a7c{0}\u00a76 fej\u00e9t. giveSpawn=\u00a7c{0} \u00a76darab\u00a7c {1} adva\u00a7c {2}\u00a76 j\u00e1t\u00e9kosnak. -giveSpawnFailure=\u00a74Nincs elรฉg hely, \u00a7c{0} \u00a7c{1} \u00a74elveszett. +giveSpawnFailure=\u00a74Nincs el\u00e9g hely, \u00a7c{0} \u00a7c{1} \u00a74elveszett. godDisabledFor=\u00a7cletiltva\u00a76\u00a7c {0}\u00a76-nak/-nek godEnabledFor=\u00a74enged\u00e9lyezve\u00a7c {0}\u00a76-nak/-nek godMode=\u00a76Isten m\u00f3d\u00a7c {0}\u00a76. @@ -170,8 +170,8 @@ helpMatching=\u00a76Egyez\u0151 parancsok "\u00a7c{0}\u00a76"\: helpOp=\u00a74[Seg\u00edts\u00e9g]\u00a7r \u00a76{0}\:\u00a7r {1} helpPlugin=\u00a74{0}\u00a7r\: Plugin seg\u00edts\u00e9g\: /help {1} holdBook=\u00a74Nincs a kezedben \u00edrhat\u00f3 k\u00f6nyv. -holdFirework=\u00a74A kezedben kell tartanod a t\u00fczij\u00e1t\u00e9kot, hogy hozz\u00e1add az effekteket. -holdPotion=\u00a74Egy b\u00e1jitalt kell a kezedben tartanod, hogy effekteket adhass hozz\u00e1. +holdFirework=\u00a74A kezedben kell tartanod a t\u00fczij\u00e1t\u00e9kot, hogy hozz\u00e1add a hat\u00e1st. +holdPotion=\u00a74Egy b\u00e1jitalt kell a kezedben tartanod, hogy hat\u00e1st adhass hozz\u00e1. holeInFloor=\u00a74Lyuk a padl\u00f3ban\! homes=\u00a76Otthonok\:\u00a7r {0} homeSet=\u00a76Az otthon be\u00e1ll\u00edtva. @@ -179,58 +179,58 @@ hour=\u00f3ra hours=\u00f3ra ignoredList=\u00a76Mell\u0151zve\:\u00a7r {0} ignoreExempt=\u00a74Nem hagyhatod figyelmen k\u00edv\u0171l ezt a j\u00e1t\u00e9kost. -ignorePlayer=\u00a76Figyelmen kรญvลฑl hagytad\u00a7c {0} \u00a76mostantรณl. -illegalDate=Illegรกlis dรกtumformรกtum. +ignorePlayer=\u00a76Figyelmen k\u00edv\u0171l hagytad\u00a7c {0} \u00a76mostant\u00f3l. +illegalDate=Illeg\u00e1lis d\u00e1tumform\u00e1tum. infoChapter=\u00a76V\u00e1lassz fejezetet\: infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 Oldal \u00a7c{1}\u00a76 \u00a7c{2}-b\u00f3l/b\u0151l \u00a7e---- infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Oldal \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e---- infoUnknownChapter=\u00a74Ismeretlen fejezet. -insufficientFunds=\u00a74Nem รกll rendelkezรฉsre elegendล‘ forrรกs. -invalidBanner=\u00a74ร‰rvรฉnytelen banner szintaxis. -invalidCharge=\u00a74ร‰rvรฉnytelen dรญj. +insufficientFunds=\u00a74Nem \u00e1ll rendelkez\u00e9sre elegend\u0151 forr\u00e1s. +invalidBanner=\u00a74\u00c9rv\u00e9nytelen banner szintaxis. +invalidCharge=\u00a74\u00c9rv\u00e9nytelen d\u00edj. invalidFireworkFormat=\u00a76Ez az opci\u00f3\: \u00a74{0} \u00a76nem \u00e9rv\u00e9nyes \u00a74{1}\u00a76-ra/-re. -invalidHome=\u00a74Otthon\u00a7c {0} \u00a74nem lรฉtezik\! -invalidHomeName=\u00a74ร‰rvรฉnytelen otthon nรฉv\! -invalidItemFlagMeta=\u00a74ร‰rvรฉnytelen elem zรกszlรณ meta\: \u00a7c{0}\u00a74. -invalidMob=\u00a74Hat\u00e1rozatlan szรถrny t\u00edpus -invalidNumber=ร‰rvรฉnytelen szรกm. -invalidPotion=\u00a74ร‰rvรฉnytelen fล‘zet. -invalidPotionMeta=\u00a74ร‰rvรฉnytelen fล‘zet meta\: \u00a7c{0}\u00a74. -invalidSignLine=\u00a74Sor\u00a7c {0} \u00a74a tรกblรกn รฉrvรฉnytelen. +invalidHome=\u00a74Otthon\u00a7c {0} \u00a74nem l\u00e9tezik\! +invalidHomeName=\u00a74\u00c9rv\u00e9nytelen otthon n\u00e9v\! +invalidItemFlagMeta=\u00a74\u00c9rv\u00e9nytelen elem z\u00e1szl\u00f3 meta\: \u00a7c{0}\u00a74. +invalidMob=\u00a74Hat\u00e1rozatlan l\u00e9ny t\u00edpus. +invalidNumber=\u00c9rv\u00e9nytelen sz\u00e1m. +invalidPotion=\u00a74\u00c9rv\u00e9nytelen f\u0151zet. +invalidPotionMeta=\u00a74\u00c9rv\u00e9nytelen f\u0151zet meta\: \u00a7c{0}\u00a74. +invalidSignLine=\u00a74Sor\u00a7c {0} \u00a74a t\u00e1bl\u00e1n \u00e9rv\u00e9nytelen. invalidSkull=\u00a74K\u00e9rlek, j\u00e1t\u00e9kos fejet tarts a kezedben. invalidWarpName=\u00a74Nincs ilyen warp\! -invalidWorld=\u00a74ร‰rvรฉnytelen vilรกg. +invalidWorld=\u00a74\u00c9rv\u00e9nytelen vil\u00e1g. inventoryClearFail=\u00a74{0}-nak/-nek nincs \u00a7c{1} \u00a74db \u00a7c{2}\u00a74-ja/-je. -inventoryClearingAllArmor=\u00a76Az \u00f6sszes cucc \u00e9s felszerel\u00e9s t\u00f6r\u00f6lve lett {0}\u00a76 eszk\u00f6zt\u00e1r\u00e1b\u00f3l. +inventoryClearingAllArmor=\u00a76Az \u00f6sszes dolog \u00e9s felszerel\u00e9s t\u00f6r\u00f6lve lett {0}\u00a76 eszk\u00f6zt\u00e1r\u00e1b\u00f3l. inventoryClearingAllItems=\u00a76Az \u00f6sszes dolog t\u00f6r\u00f6lve lett {0} \u00a76eszk\u00f6zt\u00e1r\u00e1b\u00f3l. inventoryClearingAllStack=\u00a76T\u00f6r\u00f6lve minden \u00a7c{0} {1}\u00a76 eszk\u00f6zt\u00e1r\u00e1b\u00f3l. -inventoryClearingFromAll=\u00a76\u00d6sszes ember eszk\u00f6zt\u00e1r\u00e1nak \u00fcr\u00edt\u00e9se... +inventoryClearingFromAll=\u00a76\u00d6sszes j\u00e1t\u00e9kos eszk\u00f6zt\u00e1r\u00e1nak \u00fcr\u00edt\u00e9se... inventoryClearingStack=\u00a76Elt\u00e1vol\u00edtva \u00a7c{0} \u00a76db \u00a7c{1} \u00a76{2}\u00a76 eszk\u00f6zt\u00e1r\u00e1b\u00f3l. -is=is -isIpBanned=\u00a76IP \u00a7c{0} \u00a76m\u00e1r ki van bannolva. +is=van +isIpBanned=\u00a76IP \u00a7c{0} \u00a76m\u00e1r ki van tiltva. itemCannotBeSold=\u00a74Ezt nem adhatod el a szerveren. -itemMustBeStacked=\u00a74A tรกrgyat kรถtegben kell รฉrtรฉkesรญteni. A 2s mennyisรฉge kรฉt stack lenne, stb. +itemMustBeStacked=\u00a74A t\u00e1rgyat k\u00f6tegben kell \u00e9rt\u00e9kes\u00edteni. A 2s mennyis\u00e9ge k\u00e9t stack lenne, stb. itemNames=\u00a76T\u00e1rgy r\u00f6vid nevei\:\u00a7r {0} itemNotEnough1=\u00a74Nincs el\u00e9g eladni val\u00f3 t\u00e1rgyad. -itemNotEnough2=\u00a76Ha el akarod adni az \u00f6sszes ilyen t\u00e1rgyat \u00edrd be /sell t\u00e1rgyn\u00e9v. -itemNotEnough3=\u00a76/sell itemname -1 minden elemet elad, de csak egy tรฉtelt stb. -itemsConverted=\u00a76Minden elemet blokkokkรก alakรญtott. -itemsCsvNotLoaded=Nem sikerรผlt betรถlteni az items.csv\! -itemSellAir=T\u00e9nyleg el akartad adni a Leveg\u00f5t? Vegy\u00e9l a kezedbe valami t\u00e1rgyat. -itemsNotConverted=\u00a74Nincs olyan elem, amely blokkkรก alakรญthatรณ. +itemNotEnough2=\u00a76Ha el szeretn\u00e9d adni az \u00f6sszes ilyen t\u00e1rgyat, \u00edrd be a /sell parancsot. +itemNotEnough3=\u00a76/sell itemname -1 mindet elad, de csak egy elemet, stb. +itemsConverted=\u00a76\u00c1talak\u00edtva minden elemet blokkokk\u00e1. +itemsCsvNotLoaded=Nem siker\u00fclt bet\u00f6lteni az items.csv\! +itemSellAir=T\u00e9nyleg el akartad adni a leveg\u00f5t? Vegy\u00e9l a kezedbe valami t\u00e1rgyat. +itemsNotConverted=\u00a74Nincs olyan elem, amely blokk\u00e1 alak\u00edthat\u00f3. itemSold=\u00a7aEladva \u00a7c{0} \u00a7a({1} {2} {3} minden). itemSoldConsole=\u00a7a{0} \u00a7aeladva {1} \u00a7a{2} \u00a7a({3} elem {4} minden). itemSpawn=\u00a76Lek\u00e9rt\u00e9l\u00a7c {0} \u00a76db \u00a7c {1}-t itemType=\u00a76T\u00e1rgy\:\u00a7c {0} \u00a76-\u00a7c {1} -jailAlreadyIncarcerated=\u00a74A szemรฉly mรกr bรถrtรถnben van\:\u00a7c {0} -jailList=\u00a76Bรถrtรถnรถk\:\u00a7r {0} -jailMessage=\u00a74A bลฑncselekmรฉnyt megteszed, akkor az idล‘. +jailAlreadyIncarcerated=\u00a74A szem\u00e9ly m\u00e1r b\u00f6rt\u00f6nben van\:\u00a7c {0} +jailList=\u00a76B\u00f6rt\u00f6n\u00f6k\:\u00a7r {0} +jailMessage=\u00a74A b\u0171ncselekm\u00e9nyt megteszed, akkor itt az id\u0151. jailNotExist=\u00a74Nincs ilyen b\u00f6rt\u00f6n. jailReleased=\u00a7c{0}\u00a76 kiengedve a b\u00f6rt\u00f6nb\u00f5l. jailReleasedPlayerNotify=\u00a76Kiengedtek a b\u00f6rt\u00f6nb\u0151l\! jailSentenceExtended=\u00a76B\u00f6rt\u00f6n ideje mostant\u00f3l\: {0} jailSet=\u00a7c{0} \u00a76 b\u00f6rt\u00f6n be\u00e1ll\u00edtva. -jumpError=\u00a74Ez bรกntani fogja a szรกmรญtรณgรฉp agyรกt. +jumpError=\u00a74Ez b\u00e1ntani fogja a sz\u00e1m\u00edt\u00f3g\u00e9p agy\u00e1t. kickDefault=Ki lett\u00e9l kickelve. kickedAll=\u00a74\u00d6sszes j\u00e1t\u00e9kos kickelve a szerverr\u00f5l. kickExempt=\u00a74\u00d5t nem kickelheted. @@ -239,26 +239,26 @@ killExempt=\u00a74Nem \u00f6lheted meg \u00a7c{0}\u00a74-t. kitContains=\u00a76A csomag \u00a7c{0} \u00a76tartalmaz: kitCost=\ \u00a77\u00a7o({0})\u00a7r kitDelay=\u00a7m{0}\u00a7r -kitError=\u00a74Nincs รฉrvรฉnyes csomag. -kitError2=\u00a74Ez a csomag nem megfelelล‘. Lรฉpj kapcsolatba egy rendszergazdรกval. +kitError=\u00a74Nincs el\u00e9rhet\u0151 csomag. +kitError2=\u00a74Ez a csomag nem megfelel\u0151. L\u00e9pj kapcsolatba egy adminisztr\u00e1torral. kitGiveTo=\u00a76A(z)\u00a7c {0}\u00a76 csomag lek\u00e9rve \u00a7c{1}\u00a76-nak/-nek. kitInvFull=\u00a74Az eszk\u00f6zt\u00e1rad megtelt, \u00edgy a f\u00f6ldre kapod meg a csomagot. kitItem=\u00a76- \u00a7f{0} kitNotFound=\u00a74Nincs ilyen csomag. -kitOnce=\u00a74Nem tudod รบjra hasznรกlni a csomagot. +kitOnce=\u00a74Nem tudod \u00fajra haszn\u00e1lni a csomagot. kitReceive=\u00a76Megkaptad a(z)\u00a7c {0}\u00a76 csomagot. kits=\u00a76Csomagok\:\u00a7r {0} kitTimed=\u00a74Ezt a csomagot nem haszn\u00e1hatod m\u00e9g\u00a7c {0}\u00a74-ig. -leatherSyntax=\u00a76Bล‘rszรญn szintaxis\: color\:,, eg\: color\:255,0,0. +leatherSyntax=\u00a76B\u0151rsz\u00edn szintaxis\: color\:,, pl\: color\:255,0,0. lightningSmited=\u00a76A vill\u00e1m les\u00fajtott r\u00e1d\! -lightningUse=\u00a76Vill\u00e1m lesujt\u00e1sa\u00a7c {0}\u00a76-ra/re +lightningUse=\u00a76Vill\u00e1m lesujt\u00e1sa\u00a7c {0}\u00a76-ra/re. listAfkTag=\u00a77[AFK]\u00a7r listAmount=\u00a76Jelenleg \u00a7c{0}\u00a76 j\u00e1t\u00e9kos van fent a maxim\u00e1lis \u00a7c{1}\u00a76 j\u00e1t\u00e9kosb\u00f3l. listAmountHidden=\u00a76Jelenleg \u00a7c{0}\u00a76/{1}\u00a76 j\u00e1t\u00e9kos van fent a maxim\u00e1lis \u00a7c{2}\u00a76 j\u00e1t\u00e9kosb\u00f3l. listGroupTag={0}\u00a7r\: listHiddenTag=\u00a77[REJTETT]\u00a7r -loadWarpError=\u00a74Nem sikerรผlt a warp betรถltรฉse {0}. -localFormat=[L]<{0}> {1} +loadWarpError=\u00a74Nem siker\u00fclt a warp bet\u00f6lt\u00e9se {0}. +localFormat=[H]<{0}> {1} localNoOne= mailClear=\u00a76Hogy megjel\u00f6ld olvasottk\u00e9nt \u00edrd be a\u00a7c /mail clear \u00a76parancsot. mailCleared=\u00a76\u00dczenetek t\u00f6r\u00f6lve\! @@ -266,123 +266,123 @@ mailDelay=T\u00fal sok lev\u00e9l lett elk\u00fcldve az utols\u00f3 percben. Max mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} mailMessage={0} mailSent=\u00a76Lev\u00e9l elk\u00fcldve\! -mailSentTo=\u00a7c{0}\u00a76 elkรผldtรผk a kรถvetkezล‘ levelet\: +mailSentTo=\u00a7c{0}\u00a76 elk\u00fcldt\u00fck a k\u00f6vetkez\u0151 levelet\: mailTooLong=\u00a74Az \u00fczeneted t\u00fal hossz\u00fa. Pr\u00f3b\u00e1ld 1000 karakter alatt. -markedAsAway=\u00a76Mรกr kijelรถlted, mint tรกvol. -markedAsNotAway=\u00a76Mรกr nem jelรถlted ki. -markMailAsRead=\u00a76Hogy megjel\u00f6ld olvasottk\u00e9nt \u00edrd be a\u00a7c /mail clear \u00a76parancsot. +markedAsAway=\u00a76M\u00e1r kijel\u00f6lted, mint t\u00e1vol. +markedAsNotAway=\u00a76M\u00e1r nem jel\u00f6lted ki. +markMailAsRead=\u00a76Hogy megjel\u00f6ld olvasottk\u00e9nt, \u00edrd be a\u00a7c /mail clear \u00a76parancsot. matchingIPAddress=\u00a76Az al\u00e1bbi j\u00e1t\u00e9kosok csatlakoztak utolj\u00e1ra err\u0151l az IP c\u00edmr\u0151l\: -maxHomes=\u00a74Nem รกllรญthatsz be tรถbb\u00a7c {0} \u00a74otthont. +maxHomes=\u00a74Nem \u00e1ll\u00edthatsz be t\u00f6bb\u00a7c {0} \u00a74otthont. maxMoney=\u00a74Ez a tranzakci\u00f3 meghaladja a be\u00e1ll\u00edtott maxim\u00e1lis tranzakci\u00f3 hat\u00e1r\u00e9rt\u00e9k\u00e9t. -mayNotJail=\u00a74\u00d5t nem rakhatod b\u00f6rt\u00f6nbe\! +mayNotJail=\u00a74\u00d5t nem teheted b\u00f6rt\u00f6nbe\! mayNotJailOffline=\u00a74Nem b\u00f6rt\u00f6n\u00f6zhetsz be Offline j\u00e1t\u00e9kost. me=\u00e9n -minimumPayAmount=\u00a7cA minimรกlis รถsszeg, amit fizethetsz, {0}}. +minimumPayAmount=\u00a7cA minim\u00e1lis \u00f6sszeg, amit fizethetsz, {0}. minute=perc minutes=perc missingItems=\u00a74Nincs \u00a7c{0} db {1}\u00a74-od. mobDataList=\u00a76\u00c9rv\u00e9nyes adatok\:\u00a7r {0} -mobsAvailable=\u00a76Szรถrnek\:\u00a7r {0} -mobSpawnError=\u00a74Hiba a szรถrny-idรฉzล‘ megvรกltoztatรกsa kรถzben. -mobSpawnLimit=A kiszolgรกlรณi limitre korlรกtozott szรถrny mennyisรฉg. -mobSpawnTarget=\u00a74A cรฉlblokknak szรถrny idรฉzล‘nek kell lennie. +mobsAvailable=\u00a76Enit\u00e1sok\:\u00a7r {0} +mobSpawnError=\u00a74Hiba az entit\u00e1s-id\u00e9z\u0151 megv\u00e1ltoztat\u00e1sa k\u00f6zben. +mobSpawnLimit=A kiszolg\u00e1l\u00f3i limitre korl\u00e1tozott entit\u00e1s mennyis\u00e9g. +mobSpawnTarget=\u00a74A c\u00e9lblokknak entit\u00e1s id\u00e9z\u0151nek kell lennie. moneyRecievedFrom=\u00a7a{0}-t kapt\u00e1l {1}\u00a7a-t\u00f3l/t\u00f5l. -moneySentTo=\u00a7a{0}-t k\u00fcldt\u00e9l {1}\u00a7a-nak/nek. +moneySentTo=\u00a7a{0}-t k\u00fcldt\u00e9l {1}\u00a7a-nak/-nek. month=h\u00f3nap months=h\u00f3nap -moreThanZero=\u00a74A mennyisรฉgeknek 0-nรกl nagyobbnak kell lenniรผk. -moveSpeed=\u00a76Sebess\u00e9g tรญpus\: {0}, Sebess\u00e9g\:\u00a7c {1}\u00a76-re/ra {2}\u00a76-nak/-nek. -msgDisabled=\u00a76รœzenetek fogadรกsa \u00a7cdisabled\u00a76. -msgDisabledFor=\u00a76รœzenetek fogadรกsa \u00a7cletiltva \u00a76 \u00a7c{0}\u00a76. -msgEnabled=\u00a76รœzenetek fogadรกsa \u00a7cengedรฉlyezve\u00a76. -msgEnabledFor=\u00a76รœzenetek fogadรกsa \u00a7cengedรฉlyezve \u00a76 \u00a7c{0}\u00a76. +moreThanZero=\u00a74A mennyis\u00e9geknek 0-n\u00e1l nagyobbnak kell lenni\u00fck. +moveSpeed=\u00a76Sebess\u00e9g t\u00edpus\: {0}, Sebess\u00e9g\:\u00a7c {1}\u00a76-ra/-re {2}\u00a76-nak/-nek. +msgDisabled=\u00a76\u00dczenetek fogad\u00e1sa \u00a7cletiltva\u00a76. +msgDisabledFor=\u00a76\u00dczenetek fogad\u00e1sa \u00a7cletiltva \u00a76 \u00a7c{0}\u00a76. +msgEnabled=\u00a76\u00dczenetek fogad\u00e1sa \u00a7cenged\u00e9lyezve\u00a76. +msgEnabledFor=\u00a76\u00dczenetek fogad\u00e1sa \u00a7cenged\u00e9lyezve \u00a76 \u00a7c{0}\u00a76. msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2} -msgIgnore=\u00a7c{0} \u00a74az รผzenetek letiltva. +msgIgnore=\u00a7c{0} \u00a74az \u00fczenetek letiltva. multipleCharges=\u00a74Nem alkalmazhatsz t\u00f6bb t\u00f6ltetet enn\u00e9l a t\u00fczij\u00e1t\u00e9kn\u00e1l. -multiplePotionEffects=\u00a74Ezzel a bรกjitalal tรถbb hatรกs nem alkalmazhatรณ. +multiplePotionEffects=\u00a74Ezzel a b\u00e1jitallal t\u00f6bb hat\u00e1s nem alkalmazhat\u00f3. mutedPlayer=\u00a76\u00a7c{0} \u00a76len\u00e9m\u00edtva. mutedPlayerFor=\u00a76\u00a7c{0} \u00a76len\u00e9m\u00edtva\u00a7c {1}\u00a76-ra/-re. -mutedUserSpeaks={0} megprรณbรกlt beszรฉlni, de elnรฉmรญtva. +mutedUserSpeaks={0} megpr\u00f3b\u00e1lt besz\u00e9lni, de eln\u00e9m\u00edtva: {1} muteExempt=\u00a74Nem n\u00e9m\u00edthatod \u00f5t. muteExemptOffline=\u00a74Nem n\u00e9m\u00edthatsz le Offline j\u00e1t\u00e9kost. muteNotify=\u00a7c{0} \u00a76len\u00e9m\u00edtotta \u00a7c{1}\u00a76-t. -muteNotifyFor=\u00a7c{0} \u00a76jรกtรฉkos elnรฉmรญtva \u00a7c{1}\u00a76 \u00a7c {2}\u00a76. +muteNotifyFor=\u00a7c{0} \u00a76j\u00e1t\u00e9kos eln\u00e9m\u00edtva \u00a7c{1}\u00a76 \u00a7c {2}\u00a76. nearbyPlayers=\u00a76J\u00e1t\u00e9kosok k\u00f6zelbe\:\u00a7r {0} -negativeBalanceError=\u00a74A felhasznรกlรณ nem jogosult negatรญv egyenlegre. -nickChanged=\u00a76A becenรฉv megv\u00e1ltoztatva. -nickDisplayName=\u00a74Engedรฉlyezned kell a change-displayname az Essentials konfigurรกciรณban. +negativeBalanceError=\u00a74A felhaszn\u00e1l\u00f3 nem jogosult negat\u00edv egyenlegre. +nickChanged=\u00a76A becen\u00e9v megv\u00e1ltoztatva. +nickDisplayName=\u00a74Enged\u00e9lyezned kell a change-displayname az Essentials konfigur\u00e1ci\u00f3ban. nickInUse=\u00a74Ez a n\u00e9v m\u00e1r haszn\u00e1ltban van. -nickNamesAlpha=\u00a74A becenevek alfanumerikus karakterekbล‘l kell, hogy รกlljanak. -nickNamesOnlyColorChanges=\u00a74A beceneveknek csak a szรญneik vรกltoznak. +nickNamesAlpha=\u00a74A becenevek alfanumerikus karakterekb\u0151l kell, hogy \u00e1lljanak. +nickNamesOnlyColorChanges=\u00a74A beceneveknek csak a sz\u00edneik v\u00e1ltoznak. nickNoMore=\u00a76Nincs t\u00f6bb\u00e9 beceneved. nickSet=\u00a76A beceneved mostant\u00f3l\: \u00a7c{0}. nickTooLong=\u00a76Ez a becen\u00e9v t\u00fal hossz\u00fa. -noAccessCommand=\u00a74Nincs jogod ehhez\!. +noAccessCommand=\u00a74Nincs jogod ehhez\! noAccessPermission=\u00a74Nincs jogod a k\u00f6vetkez\u0151h\u00f6z\: \u00a7c{0}\u00a74. -noBreakBedrock=\u00a74Nincs engedรฉlyed kitrรถni az alapkล‘t. +noBreakBedrock=\u00a74Nincs enged\u00e9lyed kit\u00f6rni az alapk\u0151t. noDestroyPermission=\u00a74Nincs jogod, hogy ki\u00fcsd ezt\: \u00a7c{0}\u00a74. -noDurability=\u00a74Ez a tรฉtel nem rendelkezik tartรณssรกggal. -noGodWorldWarning=\u00a74Vigy\u00e1zat\! Az Isten m\u00f3d ebben a vil\u00e1gba le van tiltva\! -noHelpFound=\u00a74Nincsenek megfelelล‘ parancsok. -noHomeSetPlayer=\u00a76A jรกtรฉkos nem รกllรญtott be otthont. +noDurability=\u00a74Ez az elem nem rendelkezik tart\u00f3ss\u00e1ggal. +noGodWorldWarning=\u00a74Vigy\u00e1zat\! Az Isten m\u00f3d ebben a vil\u00e1gban le van tiltva\! +noHelpFound=\u00a74Nincsenek megfelel\u0151 parancsok. +noHomeSetPlayer=\u00a76A j\u00e1t\u00e9kos nem \u00e1ll\u00edtott be otthont. noIgnored=\u00a76Nem hagysz figyelmen k\u00edv\u00fcl senkit. -noJailsDefined=\u00a76Nincsenek bรถrtรถnรถk. +noJailsDefined=\u00a76Nincsenek b\u00f6rt\u00f6n\u00f6k. noKitGroup=\u00a74Nincs jogod ehhez a csomaghoz. -noKitPermission=\u00a74Szรผksรฉged van engedรฉlyre \u00a7c{0}\u00a74 a csomag hasznรกlatรกra. -noKits=\u00a76Mรฉg nincsenek csomagok. +noKitPermission=\u00a74Sz\u00fcks\u00e9ged van enged\u00e9lyre \u00a7c{0}\u00a74 a csomag haszn\u00e1lat\u00e1ra. +noKits=\u00a76M\u00e9g nincsenek csomagok. noLocationFound=\u00a74Nincs ilyen \u00e9rv\u00e9nyes hely. noMail=\u00a76Nincs leveled. -noMatchingPlayers=\u00a76Nincs megfelelล‘ jรกtรฉkos. +noMatchingPlayers=\u00a76Nincs megfelel\u0151 j\u00e1t\u00e9kos. noMetaFirework=\u00a74Nincs jogod, hogy alkalmazd ezt a t\u00fczij\u00e1t\u00e9k adatot. -noMetaJson=JSON Metadata nem t\u00e1mogatott a Bukkit ezen verzi\u00f3j\u00e1ban. -noMetaPerm=\u00a74Nincs jogod a jelentkezรฉshez \u00a7c{0}\u00a74 meta erre a tรฉtelre. -none=none +noMetaJson=A JSON Metadata nem t\u00e1mogatott a Bukkit ezen verzi\u00f3j\u00e1ban. +noMetaPerm=\u00a74Nincs jogod a jelentkez\u00e9shez \u00a7c{0}\u00a74 meta erre az elemre. +none=senki noNewMail=\u00a76Nincs \u00faj leveled. -noPendingRequest=\u00a74Nincs folyamatban lรฉvล‘ kรฉrelmed. +noPendingRequest=\u00a74Nincs folyamatban l\u00e9v\u0151 k\u00e9relmed. noPerm=\u00a74Nincs \u00a7c{0}\u00a74 jog. noPermissionSkull=\u00a74Nincs jogod megv\u00e1ltoztatni ezt a fejet. -noPermToAFKMessage=\u00a74Nincs jogod AFK รผzenet beรกllรญtรกsรกra. -noPermToSpawnMob=\u00a74Nincs jogod leidรฉzni ezt a szรถrnyet. -noPlacePermission=\u00a74Nincs jogod egy blokknak a tรกbla melletti elhelyezรฉsรฉre. -noPotionEffectPerm=\u00a74Nincs jogod a fล‘zethatรกs alkalmazรกsรกra \u00a7c{0} \u00a74ennรฉl a fล‘zetnรฉl. -noPowerTools=\u00a76Nincsenek hozzรกrendelve elektromos szerszรกmok. -notAcceptingPay=\u00a74{0} \u00a74nem fogad el fizetรฉst. -notAllowedToQuestion=\u00a74Nem vagy jogosult a kรฉrdรฉs hasznรกlatรกra. -notAllowedToShout=\u00a74Nincs jogosultsรกgod kiabรกlni. -notEnoughExperience=\u00a74Nincs elรฉg tapasztalatod. +noPermToAFKMessage=\u00a74Nincs jogod AFK \u00fczenet be\u00e1ll\u00edt\u00e1s\u00e1ra. +noPermToSpawnMob=\u00a74Nincs jogod leid\u00e9zni ezt a l\u00e9nyt. +noPlacePermission=\u00a74Nincs jogod egy blokknak a t\u00e1bla melletti elhelyez\u00e9s\u00e9re. +noPotionEffectPerm=\u00a74Nincs jogod a f\u0151zethat\u00e1s alkalmaz\u00e1s\u00e1ra \u00a7c{0} \u00a74enn\u00e9l a f\u0151zetn\u00e9l. +noPowerTools=\u00a76Nincsenek hozz\u00e1rendelve elektromos szersz\u00e1mok. +notAcceptingPay=\u00a74{0} \u00a74nem fogad el fizet\u00e9st. +notAllowedToQuestion=\u00a74Nem vagy jogosult a k\u00e9rd\u00e9s haszn\u00e1lat\u00e1ra. +notAllowedToShout=\u00a74Nincs jogod k\u00f6zvet\u00edteni. +notEnoughExperience=\u00a74Nincs el\u00e9g tapasztalatod. notEnoughMoney=\u00a74Erre nincs p\u00e9nzed. notFlying=nem rep\u00fcl nothingInHand=\u00a74Nincs semmi a kezedben. -notRecommendedBukkit=\u00a74* \! * A Bukkit verziรณ nem az Essentials ajรกnlott รฉpรญtรฉse. -notSupportedYet=Mรฉg nem tรกmogatott. +notRecommendedBukkit=\u00a74* \! * A Bukkit verzi\u00f3 nem az Essentials aj\u00e1nlott \u00e9p\u00edt\u00e9se. +notSupportedYet=M\u00e9g nem t\u00e1mogatott. now=most noWarpsDefined=\u00a76Nincs m\u00e9g egy warp se. -nuke=\u00a75Lehet halรกl esni rรกjuk. -numberRequired=Egy szรกm megy ott, buta. -onlyDayNight=/az idล‘ csak day/night tรกmogat. +nuke=\u00a75Lehet hal\u00e1l esni r\u00e1juk. +numberRequired=Egy sz\u00e1m van ott, buta. +onlyDayNight=/az id\u0151 csak day/night t\u00e1mogat. onlyPlayers=\u00a74Csak j\u00e1t\u00e9kon bel\u00fcl haszn\u00e1lhat\u00f3 a \u00a7c{0}\u00a74 parancs. onlyPlayerSkulls=\u00a74Csak j\u00e1t\u00e9kos fejnek tudod be\u00e1ll\u00edtani a tulajdonos\u00e1t (\u00a7c397\:3\u00a74). -onlySunStorm=\u00a74/az idล‘jรกrรกs csak a sun/storm tรกmogatja. -openingDisposal=\u00a76Kezelรฉsi menรผ megnyitรกsa... +onlySunStorm=\u00a74/az id\u0151j\u00e1r\u00e1s csak a sun/storm t\u00e1mogatja. +openingDisposal=\u00a76Kezel\u00e9si men\u00fc megnyit\u00e1sa... orderBalances=\u00a76Egyenlegek \u00f6sszegy\u00fcjt\u00e9se\u00a7c {0} \u00a76j\u00e1t\u00e9kost\u00f3l, k\u00e9rlek, v\u00e1rj... -oversizedTempban=\u00a74Nem tilthatsz ki egy jรกtรฉkost erre az idล‘re. -payConfirmToggleOff=\u00a76A tovรกbbiakban nem kรฉrik a kifizetรฉsek megerล‘sรญtรฉsรฉt. -payConfirmToggleOn=\u00a76Most a kifizetรฉsek megerล‘sรญtรฉsรฉre kรฉri. -payMustBePositive=\u00a74A fizetendล‘ รถsszegnek pozitรญvnak kell lennie. -payToggleOff=\u00a76Mรกr nem fogadod el a kifizetรฉseket. -payToggleOn=\u00a76Most elfogadod a kifizetรฉseket. +oversizedTempban=\u00a74Nem tilthatsz ki egy j\u00e1t\u00e9kost erre az id\u0151re. +payConfirmToggleOff=\u00a76A tov\u00e1bbiakban nem k\u00e9rik a kifizet\u00e9sek meger\u0151s\u00edt\u00e9s\u00e9t. +payConfirmToggleOn=\u00a76Most a kifizet\u00e9sek meger\u0151s\u00edt\u00e9s\u00e9t k\u00e9ri. +payMustBePositive=\u00a74A fizetend\u0151 \u00f6sszegnek pozit\u00edvnak kell lennie. +payToggleOff=\u00a76M\u00e1r nem fogadod el a kifizet\u00e9seket. +payToggleOn=\u00a76Most elfogadod a kifizet\u00e9seket. pendingTeleportCancelled=\u00a74Folyamatban l\u00e9v\u0151 teleport\u00e1l\u00e1s megszak\u00edtva. -playerBanIpAddress=\u00a76A jรกtรฉkos\u00a7c {0} \u00a76IP-re tiltva\u00a7c {1} \u00a76\: \u00a7c{2}\u00a76. +playerBanIpAddress=\u00a76A j\u00e1t\u00e9kos\u00a7c {0} \u00a76IP-re tiltva\u00a7c {1} \u00a76\: \u00a7c{2}\u00a76. playerBanned=\u00a7c{0} \u00a76kitiltotta\u00a7c {1}\u00a76-t Indok\: \u00a7c{2}\u00a76. playerInJail=\u00a74M\u00e1r bent van a(z)\u00a7c {0}\u00a74 b\u00f6rt\u00f6nbe. playerJailed=\u00a76\u00a7c{0} \u00a76beb\u00f6tr\u00f6n\u00f6zve. -playerJailedFor=\u00a76\u00a7c{0} \u00a76beb\u00f6rt\u00f6n\u00f6zve {1}-re/-ra. +playerJailedFor=\u00a76\u00a7c{0} \u00a76beb\u00f6rt\u00f6n\u00f6zve {1}-ra/-re. playerKicked=\u00a7c{0} \u00a76 kickelte {1}-t. Indok\: {2}. -playerMuted=\u00a76Ellett\u00e9l n\u00e9m\u00edtva\! +playerMuted=\u00a76El lett\u00e9l n\u00e9m\u00edtva\! playerMutedFor=\u00a76Le lett\u00e9l n\u00e9m\u00edtva\u00a7c {0}-ra/-re. playerNeverOnServer=\u00a7c{0} \u00a74 m\u00e9g sose j\u00e1rt a szerveren. playerNotFound=\u00a74Nincs ilyen nev\u00fb j\u00e1t\u00e9kos. -playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. +playerTempBanned=\u00a76A j\u00e1t\u00e9kos \u00a7c{0}\u00a76 ideiglenesen kitiltva \u00a7c{1}\u00a76 \u00a7c{2}\u00a76-ra/-re: \u00a7c{3}\u00a76. playerUnbanIpAddress=\u00a76\u00a7c{0} \u00a76feloldotta a k\u00f6vetkez\u00f5 IP c\u00edmet\: {1}. playerUnbanned=\u00a76\u00a7c{0} \u00a76feloldotta {1}\u00a76-t. playerUnmuted=\u00a76Fel lett oldva a n\u00e9m\u00edt\u00e1sod. @@ -401,29 +401,29 @@ powerToolClearAll=\u00a76\u00d6sszes PowerTool parancs ki\u00fcr\u00edtve. powerToolList=\u00a76\u00a7c{1}\u00a76-n a k\u00f6vetkez\u0151 parancsok vannak\: \u00a7c{0}\u00a76. powerToolListEmpty=\u00a74\u00a7c{0}\u00a74-hoz egy parancs sincs csatolva. powerToolNoSuchCommandAssigned=\u00a74A(z)\u00a7c {0}\u00a74 parancs nincs be\u00e1ll\u00edtva \u00a7c{1}\u00a74-hoz/-hez. -powerToolRemove=\u00a74A(z)\u00a7c {0}\u00a74 parancs lelett szedve \u00a7c{1}\u00a74-r\u00f3l/r\u0151l. -powerToolRemoveAll=\u00a76\u00d6sszes parancs elt\u00e1vol\u00edtva \u00a7c{0}\u00a76-r\u00f3l/r\u0151l. +powerToolRemove=\u00a74A(z)\u00a7c {0}\u00a74 parancs el lett t\u00e1vol\u00edtva \u00a7c{1}\u00a74-r\u00f3l/-r\u0151l. +powerToolRemoveAll=\u00a76\u00d6sszes parancs elt\u00e1vol\u00edtva \u00a7c{0}\u00a76-r\u00f3l/-r\u0151l. powerToolsDisabled=\u00a76Az \u00f6sszes power tool-os eszk\u00f6z\u00f6d letiltva. powerToolsEnabled=\u00a76Az \u00f6sszes power tool-os eszk\u00f6z\u00f6d enged\u00e9lyezve. -pTimeCurrent=\u00a7c{0}\u00a76idล‘\u00a7c {1}\u00a76. -pTimeCurrentFixed=\u00a7c{0}\u00a76 idล‘ rรถgzรญtve\u00a7c {1}\u00a76. -pTimeNormal=\u00a7c{0}\u00a76 ideje normรกlis รฉs megfelel a kiszolgรกlรณnak. -pTimeOthersPermission=\u00a74Nem vagy jogosult mรกs jรกtรฉkosok idล‘tartamรกra. -pTimePlayers=\u00a76Ezeknek a jรกtรฉkosoknak sajรกt idejรผk van\:\u00a7r -pTimeReset=\u00a76A jรกtรฉkos ideje vissza lett รกllรญtva\: \u00a7c{0} -pTimeSet=\u00a76A jรกtรฉkos ideje beรกllรญtva \u00a7c{0}\u00a76 \: \u00a7c{1}. -pTimeSetFixed=\u00a76A jรกtรฉkos ideje rรถgzรญtett \u00a7c{0}\u00a76 \: \u00a7c{1}. -pWeatherCurrent=\u00a7c{0}\u00a76 az idล‘jรกrรกs\u00a7c {1}\u00a76. -pWeatherInvalidAlias=\u00a74ร‰rvรฉnytelen idล‘jรกrรกs tรญpus -pWeatherNormal=\u00a7c{0}\u00a76 az idล‘jรกrรกs normรกlis รฉs megfelel a szervernek. -pWeatherOthersPermission=\u00a74Nem vagy jogosult a tรถbbi jรกtรฉkos idล‘jรกrรกsรกnak beรกllรญtรกsรกra. -pWeatherPlayers=\u00a76Ezek a jรกtรฉkosok sajรกt idล‘jรกrรกssal rendelkeznek\:\u00a7r -pWeatherReset=\u00a76A jรกtรฉkos idล‘jรกrรกsa vissza lett รกllรญtva\: \u00a7c{0} -pWeatherSet=\u00a76A jรกtรฉkos idล‘jรกrรกsรกnak beรกllรญtรกsa \u00a7c{0}\u00a76 \: \u00a7c{1}. +pTimeCurrent=\u00a7c{0}\u00a76id\u0151\u00a7c {1}\u00a76. +pTimeCurrentFixed=\u00a7c{0}\u00a76 id\u0151 r\u00f6gz\u00edtve\u00a7c {1}\u00a76. +pTimeNormal=\u00a7c{0}\u00a76 ideje norm\u00e1lis \u00e9s megfelel a kiszolg\u00e1l\u00f3nak. +pTimeOthersPermission=\u00a74Nem vagy jogosult m\u00e1s j\u00e1t\u00e9kosok id\u0151tartam\u00e1ra. +pTimePlayers=\u00a76Ezeknek a j\u00e1t\u00e9kosoknak saj\u00e1t idej\u00fck van\:\u00a7r +pTimeReset=\u00a76A j\u00e1t\u00e9kos ideje vissza lett \u00e1ll\u00edtva\: \u00a7c{0} +pTimeSet=\u00a76A j\u00e1t\u00e9kos ideje be\u00e1ll\u00edtva \u00a7c{0}\u00a76\: \u00a7c{1}. +pTimeSetFixed=\u00a76A j\u00e1t\u00e9kos ideje r\u00f6gz\u00edtett \u00a7c{0}\u00a76\: \u00a7c{1}. +pWeatherCurrent=\u00a7c{0}\u00a76 az id\u0151j\u00e1r\u00e1s\u00a7c {1}\u00a76. +pWeatherInvalidAlias=\u00a74\u00c9rv\u00e9nytelen id\u0151j\u00e1r\u00e1s t\u00edpus. +pWeatherNormal=\u00a7c{0}\u00a76 az id\u0151j\u00e1r\u00e1s norm\u00e1lis \u00e9s megfelel a szervernek. +pWeatherOthersPermission=\u00a74Nem vagy jogosult a t\u00f6bbi j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1s\u00e1ra. +pWeatherPlayers=\u00a76Ezek a j\u00e1t\u00e9kosok saj\u00e1t id\u0151j\u00e1r\u00e1ssal rendelkeznek\:\u00a7r +pWeatherReset=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1sa vissza lett \u00e1ll\u00edtva\: \u00a7c{0} +pWeatherSet=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1sa \u00a7c{0}\u00a76 \: \u00a7c{1}. questionFormat=\u00a72[K\u00e9rd\u00e9s]\u00a7r {0} radiusTooBig=\u00a74Ez a sug\u00e1r t\u00fal nagy\! A maximum\: {0}. readNextPage=\u00a76\u00cdrd be a\u00a7c /{0} {1} \u00a76 parancsot a k\u00f6vetkez\u00f5 oldal elolvas\u00e1s\u00e1hoz. -recentlyForeverAlone=\u00a74{0} a kรถzelmรบltban ment. +recentlyForeverAlone=\u00a74{0} a k\u00f6zelm\u00faltban ment. recipe=\u00a76\u00a7c{0}\u00a76 receptje (\u00a7c{1}\u00a76 az \u00a7c{2}\u00a76-b\u00f3l/b\u0151l) recipeBadIndex=Nincs recept ennyihez. recipeFurnace=\u00a76\u00c9gess\: \u00a7c{0}\u00a76-t. @@ -437,7 +437,7 @@ recipeWhere=\u00a76Hol\: {0} removed=\u00a76Elt\u00e1vol\u00edtva\u00a7c {0} \u00a76entit\u00e1s. repair=\u00a76Sikeresen megjav\u00edtottad a az al\u00e1bbi dolgaidat\: \u00a7c{0}. repairAlreadyFixed=\u00a74Ezt a t\u00e1rgyat m\u00e9g nem kell jav\u00edtanod. -repairEnchanted=\u00a74Nincs jogod, hogy varรกzsolt t\u00e1rgyakat jav\u00edts. +repairEnchanted=\u00a74Nincs jogod, hogy var\u00e1zsolt t\u00e1rgyakat jav\u00edts. repairInvalidType=\u00a74Ez a t\u00e1rgy nem jav\u00edthat\u00f3. repairNone=\u00a74Nincs olyan eszk\u00f6z\u00f6d/felszerel\u00e9sed, amit jav\u00edtani k\u00e9ne. requestAccepted=\u00a76A teleport\u00e1l\u00e1si k\u00e9relem elfogadva. @@ -445,163 +445,163 @@ requestAcceptedFrom=\u00a7c{0} \u00a76elfogadta a k\u00e9relmed. requestDenied=\u00a76Teleport\u00e1l\u00e1si k\u00e9relem elutas\u00edtva. requestDeniedFrom=\u00a7c{0} \u00a76elutas\u00edtotta a k\u00e9relmed. requestSent=\u00a76K\u00e9r\u00e9s elk\u00fcldve\u00a7c {0}\u00a76-nak/nek. -requestSentAlready=\u00a74Mรกr elkรผldted {0}\u00a74 a teleport kรฉrelmet. -requestTimedOut=\u00a74A teleportรกlรกs k\u00e9relem kifutott az id\u00f5b\u00f5l. -requiredBukkit=\u00a76* \! * Szรผksรฉged van a CraftBukkit รฉpรญtรฉsรฉhez {0}, letรถlted innen http\://dl.bukkit.org/downloads/craftbukkit/ -resetBal=\u00a76Egyenleg vissza \u00e1ll\u00edtva \u00a7a{0}-ra/-re \u00a76minden fentl\u00e9v\u0151 j\u00e1t\u00e9kosnak. -resetBalAll=\u00a76Egyenleg vissza\u00e1ll\u00edtva \u00a7a{0}\u00a76-ra/re az \u00f6sszes j\u00e1t\u00e9kosnak. +requestSentAlready=\u00a74M\u00e1r elk\u00fcldted {0}\u00a74 a teleport k\u00e9relmet. +requestTimedOut=\u00a74A teleport\u00e1l\u00e1si k\u00e9relem kifutott az id\u00f5b\u00f5l. +requiredBukkit=\u00a76* \! * Sz\u00fcks\u00e9ged van a CraftBukkit \u00e9p\u00edt\u00e9s\u00e9hez {0}, let\u00f6lt\u00f6d innen http\://dl.bukkit.org/downloads/craftbukkit/ +resetBal=\u00a76Egyenleg vissza\u00e1ll\u00edtva \u00a7a{0}-ra/-re \u00a76minden fentl\u00e9v\u0151 j\u00e1t\u00e9kosnak. +resetBalAll=\u00a76Egyenleg vissza\u00e1ll\u00edtva \u00a7a{0}\u00a76-ra/-re az \u00f6sszes j\u00e1t\u00e9kosnak. returnPlayerToJailError=\u00a74Hiba t\u00f6rt\u00e9nt amikor\u00a7c {0} \u00a74visszapr\u00f3b\u00e1lt t\u00e9rni a(z) \u00a7c{1}\u00a74 b\u00f6rt\u00f6nbe\! -runningPlayerMatch=\u00a76A jรกtรฉkosok megfelelล‘ keresรฉsรฉnek futtatรกsa ''\u00a7c{0}\u00a76'' (ez eltarthat egy kicsit) +runningPlayerMatch=\u00a76A j\u00e1t\u00e9kosok megfelel\u0151 keres\u00e9s\u00e9nek futtat\u00e1sa ''\u00a7c{0}\u00a76'' (ez eltarthat egy kicsit) second=m\u00e1sodperc seconds=m\u00e1sodperc seenAccounts=\u00a76J\u00e1t\u00e9kos ismerhet\u0151\u00a7c {0} \u00a76n\u00e9ven is seenOffline=\u00a76A \u00a7c{0} \u00a76nev\u0171 j\u00e1t\u00e9kos \u00a74nem el\u00e9rhet\u0151 \u00a76ennyi ideje\: \u00a7c{1}\u00a76. seenOnline=\u00a76A \u00a7c{0} \u00a76nev\u0171 j\u00e1t\u00e9kos \u00a74el\u00e9rhet\u0151 \u00a76ennyi ideje\: \u00a7c{1}\u00a76. -sellBulkPermission=\u00a76Nincs jogod a tรถmeges รฉrtรฉkesรญtรฉsre. -sellHandPermission=\u00a76Nincs jogod a kezedben lรฉvล‘ tรกrgy eladรกsรกra. +sellBulkPermission=\u00a76Nincs jogod a t\u00f6meges \u00e9rt\u00e9kes\u00edt\u00e9sre. +sellHandPermission=\u00a76Nincs jogod a kezedben l\u00e9v\u0151 t\u00e1rgy elad\u00e1s\u00e1ra. serverFull=A szerver tele van\! serverTotal=\u00a76Szerver \u00f6sszesen\:\u00a7c {0} -setBal=\u00a7aEgyenleged be\u00e1ll\u00edtva {0}-ra. -setBalOthers=\u00a7aBe\u00e1ll\u00edtottad {0}\u00a7a egyenleg\u00e9t {1}-ra. -setSpawner=\u00a76Idรฉzล‘ \u00faj tรญpusa\:\u00a7c {0}. -sheepMalformedColor=\u00a74Rosszformรกzott szรญn. +setBal=\u00a7aEgyenleged be\u00e1ll\u00edtva {0}-ra/-re. +setBalOthers=\u00a7aBe\u00e1ll\u00edtottad {0}\u00a7a egyenleg\u00e9t {1}-ra/-re. +setSpawner=\u00a76Id\u00e9z\u0151 \u00faj t\u00edpusa\:\u00a7c {0}. +sheepMalformedColor=\u00a74Rosszform\u00e1zott sz\u00edn. shoutFormat=\u00a76[Ki\u00e1lt]\u00a7r {0} signFormatFail=\u00a74[{0}] signFormatSuccess=\u00a71[{0}] signFormatTemplate=[{0}] -signProtectInvalidLocation=\u00a74Nincs engedรฉlyed tรกblรกt lรฉtrehozni. -similarWarpExist=\u00a74Mรกr lรฉtezik hasonlรณ nรฉvvel rendelkezล‘ lรกnc. +signProtectInvalidLocation=\u00a74Nincs jogod egy t\u00e1bl\u00e1t l\u00e9trehozni. +similarWarpExist=\u00a74M\u00e1r l\u00e9tezik hasonl\u00f3 n\u00e9vvel rendelkez\u0151 warp. skullChanged=\u00a76Fej megv\u00e1ltoztatva \u00a7c{0}\u00a76 fej\u00e9re. -slimeMalformedSize=\u00a74Hibรกs mรฉret. +slimeMalformedSize=\u00a74Hib\u00e1s m\u00e9ret. socialSpy=\u00a76SocialSpy \u00a7c{0}\u00a76-nak/-nek\: \u00a7c{1} socialSpyMsgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a77{2} -socialSpyMutedPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a77(nรฉmรญtva) \u00a7r +socialSpyMutedPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a77(n\u00e9m\u00edtva) \u00a7r socialSpyPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a7r -soloMob=\u00a74A szรถrny szeretnek egyedรผl maradni. -spawned=idรฉzve +soloMob=\u00a74A mobok szeretnek egyed\u00fcl maradni. +spawned=id\u00e9zve spawnSet=\u00a76Kezd\u00f5pont be\u00e1ll\u00edtva a \u00a7c{0}\u00a76 csoportnak. -spectator=nรฉzล‘ +spectator=n\u00e9z\u0151 sudoExempt=\u00a74Nem k\u00e9nyszer\u00edtheted \u00f5t. -sudoRun=\u00a76Erล‘ltetรฉse\u00a7c {0} \u00a76to futtatรกs\:\u00a7r /{1} +sudoRun=\u00a76Er\u00f6ltet\u00e9se\u00a7c {0} \u00a76futtat\u00e1s\:\u00a7r /{1} suicideMessage=\u00a76Viszl\u00e1t sz\u00e9p vil\u00e1g... suicideSuccess=\u00a76{0} \u00a76feladta az \u00e9let\u00e9t. survival=t\u00fal\u00e9l\u00f5 takenFromAccount=\u00a7a{0} lev\u00e9ve az egyenlegedr\u00f5l. takenFromOthersAccount=\u00a7a{0} lev\u00e9ve {1}\u00a7a egyenleg\u00e9r\u00f5l. \u00daj egyenleg\: {2}. -teleportAAll=\u00a76Teleport\u00e1l\u00e1si k\u00e9relem mindenkinek elk\u00fcldve... +teleportAAll=\u00a76A teleport\u00e1l\u00e1si k\u00e9relem mindenkinek elk\u00fcldve... teleportAll=\u00a76\u00d6sszes j\u00e1t\u00e9kos teleport\u00e1l\u00e1sa... teleportationCommencing=\u00a76Teleport\u00e1l\u00e1s megkezd\u00e9se... teleportationDisabled=\u00a76Teleport\u00e1l\u00e1s \u00a7cletiltva\u00a76. teleportationDisabledFor=\u00a76Teleport\u00e1l\u00e1s \u00a7cletiltva \u00a7c{0} \u00a76sz\u00e1m\u00e1ra\u00a76. teleportationEnabled=\u00a76Teleport\u00e1l\u00e1s \u00a7cenged\u00e9lyezve\u00a76. teleportationEnabledFor=\u00a76Teleport\u00e1l\u00e1s \u00a7cenged\u00e9lyezve \u00a7c{0} \u00a76sz\u00e1m\u00e1ra\u00a76. -teleportAtoB=\u00a7c{0}\u00a76 elteleport\u00e1lt t\u00e9ged {1}\u00a76-hoz/hez. +teleportAtoB=\u00a7c{0}\u00a76 elteleport\u00e1lt t\u00e9ged {1}\u00a76-hoz/-hez. teleportDisabled=\u00a7c{0} \u00a74letiltotta, hogy r\u00e1 teleport\u00e1ljanak. teleportHereRequest=\u00a7c{0}\u00a76 szeretn\u00e9, hogy hozz\u00e1 teleport\u00e1lj. teleporting=\u00a76Teleport\u00e1l\u00e1s... teleportInvalidLocation=A koordin\u00e1t\u00e1k \u00e9rt\u00e9ke nem lehet t\u00f6bb 30000000-n\u00e9l -teleportNewPlayerError=\u00a74Nem sikerรผlt teleportรกlni az รบj jรกtรฉkost\! +teleportNewPlayerError=\u00a74Nem siker\u00fclt teleport\u00e1lni az \u00faj j\u00e1t\u00e9kost\! teleportRequest=\u00a7c{0}\u00a76 hozz\u00e1d szeretne teleport\u00e1lni. -teleportRequestAllCancelled=\u00a76Minden kiemelkedล‘ teleportรกlรกs kรฉrรฉs tรถrรถlve. -teleportRequestSpecificCancelled=\u00a76Kiemelkedล‘ teleportรกlรกsi kรฉrelem {0} tรถrรถlve. +teleportRequestAllCancelled=\u00a76Minden kiemelked\u0151 teleport\u00e1l\u00e1s k\u00e9r\u00e9s t\u00f6r\u00f6lve. +teleportRequestSpecificCancelled=\u00a76Kiemelked\u0151 teleport\u00e1l\u00e1si k\u00e9relem {0} t\u00f6r\u00f6lve. teleportRequestTimeoutInfo=\u00a76\u00a7c{0} m\u00e1sodperced\u00a76 van, hogy ezt elfogadd. teleportTop=\u00a76Teleport\u00e1l\u00e1s a legmagasabb pontra. teleportToPlayer=\u00a76Teleport\u00e1l\u00e1s \u00a7c{0}\u00a76-hoz/-hez. -tempbanExempt=\u00a74Nem tempbannolhatod ezt a szem\u00e9lyt. +tempbanExempt=\u00a74Nem tempbannolhatod ezt a j\u00e1t\u00e9kost. tempbanExemptOffline=\u00a74Nem tempbannolhatsz Offline j\u00e1t\u00e9kost. -tempbanJoin=Ki lettรฉl tiltva a szerverrล‘l {0}. Oka: {1} -tempBanned=\u00a7cKi lettรฉl tiltva a szerverrล‘l {0}\:\n\u00a7r{2} -thunder=\u00a7c {0} \u00a76mennydรถrgรฉs a vilรกgban. -thunderDuration=\u00a7c {0} \u00a76mennydรถrgรถtt a vilรกgodban\u00a7c {1} \u00a76mรกsodpercre. -timeBeforeHeal=\u00a74A kรถvetkezล‘ รฉlet feltรถltรฉs\:\u00a7c {0}\u00a76. -timeBeforeTeleport=\u00a74A kรถvetkezล‘ teleportรกlรกs\:\u00a7c {0}\u00a76. +tempbanJoin=Ki lett\u00e9l tiltva a szerverr\u0151l {0}. Oka: {1} +tempBanned=\u00a7cKi lett\u00e9l tiltva a szerverr\u0151l {0}\:\n\u00a7r{2} +thunder=\u00a7c {0} \u00a76mennyd\u00f6rg\u00e9s a vil\u00e1gban. +thunderDuration=\u00a7c {0} \u00a76mennyd\u00f6rg\u00f6tt a vil\u00e1godban\u00a7c {1} \u00a76m\u00e1sodpercre. +timeBeforeHeal=\u00a74A k\u00f6vetkez\u0151 \u00e9let felt\u00f6lt\u00e9s\:\u00a7c {0}\u00a76. +timeBeforeTeleport=\u00a74A k\u00f6vetkez\u0151 teleport\u00e1l\u00e1s\:\u00a7c {0}\u00a76. timeFormat=\u00a7c{0}\u00a76 vagy \u00a7c{1}\u00a76 vagy \u00a7c{2}\u00a76 timeSetPermission=\u00a74Nincs jogod, hogy \u00e1ll\u00edtsd az id\u00f5t. -timeSetWorldPermission=\u00a74Nincs jogod beรกllรญtani az idล‘t a vilรกg ''{0}''. -timeWorldCurrent=\u00a76A jelenlegi idล‘\u00a7c {0} \u00a7c{1}\u00a76. -timeWorldSet=\u00a76Id\u00f5 be\u00e1ll\u00edtva\u00a7c {0}\u00a76-re a \u00a7c{1}\u00a76 vil\u00e1gban. +timeSetWorldPermission=\u00a74Nincs jogod be\u00e1ll\u00edtani az id\u0151t a(z) ''{0}'' vil\u00e1gban. +timeWorldCurrent=\u00a76A jelenlegi id\u0151\u00a7c {0} \u00a7c{1}\u00a76. +timeWorldSet=\u00a76Id\u0151 be\u00e1ll\u00edtva\u00a7c {0}\u00a76-re a(z) \u00a7c{1}\u00a76 vil\u00e1gban. totalSellableAll=\u00a7aAz \u00f6sszes eladhat\u00f3 dolgod\u00e9rt \u00e9s blockjaid\u00e9rt \u00a7c{1}\u00a7a-t kapsz. totalSellableBlocks=\u00a7aAz \u00f6sszes eladhat\u00f3 blockjaid\u00e9rt \u00a7c{1}\u00a7a-t kapsz. -totalWorthAll=\u00a7aMinden tรกrgyat รฉs blokkot eladott egy teljes รฉrtรฉkre \u00a7c{1}\u00a7a. -totalWorthBlocks=\u00a7aEladtad az รถsszes blokkot, รถsszesen รฉrtรฉkben \u00a7c{1}\u00a7a. -tps=\u00a76Jelenlegi TPS \= {0} +totalWorthAll=\u00a7aMinden t\u00e1rgyat \u00e9s blokkot eladt\u00e1l egy teljes \u00e9rt\u00e9kre \u00a7c{1}\u00a7a. +totalWorthBlocks=\u00a7aEladtad az \u00f6sszes blokkot, \u00f6sszesen \u00e9rt\u00e9kben \u00a7c{1}\u00a7a. +tps=\u00a76Jelenlegi TPS\= {0} tradeSignEmpty=\u00a74A t\u00e1bla nem tud neked adni \u00e1rut. tradeSignEmptyOwner=\u00a74A t\u00e1bl\u00e1b\u00f3l m\u00e9g nem v\u00e1s\u00e1rolt senki. -treeFailure=\u00a74Fa termelรฉsi hiba. Prรณbรกlja รบjra a fรผvet vagy a piszkot. -treeSpawned=\u00a76Fa idรฉzve. +treeFailure=\u00a74Fa termel\u00e9si hiba. Pr\u00f3b\u00e1ld \u00fajra a f\u00f6ld\u00f6n. +treeSpawned=\u00a76Fa id\u00e9zve. true=\u00a7aigaz\u00a7r -typeTpacancel=\u00a76A kรฉrelem tรถrlรฉsรฉhez รญrd be \u00a7c/tpacancel\u00a76. -typeTpaccept=\u00a76Hogy elfogadd \u00edrd be \u00a7c/tpaccept\u00a76. -typeTpdeny=\u00a76Hogy elutas\u00edtsd \u00edrd be \u00a7c/tpdeny\u00a76. -typeWorldName=\u00a76Beรญrhatod egy adott vilรกg nevรฉt is. -unableToSpawnItem=\u00a74Nem lehetett leidรฉzni \u00a7c{0}\u00a74-t, mert ez nem idรฉzhetล‘ t\u00e1rgy. -unableToSpawnMob=\u00a74Nem lehetett a szรถrnyet idรฉzni. -unignorePlayer=\u00a76Nem hagyod figyelmen kรญvรผl a jรกtรฉkosokat\u00a7c {0} \u00a76tรถbbรฉ. +typeTpacancel=\u00a76A k\u00e9relem t\u00f6rl\u00e9s\u00e9hez \u00edrd be a \u00a7c/tpacancel\u00a76. +typeTpaccept=\u00a76Hogy elfogadd \u00edrd be a \u00a7c/tpaccept\u00a76. +typeTpdeny=\u00a76Hogy elutas\u00edtsd \u00edrd be a \u00a7c/tpdeny\u00a76. +typeWorldName=\u00a76Be\u00edrhatod egy adott vil\u00e1g nev\u00e9t is. +unableToSpawnItem=\u00a74Nem lehetett leid\u00e9zni \u00a7c{0}\u00a74-t, mert ez nem id\u00e9zhet\u0151 t\u00e1rgy. +unableToSpawnMob=\u00a74Nem lehetett a mobot leid\u00e9zni. +unignorePlayer=\u00a76Nem hagyod figyelmen k\u00edv\u00fcl a j\u00e1t\u00e9kosokat\u00a7c {0} \u00a76t\u00f6bb\u00e9. unknownItemId=\u00a74Ismeretlen t\u00e1rgy ID\:\u00a7r {0}\u00a74. -unknownItemInList=\u00a74Ismeretlen {0} elem a {1} listรกban. +unknownItemInList=\u00a74Ismeretlen {0} elem a {1} list\u00e1ban. unknownItemName=\u00a74Ismeretlen t\u00e1rgy n\u00e9v\: {0}. unlimitedItemPermission=\u00a74Nincs jogod a v\u00e9gtelens\u00e9gre a k\u00f6vetkez\u0151 t\u00e1rgyn\u00e1l\: \u00a7c{0}\u00a74. unlimitedItems=\u00a76V\u00e9gtelen t\u00e1rgyak\:\u00a7r -unmutedPlayer=\u00a7c {0}\u00a76-r\u00f3l fellett oldva a n\u00e9m\u00edt\u00e1s. -unsafeTeleportDestination=\u00a74Ahova teleport\u00e1lni szeretn\u00e9l nem biztons\u00e1gos \u00e9s a bisztons\u00e1gos teleport kikapcsolva. -unvanishedReload=\u00a74A reload k\u00f6vetkezt\u00e9ben mindenki l\u00e1tni fog. -upgradingFilesError=Hiba tรถrtรฉnt a fรกjlok frissรญtรฉse kรถzben. +unmutedPlayer=\u00a7c {0}\u00a76-r\u00f3l fel lett oldva a n\u00e9m\u00edt\u00e1s. +unsafeTeleportDestination=\u00a74Ahova teleport\u00e1lni szeretn\u00e9l nem biztons\u00e1gos \u00e9s a biztons\u00e1gos teleport\u00e1l\u00e1s kikapcsolva. +unvanishedReload=\u00a74Az \u00fajrat\u00f6lt\u00e9s k\u00f6vetkezt\u00e9ben mindenki l\u00e1tni fog. +upgradingFilesError=Hiba t\u00f6rt\u00e9nt a f\u00e1jlok friss\u00edt\u00e9se k\u00f6zben. uptime=\u00a76M\u00fbk\u00f6d\u00e9si id\u00f5\:\u00a7c {0} -userAFK=\u00a75{0} \u00a75most AFK \u00e9s nem bisztos hogy fog v\u00e1laszolni. -userAFKWithMessage=\u00a75{0} \u00a75most AFK \u00e9s nem bisztos, hogy fog v\u00e1laszolni. {1} -userdataMoveBackError=Nem sikerรผlt az userdata/{0}.tmp รกthelyezรฉse a userdata/{1}\! -userdataMoveError=Nem sikerรผlt az userdata/{0} รกthelyezรฉse a userdata/{1}.tmp\! -userDoesNotExist=\u00a74A felhasznรกlรณ\u00a7c {0} \u00a74nem lรฉtezik. +userAFK=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy v\u00e1laszolni fog. +userAFKWithMessage=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy fog v\u00e1laszolni. {1} +userdataMoveBackError=Nem siker\u00fclt az userdata/{0}.tmp \u00e1thelyez\u00e9se a userdata/{1}\! +userdataMoveError=Nem siker\u00fclt az userdata/{0} \u00e1thelyez\u00e9se a userdata/{1}.tmp\! +userDoesNotExist=\u00a74A felhaszn\u00e1l\u00f3\u00a7c {0} \u00a74nem l\u00e9tezik. userIsAway=\u00a77* \u00a75{0}\u00a77 elment a g\u00e9pt\u0151l... userIsAwayWithMessage=\u00a77* \u00a75{0}\u00a77 elment a g\u00e9pt\u0151l... userIsNotAway=\u00a77* \u00a75{0} \u00a77visszaj\u00f6tt... userJailed=\u00a76Beb\u00f6rt\u00f6n\u00f6ztek\! userUnknown=\u00a74Figyelem\: ''\u00a7c{0}\u00a74'' m\u00e9g sose j\u00e1rt a szerveren. -usingTempFolderForTesting=Hล‘mappรกk hasznรกlata a tesztelรฉshez\: +usingTempFolderForTesting=H\u0151mapp\u00e1k haszn\u00e1lata a tesztel\u00e9shez\: vanish=\u00a76L\u00e1thatatlans\u00e1g {0}\u00a76-nak/-nek\: {1} vanished=\u00a76Sikeresen elt\u00fcnt\u00e9l a norm\u00e1lis j\u00e1t\u00e9kosok el\u00f5l \u00e9s a j\u00e1t\u00e9kbeli parancsokb\u00f3l. -versionMismatch=\u00a74Verziรณ eltรฉrรฉs\! Kรฉrjรผk, frissรญtse {0} ugyanarra a verziรณra. -versionMismatchAll=\u00a74Verziรณ eltรฉrรฉs\! Kรฉrjรผk, frissรญtse az รถsszes Essentials jart ugyanarra a verziรณra. +versionMismatch=\u00a74Verzi\u00f3 elt\u00e9r\u00e9s\! K\u00e9rj\u00fck, friss\u00edtse a(z) {0} a legfrissebb verzi\u00f3ra. +versionMismatchAll=\u00a74Verzi\u00f3 elt\u00e9r\u00e9s\! K\u00e9rj\u00fck, friss\u00edtse az \u00f6sszes Essentials jart a legfrissebb verzi\u00f3ra. voiceSilenced=\u00a76El vagy n\u00e9m\u00edtva\! walking=s\u00e9ta -warpDeleteError=\u00a74Problรฉma a warp fรกjl tรถrlรฉsรฉvel. +warpDeleteError=\u00a74Probl\u00e9ma a warp f\u00e1jl t\u00f6rl\u00e9s\u00e9vel. warpingTo=\u00a76Warpol\u00e1s a(z)\u00a7c {0}\u00a76 helyre. warpList={0} -warpListPermission=\u00a74Nincs jogod, hogy ki list\u00e1zd a Warpokat. +warpListPermission=\u00a74Nincs jogod, hogy list\u00e1zd a warpokat. warpNotExist=\u00a74Nincs ilyen warp. -warpOverwrite=\u00a74Nem lehet felรผlรญrni a warpot. +warpOverwrite=\u00a74Nem lehet fel\u00fcl\u00edrni a warpot. warps=\u00a76Teleportok\:\u00a7r {0} warpsCount=\u00a76Van\u00a7c {0} \u00a76warp. Ez az \u00a7c{1}.\u00a76 oldal a \u00a7c{2}\u00a76-b\u00f3l/b\u0151l. warpSet=\u00a76Warp\u00a7c {0} \u00a76be\u00e1ll\u00edtva. warpUsePermission=\u00a74Nincs jogod oda warpolni. weatherInvalidWorld=A vil\u00e1g {0} nem tal\u00e1lhat\u00f3\! weatherStorm=\u00a76Be\u00e1ll\u00edtottad az id\u00f5t \u00a7ces\u00f5sre\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. -weatherStormFor=\u00a76Beรกllรญtottad az idล‘jรกrรกst \u00a7cesล‘sre\u00a7c {0}\u00a76 vilรกgban {1} mรกsodpercre. +weatherStormFor=\u00a76Be\u00e1ll\u00edtottad az id\u0151j\u00e1r\u00e1st \u00a7ces\u0151sre\u00a7c {0}\u00a76 vil\u00e1gban {1} m\u00e1sodpercre. weatherSun=\u00a76Be\u00e1ll\u00edtottad az id\u00f5t \u00a7cnaposra\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. -weatherSunFor=\u00a76Beรกllรญtottad az idล‘jรกrรกst \u00a7cnaposra\u00a7c {0}\u00a76 vilรกgban \u00a76 {1} mรกsodpercre. +weatherSunFor=\u00a76Be\u00e1ll\u00edtottad az id\u0151j\u00e1r\u00e1st \u00a7cnaposra\u00a7c {0}\u00a76 vil\u00e1gban \u00a76 {1} m\u00e1sodpercre. whoisAFK=\u00a76 - AFK\:\u00a7r {0} -whoisAFKSince=\u00a76 - AFK\:\u00a7r {0} (Since {1}) +whoisAFKSince=\u00a76 - AFK\:\u00a7r {0} (Mivel {1}) whoisBanned=\u00a76 - Bannolva\:\u00a7r {0} -whoisExp=\u00a76 - Exp\:\u00a7r {0} (Level {1}) +whoisExp=\u00a76 - Exp\:\u00a7r {0} (Szint {1}) whoisFly=\u00a76 - Rep\u00fcl\u00e9s\:\u00a7r {0} ({1}) whoisGamemode=\u00a76 - J\u00e1t\u00e9km\u00f3d\:\u00a7r {0} whoisGeoLocation=\u00a76 - Helyezked\u00e9s\:\u00a7r {0} whoisGod=\u00a76 - Isten m\u00f3d\:\u00a7r {0} whoisHealth=\u00a76 - \u00c9let\:\u00a7r {0}/20 -whoisHunger=\u00a76 - \u00c9hs\u00e9g\:\u00a7r {0}/20 (+{1} telรญtettsรฉg) +whoisHunger=\u00a76 - \u00c9hs\u00e9g\:\u00a7r {0}/20 (+{1} tel\u00edtetts\u00e9g) whoisIPAddress=\u00a76 - IP C\u00edm\:\u00a7r {0} whoisJail=\u00a76 - B\u00f6rt\u00f6n\:\u00a7r {0} whoisLocation=\u00a76 - Helye\:\u00a7r ({0}, {1}, {2}, {3}) whoisMoney=\u00a76 - P\u00e9nz\:\u00a7r {0} whoisMuted=\u00a76 - N\u00e9m\u00edtva\:\u00a7r {0} -whoisNick=\u00a76 - Becenรฉv\:\u00a7r {0} +whoisNick=\u00a76 - Becen\u00e9v\:\u00a7r {0} whoisOp=\u00a76 - OP\:\u00a7r {0} -whoisPlaytime=\u00a76 - Jรกtรฉkidล‘\:\u00a7r {0} -whoisTempBanned=\u00a76 - Ban lejรกr:\u00a7r {0} -whoisTop=\u00a76 \=\=\=\=\=\= KiIs\u00d6\:\u00a7c {0} \u00a76\=\=\=\=\=\= +whoisPlaytime=\u00a76 - J\u00e1t\u00e9kid\u0151\:\u00a7r {0} +whoisTempBanned=\u00a76 - Ban lej\u00e1r:\u00a7r {0} +whoisTop=\u00a76 \=\=\=\=\=\= Ki is \u0151:\u00a7c {0} \u00a76\=\=\=\=\=\= whoisUuid=\u00a76 - UUID\:\u00a7r {0} -worth=\u00a7aStackelรฉs {0} รฉrdemes \u00a7c{1}\u00a7a ({2} elem(ek) {3} minden) -worthMeta=\u00a7aStackelรฉs {0} az {1} รฉrtรฉkลฑ metaadatokkal \u00a7c{2}\u00a7a ({3} elem(ek) {4} minden) +worth=\u00a7aStackel\u00e9s {0} \u00e9rdemes \u00a7c{1}\u00a7a ({2} elem(ek) {3} minden) +worthMeta=\u00a7aStackel\u00e9s {0} az {1} \u00e9rt\u00e9k\u0171 metaadatokkal \u00a7c{2}\u00a7a ({3} elem(ek) {4} minden) worthSet=\u00a76\u00c1r be\u00e1ll\u00edtva year=\u00e9v years=\u00e9v From 2ced9469d78d94b4d89a7e3f1ab7047465ac163a Mon Sep 17 00:00:00 2001 From: BaoKunVN Date: Thu, 14 Jun 2018 03:23:00 +0700 Subject: [PATCH 012/140] Vietnamese Translation (#1824) @BauKunVN --- Essentials/src/messages_vi.properties | 595 ++++++++++++++++++++++++++ 1 file changed, 595 insertions(+) create mode 100644 Essentials/src/messages_vi.properties diff --git a/Essentials/src/messages_vi.properties b/Essentials/src/messages_vi.properties new file mode 100644 index 000000000..03ea9b91b --- /dev/null +++ b/Essentials/src/messages_vi.properties @@ -0,0 +1,595 @@ +#X-Generator: crowdin.net +#version: 488 +# Single quotes have to be doubled: '' +# Translations start here +# by: BaoKunVN (Kun) +action=\u00a75* {0} \u00a75{1} +addedToAccount=\u00a7a{0} \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u00ea\u006d \u0076\u00e0\u006f \u0074\u00e0\u0069 \u006b\u0068\u006f\u1ea3\u006e \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +addedToOthersAccount=\u00a7a{0} \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u00ea\u006d \u0076\u00e0\u006f \u0074\u00e0\u0069 \u006b\u0068\u006f\u1ea3\u006e {1}\u00a7a. \u0053\u1ed1 \u0064\u01b0 \u006d\u1edb\u0069\: {2} +adventure=\u0050\u0068\u0069\u00ea\u0075 \u006c\u01b0\u0075 +alertBroke=\u0110\u00e3 \u0070\u0068\u00e1\: +alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} \u0074\u1ea1\u0069\: {3} +alertPlaced=\u0110\u1eb7\u0074\: +alertUsed=\u0044\u00f9\u006e\u0067\: +antiBuildBreak=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0070\u0068\u00e1\u00a7c {0} \u00a74\u006b\u0068\u1ed1\u0069 \u1edf \u0111\u00e2\u0079. +antiBuildCraft=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u0068\u1ebf \u0074\u1ea1\u006f \u0111\u1ed3\u00a7c {0}\u00a74. +antiBuildDrop=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u006c\u00e0\u006d \u0076\u1ee9\u0074 \u0111\u1ed3\u00a7c {0}\u00a74. +antiBuildInteract=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u01b0\u01a1\u006e\u0067 \u0074\u00e1\u0063 \u0076\u1edb\u0069\u00a7c {0}\u00a74. +antiBuildPlace=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u1eb7\u0074\u00a7c {0} \u00a74\u1edf \u0111\u00e2\u0079. +antiBuildUse=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067\u00a7c {0}\u00a74. +autoAfkKickReason=\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0111\u00e1 \u0076\u00ec \u0072\u1edd\u0069 \u006b\u0068\u1ecf\u0069 \u006d\u00e1\u0079 {0} \u0070\u0068\u00fa\u0074. +backAfterDeath=\u00a76\u0044\u00f9\u006e\u0067 \u006c\u1ec7\u006e\u0068 /back \u0111\u1ec3 \u0076\u1ec1 \u0063\u0068\u1ed7 \u0111\u00e3 \u0063\u0068\u1ebf\u0074. +backUsageMsg=\u00a76\u0110\u0061\u006e\u0067 \u0071\u0075\u0061\u0079 \u006c\u1ea1\u0069 \u0076\u1ecb \u0074\u0072\u00ed \u0063\u0169. +backupDisabled=\u00a74\u0054\u1ead\u0070 \u006c\u1ec7\u006e\u0068 \u0073\u0061\u006f \u006c\u01b0\u0075 \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068. +backupFinished=\u00a76\u0053\u0061\u006f \u006c\u01b0\u0075 \u0074\u0068\u00e0\u006e\u0068 \u0063\u00f4\u006e\u0067. +backupStarted=\u00a76\u0042\u1eaf\u0074 \u0111\u1ea7\u0075 \u0073\u0061\u006f \u006c\u01b0\u0075. +balance=\u00a7a\u0053\u1ed1 \u0064\u01b0\:\u00a7c {0} +balanceOther=\u00a7a\u0053\u1ed1 \u0064\u01b0 \u0063\u1ee7\u0061 {0}\u00a7a\:\u00a7c {1} +balanceTop=\u00a76\u0042\u1ea3\u006e\u0067 \u0078\u1ebf\u0070 \u0068\u1ea1\u006e\u0067 \u0074\u0069\u1ec1\u006e ({0}) +banExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u1ea5\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079. +banFormat=\u00a7c\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d\:\n\u00a7r{0} +bed=\u00a7o\u0067\u0069\u01b0\u1edd\u006e\u0067\u00a7r +bedMissing=\u00a74\u0047\u0069\u01b0\u1edd\u006e\u0067 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0063\u0068\u01b0\u0061 \u0074\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070\u002c \u0068\u0061\u0079 \u0063\u00f3 \u0074\u0068\u1ec3 \u006c\u00e0 \u0062\u1ecb \u006d\u1ea5\u0074 \u0068\u006f\u1eb7\u0063 \u0063\u0068\u1eb7\u006e. +bedNull=\u00a7m\u0067\u0069\u01b0\u1edd\u006e\u0067\u00a7r +bedSet=\u00a76\u0110\u00e3 \u0074\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070 \u0076\u1ecb \u0074\u0072\u00ed \u0067\u0069\u01b0\u1edd\u006e\u0067 \u006e\u0067\u1ee7\! +bigTreeFailure=\u00a74\u0054\u1ea1\u006f \u0063\u00e2\u0079 \u006c\u1edb\u006e \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069\u002c \u0068\u00e3\u0079 \u0074\u0068\u1eed \u006c\u1ea1\u0069 \u1edf \u0074\u0072\u00ea\u006e \u0111\u1ea5\u0074 \u0068\u0061\u0079 \u006b\u0068\u1ed1\u0069 \u0063\u1ecf. +bigTreeSuccess=\u00a76\u0054\u1ea1\u006f \u0063\u00e2\u0079 \u006c\u1edb\u006e \u0074\u0068\u00e0\u006e\u0068 \u0063\u00f4\u006e\u0067. +blockList=\u00a76Essentials \u0063\u0068\u0075\u0079\u1ec3\u006e \u0074\u0069\u1ebf\u0070 \u0063\u00e1\u0063 \u006c\u1ec7\u006e\u0068 \u0073\u0061\u0075 \u0076\u00e0\u006f \u006d\u1ed9\u0074 \u0070\u006c\u0075\u0067\u0069\u006e \u006b\u0068\u00e1\u0063\: +bookAuthorSet=\u00a76\u0054\u00e1\u0063 \u0067\u0069\u1ea3 \u0063\u1ee7\u0061 \u0071\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u0074\u0068\u00e0\u006e\u0068 {0}. +bookLocked=\u00a76\u0051\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u006b\u0068\u00f3\u0061. +bookTitleSet=\u00a76\u0054\u0069\u00ea\u0075 \u0111\u1ec3 \u0063\u1ee7\u0061 \u0071\u0075\u0079\u1ec1\u006e \u0073\u00e1\u0063\u0068 \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u0074\u0068\u00e0\u006e\u0068 {0}. +broadcast=\u00a7r\u00a76[\u00a74\u0054\u0068\u00f4\u006e\u0067 \u0063\u00e1\u006f\u00a76]\u00a7a {0} +buildAlert=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0078\u00e2\u0079. +bukkitFormatChanged=\u0110\u1ecb\u006e\u0068 \u0064\u1ea1\u006e\u0067 \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0063\u1ee7\u0061 \u0042\u0075\u006b\u006b\u0069\u0074 \u0111\u00e3 \u0062\u1ecb \u0074\u0068\u0061\u0079 \u0111\u1ed5\u0069\u002e \u0050\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0063\u0068\u01b0\u0061 \u0111\u01b0\u1ee3\u0063 \u006b\u0069\u1ec3\u006d \u0074\u0072\u0061 +burnMsg=\u00a76\u0042\u1ea1\u006e \u006c\u00e0\u006d \u0063\u0068\u006f\u00a7c {0} \u00a76\u0062\u1ecb \u0063\u0068\u00e1\u0079 \u0074\u0072\u006f\u006e\u0067\u00a7c {1} \u0067\u0069\u00e2\u0079\u00a76. +canTalkAgain=\u00a76\u0042\u1ea1\u006e \u0063\u00f3 \u0074\u0068\u1ec3 \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u006c\u1ea1\u0069. +cannotStackMob=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0078\u1ebf\u0070 \u0063\u0068\u1ed3\u006e\u0067 \u006e\u0068\u0069\u1ec1\u0075 \u0071\u0075\u00e1\u0069. +cantFindGeoIpDB=\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u0063\u01a1 \u0073\u1edf \u0064\u1eef \u006c\u0069\u1ec7\u0075 \u0047\u0065\u006f\u0049\u0050\! +cantReadGeoIpDB=\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u1ecd\u0063 \u0063\u01a1 \u0073\u1edf \u0064\u1eef \u006c\u0069\u1ec7\u0075 \u0047\u0065\u006f\u0049\u0050\! +cantSpawnItem=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0074\u1ea1\u006f \u0072\u0061 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d\u00a7c {0}\u00a74. +chatTypeAdmin=[A] +chatTypeLocal=[L] +chatTypeSpy=[Spy] +cleaned=\u0110\u00e3 \u0064\u1ecd\u006e \u0074\u1ec7\u0070 \u0074\u0068\u00f4\u006e\u0067 \u0074\u0069\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069. +cleaning=\u0110\u0061\u006e\u0067 \u0064\u1ecd\u006e \u0074\u1ec7\u0070 \u0074\u0068\u00f4\u006e\u0067 \u0074\u0069\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069. +commandFailed=\u004c\u1ec7\u006e\u0068 {0} \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069\: +commandHelpFailedForPlugin=\u004c\u1ed7\u0069 \u006b\u0068\u0069 \u006e\u0068\u1ead\u0070 \u0074\u0072\u1ee3 \u0067\u0069\u00fa\u0070 \u0063\u0068\u006f \u0070\u006c\u0075\u0067\u0069\u006e\: {0} +commandNotLoaded=\u00a74\u004c\u1ec7\u006e\u0068 {0} \u006b\u0068\u00f4\u006e\u0067 \u0063\u0068\u00ed\u006e\u0068 \u0078\u00e1\u0063. +compassBearing=\u00a76\u0048\u01b0\u1edb\u006e\u0067\: {0} ({1} \u0111\u1ed9). +configFileMoveError=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 \u006b\u0068\u0069 \u0064\u0069 \u0063\u0068\u0075\u0079\u1ec3\u006e config.yml \u0074\u1edb\u0069 \u0076\u1ecb \u0074\u0072\u00ed \u0073\u0061\u006f \u006c\u01b0\u0075. +configFileRenameError=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 \u006b\u0068\u0069 \u0111\u1ed5\u0069 \u0074\u00ea\u006e \u0074\u1ec7\u0070 \u0074\u0069\u006e \u0074\u1ea1\u006d \u0074\u0068\u1edd\u0069 \u0074\u0068\u00e0\u006e\u0068 config.yml. +confirmPayment=\u00a77\u0110\u1ec3 \u00a7l\u0058\u00c1\u0043 \u004e\u0048\u1eac\u004e\u00a77 \u006b\u0068\u006f\u1ea3\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e \u00a76{0}\u00a77, \u0078\u0069\u006e \u0068\u00e3\u0079 \u006c\u1eb7\u0070 \u006c\u1ea1\u0069 \u006c\u1ec7\u006e\u0068: \u00a76{1} +connectedPlayers=\u00a76\u004e\u0068\u1eef\u006e\u0067 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0111\u00e3 \u006b\u1ebf\u0074 \u006e\u1ed1\u0069\u00a7r +connectionFailed=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 \u006b\u0068\u0069 \u006d\u1edf \u006b\u1ebf\u0074 \u006e\u1ed1\u0069. +cooldownWithMessage=\u00a74\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u1ed3\u0069\: {0} +corruptNodeInConfig=\u00a74\u004c\u01b0\u0075 \u00fd\: \u0054\u1ec7\u0070 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0028\u0063\u006f\u006e\u0066\u0069\u0067\u0029 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0063\u00f3 {0} \u006c\u1ed7\u0069. +couldNotFindTemplate=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u006d\u1eab\u0075 {0} +creatingConfigFromTemplate=\u0054\u1ea1\u006f \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0028\u0063\u006f\u006e\u0066\u0069\u0067\u0029 \u0074\u1eeb \u006d\u1eab\u0075\: {0} +creatingEmptyConfig=\u0110\u0061\u006e\u0067 \u0074\u1ea1\u006f \u006d\u1ed9\u0074 \u0074\u1ec7\u0070 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0028\u0063\u006f\u006e\u0066\u0069\u0067\u0029 \u0072\u1ed7\u006e\u0067\: {0} +creative=\u0053\u00e1\u006e\u0067 \u0074\u1ea1\u006f +currency={0}{1} +currentWorld=\u00a76\u0054\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u0068\u0069\u1ec7\u006e \u0074\u1ea1\u0069\:\u00a7c {0} +day=\u004e\u0067\u00e0\u0079 +days=\u004e\u0067\u00e0\u0079 +defaultBanReason=\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d \u006b\u0068\u1ecf\u0069 \u006d\u00e1\u0079 \u0063\u0068\u1ee7 \u006e\u00e0\u0079\! +deleteFileError=\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0078\u00f3\u0061 \u0074\u1ec7\u0070\: {0} +deleteHome=\u00a76\u004e\u0068\u00e0\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u006f\u1ea1\u0069 \u0062\u1ecf. +deleteJail=\u00a76\u004e\u0067\u1ee5\u0063\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u006f\u1ea1\u0069 \u0062\u1ecf. +deleteWarp=\u00a76\u004b\u0068\u0075 \u0076\u1ef1\u0063\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u006f\u1ea1\u0069 \u0062\u1ecf. +deniedAccessCommand=\u00a7c{0} \u00a74\u0062\u1ecb \u0074\u1eeb \u0063\u0068\u1ed1\u0069 \u0064\u00f9\u006e\u0067 \u006c\u1ec7\u006e\u0068. +denyBookEdit=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u006d\u1edf \u006b\u0068\u00f3\u0061 \u0071\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u006e\u00e0\u0079. +denyChangeAuthor=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u0068\u0061\u0079 \u0111\u1ed5\u0069 \u0074\u00e1\u0063 \u0067\u0069\u1ea3 \u0063\u1ee7\u0061 \u0071\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u006e\u00e0\u0079. +denyChangeTitle=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u0068\u0061\u0079 \u0111\u1ed5\u0069 \u0074\u0069\u00ea\u0075 \u0111\u1ec1 \u0063\u1ee7\u0061 \u0071\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u006e\u00e0\u0079. +depth=\u00a76\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u1edf \u0076\u1ecb \u0074\u0072\u00ed \u0074\u0072\u00f9\u006e\u0067 \u0076\u1edb\u0069 \u006d\u1ef1\u0063 \u006e\u01b0\u1edb\u0063 \u0062\u0069\u1ec3\u006e. +depthAboveSea=\u00a76\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u1edf \u0074\u0072\u00ea\u006e \u006d\u1ef1\u0063 \u006e\u01b0\u1edb\u0063 \u0062\u0069\u1ec3\u006e\u00a7c {0} \u00a76\u006b\u0068\u1ed1\u0069. +depthBelowSea=\u00a76\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u1edf \u0064\u01b0\u1edb\u0069 \u006d\u1ef1\u0063 \u006e\u01b0\u1edb\u0063 \u0062\u0069\u1ec3\u006e\u00a7c {0} \u00a76\u006b\u0068\u1ed1\u0069. +destinationNotSet=\u004b\u0068\u00f4\u006e\u0067 \u0111\u1eb7\u0074 \u0111\u00ed\u0063\u0068\! +disableUnlimited=\u00a76\u0056\u00f4 \u0068\u0069\u1ec7\u0075 \u0068\u00f3\u0061 \u0076\u0069\u1ec7\u0063 \u0111\u1eb7\u0074 \u006b\u0068\u00f4\u006e\u0067 \u0067\u0069\u1edb\u0069 \u0068\u1ea1\u006e \u006b\u0068\u1ed1\u0069\u00a7c {0} \u00a76\u0063\u0068\u006f {1}. +disabled=\u0054\u1eaf\u0074 +disabledToSpawnMob=\u00a74\u0056\u0069\u1ec7\u0063 \u0073\u0069\u006e\u0068 \u0072\u0061 \u0071\u0075\u00e1\u0069 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u0063\u0068\u1eb7\u006e \u1edf \u0074\u0072\u006f\u006e\u0067 \u0074\u1ec7\u0070 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0028\u0063\u006f\u006e\u0066\u0069\u0067\u0029. +distance=\u00a76\u004b\u0068\u006f\u1ea3\u006e\u0067 \u0063\u00e1\u0063\u0068\: {0} +dontMoveMessage=\u00a76\u0043\u0068\u0075\u1ea9\u006e \u0062\u1ecb \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0074\u0072\u006f\u006e\u0067\u00a7c {0}\u00a76. \u0110\u1eeb\u006e\u0067 \u0064\u0069 \u0063\u0068\u0075\u0079\u1ec3\u006e. +downloadingGeoIp=\u0110\u0061\u006e\u0067 \u0074\u1ea3\u0069 \u0078\u0075\u1ed1\u006e\u0067 \u0063\u01a1 \u0073\u1edf \u0064\u1eef \u006c\u0069\u1ec7\u0075 \u0047\u0065\u006f\u0049\u0050 \u002e\u002e\u002e \u0063\u00f3 \u0074\u0068\u1ec3 \u006d\u1ea5\u0074 \u006d\u1ed9\u0074 \u006c\u00fa\u0063 (\u006e\u01b0\u1edb\u0063\: 0.6 MB, \u0074\u0068\u00e0\u006e\u0068 \u0070\u0068\u1ed1\: 20MB) +duplicatedUserdata=\u0044\u1eef \u006c\u0069\u1ec7\u0075 \u006e\u0067\u01b0\u1edd\u0069 \u0064\u00f9\u006e\u0067 \u0074\u0072\u00f9\u006e\u0067 \u006c\u1eb7\u0070\: {0} \u0076\u00e0 {1}. +durability=\u00a76\u0043\u00f4\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079 \u0063\u00f2\u006e \u0063\u00f3 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067 \u00a7c{0}\u00a76 \u006c\u1ea7\u006e \u006e\u1eef\u0061. +editBookContents=\u00a7e\u0042\u00e2\u0079 \u0067\u0069\u1edd \u0062\u1ea1\u006e \u0063\u00f3 \u0074\u0068\u1ec3 \u0063\u0068\u1ec9\u006e\u0068 \u0073\u1eed\u0061 \u006e\u1ed9\u0069 \u0064\u0075\u006e\u0067 \u0063\u1ee7\u0061 \u0071\u0075\u0079\u1ec3\u006e \u0073\u00e1\u0063\u0068 \u006e\u00e0\u0079. +enableUnlimited=\u00a76\u0043\u0068\u006f \u006d\u1ed9\u0074 \u0073\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u006b\u0068\u00f4\u006e\u0067 \u0067\u0069\u1edb\u0069 \u0068\u1ea1\u006e\u00a7c {0} \u00a76\u0063\u0068\u006f \u00a7c{1}\u00a76. +enabled=\u0042\u1ead\u0074 +enchantmentApplied=\u00a76\u0050\u0068\u00f9 \u0070\u0068\u00e9\u0070\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070 \u0063\u0068\u006f \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u0072\u00ea\u006e \u0074\u0061\u0079 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +enchantmentNotFound=\u00a74\u0050\u0068\u00f9 \u0070\u0068\u00e9\u0070 \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3\! +enchantmentPerm=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3\u00a7c {0}\u00a74. +enchantmentRemoved=\u00a76\u0050\u0068\u00f9 \u0070\u0068\u00e9\u0070\u00a7c {0} \u00a76\u0111\u00e3 \u0062\u1ecb \u006c\u006f\u1ea1\u0069 \u0062\u1ecf \u006b\u0068\u1ecf\u0069 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u0072\u00ea\u006e \u0074\u0061\u0079 \u0062\u1ea1\u006e. +enchantments=\u00a76\u0050\u0068\u00f9 \u0070\u0068\u00e9\u0070\:\u00a7r {0} +errorCallingCommand=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 \u006b\u0068\u0069 \u0067\u1ecd\u0069 \u006c\u1ec7\u006e\u0068 /{0} +errorWithMessage=\u00a7c\u004c\u1ed7\u0069\:\u00a74 {0} +essentialsHelp1=\u0054\u1ec7\u0070 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u0068\u1ecf\u006e\u0067 \u0076\u00e0 \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u006d\u1edf \u006e\u00f3\u002e \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073 \u0067\u0069\u1edd \u0073\u1ebd \u0074\u1eaf\u0074\u002e \u004e\u1ebf\u0075 \u0062\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0073\u1eed\u0061 \u0074\u1ec7\u0070 \u006e\u00e0\u0079\u002c \u0068\u00e3\u0079 \u0111\u0069 \u0074\u0068\u0065\u006f \u0111\u01b0\u1edd\u006e\u0067 \u0064\u1eab\u006e http\://tiny.cc/EssentialsChat +essentialsHelp2=\u0054\u1ec7\u0070 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u0068\u1ecf\u006e\u0067 \u0076\u00e0 \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u006d\u1edf \u006e\u00f3\u002e \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073 \u0067\u0069\u1edd \u0073\u1ebd \u0074\u1eaf\u0074\u002e \u004e\u1ebf\u0075 \u0062\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0073\u1eed\u0061 \u0074\u1ec7\u0070 \u006e\u00e0\u0079\u002c \u0068\u00e3\u0079 \u006e\u0068\u1ead\u0070 \u006c\u1ec7\u006e\u0068 \u002f\u0065\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073\u0068\u0065\u006c\u0070 \u0074\u0072\u006f\u006e\u0067 \u0074\u0072\u00f2 \u0063\u0068\u01a1\u0069 \u0068\u006f\u1eb7\u0063 \u0111\u0069 \u0111\u1ebf\u006e http\://tiny.cc/EssentialsChat +essentialsReload=\u00a76\u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073 \u0111\u00e3 \u0074\u1ea3\u0069 \u006c\u1ea1\u0069\u00a7c {0}. +exp=\u00a7c{0} \u00a76\u0063\u00f3\u00a7c {1} \u00a76\u006b\u0069\u006e\u0068 \u006e\u0067\u0068\u0069\u1ec7\u006d (\u0063\u1ea5\u0070\u00a7c {2}\u00a76) \u0076\u00e0 \u0063\u1ea7\u006e \u0074\u0068\u00ea\u006d\u00a7c {3} \u00a76\u006b\u0069\u006e\u0068 \u006e\u0067\u0068\u0069\u1ec7\u006d \u0111\u1ec3 \u006c\u00ea\u006e \u0063\u1ea5\u0070. +expSet=\u00a7c{0} \u00a76\u0067\u0069\u1edd \u0063\u00f3\u00a7c {1} \u00a76\u006b\u0069\u006e\u0068 \u006e\u0067\u0068\u0069\u1ec7\u006d. +extinguish=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0064\u1ead\u0070 \u006c\u1eed\u0061 \u0074\u0072\u00ea\u006e \u006e\u0067\u01b0\u1edd\u0069 \u006d\u00ec\u006e\u0068. +extinguishOthers=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0064\u1ead\u0070 \u006c\u1eed\u0061 \u0074\u0072\u00ea\u006e \u006e\u0067\u01b0\u1edd\u0069 {0}\u00a76. +failedToCloseConfig=\u0110\u00f3\u006e\u0067 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 {0}. +failedToCreateConfig=\u0054\u1ea1\u006f \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 {0}. +failedToWriteConfig=\u0056\u0069\u1ebf\u0074 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 {0}. +false=\u0053\u0061\u0069 +feed=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0068\u1ebf\u0074 \u0111\u00f3\u0069. +feedOther=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u006c\u00e0\u006d \u006e\u006f \u00a7c{0}\u00a76. +fileRenameError=\u0043\u0068\u1ec9\u006e\u0068 \u0073\u1eed\u0061 \u0074\u00ea\u006e \u0074\u1ec7\u0070 {0} \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069\! +fireworkColor=\u00a74\u0054\u0068\u0061\u006d \u0073\u1ed1 \u0063\u0068\u00e8\u006e \u006b\u0068\u0069 \u006e\u1ea1\u0070 \u0070\u0068\u00e1\u006f \u0068\u006f\u0061 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7\u002c \u0062\u1ea1\u006e \u0070\u0068\u1ea3\u0069 \u0063\u0068\u1ec9\u006e\u0068 \u006d\u00e0\u0075 \u0074\u0072\u01b0\u1edb\u0063. +fireworkEffectsCleared=\u00a76\u004c\u006f\u1ea1\u0069 \u0062\u1ecf \u0074\u1ea5\u0074 \u0063\u1ea3 \u0063\u00e1\u0063 \u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067 \u0074\u1eeb \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0111\u0061\u006e\u0067 \u0067\u0069\u1eef. +fireworkSyntax=\u00a76\u0054\u0068\u00f4\u006e\u0067 \u0073\u1ed1 \u0070\u0068\u00e1\u006f \u0068\u006f\u0061\:\u00a7c \u006d\u00e0\u0075\:<\u006d\u00e0\u0075> [fade\:<\u006d\u00e0\u0075>] [shape\:<\u0068\u00ec\u006e\u0068 \u0064\u1ea1\u006e\u0067>] [effect\:<\u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067>]\n\u00a76\u0110\u1ec3 \u0073\u1eed \u0064\u1ee5\u006e\u0067 \u006e\u0068\u0069\u1ec1\u0075 \u006d\u00e0\u0075\u002f\u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067\u002c \u006e\u0067\u0103\u006e\u0067 \u0063\u00e1\u0063\u0068 \u0063\u0068\u00fa\u006e\u0067 \u0062\u1eb1\u006e\u0067 \u0064\u1ea5\u0075 \u0070\u0068\u1ea9\u0079\: \u00a7cred,blue,pink\n\u00a76\u0048\u00ec\u006e\u0068 \u0064\u1ea1\u006e\u0067\:\u00a7c star, ball, large, creeper, burst \u00a76\u0048\u0069\u1ec7\u0075 \u1ee9\u006e\u0067\:\u00a7c trail, twinkle. +flyMode=\u00a76\u0043\u0068\u1ebf \u0111\u1ed9 \u0062\u0061\u0079 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063\u00a7c {0} \u00a76\u0063\u0068\u006f {1}\u00a76. +flying=\u0042\u0061\u0079 +foreverAlone=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0061\u0069 \u0111\u1ec3 \u0074\u0072\u1ea3 \u006c\u1edd\u0069. +recentlyForeverAlone=\u00a74{0} \u0111\u00e3 \u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e. +fullStack=\u00a74\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u00f3 \u0111\u1ea7\u0079 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d. +gameMode=\u00a76\u0043\u0068\u1ebf \u0111\u1ed9\u00a7c {0} \u00a76\u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9\u006e\u0068 \u0063\u0068\u006f \u00a7c{1}\u00a76. +gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 \u006d\u1ea3\u006e\u0068\u0028\u0063\u0068\u0075\u006e\u006b\u0073\u0029, \u00a7c{3}\u00a76 \u0074\u0068\u1ef1\u0063 \u0074\u0068\u1ec3, \u00a7c{4}\u00a76 \u006b\u0068\u1ed1\u0069. +gcfree=\u00a76\u0042\u1ed9 \u006e\u0068\u1edb \u0074\u0072\u1ed1\u006e\u0067\:\u00a7c {0} MB. +gcmax=\u00a76\u0042\u1ed9 \u006e\u0068\u1edb \u0074\u1ed1\u0069 \u0111\u0061\:\u00a7c {0} MB. +gctotal=\u00a76\u0042\u1ed9 \u006e\u0068\u1edb \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e2\u006e \u0062\u1ed5\:\u00a7c {0} MB. +geoIpUrlEmpty=\u0110\u1ecb\u0061 \u0063\u0068\u1ec9 \u0074\u1ea3\u0069 \u0078\u0075\u1ed1\u006e\u0067 \u0047\u0065\u006f\u0049\u0050 \u0072\u1ed7\u006e\u0067. +geoIpUrlInvalid=\u0110\u1ecb\u0061 \u0063\u0068\u1ec9 \u0074\u1ea3\u0069 \u0078\u0075\u1ed1\u006e\u0067 \u0047\u0065\u006f\u0049\u0050 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +geoipJoinFormat=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u00a7c{0} \u00a76\u0111\u1ebf\u006e \u0074\u1eeb \u00a7c{1}\u00a76. +giveSpawn=\u00a76\u0110\u01b0\u0061\u00a7c {0} \u00a76\u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d\u00a7c {1} \u0063\u0068\u006f\u00a7c {2}\u00a76. +godDisabledFor=\u00a7c\u0074\u1eaf\u0074\u00a76 \u0063\u0068\u006f\u00a7c {0} +godEnabledFor=\u00a7a\u0062\u1ead\u0074\u00a76 \u0063\u0068\u006f\u00a7c {0} +godMode=\u00a76\u0043\u0068\u1ebf \u0111\u1ed9 \u0062\u1ea5\u0074 \u0074\u1eed\u00a7c {0}\u00a76. +groupDoesNotExist=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0061\u0069 \u0111\u0061\u006e\u0067 \u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e \u0074\u0072\u006f\u006e\u0067 \u006e\u0068\u00f3\u006d\! +groupNumber=\u00a7c{0}\u00a7f \u0111\u0061\u006e\u0067 \u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e\u002c \u0064\u0061\u006e\u0068 \u0073\u00e1\u0063\u0068 \u0111\u1ea7\u0079 \u0111\u1ee7\:\u00a7c /{1} {2} +hatArmor=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u1ed9\u0069 \u0063\u00e1\u0069 \u006e\u00e0\u0079 \u006e\u0068\u01b0 \u006d\u1ed9\u0074 \u0063\u00e1\u0069 \u006d\u0169\! +hatEmpty=\u00a74\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u006b\u0068\u00f4\u006e\u0067 \u0111\u1ed9\u0069 \u006d\u0169. +hatFail=\u00a74\u0042\u1ea1\u006e \u0063\u1ea7\u006e \u0070\u0068\u1ea3\u0069 \u0063\u1ea7\u006e \u006d\u1ed9\u0074 \u0063\u00e1\u0069 \u0067\u00ec \u0111\u00f3 \u0074\u0072\u00ea\u006e \u0074\u0061\u0079 \u006d\u1edb\u0069 \u0111\u1ed9\u0069 \u0111\u01b0\u1ee3\u0063. +hatPlaced=\u00a76\u0054\u0068\u01b0\u1edf\u006e\u0067 \u0074\u0068\u1ee9\u0063 \u0063\u0068\u0069\u1ebf\u0063 \u006d\u0169 \u006d\u1edb\u0069 \u006e\u00e0\u006f\! +hatRemoved=\u00a76\u004d\u0169 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0067\u1ee1. +haveBeenReleased=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u1ef1 \u0064\u006f. +heal=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0072\u1ecb \u006c\u0069\u1ec7\u0075. +healDead=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u0072\u1ecb \u006c\u0069\u1ec7\u0075 \u0063\u0068\u006f \u006e\u0067\u01b0\u1edd\u0069 \u0111\u00e3 \u0063\u0068\u1ebf\u0074\! +healOther=\u00a76\u0048\u1ed3\u0069 \u0070\u0068\u1ee5\u0063\u00a7c {0}\u00a76. +helpConsole=\u0110\u1ec3 \u006d\u1edf \u0062\u1ea3\u006e\u0067 \u0074\u0072\u1ee3 \u0067\u0069\u00fa\u0070 \u0074\u1eeb \u0062\u1ea3\u006e\u0067 \u0111\u0069\u1ec1\u0075 \u006b\u0068\u0069\u1ec3\u006e \u0028\u0043\u006f\u006e\u0073\u006f\u006c\u0065\u0029\u002c \u0067\u00f5 ?. +helpFrom=\u00a76\u004c\u1ec7\u006e\u0068 \u0074\u1eeb {0}\: +helpLine=\u00a76/{0}\u00a7r\: {1} +helpMatching=\u00a76\u004c\u1ec7\u006e\u0068 \u006b\u0068\u1edb\u0070 "\u00a7c{0}\u00a76"\: +helpOp=\u00a74[\u0054\u0072\u1ee3 \u0067\u0069\u00fa\u0070 \u004f\u0050]\u00a7r \u00a76{0}\:\u00a7r {1} +helpPlugin=\u00a74{0}\u00a7r\: \u0054\u0072\u1ee3 \u0067\u0069\u00fa\u0070 \u0070\u006c\u0075\u0067\u0069\u006e\: /help {1} +holdBook=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u1ea7\u006d \u0073\u00e1\u0063\u0068 \u0063\u00f3 \u0074\u0068\u1ec3 \u0076\u0069\u1ebf\u0074 \u0111\u01b0\u1ee3\u0063. +holdFirework=\u00a74\u0042\u1ea1\u006e \u0063\u1ea7\u006e \u0070\u0068\u1ea3\u0069 \u0063\u1ea7\u006d \u0070\u0068\u00e1\u006f \u0068\u006f\u0061 \u0111\u1ec3 \u0074\u0068\u00ea\u006d \u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067. +holdPotion=\u00a74\u0042\u1ea1\u006e \u0063\u1ea7\u006e \u0070\u0068\u1ea3\u0069 \u0063\u1ea7\u006e \u0063\u0068\u0061\u0069 \u0074\u0068\u0075\u1ed1\u0063 \u0111\u1ec3 \u0074\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070 \u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067 \u006c\u00ea\u006e \u006e\u00f3. +holeInFloor=\u00a74\u0048\u1ed1 \u0074\u1eed \u0074\u0068\u1ea7\u006e\! +homeSet=\u00a76\u0056\u1ecb \u0074\u0072\u00ed \u0068\u0069\u1ec7\u006e \u0074\u1ea1\u0069 \u0111\u00e3 \u0074\u0068\u00e0\u006e\u0068 \u0076\u1ecb \u0074\u0072\u00ed \u006e\u0068\u00e0 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +homes=\u00a76\u004e\u0068\u00e0\:\u00a7r {0} +hour=\u0067\u0069\u1edd +hours=\u0067\u0069\u1edd +ignoredList=\u00a76\u0044\u0061\u006e\u0068 \u0073\u00e1\u0063\u0068 \u0063\u0068\u1eb7\u006e\:\u00a7r {0} +ignorePlayer=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u0068\u1eb7\u006e\u00a7c {0} \u00a76\u0074\u1eeb \u0067\u0069\u1edd \u0074\u0072\u1edf \u0111\u0069. +illegalDate=\u0110\u1ecb\u006e\u0068 \u0064\u1ea1\u006e\u0067 \u006e\u0067\u00e0\u0079 \u0062\u1ea5\u0074 \u0068\u1ee3\u0070 \u0070\u0068\u00e1\u0070. +infoChapter=\u00a76\u0043\u0068\u1ecd\u006e \u0074\u0072\u0061\u006e\u0067\: +infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 \u0054\u0072\u0061\u006e\u0067 \u00a7c{1}\u00a76 \u0063\u1ee7\u0061 \u00a7c{2} \u00a7e---- +infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 \u0054\u0072\u0061\u006e\u0067 \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e---- +infoUnknownChapter=\u00a74\u0054\u0072\u0061\u006e\u0067 \u006b\u0068\u00f4\u006e\u0067 \u0078\u00e1\u0063 \u0111\u1ecb\u006e\u0068. +insufficientFunds=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0111\u1ee7 \u0074\u0069\u1ec1\u006e. +invalidCharge=\u00a74\u0050\u0068\u00ed \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +invalidFireworkFormat=\u00a74\u0054\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070 \u00a7c{0} \u00a74\u006c\u00e0 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7 \u0076\u1edb\u0069 \u00a7c{1}\u00a74. +invalidHome=\u00a74\u004e\u0068\u00e0\u00a7c {0} \u00a74\u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7\! +invalidHomeName=\u00a74\u0054\u00ea\u006e \u006e\u0068\u00e0 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7\! +invalidMob=\u00a74\u004c\u006f\u1ea1\u0069 \u0071\u0075\u00e1\u0069 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +invalidNumber=\u0053\u1ed1 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +invalidPotion=\u00a74\u0054\u0068\u0075\u1ed1\u0063 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +invalidPotionMeta=\u00a74\u0054\u0068\u00f4\u006e\u0067 \u0074\u0069\u006e \u0074\u0068\u0075\u1ed1\u0063 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7\: \u00a7c{0}\u00a74. +invalidSignLine=\u00a74\u0044\u00f2\u006e\u0067\u00a7c {0} \u00a74\u0074\u0072\u00ea\u006e \u0062\u1ea3\u006e\u0067 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +invalidWarpName=\u00a74\u0054\u00ea\u006e \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7\! +invalidWorld=\u00a74\u0054\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +is=\u006c\u01b0\u0075 \u0067\u0069\u1eef +itemCannotBeSold=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0062\u00e1\u006e \u0074\u0072\u00ea\u006e \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +itemMustBeStacked=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0111\u1ed5\u0069 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u1ea3\u0069 \u0111\u1ea7\u0079\u002e \u004d\u1ed9\u0074 \u0073\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u0111\u1ea7\u0079 \u0068\u01a1\u006e \u006e\u00f3 \u0073\u1ebd \u0074\u0068\u00e0\u006e\u0068 \u0068\u0061\u0069\u002c \u0076\u002e\u0076\u002e\u002e\u002e. +itemNames=\u00a76\u0054\u00ea\u006e \u0074\u0068\u0075 \u0067\u1ecd\u006e\:\u00a7r {0} +itemNotEnough1=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0111\u1ee7 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0111\u1ec3 \u0062\u00e1\u006e. +itemNotEnough2=\u00a76\u004e\u1ebf\u0075 \u0062\u1ea1\u006e \u006d\u0075\u1ed1\u006e \u0062\u00e1\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0063\u00f9\u006e\u0067 \u006c\u006f\u1ea1\u0069\u002c \u0068\u00e3\u0079 \u0064\u00f9\u006e\u0067 \u002f\u0073\u0065\u006c\u006c \u003c\u0074\u00ea\u006e \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d\u003e. +itemNotEnough3=\u00a76\u002f\u0073\u0065\u006c\u006c \u003c\u0074\u00ea\u006e \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d\u003e \u002d\u0111\u0069\u1ec1\u0075 \u006e\u00e0\u0079 \u0073\u1ebd \u0062\u00e1\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0063\u00f9\u006e\u0067 \u006c\u006f\u1ea1\u0069. +itemSellAir=\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u0063\u1ed1 \u0067\u1eaf\u006e\u0067 \u0111\u1ec3 \u0062\u00e1\u006e \u006b\u0068\u00f4\u006e\u0067 \u006b\u0068\u00ed\u003f \u0110\u1ec3 \u006e\u00f3 \u006c\u00ea\u006e \u0074\u0061\u0079 \u0062\u1ea1\u006e \u0111\u0069. +itemSold=\u00a7a\u0110\u00e3 \u0062\u00e1\u006e \u0111\u01b0\u1ee3\u0063 \u00a7c{0} \u00a7a({1} {2} \u0076\u1edb\u0069 {3} \u006d\u1ed7\u0069 \u0063\u00e1\u0069). +itemSoldConsole=\u00a7a{0} \u00a7a\u0111\u00e3 \u0062\u00e1\u006e {1} \u0076\u00e0 \u006e\u0068\u1ead\u006e \u0111\u01b0\u1ee3\u0063 \u00a7a{2} \u00a7a({3} \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u1edb\u0069 {4} \u006d\u1ed7\u0069 \u0063\u00e1\u0069). +itemSpawn=\u00a76\u0043\u0068\u006f\u00a7c {0} \u00a76\u0063\u00e1\u0069\u00a7c {1} +itemType=\u00a76\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d\:\u00a7c {0} \u00a76-\u00a7c {1} +itemsCsvNotLoaded=\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u1ea3\u0069 \u0074\u1ec7\u0070 items.csv\! +jailAlreadyIncarcerated=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u0067\u0069\u0061\u006d\:\u00a7c {0} +jailMessage=\u00a74\u0042\u1ea1\u006e \u0070\u0068\u1ea1\u006d \u0074\u1ed9\u0069\u002c \u0062\u1ea1\u006e \u0062\u1ecb \u0070\u0068\u1ea1\u0074 \u0074\u00f9. +jailNotExist=\u00a74\u004e\u0068\u00e0 \u0074\u00f9 \u0111\u00f3 \u006b\u0068\u00f4\u006e\u0067 \u0074\u1ed3\u006e \u0074\u1ea1\u0069. +jailReleased=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u00a7c{0}\u00a76 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u1ea3. +jailReleasedPlayerNotify=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u1ea3\! +jailSentenceExtended=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0062\u1ecb \u0062\u1eaf\u0074 \u0067\u0069\u0061\u006d \u006b\u00e9\u006f \u0064\u00e0\u0069 \u0111\u1ebf\u006e \u00a7c{0}\u00a76. +jailSet=\u00a76\u004e\u0067\u1ee5\u0063\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u0069\u1ebf\u0074 \u006c\u1ead\u0070. +jumpError=\u00a74\u0110\u0069\u1ec1\u0075 \u006e\u00e0\u0079 \u0073\u1ebd \u0074\u1ed5\u006e \u0074\u0068\u01b0\u01a1\u006e\u0067 \u0062\u1ed9 \u006e\u00e3\u006f \u0063\u1ee7\u0061 \u006d\u00e1\u0079 \u0074\u00ed\u006e\u0068 \u0062\u1ea1\u006e \u0111\u1ea5\u0079. +kickDefault=\u0110\u00e1 \u006b\u0068\u1ecf\u0069 \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +kickExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u00e1 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079. +kickedAll=\u00a74\u0110\u00e1 \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0072\u0061 \u006b\u0068\u1ecf\u0069 \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +kill=\u00a76\u0110\u00e3 \u0067\u0069\u1ebf\u0074\u00a7c {0}\u00a76. +killExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0067\u0069\u1ebf\u0074 \u00a7c{0}\u00a74. +kitCost=\ \u00a77\u00a7o({0})\u00a7r +kitError2=\u00a74\u0042\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u0028\u006b\u0069\u0074\u0029 \u006e\u00e0\u0079 \u0111\u00e3 \u0062\u1ecb \u0073\u0061\u0069\u002c \u0068\u00e3\u0079 \u006c\u0069\u00ea\u006e \u0068\u1ec7 \u0076\u1edb\u0069 \u0071\u0075\u1ea3\u006e \u0074\u0072\u1ecb \u0076\u0069\u00ea\u006e. +kitError=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u0028\u006b\u0069\u0074\u0029 \u0068\u1ee3\u0070 \u006c\u1ec7. +kitGiveTo=\u00a76\u0110\u01b0\u0061 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5\u00a7c {0}\u00a76 \u0063\u0068\u006f \u00a7c{1}\u00a76. +kitInvFull=\u00a74\u0054\u00fa\u0069 \u0111\u1ed3 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0111\u00e3 \u0111\u1ea7\u0079\u002c \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u0073\u1ebd \u0111\u1eb7\u0074 \u006c\u1ea1\u0069 \u0074\u0072\u00ea\u006e \u0111\u1ea5\u0074. +kitNotFound=\u00a74\u0042\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0074\u1ed3\u006e \u0074\u1ea1\u0069. +kitOnce=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079 \u006c\u1ea7\u006e \u006e\u1eef\u0061. +kitReceive=\u00a76\u0110\u00e3 \u006e\u0068\u1ead\u006e \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5\u00a7c {0}\u00a76. +kitTimed=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079 \u0074\u0072\u006f\u006e\u0067\u00a7c {0}\u00a74. +kits=\u00a76\u0042\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5\:\u00a7r {0} +leatherSyntax=\u00a76\u0043\u00fa \u0070\u0068\u00e1\u0070 \u0111\u1ed5\u0069 \u006d\u00e0\u0075 \u0064\u0061 \u0074\u0068\u0075\u1ed9\u0063\: color\:<\u0111\u1ecf>,<\u006c\u1ee5\u0063>,<\u006c\u0061\u006d> eg\: color\:255,0,0 \u0068\u006f\u1eb7\u0063 color\: eg\: color\:16777011 +lightningSmited=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0073\u00e9\u0074 \u0111\u00e1\u006e\u0068\! +lightningUse=\u00a76\u0053\u00e9\u0074 \u0111\u00e1\u006e\u0068\u00a7c {0} +listAfkTag=\u00a77[Treo mรกy]\u00a7r +listAmount=\u00a76\u0043\u00f3 \u00a7c{0}\u00a76 \u0074\u0072\u006f\u006e\u0067 \u0074\u1ed1\u0069 \u0111\u0061 \u00a7c{1}\u00a76 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e. +listAmountHidden=\u00a76\u0043\u00f3 \u00a7c{0}\u00a76/{1}\u00a76 \u0074\u0072\u006f\u006e\u0067 \u0074\u1ed1\u0069 \u0111\u0061 \u00a7c{2}\u00a76 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e. +listGroupTag=\u00a76{0}\u00a7r\: \u00a7r +listHiddenTag=\u00a77[\u1ea8\u006e \u0074\u0068\u00e2\u006e]\u00a7r +loadWarpError=\u00a74\u0054\u1ea3\u0069 \u006b\u0068\u0075 \u0076\u1ef1\u0063 {0} \u00a47\u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069. +localFormat=[L]<{0}> {1} +mailClear=\u00a76\u0110\u1ec3 \u0078\u00f3\u0061 \u0074\u0068\u01b0\u002c \u0067\u00f5\u00a7c /mail clear\u00a76. +mailCleared=\u00a76\u0110\u00e3 \u0064\u1ecd\u006e \u0074\u0068\u01b0\! +mailSent=\u00a76\u0110\u00e3 \u0067\u1eed\u0069 \u0074\u0068\u01b0\! +markMailAsRead=\u00a76\u0110\u1ec3 \u0111\u00e1\u006e\u0068 \u0064\u1ea5\u0075 \u0074\u0068\u01b0 \u0111\u00e3 \u0111\u1ecd\u0063\u002c \u0067\u00f5\u00a7c /mail clear\u00a76. +markedAsAway=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0111\u00e1\u006e\u0068 \u0064\u1ea5\u0075 \u0063\u0068\u00fa\u006e\u0067. +markedAsNotAway=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0111\u00e1\u006e\u0068 \u0064\u1ea5\u0075 \u0063\u0068\u00fa\u006e\u0067 \u006e\u1eef\u0061. +matchingIPAddress=\u00a76\u004e\u0068\u1eef\u006e\u0067 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0073\u0061\u0075 \u0111\u00e2\u0079 \u0111\u0103\u006e\u0067 \u006e\u0068\u1ead\u0070 \u0074\u1ef1 \u0111\u1ecb\u0061 \u0063\u0068\u1ec9 \u0049\u0050 \u0074\u0072\u00ea\u006e\: +maxHomes=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u1eb7\u0074 \u006e\u0068\u0069\u1ec1\u0075 \u0068\u01a1\u006e\u00a7c {0} \u00a74\u006e\u0068\u00e0. +mayNotJail=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0067\u0069\u0061\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079\! +me=\u0074\u00f4\u0069 +minute=\u0070\u0068\u00fa\u0074 +minutes=\u0070\u0068\u00fa\u0074 +missingItems=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u00a7c{0}x {1}\u00a74. +mobSpawnError=\u00a74\u0043\u00f3 \u006c\u1ed7\u0069 \u0078\u1ea3\u0079 \u0072\u0061 \u006b\u0068\u0069 \u0074\u0068\u0061\u0079 \u0111\u1ed5\u0069 \u006c\u1ed3\u006e\u0067 \u0071\u0075\u00e1\u0069. +mobSpawnLimit=\u0053\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u0071\u0075\u00e1\u0069 \u0062\u1ecb \u0067\u0069\u1edb\u0069 \u0068\u1ea1\u006e \u0074\u0072\u00ea\u006e \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +mobSpawnTarget=\u00a74\u0110\u1ed1\u0069 \u0074\u01b0\u1ee3\u006e\u0067 \u0070\u0068\u1ea3\u0069 \u006c\u00e0 \u006d\u1ed9\u0074 \u006c\u1ed3\u006e\u0067 \u0071\u0075\u00e1\u0069. +mobsAvailable=\u00a76Mobs\u0051\u0075\u00e1\u0069\:\u00a7r {0} +moneyRecievedFrom=\u00a7a\u004e\u0068\u1ead\u006e \u0111\u01b0\u1ee3\u0063 {0} \u0074\u1eeb {1}. +moneySentTo=\u00a7a\u0110\u00e3 \u0067\u1eed\u0069{0} \u0111\u1ebf\u006e {1}. +month=\u0074\u0068\u00e1\u006e\u0067 +months=\u0074\u0068\u00e1\u006e\u0067 +moreThanZero=\u00a74\u0053\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u0070\u0068\u1ea3\u0069 \u006c\u1edb\u006e \u0068\u01a1\u006e \u0030. +moveSpeed=\u00a76\u0110\u00e3 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u1ed1\u0063 \u0111\u1ed9 {0} \u0074\u0068\u00e0\u006e\u0068\u00a7c {1} \u00a76\u0063\u0068\u006f \u00a7c{2}\u00a76. +msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2} +multipleCharges=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u0068\u00ea\u006d \u006e\u0068\u0069\u1ec1\u0075 \u0068\u01a1\u006e \u0031 \u0076\u0069\u1ec7\u0063 \u0063\u0068\u006f \u0070\u0068\u00e1\u006f \u0068\u006f\u0061 \u006e\u00e0\u0079. +multiplePotionEffects=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u1eb7\u0074 \u006e\u0068\u0069\u1ec1\u0075 \u0068\u01a1\u006e \u006d\u1ed9\u0074 \u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067 \u0063\u0068\u006f \u0074\u0068\u0075\u1ed1\u0063 \u006e\u00e0\u0079. +muteExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u1ea5\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079 \u006e\u00f3\u0069 \u0063\u0068\u0075\u0079\u1ec7\u006e. +muteNotify=\u00a7c{0} \u00a76\u0111\u00e3 \u0063\u1ea5\u006d \u00a7c{1}\u00a76 \u006e\u00f3\u0069 \u0063\u0068\u0075\u0079\u1ec7\u006e. +muteNotifyFor=\u00a7c{0} \u00a76\u0111\u00e3 \u0063\u1ea5\u006d \u00a7c{1}\u00a76 \u006e\u00f3\u0069 \u0063\u0068\u0075\u0079\u1ec7\u006e \u0074\u0072\u006f\u006e\u0067\u00a7c {2}\u00a76. +mutedPlayer=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e. +mutedPlayerFor=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0062\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u0074\u0072\u006f\u006e\u0067\u00a7c {1}\u00a76. +mutedUserSpeaks={0} \u0111\u0061\u006e\u0067 \u0063\u1ed1 \u0067\u1eaf\u006e\u0067 \u006e\u00f3\u0069\u002c \u006e\u0068\u01b0\u006e\u0067 \u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d. +nearbyPlayers=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u1edf \u0067\u1ea7\u006e\:\u00a7r {0} +negativeBalanceError=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0063\u00f3 \u0073\u1ed1 \u0064\u01b0 \u00e2\u006d. +nickChanged=\u00a76\u0042\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068 \u0074\u0068\u0061\u0079 \u0111\u1ed5\u0069. +nickDisplayName=\u00a74\u0042\u1ea1\u006e \u0070\u0068\u1ea3\u0069 \u006b\u00ed\u0063\u0068 \u0068\u006f\u1ea1\u0074 change-displayname \u0074\u0072\u006f\u006e\u0067 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 Essentials. +nickInUse=\u00a74\u0054\u00ea\u006e \u006e\u00e0\u0079 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0073\u1eed \u0064\u1ee5\u006e\u0067. +nickNamesAlpha=\u00a74\u0042\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068 \u0063\u0068\u1ec9 \u0063\u0068\u1ee9\u0061 \u0063\u0068\u1eef \u0076\u00e0 \u0073\u1ed1. +nickNoMore=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u006d\u1ea5\u0074 \u0062\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068 \u0063\u1ee7\u0061 \u006d\u00ec\u006e\u0068. +nickSet=\u00a76\u0042\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0067\u0069\u1edd \u006c\u00e0 \u00a7c{0}\u00a76. +nickTooLong=\u00a74\u0042\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068 \u006e\u00e0\u0079 \u0071\u0075\u00e1 \u0064\u00e0\u0069. +noAccessCommand=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0064\u00f9\u006e\u0067 \u006c\u1ec7\u006e\u0068 \u006e\u00e0\u0079. +noAccessPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0074\u0072\u0075\u0079 \u0063\u1ead\u0070 \u0076\u00e0\u006f \u00a7c{0}\u00a74. +noBreakBedrock=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0070\u0068\u00e1 \u0076\u1ee1 \u0111\u00e1 \u006e\u1ec1\u006e. +noDestroyPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0070\u0068\u00e1 \u006b\u0068\u1ed1\u0069 \u00a7c{0}\u00a74. +noDurability=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0111\u1ed9 \u0062\u1ec1\u006e. +noGodWorldWarning=\u00a74\u0043\u0068\u00fa \u00fd\! \u0043\u0068\u1ebf \u0111\u1ed9 \u0062\u1ea5\u0074 \u0074\u1eed \u0111\u00e3 \u0062\u1ecb \u0074\u1eaf\u0074 \u0074\u0072\u006f\u006e\u0067 \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u006e\u00e0\u0079. +noHelpFound=\u00a74\u004c\u1ec7\u006e\u0068 \u006b\u0068\u00f4\u006e\u0067 \u006b\u0068\u1edb\u0070. +noHomeSetPlayer=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0063\u0068\u01b0\u0061 \u0111\u1eb7\u0074 \u0076\u1ecb \u0074\u0072\u00ed \u006e\u0068\u00e0. +noIgnored=\u00a76\u0042\u1ea1\u006e \u0063\u0068\u01b0\u0061 \u0063\u0068\u1eb7\u006e \u0061\u0069 \u0063\u1ea3. +noKitPermission=\u00a74\u0042\u1ea1\u006e \u0063\u1ea7\u006e \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u00a7c{0}\u00a74 \u0111\u1ec3 \u0064\u00f9\u006e\u0067 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079. +noKits=\u00a76\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u006f \u0063\u00f3 \u0073\u1eb5\u006e. +noMail=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0062\u1ee9\u0063 \u0074\u0068\u01b0 \u006e\u00e0\u006f. +noMatchingPlayers=\u00a76\u004b\u0068\u00f4\u006e\u0067 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0070\u0068\u00f9 \u0068\u1ee3\u0070. +noMetaFirework=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1eb7\u0074 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u0070\u0068\u00e1\u006f \u0068\u006f\u0061. +noMetaPerm=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1eb7\u0074 \u0063\u1ea5\u0075 \u0068\u00ec\u006e\u0068 \u00a7c{0}\u00a74 \u0063\u0068\u006f \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u0079. +noNewMail=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0074\u0068\u01b0 \u006d\u1edb\u0069. +noPendingRequest=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0063\u0068\u1edd \u0067\u0069\u1ea3\u0069 \u0071\u0075\u0079\u1ebf\u0074. +noPerm=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u00a7c{0}\u00a74. +noPermToAFKMessage=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1eb7\u0074 \u0074\u0068\u00f4\u006e\u0067 \u0062\u00e1\u006f \u0054\u0072\u0065\u006f \u006d\u00e1\u0079. +noPermToSpawnMob=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0073\u0069\u006e\u0068 \u0072\u0061 \u0071\u0075\u00e1\u0069 \u006e\u00e0\u0079. +noPlacePermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1eb7\u0074 \u006b\u0068\u1ed1\u0069 \u1edf \u0067\u1ea7\u006e \u0063\u00e1\u0069 \u0062\u1ea3\u006e\u0067 \u006b\u0069\u0061. +noPotionEffectPerm=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0111\u1eb7\u0074 \u0068\u0069\u1ec7\u0075 \u1ee9\u006e\u0067 \u00a7c{0} \u00a74to this potion. +noPowerTools=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0063\u00f4\u006e\u0067 \u0063\u1ee5 \u0111\u0069\u1ec7\u006e \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068. +noWarpsDefined=\u00a76\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068. +none=\u006b\u0068\u00f4\u006e\u0067 \u0061\u0069 +notAcceptingPay=\u00a74{0} \u00a74\u006b\u0068\u00f4\u006e\u0067 \u0063\u0068\u1ea5\u0070 \u006e\u0068\u1ead\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e. +notAllowedToQuestion=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0073\u1eed \u0064\u1ee5\u006e\u0067 \u0063\u00e2\u0075 \u0068\u1ecf\u0069. +notAllowedToShout=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0068\u00e9\u0074 \u006c\u00ea\u006e. +notEnoughExperience=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0111\u1ee7 \u006b\u0069\u006e\u0068 \u006e\u0067\u0068\u0069\u1ec7\u006d. +notEnoughMoney=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0111\u1ee7 \u0074\u0069\u1ec1\u006e. +notFlying=\u006b\u0068\u00f4\u006e\u0067 \u0062\u0061\u0079 +notRecommendedBukkit=\u00a74* \! * \u0050\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0042\u0075\u006b\u006b\u0069\u0074 \u006b\u0068\u00f4\u006e\u0067 \u0070\u0068\u1ea3\u0069 \u006c\u00e0 \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0063\u1ea7\u006e \u0074\u0068\u0069\u1ebf\u0074 \u0063\u0068\u006f \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073. +notSupportedYet=\u0043\u0068\u01b0\u0061 \u0111\u01b0\u1ee3\u0063 \u0068\u1ed7 \u0074\u0072\u1ee3. +nothingInHand=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0067\u00ec \u0074\u0072\u006f\u006e\u0067 \u0074\u0061\u0079. +now=\u0062\u00e2\u0079 \u0067\u0069\u1edd +nuke=\u00a75\u004d\u01b0\u0061 \u0074\u0068\u0075\u1ed1\u0063 \u006e\u1ed5 \u0068\u1ee1\u0069\u007e. +numberRequired=\u0050\u0068\u1ea3\u0069 \u0063\u00f3 \u006d\u1ed9\u0074 \u0063\u006f\u006e \u0073\u1ed1 \u1edf \u0111\u00f3\u002c \u0074\u0068\u1ead\u0074 \u006e\u0067\u1edb \u006e\u0067\u1ea9\u006e. +onlyDayNight=/\u0043\u0068\u1ec9 \u0068\u1ed5 \u0074\u0072\u1ee3 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u006e\u0067\u00e0\u0079 \u0076\u00e0 \u0111\u00ea\u006d \u0028\u0064\u0061\u0079\u002f\u006e\u0069\u0067\u0068\u0074\u0029. +onlyPlayerSkulls=\u00a74\u0042\u1ea1\u006e \u0063\u0068\u1ec9 \u0063\u00f3 \u0074\u0068\u1ec3 \u0074\u0068\u0069\u1ebf\u0070 \u006c\u1ead\u0070 \u0063\u0068\u1ee7 \u006e\u0068\u00e2\u006e \u0063\u1ee7\u0061 \u0063\u00e1\u0069 \u0073\u1ecd \u006e\u00e0\u0079 (\u00a7c397\:3\u00a74). +onlyPlayers=\u00a74\u0043\u0068\u1ec9 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0074\u0072\u006f\u006e\u0067 \u0074\u0072\u00f2 \u0063\u0068\u01a1\u0069 \u0063\u00f3 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067 \u00a7c{0}\u00a74. +onlySunStorm=\u00a74/\u0043\u0068\u1ec9 \u0068\u1ed5 \u0074\u0072\u1ee3 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0062\u00e3\u006f \u0076\u00e0 \u006e\u1eaf\u006e\u0067. +orderBalances=\u00a76\u0110\u0061\u006e\u0067 \u0074\u00ed\u006e\u0068 \u0074\u006f\u00e1\u006e \u0073\u1ed1 \u0064\u01b0 \u0063\u1ee7\u0061\u00a7c {0} \u00a76\u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u002c \u0078\u0069\u006e \u0111\u1ee3\u0069\u002e\u002e\u002e +oversizedTempban=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u1ea5\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0074\u0072\u006f\u006e\u0067 \u006c\u00fa\u0063 \u006e\u00e0\u0079. +payConfirmToggleOn=\u00a76\u0054\u1eeb \u0067\u0069\u1edd\u002c \u0062\u1ea1\u006e \u0073\u1ebd \u0062\u1ecb \u006e\u0068\u1eaf\u0063 \u0078\u00e1\u0063 \u006e\u0068\u1ead\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e. +payConfirmToggleOff=\u00a76\u0054\u1eeb \u0067\u0069\u1edd\u002c \u0062\u1ea1\u006e \u0073\u1ebd \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0062\u1ecb \u006e\u0068\u1eaf\u0063 \u0078\u00e1\u0063 \u006e\u0068\u1ead\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e. +payToggleOn=\u00a76\u0042\u00e2\u0079 \u0067\u0069\u1edd \u0062\u1ea1\u006e \u0063\u0068\u1ea5\u0070 \u006e\u0068\u1ead\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e. +payToggleOff=\u00a76\u0042\u00e2\u0079 \u0067\u0069\u1edd \u0062\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0063\u0068\u1ea5\u0070 \u006e\u0068\u1ead\u006e \u0074\u0068\u0061\u006e\u0068 \u0074\u006f\u00e1\u006e. +payMustBePositive=\u00a74\u0053\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u0070\u0068\u1ea3\u0069 \u006c\u00e0 \u0064\u01b0\u01a1\u006e\u0067. +pTimeCurrent=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u1ee7\u0061 \u00a7c{0}\u00a76 \u006c\u00e0\u00a7c {1}\u00a76. +pTimeCurrentFixed=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u1ee7\u0061 \u00a7c{0}\u00a76 \u0111\u01b0\u1ee3\u0063 \u0073\u1eed\u0061 \u0074\u0068\u00e0\u006e\u0068\u00a7c {1}\u00a76. +pTimeNormal=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u1ee7\u0061 \u00a7c{0}\u00a76 \u006c\u00e0 \u0062\u00ec\u006e\u0068 \u0074\u0068\u01b0\u1edd\u006e\u0067 \u0076\u00e0 \u006b\u0068\u1edb\u0070 \u0076\u1edb\u0069 \u0067\u0069\u1edd \u0063\u1ee7\u0061 \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +pTimeOthersPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0111\u1eb7\u0074 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u1ee7\u0061 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006b\u0068\u00e1\u0063. +pTimePlayers=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0063\u00f3 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0072\u0069\u00ea\u006e\u0067\:\u00a7r +pTimeReset=\u00a76\u0110\u00e3 \u006c\u00e0\u006d \u006d\u1edb\u0069 \u006c\u1ea1\u0069 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u0068\u006f\: \u00a7c{0} +pTimeSet=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0}\u00a76 \u0063\u0068\u006f\: \u00a7c{1}. +pTimeSetFixed=\u00a76\u0110\u00e3 \u0073\u1eed\u0061 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0}\u00a76 \u0063\u0068\u006f\: \u00a7c{1}. +pWeatherCurrent=\u00a76\u0054\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0063\u1ee7\u0061 \u00a7c{0}\u00a76 \u006c\u00e0\u00a7c {1}\u00a76. +pWeatherInvalidAlias=\u00a74\u0054\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7 +pWeatherNormal=\u00a76\u0054\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0063\u1ee7\u0061\u00a7c{0}\u00a76 \u006c\u00e0 \u0062\u00ec\u006e\u0068 \u0074\u0068\u01b0\u1edd\u006e\u0067 \u0076\u00e0 \u006b\u0068\u1edb\u0070 \u0076\u1edb\u0069 \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +pWeatherOthersPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0111\u1eb7\u0074 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0063\u0068\u006f \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006b\u0068\u00e1\u0063. +pWeatherPlayers=\u00a76\u004e\u0068\u1eef\u006e\u0067 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0063\u00f3 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0072\u0069\u00ea\u006e\u0067\:\u00a7r +pWeatherReset=\u00a76\u0054\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u00e0\u006d \u006d\u1edb\u0069 \u0063\u0068\u006f\: \u00a7c{0} +pWeatherSet=\u00a76\u0054\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0}\u00a76 \u0063\u0068\u006f\: \u00a7c{1}. +pendingTeleportCancelled=\u00a74\u0056\u0069\u1ec7\u0063 \u0078\u1eed \u006c\u00ed \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0062\u1ecb \u0068\u1ee7\u0079. +playerBanIpAddress=\u00a76\u004e\u0067\u01b0\u1edf\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u006b\u0068\u00f3\u0061 \u0111\u1ecb\u0061 \u0063\u0068\u1ec9\u00a7c {1} \u00a76\u0076\u00ec\: \u00a7c{2}\u00a76. +playerBanned=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u0063\u1ea5\u006d\u00a7c {1} \u00a76\u0076\u00ec\: \u00a7c{2}\u00a76. +playerInJail=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079 \u0111\u00e3 \u1edf \u0074\u0072\u006f\u006e\u0067 \u0074\u00f9\u00a7c {0}\u00a74. +playerJailed=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76jailed. +playerJailedFor=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0062\u1ecb \u006e\u0068\u1ed1\u0074 \u0074\u0072\u006f\u006e\u0067 {1}. +playerKicked=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u00e1 {1} \u0076\u00ec {2}. +playerMuted=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e\! +playerMutedFor=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u0074\u0072\u006f\u006e\u0067\u00a7c {0}. +playerNeverOnServer=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a74\u0063\u0068\u01b0\u0061 \u0062\u0061\u006f \u0067\u0069\u1edd \u0076\u00e0\u006f \u006d\u00e1\u0079 \u0063\u0068\u1ee7. +playerNotFound=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069. +playerUnbanIpAddress=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u006d\u1edf \u006b\u0068\u00f3\u0061 \u0111\u1ecb\u0061 \u0063\u0068\u1ec9\: {1}. +playerUnbanned=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u006d\u1edf \u006b\u0068\u00f3\u0061\u00a7c {1}. +playerUnmuted=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0062\u1ecb \u006b\u0068\u00f3\u0061 \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e. +pong=Pong\! +posPitch=\u00a76Pitch\: {0} (\u0047\u00f3\u0063 \u0111\u1ea7\u0075) +posX=\u00a76X\: {0} (\u002b\u0110\u00f4\u006e\u0067 \u003c\u002d\u003e \u002d\u0054\u00e2\u0079) +posY=\u00a76Y\: {0} (\u002b\u004c\u00ea\u006e \u003c\u002d\u003e \u002d\u0058\u0075\u1ed1\u006e\u0067) +posYaw=\u00a76Yaw\: {0} (\u0056\u00f2\u006e\u0067 \u0078\u006f\u0061\u0079) +posZ=\u00a76Z\: {0} (\u002b\u004e\u0061\u006d \u003c\u002d\u003e \u002d\u0042\u1eaf\u0063) +possibleWorlds=\u00a76\u004e\u0068\u1eef\u006e\u0067 \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u0068\u0069\u1ec7\u006e \u0063\u00f3 \u006c\u00e0 \u0074\u1eeb \u00a7c0\u00a76 \u0111\u1ebf\u006e \u00a7c{0}\u00a76. +potions=\u00a76\u004c\u006f\u1ea1\u0069 \u0074\u0068\u0075\u1ed1\u0063\:\u00a7r {0}\u00a76. +powerToolAir=\u00a74\u004c\u1ec7\u006e\u0068 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ebf \u0067\u1eaf\u006e \u0076\u00e0\u006f \u006b\u0068\u00f4\u006e\u0067 \u006b\u0068\u00ed \u0028\u0041\u0069\u0072\u0029. +powerToolAlreadySet=\u00a74\u004c\u1ec7\u006e\u0068 \u00a7c{0}\u00a74 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u0063\u0068\u006f \u00a7c{1}\u00a74. +powerToolAttach=\u00a76\u004c\u1ec7\u006e\u0068 \u00a7c{0}\u00a76 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u0063\u0068\u006f {1}. +powerToolClearAll=\u00a76\u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u0063\u0068\u006f. +powerToolList=\u00a76\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u00a7c{1} \u00a76\u0063\u00f3 \u006e\u0068\u1eef\u006e\u0067 \u006c\u1ec7\u006e\u0068 \u0073\u0061\u0075\: \u00a7c{0}\u00a76. +powerToolListEmpty=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u00a7c{0} \u00a74\u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u006c\u1ec7\u006e\u0068 \u006e\u00e0\u006f. +powerToolNoSuchCommandAssigned=\u00a74\u004c\u1ec7\u006e\u0068 \u00a7c{0}\u00a74 \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u0063\u0068\u006f \u00a7c{1}\u00a74. +powerToolRemove=\u00a76\u004c\u1ec7\u006e\u0068 \u00a7c{0}\u00a76 \u0111\u00e3 \u0062\u1ecb \u006c\u006f\u1ea1\u0069 \u0062\u1ecf \u006b\u0068\u1ecf\u0069 \u00a7c{1}\u00a76. +powerToolRemoveAll=\u00a76\u0054\u1ea5\u0074 \u0063\u1ea3 \u0063\u00e1\u0063 \u006c\u1ec7\u006e\u0068 \u0111\u00e3 \u0062\u1ecb \u0067\u1ee1 \u006b\u0068\u1ecf\u0069 \u00a7c{0}\u00a76. +powerToolsDisabled=\u00a76\u0054\u1ea5\u0074 \u0063\u1ea3 \u0063\u00f4\u006e\u0067 \u0063\u1ee5 \u006e\u0068\u0061\u006e\u0068 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0074\u1eaf\u0074. +powerToolsEnabled=\u00a76\u0054\u1ea5\u0074 \u0063\u1ea3 \u0063\u00f4\u006e\u0067 \u0063\u1ee5 \u006e\u0068\u0061\u006e\u0068 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0062\u1ead\u0074. +questionFormat=\u00a72[\u004e\u0068\u0069\u1ec7\u006d \u0076\u1ee5]\u00a7r {0} +readNextPage=\u00a76\u0047\u00f5\u00a7c /{0} {1} \u00a76\u0111\u1ec3 \u0111\u1ecd\u0063 \u0074\u0072\u0061\u006e\u0067 \u0074\u0069\u1ebf\u0070 \u0074\u0068\u0065\u006f. +recipe=\u00a76\u0043\u00f4\u006e\u0067 \u0074\u0068\u1ee9\u0063 \u0063\u1ee7\u0061 \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 \u0063\u1ee7\u0061 \u00a7c{2}\u00a76) +recipeBadIndex=\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0063\u00f4\u006e\u0067 \u0074\u0068\u1ee9\u0063 \u0063\u1ee7\u0061 \u0049\u0044 \u0062\u1ea1\u006e \u006e\u0068\u1ead\u0070. +recipeFurnace=\u00a76\u004e\u0075\u006e\u0067\: \u00a7c{0}\u00a76. +recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X +recipeGridItem=\u00a7c{0}X \u00a76\u006c\u00e0 \u00a7c{1} +recipeMore=\u00a76\u0047\u00f5 /{0} \u00a7c{1}\u00a76 <\u0073\u1ed1> \u0111\u1ec3 \u0078\u0065\u006d \u006e\u0068\u1eef\u006e\u0067 \u0063\u00f4\u006e\u0067 \u0074\u0068\u1ee9\u0063 \u006b\u0068\u00e1\u0063 \u0063\u1ee7\u0061 \u00a7c{2}\u00a76. +recipeNone= \u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0063\u00f4\u006e\u0067 \u0074\u0068\u1ee9\u0063 \u0074\u1ed3\u006e \u0074\u1ea1\u0069 \u0063\u0068\u006f {0}. +recipeNothing=\u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0067\u00ec +recipeShapeless=\u00a76\u004c\u0069\u00ea\u006e \u006b\u1ebf\u0074 \u00a7c{0} +recipeWhere=\u00a76\u0043\u0068\u1ed7\: {0} +removed=\u00a76\u0058\u00f3\u0061\u00a7c {0} \u00a76\u0074\u0068\u1ef1\u0063 \u0074\u0068\u1ec3. +repair=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0073\u1eed\u0061 \u0074\u0068\u00e0\u006e\u0068 \u0063\u00f4\u006e\u0067 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d\: \u00a7c{0}\u00a76. +repairAlreadyFixed=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0063\u1ea7\u006e \u0073\u1eed\u0061. +repairEnchanted=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0070\u0068\u00f9 \u0070\u0068\u00e9\u0070. +repairInvalidType=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0073\u1eed\u0061. +repairNone=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006e\u00e0\u006f \u0063\u1ea7\u006e \u0111\u01b0\u1ee3\u0063 \u0073\u1eed\u0061 \u0063\u1ea3. +requestAccepted=\u00a76\u0059\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0111\u1ed3\u006e\u0067 \u00fd. +requestAcceptedFrom=\u00a7c{0} \u00a76\u0111\u00e3 \u0111\u1ed3\u006e\u0067 \u00fd \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +requestDenied=\u00a76\u0059\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0062\u1ecb \u0074\u1eeb \u0063\u0068\u1ed1\u0069. +requestDeniedFrom=\u00a7c{0} \u00a76\u0111\u00e3 \u0074\u1eeb \u0063\u0068\u1ed1\u0069 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +requestSent=\u00a76\u0047\u1eed\u0069 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0111\u1ebf\u006e\u00a7c {0}\u00a76. +requestSentAlready=\u00a74\u0042\u1ea1\u006e \u0111\u00e3 \u0067\u1eed\u0069 {0}\u00a74 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e. +requestTimedOut=\u00a74\u0059\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0071\u0075\u00e1 \u0068\u1ea1\u006e. +requiredBukkit=\u00a76* \! * \u0054\u1ed1\u0069 \u0074\u0068\u0069\u1ec3\u0075\u002c \u0062\u1ea1\u006e \u0063\u1ea7\u006e \u0062\u1ea3\u006e \u0062\u0075\u0069\u006c\u0064 {0} \u0063\u1ee7\u0061 \u0043\u0072\u0061\u0066\u0074\u0042\u0075\u006b\u006b\u0069\u0074\u002c \u0074\u1ea3\u0069 \u006e\u00f3 \u1edf http\://dl.bukkit.org/downloads/craftbukkit/ +resetBal=\u00a76\u0053\u1ed1 \u0064\u01b0 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u00e0\u006d \u006d\u1edb\u0069 \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0} \u00a76\u0063\u0068\u006f \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e. +resetBalAll=\u00a76\u0053\u1ed1 \u0064\u01b0 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u00e0\u006d \u006d\u1edb\u0069 \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0} \u00a76\u0063\u0068\u006f \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069. +returnPlayerToJailError=\u00a74\u0110\u00e3 \u0063\u00f3 \u006c\u1ed7\u0069 \u006b\u0068\u0069 \u0063\u1ed1 \u0067\u1eaf\u006e\u0067 \u0111\u01b0\u0061 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a74\u0076\u1ec1 \u006c\u1ea1\u0069 \u0074\u00f9\: \u00a7c{1}\u00a74\! +runningPlayerMatch=\u00a76\u0110\u0061\u006e\u0067 \u0074\u00ec\u006d \u006b\u0069\u1ebf\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0070\u0068\u00f9 \u0068\u1ee3\u0070 ''\u00a7c{0}\u00a76'' (\u0111\u0069\u1ec1\u0075 \u006e\u00e0\u0079 \u0063\u00f3 \u0074\u0068\u1ec3 \u006d\u1ea5\u0074 \u006d\u1ed9\u0074 \u0063\u0068\u00fa\u0074 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e). +second=\u0067\u0069\u00e2\u0079 +seconds=\u0067\u0069\u00e2\u0079 +seenOffline=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u00a74\u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e\u00a76 \u006b\u1ec3 \u0074\u1eeb \u00a7c{1}\u00a76. +seenOnline=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u00a7a\u0074\u0072\u1ef1\u0063 \u0074\u0075\u0079\u1ebf\u006e\u00a76 \u006b\u1ec3 \u0074\u1eeb \u00a7c{1}\u00a76. +sellBulkPermission=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0062\u00e1\u006e \u0068\u00e0\u006e\u0067 \u006c\u006f\u1ea1\u0074 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d. +sellHandPermission=\u00a76\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0062\u00e1\u006e \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u0072\u00ea\u006e \u0074\u0061\u0079. +serverFull=\u004d\u00e1\u0079 \u0063\u0068\u1ee7 \u0111\u1ea7\u0079\! +serverTotal=\u00a76\u0054\u1ed5\u006e\u0067 \u0063\u1ee7\u0061 \u006d\u00e1\u0079 \u0063\u0068\u1ee7\:\u00a7c {0} +setBal=\u00a7a\u0053\u1ed1 \u0064\u01b0 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u0074\u0068\u00e0\u006e\u0068 {0}. +setBalOthers=\u00a7a\u0042\u1ea1\u006e \u0111\u0061 \u0111\u1eb7\u0074 \u0073\u1ed1 \u0064\u01b0 \u0063\u1ee7\u0061 {0}\u00a7a \u0074\u0068\u00e0\u006e\u0068 {1}. +setSpawner=\u00a76\u0043\u0068\u0075\u0079\u1ec3\u006e \u006c\u006f\u1ea1\u0069 \u006c\u1ed3\u006e\u0067 \u0071\u0075\u00e1\u0069\u0028\u0053\u0070\u0061\u0077\u006e\u0065\u0072\u0029 \u0074\u0068\u00e0\u006e\u0068\u00a7c {0}\u00a76. +sheepMalformedColor=\u00a74\u004d\u00e0\u0075 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070. +shoutFormat=\u00a76[Shout]\u00a7r {0} +signFormatFail=\u00a74[{0}] +signFormatSuccess=\u00a71[{0}] +signFormatTemplate=[{0}] +signProtectInvalidLocation=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0074\u1ea1\u006f \u0062\u1ea3\u006e \u1edf \u0111\u00e2\u0079. +similarWarpExist=\u00a74\u004d\u1ed9\u0074 \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u0063\u00f3 \u0074\u00ea\u006e \u0074\u01b0\u01a1\u006e\u0067 \u0074\u1ef1 \u0111\u00e3 \u0074\u1ed3\u006e \u0074\u1ea1\u0069. +slimeMalformedSize=\u00a74\u004b\u00ed\u0063\u0068 \u0074\u0068\u01b0\u1edb\u0063 \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070. +socialSpy=\u00a76\u0043\u0068\u1ebf \u0111\u1ed9 \u006e\u0067\u0068\u0065 \u006c\u00e9\u006e \u0063\u0068\u006f \u00a7c{0}\u00a76\: \u00a7c{1} +socialSpyPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a7r +soloMob=\u00a74\u0043\u006f\u006e \u0071\u0075\u00e1\u0069 \u006e\u00e0\u0079 \u006d\u0075\u1ed1\u006e \u0111\u01b0\u1ee3\u0063 \u1edf \u006d\u1ed9\u0074 \u006d\u00ec\u006e\u0068. +spawnSet=\u00a76\u0056\u1ecb \u0074\u0072\u00ed \u0068\u1ed3\u0069 \u0073\u0069\u006e\u0068 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0063\u0068\u1ec9\u006e\u0068 \u0063\u0068\u006f \u004e\u0068\u00f3\u006d \u0028\u0052\u0061\u006e\u006b\u0029\u00a7c {0}\u00a76. +spawned=\u0110\u00e3 \u0074\u1ea1\u006f \u0072\u0061 +sudoExempt=\u00a7\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0111\u0069\u1ec1\u0075 \u006b\u0068\u0069\u1ec3\u006e \u00a7c{0}. +sudoRun=\u00a76\u00c9\u0070 \u0062\u0075\u1ed9\u0063\u00a7c {0} \u00a76\u0064\u00f9\u006e\u0067\:\u00a7r /{1} +suicideMessage=\u00a76\u0054\u1ea1\u006d \u0062\u0069\u1ec7\u0074\u002c \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u00e1\u0063 \u0111\u1ed9\u0063 \u003a\u003c +suicideSuccess=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u00a7c{0} \u00a76\u0111\u00e3 \u006b\u1ebf\u0074 \u006c\u0069\u1ec5\u0075 \u0111\u1edd\u0069 \u006d\u00ec\u006e\u0068. +survival=\u0053\u0069\u006e\u0068 \u0074\u1ed3\u006e +takenFromAccount=\u00a7a{0} \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0072\u00fa\u0074 \u0074\u1eeb \u0074\u00e0\u0069 \u006b\u0068\u006f\u1ea3\u006e \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +takenFromOthersAccount=\u00a7a{0} \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u006c\u1ea5\u0079 \u006b\u0068\u1ecf\u0069 \u0074\u00e0\u0069 \u006b\u0068\u006f\u1ea3\u006e {1}\u00a7a. \u0053\u1ed1 \u0064\u01b0 \u006d\u1edb\u0069\: {2}. +teleportAAll=\u00a76\u0110\u00e3 \u0067\u1eed\u0069 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069... +teleportAll=\u00a76\u0110\u00e3 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 +teleportAtoB=\u00a7c{0}\u00a76 \u0111\u00e3 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0062\u1ea1\u006e \u0111\u1ebf\u006e \u00a7c{1}\u00a76. +teleportDisabled=\u00a7c{0} \u00a74\u0111\u00e3 \u0074\u1eaf\u0074 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e. +teleportHereRequest=\u00a7c{0}\u00a76 \u0111\u00e3 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0062\u1ea1\u006e \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u0063\u0068\u1ed7 \u0068\u1ecd. +teleportNewPlayerError=\u00a74\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u0069 \u006b\u0068\u0069 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006d\u1edb\u0069\! +teleportRequest=\u00a7c{0}\u00a76 \u0111\u00e3 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u0063\u0068\u1ed7 \u0062\u1ea1\u006e. +teleportRequestAllCancelled=\u00a76\u0054\u1ea5\u0074 \u0063\u1ea3 \u0079\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u006e\u1ed5\u0069 \u0062\u1ead\u0074 \u0111\u1ec1\u0075 \u0111\u00e3 \u0062\u1ecb \u0068\u1ee7\u0079. +teleportRequestSpecificCancelled=\u00a7\u0036\u0059\u00ea\u0075 \u0063\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u006e\u1ed5\u0069 \u0062\u1ead\u0074 \u0076\u1edb\u0069 {0} \u0111\u00e3 \u0062\u1ecb \u0068\u1ee7\u0079. +teleportRequestTimeoutInfo=\u00a76\u0059\u00ea\u0075 \u0063\u1ea7\u0075 \u006e\u00e0\u0079 \u0073\u1ebd \u0068\u1ebf\u0074 \u0068\u1ea1\u006e \u0073\u0061\u0075\u00a7c {0} \u0067\u0069\u00e2\u0079\u00a76. +teleportTop=\u00a76\u0044\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u0111\u1ec9\u006e\u0068. +teleportationCommencing=\u00a76\u0042\u1eaf\u0074 \u0111\u1ea7\u0075 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e... +teleportationDisabled=\u00a76\u0044\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063\u00a7c \u0074\u1eaf\u0074\u00a76. +teleportationDisabledFor=\u00a76\u0044\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u00a7c\u0074\u1eaf\u0074 \u00a76\u0063\u0068\u006f \u00a7c{0}\u00a76. +teleportationEnabled=\u00a76\u0044\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u00a7c\u0062\u1ead\u0074\u00a76. +teleportationEnabledFor=\u00a76\u0044\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u00a7c\u0062\u1ead\u0074 \u00a76\u0063\u0068\u006f \u00a7c{0}\u00a76. +teleporting=\u00a76\u0110\u0061\u006e\u0067 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e... +teleportToPlayer=\u00a76\u0110\u0061\u006e\u0067 \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u00a7c{0}\u00a76. +tempBanned=\u00a7c\u0042\u1ea1\u006e \u0111\u00e3 \u0074\u1ea1\u006d \u0074\u0068\u1edd\u0069 \u0062\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u006f\u006e\u0067 {0}\:\n\u00a7r{2} +tempbanExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u1ea5\u006d \u0074\u1ea1\u006d \u0074\u0068\u1edd\u0069 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079. +thunder=\u00a76\u0042\u1ea1\u006e\u00a7c {0} \u00a76\u0073\u1ea5\u006d \u0073\u00e9\u0074 \u1edf \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u0063\u1ee7\u0061 \u006d\u00ec\u006e\u0068. +thunderDuration=\u00a76\u0042\u1ea1\u006e\u00a7c {0} \u00a76\u0073\u1ea5\u006d \u0073\u00e9\u0074 \u1edf \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 \u006e\u00e0\u0079 \u0074\u0072\u006f\u006e\u0067\u00a7c {1} \u00a76\u0067\u0069\u00e2\u0079. +timeBeforeHeal=\u00a74\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u0068\u006f \u006c\u1ea7\u006e \u0068\u1ed3\u0069 \u0070\u0068\u1ee5\u0063 \u0074\u0069\u1ebf\u0070 \u0074\u0068\u0065\u006f\:\u00a7c {0}\u00a76. +timeBeforeTeleport=\u00a74\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0111\u1ebf\u006e \u006c\u1ea7\u006e \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0074\u0069\u1ebf\u0070 \u0074\u0068\u0065\u006f\:\u00a7c {0}\u00a76. +timeFormat=\u00a7c{0}\u00a76 \u0068\u0061\u0079 \u00a7c{1}\u00a76 \u0068\u0061\u0079 \u00a7c{2}\u00a76 +timeSetPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0111\u0069\u1ec1\u0075 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e. +timeSetWorldPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0070\u0068\u00e9\u0070 \u0111\u0069\u1ec1\u0075 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u1edf \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 ''{0}''. +timeWorldCurrent=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u0069\u1ec7\u006e \u0074\u1ea1\u0069 \u1edf\u00a7c {0} \u00a76\u006c\u00e0 \u00a7c{1}\u00a76. +timeWorldSet=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0111\u01b0\u1ee3\u0063 \u0111\u1eb7\u0074 \u006c\u1ea1\u0069 \u0074\u0068\u00e0\u006e\u0068\u00a7c {0} \u00a76\u1edf\: \u00a7c{1}\u00a76. +totalWorthAll=\u00a7a\u0110\u00e3 \u0062\u00e1\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 \u006b\u0068\u1ed1\u0069 \u0063\u0068\u006f \u00a7c{1}\u00a7a. +totalWorthBlocks=\u00a7a\u0110\u00e3 \u0062\u00e1\u006e \u0074\u1ea5\u0074 \u0063\u1ea3 \u006b\u0068\u1ed1\u0069 \u00a7c{1}\u00a7a. +tps=\u00a76\u0054\u0050\u0053 \u0068\u0069\u1ec7\u006e \u0074\u1ea1\u0069 \= {0} +tradeSignEmpty=\u00a74\u0043\u00e1\u0069 \u0062\u1ea3\u006e\u0067 \u0074\u0072\u0061\u006f \u0111\u1ed5\u0069 \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0073\u1eb5\u006e \u0063\u0068\u006f \u0062\u1ea1\u006e. +tradeSignEmptyOwner=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0067\u00ec \u0111\u1ec3 \u0074\u0068\u0075 \u0074\u0068\u1ead\u0070 \u0074\u1eeb \u0062\u1ea3\u006e\u0067 \u0074\u0072\u0061\u006f \u0111\u1ed5\u0069 \u006e\u00e0\u0079. +treeFailure=\u00a74\u0054\u0072\u1ed3\u006e\u0067 \u0063\u00e2\u0079 \u0074\u0068\u1ea5\u0074 \u0062\u1ea1\u0069\u002c \u0068\u00e3\u0079 \u0074\u0068\u1eed \u006c\u1ea1\u0069 \u0074\u0072\u00ea\u006e \u0063\u1ecf \u0068\u006f\u1eb7\u0063 \u0111\u1ea5\u0074. +treeSpawned=\u00a76\u0043\u00e2\u0079 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0072\u1ed3\u006e\u0067. +true=\u00a7a\u0111\u00fa\u006e\u0067\u00a7r +typeTpaccept=\u00a76\u0110\u1ec3 \u0111\u1ed3\u006e\u0067 \u00fd \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e\u002c \u0067\u00f5 \u00a7c/tpaccept\u00a76. +typeTpacancel=\u00a76\u0110\u1ec3 \u0068\u1ee7\u0079 \u0079\u00ea\u0075 \u0063\u1ea7\u0075\u002c \u0067\u00f5 \u00a7c/tpacancel\u00a76. +typeTpdeny=\u00a76\u0110\u1ec3 \u0074\u1eeb \u0063\u0068\u1ed1\u0069 \u0079\u00ea\u0075 \u0063\u1ea7\u0075\u002c \u0067\u00f5 \u00a7c/tpdeny\u00a76. +typeWorldName=\u00a76\u0042\u1ea1\u006e \u0063\u0169\u006e\u0067 \u0063\u00f3 \u0074\u0068\u1ec3 \u0067\u00f5 \u0074\u00ea\u006e \u0063\u1ee5 \u0074\u0068\u1ec3 \u0063\u1ee7\u0061 \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069. +unableToSpawnMob=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0073\u0069\u006e\u0068 \u0072\u0061 \u0071\u0075\u00e1\u0069. +unignorePlayer=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0063\u0068\u1eb7\u006e\u00a7c {0} \u00a76\u006e\u1eef\u0061. +unknownItemId=\u00a74\u0049\u0064 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006b\u0068\u00f4\u006e\u0067 \u0078\u00e1\u0063 \u0111\u1ecb\u006e\u0068\:\u00a7r {0}\u00a74. +unknownItemInList=\u00a74\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d {0} \u0074\u0072\u006f\u006e\u0067 \u0064\u0061\u006e\u0068 \u0073\u00e1\u0063\u0068 {1} \u006b\u0068\u00f4\u006e\u0067 \u0078\u00e1\u0063 \u0111\u1ecb\u006e\u0068. +unknownItemName=\u00a74\u0054\u00ea\u006e \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u006b\u0068\u00f4\u006e\u0067 \u0078\u00e1\u0063 \u0111\u1ecb\u006e\u0068\: {0}. +unlimitedItemPermission=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0064\u00f9\u006e\u0067 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00f4 \u0068\u1ea1\u006e \u00a7c{0}\u00a74. +unlimitedItems=\u00a76\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00f4 \u0068\u1ea1\u006e\:\u00a7r +unmutedPlayer=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a76\u0111\u00e3 \u0063\u00f3 \u0074\u0068\u1ec3 \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u0074\u0072\u1edf \u006c\u1ea1\u0069. +unvanishedReload=\u00a74\u0056\u0069\u1ec7\u0063 \u0074\u1ea3\u0069 \u006c\u1ea1\u0069 \u0111\u00e3 \u006c\u00e0\u006d \u0063\u0068\u006f \u0062\u1ea1\u006e \u0068\u0069\u1ec7\u006e \u0068\u00ec\u006e\u0068 \u0028\u0056\u0061\u006e\u0069\u0073\u0068\u0029. +upgradingFilesError=\u004c\u1ed7\u0069 \u006b\u0068\u0069 \u006e\u00e2\u006e\u0067 \u0063\u1ea5\u0070 \u0074\u1ec7\u0070. +uptime=\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u006f\u1ea1\u0074 \u0111\u1ed9\u006e\u0067\:\u00a7c {0} +userAFK=\u00a77{0} \u00a75\u0068\u0069\u1ec7\u006e \u0111\u0061\u006e\u0067 \u0074\u0072\u0065\u006f \u006d\u00e1\u0079 \u0076\u00e0 \u0063\u00f3 \u0074\u0068\u1ec3 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0072\u1ea3 \u006c\u1edd\u0069. +userAFKWithMessage=\u00a77{0} \u00a75\u0068\u0069\u1ec7\u006e \u0111\u0061\u006e\u0067 \u0074\u0072\u0065\u006f \u006d\u00e1\u0079 \u0076\u00e0 \u0063\u00f3 \u0074\u0068\u1ec3 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0072\u1ea3 \u006c\u1edd\u0069: {1} +userDoesNotExist=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u00a7c {0} \u00a74 \u006b\u0068\u00f4\u006e\u0067 \u0074\u1ed3\u006e \u0074\u1ea1\u0069. +userIsAway=\u00a77* {0} \u00a77\u0111\u0061\u006e\u0067 \u0074\u0072\u0065\u006f \u006d\u00e1\u0079. +userIsAwayWithMessage=\u00a77* {0} \u00a77\u0111\u0061\u006e\u0067 \u0074\u0072\u0065\u006f \u006d\u00e1\u0079. +userIsNotAway=\u00a77* {0} \u00a77\u006b\u0068\u00f4\u006e\u0067 \u0063\u00f2\u006e \u0074\u0072\u0065\u006f \u006d\u00e1\u0079 \u006e\u1eef\u0061. +userJailed=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0067\u0069\u0061\u006d\! +userUnknown=\u00a74Lฦฐu รฝ\: \u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 ''\u00a7c{0}\u00a74'' \u0063\u0068\u01b0\u0061 \u0062\u0061\u006f \u0067\u0069\u1edd \u0076\u00e0\u006f \u006d\u00e1\u0079 \u0063\u0068\u1ee7 \u006e\u00e0\u0079. +userdataMoveBackError=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u006e \u006b\u0068\u0069 \u0064\u0069 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0064\u1eef \u006c\u0069\u1ec7\u0075 \u006e\u0067\u01b0\u1edd\u0069 \u0064\u00f9\u006e\u0067/{0}.tmp \u0074\u0068\u00e0\u006e\u0068/{1}\! +userdataMoveError=\u0054\u0068\u1ea5\u0074 \u0062\u1ea1\u006e \u006b\u0068\u0069 \u0064\u0069 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0064\u1eef \u006c\u0069\u1ec7\u0075 \u006e\u0067\u01b0\u1edd\u0069 \u0064\u00f9\u006e\u0067/{0} \u0111\u1ebf\u006e/{1}.tmp\! +usingTempFolderForTesting=\u0053\u1eed \u0064\u1ee5\u006e\u0067 \u0074\u0068\u01b0 \u006d\u1ee5\u0063 \u0111\u1ec7\u006d \u0111\u1ec3 \u0074\u0068\u1eed \u006e\u0067\u0068\u0069\u1ec7\u006d\: +vanished=\u00a76\u0047\u0069\u1edd \u0062\u1ea1\u006e \u0111\u00e3 \u0068\u006f\u00e0\u006e \u0074\u006f\u00e0\u006e \u0074\u00e0\u006e\u0067 \u0068\u00ec\u006e\u0068 \u0076\u1edb\u0069 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u002c \u0062\u1ea1\u006e \u0073\u1ebd \u0111\u01b0\u1ee3\u0063 \u1ea9\u006e \u0076\u1edb\u0069 \u0063\u00e1\u0063 \u006c\u1ec7\u006e\u0068 \u0074\u0072\u006f\u006e\u0067 \u0074\u0072\u00f2 \u0063\u0068\u01a1\u0069. +versionMismatch=\u00a74\u0050\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u006b\u0068\u00f4\u006e\u0067 \u0070\u0068\u00f9 \u0068\u1ee3\u0070\! \u0058\u0069\u006e \u0068\u00e3\u0079 \u0063\u1ead\u0070 \u006e\u0068\u1ead\u0074 {0} \u0111\u1ebf\u006e \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0070\u0068\u00f9 \u0068\u1ee3\u0070. +versionMismatchAll=\u00a74\u0050\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u006b\u0068\u00f4\u006e\u0067 \u0070\u0068\u00f9 \u0068\u1ee3\u0070\! \u0058\u0069\u006e \u0068\u00e3\u0079 \u0063\u1ead\u0070 \u006e\u0068\u1ead\u0074 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0045\u0073\u0073\u0065\u006e\u0074\u0069\u0061\u006c\u0073\u002e\u006a\u0061\u0072 \u0111\u1ebf\u006e \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0070\u0068\u00f9 \u0068\u1ee3\u0070. +voiceSilenced=\u00a76\u0047\u0069\u1ecd\u006e\u0067 \u0062\u1ea1\u006e \u0111\u00e3 \u0062\u1ecb \u0074\u1eaf\u0074 \u0074\u0069\u1ebf\u006e\u0067\! +walking=\u0110\u0069 \u0062\u1ed9 +warpDeleteError=\u00a74\u0043\u00f3 \u0076\u1ea5\u006e \u0111\u1ec1 \u006b\u0068\u0069 \u0078\u00f3\u0061 \u0066\u0069\u006c\u0065 \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u0028\u0077\u0061\u0072\u0070\u0029. +warpList={0} +warpListPermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0078\u0065\u006d \u0064\u0061\u006e\u0068 \u0073\u00e1\u0063\u0068 \u0063\u00e1\u0063 \u006b\u0068\u0075 \u0076\u1ef1\u0063. +warpNotExist=\u00a74\u004b\u0068\u0075 \u0076\u1ef1\u0063 \u006e\u00e0\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0074\u1ed3\u006e \u0074\u1ea1\u0069. +warpOverwrite=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u0068\u00e9\u0070 \u0111\u00e8 \u006c\u00ea\u006e \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u006e\u00e0\u0079. +warpSet=\u00a76\u004b\u0068\u0075 \u0076\u1ef1\u0063\u00a7c {0} \u00a76\u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0074\u0068\u0069\u1ebf\u0070 \u006c\u1ead\u0070. +warpUsePermission=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0064\u00f9\u006e\u0067 \u006b\u0068\u0075 \u0076\u1ef1\u0063 \u006e\u00e0\u0079. +warpingTo=\u00a76\u0043\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u006b\u0068\u0075 \u0076\u1ef1\u0063\u00a7c {0}\u00a76. +warps=\u00a76\u004b\u0068\u0075 \u0076\u1ef1\u0063\:\u00a7r {0} +warpsCount=\u00a76\u0048\u0069\u1ec7\u006e \u0063\u00f3\u00a7c {0} \u00a76\u006b\u0068\u0075 \u0076\u1ef1\u0063. \u0048\u0069\u1ec3\u006e \u0074\u0068\u1ecb \u0074\u0072\u0061\u006e\u0067 \u00a7c{1} \u00a76\u0063\u1ee7\u0061 \u00a7c{2}\u00a76. +weatherStorm=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7c\u0062\u00e3\u006f\u00a76 \u1edf\u00a7c {0}\u00a76. +weatherStormFor=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7c\u0062\u00e3\u006f\u00a76 \u1edf\u00a7c {0} \u00a76\u0074\u0072\u006f\u006e\u0067 {1} \u0067\u0069\u00e2\u0079. +weatherSun=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7cnแบฏng\u00a76 \u1edf\u00a7c {0}\u00a76. +weatherSunFor=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0063\u0068\u1ec9\u006e\u0068 \u0074\u0068\u1edd\u0069 \u0074\u0069\u1ebf\u0074 \u0074\u0068\u00e0\u006e\u0068 \u00a7cnแบฏng\u00a76 \u1edf\u00a7c {0} \u00a76\u0074\u0072\u006f\u006e\u0067 {1} \u0067\u0069\u00e2\u0079. +whoisAFK=\u00a76 - \u0054\u0072\u0065\u006f \u006d\u00e1\u0079\:\u00a7r {0} +whoisAFKSince=\u00a76 - \u0054\u0072\u0065\u006f \u006d\u00e1\u0079\:\u00a7r {0} (\u004b\u1ec3 \u0074\u1eeb {1}) +whoisBanned=\u00a76 - \u0042\u1ecb \u0063\u1ea5\u006d\:\u00a7r {0} +whoisExp=\u00a76 - \u004b\u0069\u006e\u0068 \u006e\u0067\u0068\u0069\u1ec7\u006d\:\u00a7r {0} (\u0043\u1ea5\u0070 {1}) +whoisFly=\u00a76 - \u0043\u0068\u1ebf \u0111\u1ed9 \u0062\u0061\u0079\:\u00a7r {0} ({1}) +whoisGamemode=\u00a76 - \u0043\u0068\u1ebf \u0111\u1ed9 \u0063\u0068\u01a1\u0069\:\u00a7r {0} +whoisGeoLocation=\u00a76 - \u004b\u0068\u0075 \u0076\u1ef1\u0063\:\u00a7r {0} +whoisGod=\u00a76 - \u0043\u0068\u1ebf \u0111\u1ed9 \u0062\u1ea5\u0074 \u0074\u1eed\:\u00a7r {0} +whoisHealth=\u00a76 - \u004d\u00e1\u0075\:\u00a7r {0}/20 +whoisIPAddress=\u00a76 - \u0110\u1ecb\u0061 \u0063\u0068\u1ec9 \u0049\u0050\:\u00a7r {0} +whoisJail=\u00a76 - \u0042\u1ecb \u0067\u0069\u0061\u006d\:\u00a7r {0} +whoisLocation=\u00a76 - \u004b\u0068\u0075 \u0076\u1ef1\u0063\:\u00a7r ({0}, {1}, {2}, {3}) +whoisMoney=\u00a76 - \u0054\u0069\u1ec1\u006e\:\u00a7r {0} +whoisMuted=\u00a76 - \u0042\u1ecb \u0063\u1ea5\u006d \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e\:\u00a7r {0} +whoisNick=\u00a76 - \u0042\u0069\u1ec7\u0074 \u0064\u0061\u006e\u0068\:\u00a7r {0} +whoisOp=\u00a76 - \u0110\u0069\u1ec1\u0075 \u0068\u00e0\u006e\u0068\:\u00a7r {0} +whoisPlaytime=\u00a76 - \u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0063\u0068\u01a1\u0069\:\u00a7r {0} +whoisTop=\u00a76 \=\=\=\=\=\= WhoIs\:\u00a7c {0} \u00a76\=\=\=\=\=\= +worth=\u00a7a\u0054\u1ed5\u006e\u0067 \u0073\u1ed1 {0} \u0063\u00f3 \u0067\u0069\u00e1 \u0074\u0072\u1ecb \u00a7c{1}\u00a7a ({2} \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 {3} \u0076\u1edb\u0069 \u006d\u1ed7\u0069 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d) +worthMeta=\u00a7a\u0054\u1ed5\u006e\u0067 \u0073\u1ed1 {0} \u0076\u1edb\u0069 \u0064\u1eef \u006c\u0069\u1ec7\u0075 (data) {1} \u0063\u00f3 \u0067\u0069\u00e1 \u0074\u0072\u1ecb \u00a7c{2}\u00a7a ({3} \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 {4} \u0076\u1edb\u0069 \u006d\u1ed7\u0069 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d) +worthSet=\u00a76\u0110\u1eb7\u0074 \u0073\u1ed1 \u006c\u01b0\u1ee3\u006e\u0067 \u0067\u0069\u00e1 \u0074\u0072\u1ecb +year=\u006e\u0103\u006d +years=\u006e\u0103\u006d +youAreHealed=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0068\u1ed3\u0069 \u0070\u0068\u1ee5\u0063. +youHaveNewMail=\u00a76\u0042\u1ea1\u006e \u0063\u00f3\u00a7c {0} \u00a76\u0074\u0069\u006e \u006e\u0068\u1eaf\u006e\! \u0047\u00f5 \u00a7c/mail read\u00a76 \u0111\u1ec3 \u0078\u0065\u006d \u0074\u0068\u01b0 \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. +whoisHunger=\u00a76 - \u0110\u1ed9 \u0111\u00f3\u0069\:\u00a7r {0}/20 (+{1} \u0062\u00e3\u006f \u0068\u00f2\u0061) +kitDelay=\u00a7m{0}\u00a7r +giveSpawnFailure=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0111\u1ee7 \u0063\u0068\u1ed7 \u0074\u0072\u1ed1\u006e\u0067, \u00a7c{0} \u00a7c{1} \u00a74\u0073\u1ebd \u0062\u1ecb \u006d\u1ea5\u0074. +noKitGroup=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0064\u00f9\u006e\u0067 \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u006e\u00e0\u0079. +inventoryClearingFromAll=\u00a76\u0110\u0061\u006e\u0067 \u0078\u00f3\u0061 \u0074\u00fa\u0069 \u0111\u1ed3 \u0063\u1ee7\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069... +inventoryClearingAllItems=\u00a76\u0110\u00e3 \u0078\u00f3\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u0072\u006f\u006e\u0067 \u0074\u00fa\u0069 \u0063\u1ee7\u0061 {0}\u00a76. +inventoryClearingAllArmor=\u00a76\u0110\u00e3 \u0078\u00f3\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 \u0067\u0069\u00e1\u0070 \u0074\u0072\u006f\u006e\u0067 \u0074\u00fa\u0069 \u0063\u1ee7\u0061 {0}\u00a76. +inventoryClearingAllStack=\u00a76\u0110\u00e3 \u0078\u00f3\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3\u00a7c {0} \u00a76\u0063\u1ee7\u0061 {1}\u00a76. +inventoryClearingStack=\u00a76\u0110\u00e3 \u0078\u00f3\u0061\u00a7c {0} \u00a76x\u00a7c {1} \u00a76\u0063\u1ee7\u0061 {2}\u00a76. +inventoryClearFail=\u00a74\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 {0} \u00a74\u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3\u00a7c {1} \u00a74x\u00a7c {2}\u00a74. +localNoOne= +totalSellableAll=\u00a7a\u0054\u1ed5\u006e\u0067 \u0067\u0069\u00e1 \u0074\u0072\u1ecb \u0063\u1ee7\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0063\u00e1\u0063 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 \u006b\u0068\u1ed1\u0069 \u0063\u00f3 \u0074\u0068\u1ec3 \u0062\u00e1\u006e \u0111\u01b0\u1ee3\u0063 \u006c\u00e0 \u00a7c{1}\u00a7a. +totalSellableBlocks=\u00a7a\u0054\u1ed5\u006e\u0067 \u0067\u0069\u00e1 \u0074\u0072\u1ecb \u0063\u1ee7\u0061 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0063\u00e1\u0063 \u006b\u0068\u1ed1\u0069 \u0063\u00f3 \u0074\u0068\u1ec3 \u0062\u00e1\u006e \u0111\u01b0\u1ee3\u0063 \u006c\u00e0 \u00a7c{1}\u00a7a. +radiusTooBig=\u00a74\u0042\u00e1\u006e \u006b\u00ed\u006e\u0068 \u0071\u0075\u00e1 \u006c\u1edb\u006e\! \u0042\u00e1\u006e \u006b\u00ed\u006e\u0068 \u006c\u1edb\u006e \u006e\u0068\u1ea5\u0074 \u006c\u00e0 {0}. +isIpBanned=\u00a76\u0110\u1ecb\u0061 \u0063\u0068\u1ec9 \u0049\u0050 \u00a7c{0} \u00a76\u0111\u00e3 \u0062\u1ecb \u0063\u1ea5\u006d. +mobDataList=\u00a76\u0044\u1eef \u006c\u0069\u1ec7\u0075 \u0071\u0075\u00e1\u0069 \u0068\u1ee3\u0070 \u006c\u1ec7\:\u00a7r {0} +vanish=\u00a76\u1ea8\u006e \u0074\u0068\u00e2\u006e \u0063\u0068\u006f {0}\u00a76\: {1} +noLocationFound=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u0076\u1ecb \u0074\u0072\u00ed \u0068\u1ee3\u0070 \u006c\u1ec7. +coordsKeyword={0}, {1}, {2} +banExemptOffline=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u1ea5\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0111\u00e3 \u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e. +tempbanExemptOffline=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u1ea1\u006d \u0063\u1ea5\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0111\u00e3 \u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e. +mayNotJailOffline=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0067\u0069\u0061\u006d \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e. +muteExemptOffline=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u1eaf\u0074 \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u0067\u006f\u1ea1\u0069 \u0074\u0075\u0079\u1ebf\u006e. +ignoreExempt=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0063\u0068\u1eb7\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u006e\u00e0\u0079. +unsafeTeleportDestination=\u00a74\u0110\u0069\u1ec3\u006d \u0064\u1ecb\u0063\u0068 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ebf\u006e \u006c\u00e0 \u006b\u0068\u00f4\u006e\u0067 \u0061\u006e \u0074\u006f\u00e0\u006e \u0076\u00e0 \u006d\u1ee5\u0063 \u0022\u0074\u0065\u006c\u0065\u0070\u006f\u0072\u0074\u002d\u0073\u0061\u0066\u0065\u0074\u0079\u0022 \u0111\u00e3 \u0062\u1ecb \u0074\u1eaf\u0074. +noMetaJson=\u0044\u1eef \u006c\u0069\u1ec7\u0075 \u0074\u1eeb \u0074\u1ec7\u0070 \u004a\u0053\u004f\u004e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0068\u1ed5 \u0074\u0072\u1ee3 \u0074\u0072\u006f\u006e\u0067 \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0042\u0075\u006b\u006b\u0069\u0074 \u006e\u00e0\u0079. +maxMoney=\u00a74\u0047\u0069\u0061\u006f \u0064\u1ecb\u0063\u0068 \u006e\u00e0\u0079 \u0073\u1ebd \u0076\u01b0\u1ee3\u0074 \u0071\u0075\u00e1 \u0067\u0069\u1edb\u0069 \u0068\u1ea1\u006e \u0074\u0069\u1ec1\u006e \u0063\u0068\u006f \u0074\u00e0\u0069 \u006b\u0068\u006f\u1ea3\u006e \u006e\u00e0\u0079\u004e \u006b\u0068\u00f4\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0068\u1ed5 \u0074\u0072\u1ee3 \u0074\u0072\u006f\u006e\u0067 \u0070\u0068\u0069\u00ea\u006e \u0062\u1ea3\u006e \u0042\u0075\u006b\u006b\u0069\u0074 \u006e\u00e0\u0079. +skullChanged=\u00a76\u0110\u1ea7\u0075 \u006e\u0067\u01b0\u1edd\u0069 \u0111\u00e3 \u0111\u1ed5\u0069 \u0074\u0068\u00e0\u006e\u0068 \u00a7c{0}\u00a76. +alphaNames=\u00a74\u0054\u00ea\u006e \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0063\u0068\u1ec9 \u0063\u00f3 \u0074\u0068\u1ec3 \u0063\u0068\u1ee9\u0061 \u0043\u0068\u1eef\u002c \u0053\u1ed1\u002c \u0056\u00e0 \u0022\u005f\u0022. +givenSkull=\u00a76\u0042\u1ea1\u006e \u0111\u00e3 \u006e\u0068\u1ead\u006e \u0111\u01b0\u1ee3\u0063 \u0063\u00e1\u0069 \u0111\u1ea7\u0075 \u0063\u1ee7\u0061 \u00a7c{0}\u00a76. +noPermissionSkull=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec3\u006e \u0073\u1eed\u0061 \u0063\u00e1\u0069 \u0111\u1ea7\u0075 \u006e\u00e0\u0079. +teleportInvalidLocation=\u0047\u0069\u00e1 \u0074\u0072\u1ecb \u0063\u1ee7\u0061 \u0074\u1ecd\u0061 \u0111\u1ed9 \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0076\u01b0\u1ee3\u0074 \u0071\u0075\u00e1 \u0033\u0030\u0030\u0030\u0030\u0030\u0030\u0030 +invalidSkull=\u00a74\u0058\u0069\u006e \u0068\u00e3\u0079 \u0063\u1ea7\u006d \u0063\u00e1\u0069 \u0111\u1ea7\u0075 \u0063\u1ee7\u0061 \u006d\u1ed9\u0074 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069. +weatherInvalidWorld=\u004b\u0068\u00f4\u006e\u0067 \u0074\u00ec\u006d \u0074\u0068\u1ea5\u0079 \u0074\u00ea\u006e \u0074\u0068\u1ebf \u0067\u0069\u1edb\u0069 {0}\! +gameModeInvalid=\u00a74\u0042\u1ea1\u006e \u0063\u1ea7\u006e \u0063\u0068\u1ec9 \u0111\u1ecb\u006e\u0068 \u006d\u1ed9\u0074 \u006e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069\u002f\u0063\u0068\u1ebf \u0111\u1ed9 \u0068\u1ee3\u0070 \u006c\u1ec7. +mailTooLong=\u00a74\u0054\u0068\u01b0 \u0071\u0075\u00e1 \u0064\u00e0\u0069\u002c \u0068\u00e3\u0079 \u0063\u1ed1 \u0067\u0069\u1eef \u006e\u00f3 \u0064\u01b0\u1edb\u0069 \u0031\u0030\u0030\u0030 \u006b\u00fd \u0074\u1ef1. +mailDelay=\u0051\u0075\u00e1 \u006e\u0068\u0069\u1ec1\u0075 \u0074\u0068\u01b0 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0067\u1eed\u0069 \u0074\u0072\u006f\u006e\u0067 \u0063\u00f9\u006e\u0067 \u006d\u1ed9\u0074 \u0070\u0068\u00fa\u0074\u002e \u004e\u0068\u0069\u1ec1\u0075 \u006e\u0068\u1ea5\u0074 \u006c\u00e0\: {0} +seenAccounts=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u0063\u0169\u006e\u0067 \u0111\u01b0\u1ee3\u0063 \u0062\u0069\u1ebf\u0074 \u0111\u1ebf\u006e \u006e\u0068\u01b0 \u006c\u00e0\:\u00a7c {0} +unableToSpawnItem=\u00a74\u004b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0074\u1ea1\u006f \u0072\u0061 \u00a7c{0}\u00a74, \u0111\u00e2\u0079 \u006b\u0068\u00f4\u006e\u0067 \u0070\u0068\u1ea3\u0069 \u006c\u00e0 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u1ea1\u006f \u0111\u01b0\u1ee3\u0063. +itemsConverted=\u00a76\u0043\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ed5\u0069 \u0074\u1ea5\u0074 \u0063\u1ea3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0074\u0068\u00e0\u006e\u0068 \u006b\u0068\u1ed1\u0069. +itemsNotConverted=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0063\u00f3 \u0074\u0068\u1ec3 \u0063\u0068\u0075\u0079\u1ec3\u006e \u0111\u1ed5\u0069 \u0074\u0068\u00e0\u006e\u0068 \u006b\u0068\u1ed1\u0069. +mailSentTo=\u00a7c{0}\u00a76 \u0111\u00e3 \u0111\u01b0\u1ee3\u0063 \u0067\u1eed\u0069 \u0074\u0068\u01b0 \u0073\u0061\u0075\: +mailMessage={0} +whoisTempBanned=\u00a76 - \u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u1ebf\u0074 \u0068\u1ea1\u006e \u0063\u1ea5\u006d:\u00a7r {0} +playerTempBanned=\u00a76\u004e\u0067\u01b0\u1edd\u0069 \u0063\u0068\u01a1\u0069 \u00a7c{0}\u00a76 \u0111\u00e3 \u0074\u1ea1\u006d \u0063\u1ea5\u006d \u00a7c{1}\u00a76 \u0074\u0072\u006f\u006e\u0067 \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. +mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0063\u00f3 \u0071\u0075\u0079\u1ec1\u006e \u0111\u1ec3 \u0111\u1ed5\u0069 \u0063\u0068\u1ebf \u0111\u1ed9 \u0063\u0068\u01a1\u0069 {0} +createdKit=\u00a76\u0054\u1ea1\u006f \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u00a7c{0} \u00a76\u0076\u1edb\u0069 \u00a7c{1} \u00a76\u0076\u1ead\u0074 \u0070\u0068\u1ea9\u006d \u0076\u00e0 \u0074\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u1ed3\u0069 \u00a7c{2} +spectator=\u004b\u0068\u00e1\u006e \u0067\u0069\u1ea3 +kitContains=\u00a76\u0042\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u00a7c{0} \u00a76\u0062\u0061\u006f \u0067\u1ed3\u006d: +kitItem=\u00a76- \u00a7f{0} +invalidBanner=\u00a74\u0043\u1edd \u006b\u0068\u00f4\u006e\u0067 \u0068\u1ee3\u0070 \u006c\u1ec7. +msgDisabled=\u00a76\u0110\u00e3 \u00a7c\u0074\u1eaf\u0074\u00a76 \u0063\u0068\u1ebf \u0111\u1ed9 \u006e\u0068\u1ead\u006e \u0074\u0068\u01b0. +msgDisabledFor=\u00a76\u0110\u00e3 \u00a7c\u0074\u1eaf\u0074 \u00a76\u0063\u0068\u1ebf \u0111\u1ed9 \u006e\u0068\u1ead\u006e \u0074\u0068\u01b0 \u0063\u0068\u006f \u00a7c{0}\u00a76. +msgEnabled=\u00a76\u0110\u00e3 \u00a7c\u0062\u1ead\u0074\u00a76 \u0063\u0068\u1ebf \u0111\u1ed9 \u006e\u0068\u1ead\u006e \u0074\u0068\u01b0. +msgEnabledFor=\u00a76\u0110\u00e3 \u00a7c\u0062\u1ead\u0074 \u00a76\u0063\u0068\u1ebf \u0111\u1ed9 \u006e\u0068\u1ead\u006e \u0074\u0068\u01b0 \u0063\u0068\u006f \u00a7c{0}\u00a76. +msgIgnore=\u00a7c{0} \u00a74\u0111\u00e3 \u0074\u1eaf\u0074 \u0074\u0072\u00f2 \u0063\u0068\u0075\u0079\u1ec7\u006e \u0072\u0069\u00ea\u006e\u0067. +minimumPayAmount=\u00a7c\u0053\u1ed1 \u0074\u0069\u1ec1\u006e \u0074\u0068\u1ea5\u0070 \u006e\u0068\u1ea5\u0074 \u0062\u1ea1\u006e \u0063\u00f3 \u0074\u0068\u1ec3 \u0063\u0068\u0075\u0079\u1ec3\u006e \u006c\u00e0 {0}. +commandCooldown=\u00a7c\u0042\u1ea1\u006e \u006b\u0068\u00f4\u006e\u0067 \u0074\u0068\u1ec3 \u0064\u00f9\u006e\u0067 \u006c\u1ea1\u0069 \u006c\u1ec7\u006e\u0068 \u0111\u00f3 \u0074\u0072\u006f\u006e\u0067 {0}. +createKitFailed=\u00a74\u0110\u00e3 \u0063\u00f3 \u006c\u1ed7\u0069 \u0078\u1ea3\u0079 \u0072\u0061 \u006b\u0068\u0069 \u0074\u1ea1\u006f \u0062\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 {0}. +createKitSeparator=\u00a7m----------------------- +createKitSuccess=\u00a76\u0042\u1ed9 \u0064\u1ee5\u006e\u0067 \u0063\u1ee5 \u0111\u00e3 \u0074\u1ea1\u006f: \u00a7f{0}\n\u00a76\u0054\u0068\u1edd\u0069 \u0067\u0069\u0061\u006e \u0068\u1ed3\u0069: \u00a7f{1}\n\u00a76\u0110\u1ecb\u0061 \u0063\u0068\u1ec9: \u00a7f{2}\n\u00a76\u0053\u0061\u006f \u0063\u0068\u00e9\u0070 \u006e\u1ed9\u0069 \u0064\u0075\u006e\u0067 \u0074\u0072\u006f\u006e\u0067 \u006c\u0069\u00ea\u006e \u006b\u1ebf\u0074 \u1edf \u0074\u0072\u00ea\u006e \u0076\u00e0\u006f \u0074\u1ec7\u0070 \u0063\u006f\u006e\u0066\u0069\u0067\u002e\u0079\u006d\u006c \u0063\u1ee7\u0061 \u0062\u1ea1\u006e. From 16b2c3dee38c1b82c9a781677e16932c177a19bb Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 19:09:27 +0100 Subject: [PATCH 013/140] Reset pending confirmations on login (#2033) On login, resets any pending confirmations for the user. Fixes #2021, closes #2023. --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index d67e8d9c6..b4f080e05 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -308,6 +308,9 @@ public class EssentialsPlayerListener implements Listener { user.setGodModeEnabled(false); ess.getLogger().log(Level.INFO, "Set god mode to false for {0} because they had it enabled without permission.", user.getName()); } + + user.setConfirmingClearCommand(null); + user.getConfirmingPayments().clear(); user.stopTransaction(); } From 27d9f3725af2a314614d27ea2174b96a16125f17 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 19:18:55 +0100 Subject: [PATCH 014/140] Wrap constructScalar for SnakeYAML 1.21 (#2040) In theory, fixes #1974, fixes #1975 and fixes #1976, and also means that Spigot are free to upgrade SnakeYAML to 1.21 again when ready. --- .../essentials/storage/BukkitConstructor.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java index 54f780e52..2d82f134e 100644 --- a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java +++ b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java @@ -13,6 +13,8 @@ import org.yaml.snakeyaml.constructor.CustomClassLoaderConstructor; import org.yaml.snakeyaml.introspector.PropertyUtils; import org.yaml.snakeyaml.nodes.*; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.Locale; @@ -32,10 +34,30 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { private class ConstructBukkitScalar extends ConstructScalar { + + private Method constructScalarMethod = null; + + protected String constructScalarRefl(ScalarNode scalarNode) { + try { + if (constructScalarMethod == null) { + constructScalarMethod = ConstructScalar.class.getMethod("constructScalar", ScalarNode.class); + } + return (String) constructScalarMethod.invoke(this, scalarNode); + } catch (NoSuchMethodException + | SecurityException + | IllegalAccessException + | IllegalArgumentException + | InvocationTargetException e) { + e.printStackTrace(); + } + + return null; + } + @Override public Object construct(final Node node) { if (node.getType().equals(Material.class)) { - final String val = (String) constructScalar((ScalarNode) node); + final String val = constructScalarRefl((ScalarNode) node); Material mat; if (NumberUtil.isInt(val)) { final int typeId = Integer.parseInt(val); @@ -46,7 +68,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { return mat; } if (node.getType().equals(MaterialData.class)) { - final String val = (String) constructScalar((ScalarNode) node); + final String val = constructScalarRefl((ScalarNode) node); if (val.isEmpty()) { return null; } @@ -71,7 +93,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { return new MaterialData(mat, data); } if (node.getType().equals(ItemStack.class)) { - final String val = (String) constructScalar((ScalarNode) node); + final String val = constructScalarRefl((ScalarNode) node); if (val.isEmpty()) { return null; } @@ -134,7 +156,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { return stack; } if (node.getType().equals(EnchantmentLevel.class)) { - final String val = (String) constructScalar((ScalarNode) node); + final String val = constructScalarRefl((ScalarNode) node); if (val.isEmpty()) { return null; } From 4873beb100f999e6a839a36d8ccce4e65ecc4931 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 19:20:06 +0100 Subject: [PATCH 015/140] Allow updating the compass target to be optional (#1937) If `compass-towards-home-perm` is enabled in the EssentialsX config, then the permission `essentials.home.compass` is checked before changing the player's compass target. Closes #1918. --- .../essentials/EssentialsPlayerListener.java | 3 +++ .../com/earth2me/essentials/ISettings.java | 2 ++ .../src/com/earth2me/essentials/Settings.java | 12 ++++++++++++ Essentials/src/config.yml | 19 +++++++++++++------ 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index b4f080e05..57a5b620e 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -353,7 +353,10 @@ public class EssentialsPlayerListener implements Listener { } // Makes the compass item ingame always point to the first essentials home. #EasterEgg + // EssentialsX: This can now optionally require a permission to enable, if set in the config. private void updateCompass(final User user) { + if (ess.getSettings().isCompassTowardsHomePerm() && !user.isAuthorized("essentials.home.compass")) return; + Location loc = user.getHome(user.getLocation()); if (loc == null) { loc = user.getBase().getBedSpawnLocation(); diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 367b4dbae..77b800836 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -306,4 +306,6 @@ public interface ISettings extends IConf { List getDefaultEnabledConfirmCommands(); boolean isConfirmCommandEnabledByDefault(String commandName); + + boolean isCompassTowardsHomePerm(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 56b4e50d5..cb1dbe2f4 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -533,6 +533,7 @@ public class Settings implements net.ess3.api.ISettings { currencyFormat = _getCurrencyFormat(); unprotectedSigns = _getUnprotectedSign(); defaultEnabledConfirmCommands = _getDefaultEnabledConfirmCommands(); + isCompassTowardsHomePerm = _isCompassTowardsHomePerm(); } private List itemSpawnBl = new ArrayList(); @@ -1439,4 +1440,15 @@ public class Settings implements net.ess3.api.ISettings { public boolean isConfirmCommandEnabledByDefault(String commandName) { return getDefaultEnabledConfirmCommands().contains(commandName.toLowerCase()); } + + private boolean isCompassTowardsHomePerm; + + private boolean _isCompassTowardsHomePerm() { + return config.getBoolean("compass-towards-home-perm", false); + } + + @Override + public boolean isCompassTowardsHomePerm() { + return isCompassTowardsHomePerm; + } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 28fcf6ca1..24b8af5e7 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -522,6 +522,13 @@ default-enabled-confirm-commands: #- pay #- clearinventory +# Set the timeout, in seconds for players to accept a tpa before the request is cancelled. +# Set to 0 for no timeout. +tpa-accept-cancellation: 120 + +# Allow players to set hats by clicking on their helmet slot. +allow-direct-hat: true + ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # @@ -551,12 +558,12 @@ sethome-multiple: # In this example someone with 'essentials.sethome.multiple' and 'essentials.sethome.multiple.vip' will have 5 homes. # Remember, they MUST have both permission nodes in order to be able to set multiple homes. -# Set the timeout, in seconds for players to accept a tpa before the request is cancelled. -# Set to 0 for no timeout. -tpa-accept-cancellation: 120 - -# Allow players to set hats by clicking on their helmet slot. -allow-direct-hat: true +# Controls whether players need the permission "essentials.home.compass" in order to point +# the player's compass at their first home. +# +# Leaving this as false will retain Essentials' original behaviour, which is to always +# change the compass' direction to point towards their first home. +compass-towards-home-perm: false ############################################################ # +------------------------------------------------------+ # From de57a8c6025c8581b8eec9342e5812d871589914 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 19:21:18 +0100 Subject: [PATCH 016/140] Disable EssProtect emergency mode when Ess loads late (#1954) Related: EssentialsX/Essentials#1951. --- .../essentials/protect/EmergencyListener.java | 14 +++++++++ .../essentials/protect/EssentialsProtect.java | 30 +++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java index c48295aa1..7a9f2bba8 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java @@ -10,9 +10,16 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.server.PluginEnableEvent; public class EmergencyListener implements Listener { + EssentialsProtect plugin; + + EmergencyListener(final EssentialsProtect essProtPlugin) { + plugin = essProtPlugin; + } + @EventHandler(priority = EventPriority.LOW) public void onBlockBurn(final BlockBurnEvent event) { event.setCancelled(true); @@ -47,4 +54,11 @@ public class EmergencyListener implements Listener { public void onEntityDamage(final EntityDamageEvent event) { event.setCancelled(true); } + + @EventHandler + public void onPluginEnabled(final PluginEnableEvent event) { + if (event.getPlugin().getName().equals("Essentials")) { + plugin.disableEmergencyMode(); + } + } } diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java index be3679365..49d12e521 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java @@ -1,6 +1,7 @@ package com.earth2me.essentials.protect; import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -19,6 +20,8 @@ public class EssentialsProtect extends JavaPlugin implements IProtect { private final Map> settingsList = new EnumMap>(ProtectConfig.class); private EssentialsConnect ess = null; + private final EmergencyListener emListener = new EmergencyListener(this); + @Override public void onEnable() { final PluginManager pm = this.getServer().getPluginManager(); @@ -27,6 +30,12 @@ public class EssentialsProtect extends JavaPlugin implements IProtect { enableEmergencyMode(pm); return; } + + initialize(pm, essPlugin); + } + + private void initialize(final PluginManager pm, final Plugin essPlugin) { + LOGGER.log(Level.INFO, "Continuing to enable Protect."); ess = new EssentialsConnect(essPlugin, this); final EssentialsProtectBlockListener blockListener = new EssentialsProtectBlockListener(this); @@ -40,13 +49,30 @@ public class EssentialsProtect extends JavaPlugin implements IProtect { } private void enableEmergencyMode(final PluginManager pm) { - final EmergencyListener emListener = new EmergencyListener(); pm.registerEvents(emListener, this); for (Player player : getServer().getOnlinePlayers()) { player.sendMessage("Essentials Protect is in emergency mode. Check your log for errors."); } - LOGGER.log(Level.SEVERE, "Essentials not installed or failed to load. Essenials Protect is in emergency mode now."); + LOGGER.log(Level.SEVERE, "Essentials not installed or failed to load. Essentials Protect is in emergency mode now."); + } + + void disableEmergencyMode() { + final PluginManager pm = this.getServer().getPluginManager(); + final Plugin essPlugin = pm.getPlugin("Essentials"); + if (essPlugin == null || !essPlugin.isEnabled()) { + LOGGER.log(Level.SEVERE, "Tried to disable emergency mode, but Essentials still isn't enabled!"); + return; + } + + HandlerList.unregisterAll(emListener); + + for (Player player : getServer().getOnlinePlayers()) { + player.sendMessage("Essentials Protect is no longer in emergency mode."); + } + LOGGER.log(Level.SEVERE, "Essentials was loaded late! Essentials Protect is no longer in emergency mode."); + + initialize(pm, essPlugin); } @Override From 8aa764f69f6d6a6c6dbe1856fbeb544898d31c94 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 19:41:56 +0100 Subject: [PATCH 017/140] Check whether nick equals "off" before formatting Fixes #1910. --- .../src/com/earth2me/essentials/commands/Commandnick.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java index c5ba7386e..40c901163 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java @@ -55,16 +55,16 @@ public class Commandnick extends EssentialsLoopCommand { @Override protected void updatePlayer(final Server server, final CommandSource sender, final User target, final String[] args) throws NotEnoughArgumentsException { final String nick = args[0]; - if (target.getName().equalsIgnoreCase(nick)) { + if ("off".equalsIgnoreCase(nick)) { + setNickname(server, sender, target, null); + target.sendMessage(tl("nickNoMore")); + } else if (target.getName().equalsIgnoreCase(nick)) { String oldName = target.getDisplayName(); setNickname(server, sender, target, nick); if (!target.getDisplayName().equalsIgnoreCase(oldName)) { target.sendMessage(tl("nickNoMore")); } target.sendMessage(tl("nickSet", target.getDisplayName())); - } else if ("off".equalsIgnoreCase(nick)) { - setNickname(server, sender, target, null); - target.sendMessage(tl("nickNoMore")); } else if (nickInUse(server, target, nick)) { throw new NotEnoughArgumentsException(tl("nickInUse")); } else { From aa622f8d27f419a5db9872959be6cda8010de66a Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Mon, 18 Jun 2018 23:38:54 +0200 Subject: [PATCH 018/140] SPECTATOR mode is safe for teleporting everywhere. --- Essentials/src/com/earth2me/essentials/utils/LocationUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java index 64d5bb2c6..17682987c 100644 --- a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java @@ -224,7 +224,7 @@ public class LocationUtil { } public static boolean isBlockUnsafeForUser(final IUser user, final World world, final int x, final int y, final int z) { - if (user.getBase().isOnline() && world.equals(user.getBase().getWorld()) && (user.getBase().getGameMode() == GameMode.CREATIVE || user.isGodModeEnabled()) && user.getBase().getAllowFlight()) { + if (user.getBase().isOnline() && world.equals(user.getBase().getWorld()) && (user.getBase().getGameMode() == GameMode.CREATIVE || user.getBase().getGameMode() == GameMode.SPECTATOR || user.isGodModeEnabled()) && user.getBase().getAllowFlight()) { return false; } From 6225dc8ed11d18bdb6acb68c2d85aca6acb0cdf8 Mon Sep 17 00:00:00 2001 From: montlikadani Date: Thu, 21 Jun 2018 14:39:25 +0200 Subject: [PATCH 019/140] Update messages_hu.properties --- Essentials/src/messages_hu.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index ed12273eb..08b6dce9f 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -112,7 +112,7 @@ enableUnlimited=\u00a76Lek\u00e9rve v\u00e9gtelen mennyis\u00e9g\u0171 \u00a7c { enchantmentApplied=\u00a76A k\u00f6vetkez\u0151 var\u00e1zs\:\u00a7c {0} \u00a76sikeresen r\u00e1 lett rakva a kezedbe l\u00e9v\u0151 dologra. enchantmentNotFound=\u00a74A var\u00e1zslat nem tal\u00e1lhat\u00f3\! enchantmentPerm=\u00a74Nincs jogod a k\u00f6vetkez\u0151 var\u00e1zslathoz\:\u00a7c {0}\u00a74. -enchantmentRemoved=\u00a76A k\u00f6vetkez\u0151 varรกzslat\:\u00a7c {0} \u00a76sikeresen le lett v\u00e9ve a kezedben l\u00e9v\u0151 dologr\u00f3l. +enchantmentRemoved=\u00a76A k\u00f6vetkez\u0151 var\u00e1zslat\:\u00a7c {0} \u00a76sikeresen le lett v\u00e9ve a kezedben l\u00e9v\u0151 dologr\u00f3l. enchantments=\u00a76Var\u00e1zslatok\:\u00a7r {0} errorCallingCommand=Hiba a parancs h\u00edv\u00e1s\u00e1ban /{0} errorWithMessage=\u00a7cHiba\:\u00a74 {0} From 49201b9945beeebec28af7cab52e50087fe0bd1c Mon Sep 17 00:00:00 2001 From: montlikadani Date: Thu, 28 Jun 2018 17:48:27 +0200 Subject: [PATCH 020/140] Update messages_hu.properties --- Essentials/src/messages_hu.properties | 44 +++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index 08b6dce9f..8c7a4dca2 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -35,7 +35,7 @@ banJoin=Ki lett\u00e9l tiltva a szerverr\u0151l. Oka: {0} bed=\u00a7o\u00e1gy\u00a7r bedMissing=\u00a74Az \u00e1gyad nincs be\u00e1ll\u00edtva vagy eltorlaszolt\u00e1k. bedNull=\u00a7m\u00e1gy\u00a7r -bedSet=\u00a76\u00c1gyi kezd\u00f5hely be\u00e1ll\u00edtva\! +bedSet=\u00a76\u00c1gyi kezd\u0151hely be\u00e1ll\u00edtva\! bigTreeFailure=\u00a74Nagy fa gener\u00e1l\u00e1si hiba\! Pr\u00f3b\u00e1ld \u00fajra f\u00fcv\u00f6n vagy f\u00f6ld\u00f6n. bigTreeSuccess=\u00a76Nagy fa gener\u00e1lva. blockList=\u00a76Az Essentials \u00e1tengedte a k\u00f6vetkez\u0151 parancsokat egy m\u00e1sik pluginnak\: @@ -102,7 +102,7 @@ disabled=letiltva disabledToSpawnMob=\u00a74Ennek a l\u00e9nynek a leh\u00edv\u00e1sa jelenleg le van tiltva a konfig f\u00e1jlban. disableUnlimited=\u00a76Letiltva korl\u00e1tlan sz\u00e1m\u00fa\u00a7c {0} \u00a76 {1}. distance=\u00a76T\u00e1vols\u00e1g\: {0} -dontMoveMessage=\u00a76A teleport\u00e1l\u00e1s elkezd\u00f5dik\u00a7c {0}\u00a76 bel\u00fcl. Ne mozogj\! +dontMoveMessage=\u00a76A teleport\u00e1l\u00e1s elkezd\u0151dik\u00a7c {0}\u00a76 bel\u00fcl. Ne mozogj\! downloadingGeoIp=GeoIP adatb\u00e1zis let\u00f6lt\u00e9se folyamatban... Eltarthat egy kis ideig (orsz\u00e1g\: 1.7 MB, v\u00e1ros\: 30MB) duplicatedUserdata=Duplik\u00e1lt felhaszn\u00e1l\u00f3i adatok\: {0} \u00e9s {1}. durability=\u00a76Ez az eszk\u00f6z \u00a7c{0}\u00a76 haszn\u00e1ld balra. @@ -216,7 +216,7 @@ itemNotEnough2=\u00a76Ha el szeretn\u00e9d adni az \u00f6sszes ilyen t\u00e1rgya itemNotEnough3=\u00a76/sell itemname -1 mindet elad, de csak egy elemet, stb. itemsConverted=\u00a76\u00c1talak\u00edtva minden elemet blokkokk\u00e1. itemsCsvNotLoaded=Nem siker\u00fclt bet\u00f6lteni az items.csv\! -itemSellAir=T\u00e9nyleg el akartad adni a leveg\u00f5t? Vegy\u00e9l a kezedbe valami t\u00e1rgyat. +itemSellAir=T\u00e9nyleg el akartad adni a leveg\u0151t? Vegy\u00e9l a kezedbe valami t\u00e1rgyat. itemsNotConverted=\u00a74Nincs olyan elem, amely blokk\u00e1 alak\u00edthat\u00f3. itemSold=\u00a7aEladva \u00a7c{0} \u00a7a({1} {2} {3} minden). itemSoldConsole=\u00a7a{0} \u00a7aeladva {1} \u00a7a{2} \u00a7a({3} elem {4} minden). @@ -226,13 +226,13 @@ jailAlreadyIncarcerated=\u00a74A szem\u00e9ly m\u00e1r b\u00f6rt\u00f6nben van\: jailList=\u00a76B\u00f6rt\u00f6n\u00f6k\:\u00a7r {0} jailMessage=\u00a74A b\u0171ncselekm\u00e9nyt megteszed, akkor itt az id\u0151. jailNotExist=\u00a74Nincs ilyen b\u00f6rt\u00f6n. -jailReleased=\u00a7c{0}\u00a76 kiengedve a b\u00f6rt\u00f6nb\u00f5l. +jailReleased=\u00a7c{0}\u00a76 kiengedve a b\u00f6rt\u00f6nb\u0151l. jailReleasedPlayerNotify=\u00a76Kiengedtek a b\u00f6rt\u00f6nb\u0151l\! jailSentenceExtended=\u00a76B\u00f6rt\u00f6n ideje mostant\u00f3l\: {0} jailSet=\u00a7c{0} \u00a76 b\u00f6rt\u00f6n be\u00e1ll\u00edtva. jumpError=\u00a74Ez b\u00e1ntani fogja a sz\u00e1m\u00edt\u00f3g\u00e9p agy\u00e1t. kickDefault=Ki lett\u00e9l kickelve. -kickedAll=\u00a74\u00d6sszes j\u00e1t\u00e9kos kickelve a szerverr\u00f5l. +kickedAll=\u00a74\u00d6sszes j\u00e1t\u00e9kos kickelve a szerverr\u0151l. kickExempt=\u00a74\u00d5t nem kickelheted. kill=\u00a7c{0}\u00a76 meg\u00f6lve. killExempt=\u00a74Nem \u00f6lheted meg \u00a7c{0}\u00a74-t. @@ -286,7 +286,7 @@ mobsAvailable=\u00a76Enit\u00e1sok\:\u00a7r {0} mobSpawnError=\u00a74Hiba az entit\u00e1s-id\u00e9z\u0151 megv\u00e1ltoztat\u00e1sa k\u00f6zben. mobSpawnLimit=A kiszolg\u00e1l\u00f3i limitre korl\u00e1tozott entit\u00e1s mennyis\u00e9g. mobSpawnTarget=\u00a74A c\u00e9lblokknak entit\u00e1s id\u00e9z\u0151nek kell lennie. -moneyRecievedFrom=\u00a7a{0}-t kapt\u00e1l {1}\u00a7a-t\u00f3l/t\u00f5l. +moneyRecievedFrom=\u00a7a{0}-t kapt\u00e1l {1}\u00a7a-t\u00f3l/t\u0151l. moneySentTo=\u00a7a{0}-t k\u00fcldt\u00e9l {1}\u00a7a-nak/-nek. month=h\u00f3nap months=h\u00f3nap @@ -303,7 +303,7 @@ multiplePotionEffects=\u00a74Ezzel a b\u00e1jitallal t\u00f6bb hat\u00e1s nem al mutedPlayer=\u00a76\u00a7c{0} \u00a76len\u00e9m\u00edtva. mutedPlayerFor=\u00a76\u00a7c{0} \u00a76len\u00e9m\u00edtva\u00a7c {1}\u00a76-ra/-re. mutedUserSpeaks={0} megpr\u00f3b\u00e1lt besz\u00e9lni, de eln\u00e9m\u00edtva: {1} -muteExempt=\u00a74Nem n\u00e9m\u00edthatod \u00f5t. +muteExempt=\u00a74Nem n\u00e9m\u00edthatod \u0151t. muteExemptOffline=\u00a74Nem n\u00e9m\u00edthatsz le Offline j\u00e1t\u00e9kost. muteNotify=\u00a7c{0} \u00a76len\u00e9m\u00edtotta \u00a7c{1}\u00a76-t. muteNotifyFor=\u00a7c{0} \u00a76j\u00e1t\u00e9kos eln\u00e9m\u00edtva \u00a7c{1}\u00a76 \u00a7c {2}\u00a76. @@ -383,7 +383,7 @@ playerMutedFor=\u00a76Le lett\u00e9l n\u00e9m\u00edtva\u00a7c {0}-ra/-re. playerNeverOnServer=\u00a7c{0} \u00a74 m\u00e9g sose j\u00e1rt a szerveren. playerNotFound=\u00a74Nincs ilyen nev\u00fb j\u00e1t\u00e9kos. playerTempBanned=\u00a76A j\u00e1t\u00e9kos \u00a7c{0}\u00a76 ideiglenesen kitiltva \u00a7c{1}\u00a76 \u00a7c{2}\u00a76-ra/-re: \u00a7c{3}\u00a76. -playerUnbanIpAddress=\u00a76\u00a7c{0} \u00a76feloldotta a k\u00f6vetkez\u00f5 IP c\u00edmet\: {1}. +playerUnbanIpAddress=\u00a76\u00a7c{0} \u00a76feloldotta a k\u00f6vetkez\u0151 IP c\u00edmet\: {1}. playerUnbanned=\u00a76\u00a7c{0} \u00a76feloldotta {1}\u00a76-t. playerUnmuted=\u00a76Fel lett oldva a n\u00e9m\u00edt\u00e1sod. pong=Pong\! @@ -394,7 +394,7 @@ posY=\u00a76Y\: {0} (+Fel <-> -Le) posYaw=\u00a76Fordul\u00e1s\: {0} (Forg\u00e1s) posZ=\u00a76Z\: {0} (+D\u00e9l <-> -\u00c9szak) potions=\u00a76Var\u00e1zsitalok\:\u00a7r {0}\u00a76. -powerToolAir=\u00a74Nem csatolhatsz parancsot a leveg\u00f5h\u00f6z. +powerToolAir=\u00a74Nem csatolhatsz parancsot a leveg\u0151h\u00f6z. powerToolAlreadySet=\u00a74A(z)\u00a7c {0}\u00a74 parancs m\u00e1r bevan \u00e1ll\u00edtva \u00a7c{1}\u00a74-hoz/-hez. powerToolAttach=\u00a7c{0}\u00a76 berakva PowerToolnak a(z) {1}-ra/-re. powerToolClearAll=\u00a76\u00d6sszes PowerTool parancs ki\u00fcr\u00edtve. @@ -422,7 +422,7 @@ pWeatherReset=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1sa vissza lett \u pWeatherSet=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1sa \u00a7c{0}\u00a76 \: \u00a7c{1}. questionFormat=\u00a72[K\u00e9rd\u00e9s]\u00a7r {0} radiusTooBig=\u00a74Ez a sug\u00e1r t\u00fal nagy\! A maximum\: {0}. -readNextPage=\u00a76\u00cdrd be a\u00a7c /{0} {1} \u00a76 parancsot a k\u00f6vetkez\u00f5 oldal elolvas\u00e1s\u00e1hoz. +readNextPage=\u00a76\u00cdrd be a\u00a7c /{0} {1} \u00a76 parancsot a k\u00f6vetkez\u0151 oldal elolvas\u00e1s\u00e1hoz. recentlyForeverAlone=\u00a74{0} a k\u00f6zelm\u00faltban ment. recipe=\u00a76\u00a7c{0}\u00a76 receptje (\u00a7c{1}\u00a76 az \u00a7c{2}\u00a76-b\u00f3l/b\u0151l) recipeBadIndex=Nincs recept ennyihez. @@ -446,7 +446,7 @@ requestDenied=\u00a76Teleport\u00e1l\u00e1si k\u00e9relem elutas\u00edtva. requestDeniedFrom=\u00a7c{0} \u00a76elutas\u00edtotta a k\u00e9relmed. requestSent=\u00a76K\u00e9r\u00e9s elk\u00fcldve\u00a7c {0}\u00a76-nak/nek. requestSentAlready=\u00a74M\u00e1r elk\u00fcldted {0}\u00a74 a teleport k\u00e9relmet. -requestTimedOut=\u00a74A teleport\u00e1l\u00e1si k\u00e9relem kifutott az id\u00f5b\u00f5l. +requestTimedOut=\u00a74A teleport\u00e1l\u00e1si k\u00e9relem kifutott az id\u0151b\u0151l. requiredBukkit=\u00a76* \! * Sz\u00fcks\u00e9ged van a CraftBukkit \u00e9p\u00edt\u00e9s\u00e9hez {0}, let\u00f6lt\u00f6d innen http\://dl.bukkit.org/downloads/craftbukkit/ resetBal=\u00a76Egyenleg vissza\u00e1ll\u00edtva \u00a7a{0}-ra/-re \u00a76minden fentl\u00e9v\u0151 j\u00e1t\u00e9kosnak. resetBalAll=\u00a76Egyenleg vissza\u00e1ll\u00edtva \u00a7a{0}\u00a76-ra/-re az \u00f6sszes j\u00e1t\u00e9kosnak. @@ -479,15 +479,15 @@ socialSpyMutedPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a77(n\u00e9m\u00edtva) \u00a7 socialSpyPrefix=\u00a7f[\u00a76SS\u00a7f] \u00a7r soloMob=\u00a74A mobok szeretnek egyed\u00fcl maradni. spawned=id\u00e9zve -spawnSet=\u00a76Kezd\u00f5pont be\u00e1ll\u00edtva a \u00a7c{0}\u00a76 csoportnak. +spawnSet=\u00a76Kezd\u0151pont be\u00e1ll\u00edtva a \u00a7c{0}\u00a76 csoportnak. spectator=n\u00e9z\u0151 -sudoExempt=\u00a74Nem k\u00e9nyszer\u00edtheted \u00f5t. +sudoExempt=\u00a74Nem k\u00e9nyszer\u00edtheted \u0151t. sudoRun=\u00a76Er\u00f6ltet\u00e9se\u00a7c {0} \u00a76futtat\u00e1s\:\u00a7r /{1} suicideMessage=\u00a76Viszl\u00e1t sz\u00e9p vil\u00e1g... suicideSuccess=\u00a76{0} \u00a76feladta az \u00e9let\u00e9t. -survival=t\u00fal\u00e9l\u00f5 -takenFromAccount=\u00a7a{0} lev\u00e9ve az egyenlegedr\u00f5l. -takenFromOthersAccount=\u00a7a{0} lev\u00e9ve {1}\u00a7a egyenleg\u00e9r\u00f5l. \u00daj egyenleg\: {2}. +survival=t\u00fal\u00e9l\u0151 +takenFromAccount=\u00a7a{0} lev\u00e9ve az egyenlegedr\u0151l. +takenFromOthersAccount=\u00a7a{0} lev\u00e9ve {1}\u00a7a egyenleg\u00e9r\u0151l. \u00daj egyenleg\: {2}. teleportAAll=\u00a76A teleport\u00e1l\u00e1si k\u00e9relem mindenkinek elk\u00fcldve... teleportAll=\u00a76\u00d6sszes j\u00e1t\u00e9kos teleport\u00e1l\u00e1sa... teleportationCommencing=\u00a76Teleport\u00e1l\u00e1s megkezd\u00e9se... @@ -516,7 +516,7 @@ thunderDuration=\u00a7c {0} \u00a76mennyd\u00f6rg\u00f6tt a vil\u00e1godban\u00a timeBeforeHeal=\u00a74A k\u00f6vetkez\u0151 \u00e9let felt\u00f6lt\u00e9s\:\u00a7c {0}\u00a76. timeBeforeTeleport=\u00a74A k\u00f6vetkez\u0151 teleport\u00e1l\u00e1s\:\u00a7c {0}\u00a76. timeFormat=\u00a7c{0}\u00a76 vagy \u00a7c{1}\u00a76 vagy \u00a7c{2}\u00a76 -timeSetPermission=\u00a74Nincs jogod, hogy \u00e1ll\u00edtsd az id\u00f5t. +timeSetPermission=\u00a74Nincs jogod, hogy \u00e1ll\u00edtsd az id\u0151t. timeSetWorldPermission=\u00a74Nincs jogod be\u00e1ll\u00edtani az id\u0151t a(z) ''{0}'' vil\u00e1gban. timeWorldCurrent=\u00a76A jelenlegi id\u0151\u00a7c {0} \u00a7c{1}\u00a76. timeWorldSet=\u00a76Id\u0151 be\u00e1ll\u00edtva\u00a7c {0}\u00a76-re a(z) \u00a7c{1}\u00a76 vil\u00e1gban. @@ -546,7 +546,7 @@ unmutedPlayer=\u00a7c {0}\u00a76-r\u00f3l fel lett oldva a n\u00e9m\u00edt\u00e1 unsafeTeleportDestination=\u00a74Ahova teleport\u00e1lni szeretn\u00e9l nem biztons\u00e1gos \u00e9s a biztons\u00e1gos teleport\u00e1l\u00e1s kikapcsolva. unvanishedReload=\u00a74Az \u00fajrat\u00f6lt\u00e9s k\u00f6vetkezt\u00e9ben mindenki l\u00e1tni fog. upgradingFilesError=Hiba t\u00f6rt\u00e9nt a f\u00e1jlok friss\u00edt\u00e9se k\u00f6zben. -uptime=\u00a76M\u00fbk\u00f6d\u00e9si id\u00f5\:\u00a7c {0} +uptime=\u00a76M\u00fbk\u00f6d\u00e9si id\u0151\:\u00a7c {0} userAFK=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy v\u00e1laszolni fog. userAFKWithMessage=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy fog v\u00e1laszolni. {1} userdataMoveBackError=Nem siker\u00fclt az userdata/{0}.tmp \u00e1thelyez\u00e9se a userdata/{1}\! @@ -559,7 +559,7 @@ userJailed=\u00a76Beb\u00f6rt\u00f6n\u00f6ztek\! userUnknown=\u00a74Figyelem\: ''\u00a7c{0}\u00a74'' m\u00e9g sose j\u00e1rt a szerveren. usingTempFolderForTesting=H\u0151mapp\u00e1k haszn\u00e1lata a tesztel\u00e9shez\: vanish=\u00a76L\u00e1thatatlans\u00e1g {0}\u00a76-nak/-nek\: {1} -vanished=\u00a76Sikeresen elt\u00fcnt\u00e9l a norm\u00e1lis j\u00e1t\u00e9kosok el\u00f5l \u00e9s a j\u00e1t\u00e9kbeli parancsokb\u00f3l. +vanished=\u00a76Sikeresen elt\u00fcnt\u00e9l a norm\u00e1lis j\u00e1t\u00e9kosok el\u0151l \u00e9s a j\u00e1t\u00e9kbeli parancsokb\u00f3l. versionMismatch=\u00a74Verzi\u00f3 elt\u00e9r\u00e9s\! K\u00e9rj\u00fck, friss\u00edtse a(z) {0} a legfrissebb verzi\u00f3ra. versionMismatchAll=\u00a74Verzi\u00f3 elt\u00e9r\u00e9s\! K\u00e9rj\u00fck, friss\u00edtse az \u00f6sszes Essentials jart a legfrissebb verzi\u00f3ra. voiceSilenced=\u00a76El vagy n\u00e9m\u00edtva\! @@ -575,9 +575,9 @@ warpsCount=\u00a76Van\u00a7c {0} \u00a76warp. Ez az \u00a7c{1}.\u00a76 oldal a \ warpSet=\u00a76Warp\u00a7c {0} \u00a76be\u00e1ll\u00edtva. warpUsePermission=\u00a74Nincs jogod oda warpolni. weatherInvalidWorld=A vil\u00e1g {0} nem tal\u00e1lhat\u00f3\! -weatherStorm=\u00a76Be\u00e1ll\u00edtottad az id\u00f5t \u00a7ces\u00f5sre\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. +weatherStorm=\u00a76Be\u00e1ll\u00edtottad az id\u0151t \u00a7ces\u0151sre\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. weatherStormFor=\u00a76Be\u00e1ll\u00edtottad az id\u0151j\u00e1r\u00e1st \u00a7ces\u0151sre\u00a7c {0}\u00a76 vil\u00e1gban {1} m\u00e1sodpercre. -weatherSun=\u00a76Be\u00e1ll\u00edtottad az id\u00f5t \u00a7cnaposra\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. +weatherSun=\u00a76Be\u00e1ll\u00edtottad az id\u0151t \u00a7cnaposra\u00a76 a(z)\u00a7c {0}\u00a76 vil\u00e1gban. weatherSunFor=\u00a76Be\u00e1ll\u00edtottad az id\u0151j\u00e1r\u00e1st \u00a7cnaposra\u00a7c {0}\u00a76 vil\u00e1gban \u00a76 {1} m\u00e1sodpercre. whoisAFK=\u00a76 - AFK\:\u00a7r {0} whoisAFKSince=\u00a76 - AFK\:\u00a7r {0} (Mivel {1}) @@ -606,4 +606,4 @@ worthSet=\u00a76\u00c1r be\u00e1ll\u00edtva year=\u00e9v years=\u00e9v youAreHealed=\u00a76\u00c9leted felt\u00f6ltve. -youHaveNewMail=\u00a76Van\u00a7c {0} \u00a76\u00fczeneted\! \u00cdrd be a \u00a7c/mail read\u00a76 parancsot, hogy elolvasd \u00f5ket. +youHaveNewMail=\u00a76Van\u00a7c {0} \u00a76\u00fczeneted\! \u00cdrd be a \u00a7c/mail read\u00a76 parancsot, hogy elolvasd \u0151ket. From 187c4eb371e3ae2b130902b045a1a62500b0fa00 Mon Sep 17 00:00:00 2001 From: montlikadani Date: Thu, 28 Jun 2018 18:27:02 +0200 Subject: [PATCH 021/140] Update messages_hu.properties --- Essentials/src/messages_hu.properties | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index 8c7a4dca2..5bf5e2b03 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -19,7 +19,7 @@ antiBuildInteract=\u00a74Nincs jogod, hogy interakci\u00f3ba l\u00e9pj a\u00a7c antiBuildPlace=\u00a74Nincs jogod, hogy lehelyezed\u00a7c {0} \u00a74ide. antiBuildUse=\u00a74Nincs jogod, hogy haszn\u00e1ld a k\u00f6vetkez\u0151t\:\u00a7c {0}\u00a74. autoAfkKickReason=Kickelve lett\u00e9l {0} perc AFK miatt\! -backAfterDeath=\u00a76Meghalt\u00e1l\! A \u00a74/back\u00a76 paranccsal visszajuthatsz hal\u00e1lod sz\u00ednhely\u00e9re. +backAfterDeath=\u00a76Meghalt\u00e1l\! A \u00a74/back\u00a76 paranccsal visszajuthatsz a hal\u00e1lod sz\u00ednhely\u00e9re. backupDisabled=\u00a74A ment\u00e9s nincs k\u00e9sz. backupFinished=\u00a76A biztons\u00e1gi ment\u00e9s k\u00e9sz. backupStarted=\u00a76A biztons\u00e1gi ment\u00e9s elkezdve. @@ -119,7 +119,7 @@ errorWithMessage=\u00a7cHiba\:\u00a74 {0} essentialsHelp1=A f\u00e1jl t\u00f6r\u00f6tt, \u00e9s az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijav\u00edtani a f\u00e1jlt, akkor menjen http\://tiny.cc/EssentialsChat essentialsHelp2=A f\u00e1jl t\u00f6r\u00f6tt, \u00e9s az Essentials nem tudja megnyitni. Az Essentials most le van tiltva. Ha nem tudja kijav\u00edtani a f\u00e1jlt, \u00edrja be /essentials help a j\u00e1t\u00e9kban vagy menjen http\://tiny.cc/EssentialsChat essentialsReload=\u00a76Essentials \u00fajrat\u00f6ltve\u00a7c {0}. -exp=\u00a7c{0}\u00a7c {1} \u00a76xp (szint\u00a7c {2}\u00a76) \u00e9s kell\u00a7c {3} \u00a76t\u00f6bb xp a szintl\u00e9p\u00e9shez. +exp=\u00a7c{0}\u00a7c {1} \u00a76xp (szint\u00a7c {2}\u00a76) \u00e9s kell\u00a7c {3} xp a szintl\u00e9p\u00e9shez. expSet=\u00a7c{0} \u00a76most van\u00a7c {1} \u00a76xp. extinguish=\u00a76Eloltottad magad. extinguishOthers=\u00a76Eloltottad {0}\u00a76-t. @@ -233,10 +233,10 @@ jailSet=\u00a7c{0} \u00a76 b\u00f6rt\u00f6n be\u00e1ll\u00edtva. jumpError=\u00a74Ez b\u00e1ntani fogja a sz\u00e1m\u00edt\u00f3g\u00e9p agy\u00e1t. kickDefault=Ki lett\u00e9l kickelve. kickedAll=\u00a74\u00d6sszes j\u00e1t\u00e9kos kickelve a szerverr\u0151l. -kickExempt=\u00a74\u00d5t nem kickelheted. +kickExempt=\u00a74\u0151t nem kickelheted. kill=\u00a7c{0}\u00a76 meg\u00f6lve. killExempt=\u00a74Nem \u00f6lheted meg \u00a7c{0}\u00a74-t. -kitContains=\u00a76A csomag \u00a7c{0} \u00a76tartalmaz: +kitContains=\u00a76A(z) \u00a7c{0} \u00a76csomag tartalmaz: kitCost=\ \u00a77\u00a7o({0})\u00a7r kitDelay=\u00a7m{0}\u00a7r kitError=\u00a74Nincs el\u00e9rhet\u0151 csomag. @@ -260,7 +260,7 @@ listHiddenTag=\u00a77[REJTETT]\u00a7r loadWarpError=\u00a74Nem siker\u00fclt a warp bet\u00f6lt\u00e9se {0}. localFormat=[H]<{0}> {1} localNoOne= -mailClear=\u00a76Hogy megjel\u00f6ld olvasottk\u00e9nt \u00edrd be a\u00a7c /mail clear \u00a76parancsot. +mailClear=\u00a76Hogy t\u00f6r\u00f6ld az \u00fczenetet, \u00edrd be a\u00a7c /mail clear \u00a76parancsot. mailCleared=\u00a76\u00dczenetek t\u00f6r\u00f6lve\! mailDelay=T\u00fal sok lev\u00e9l lett elk\u00fcldve az utols\u00f3 percben. Maximum\: {0} mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} @@ -270,11 +270,11 @@ mailSentTo=\u00a7c{0}\u00a76 elk\u00fcldt\u00fck a k\u00f6vetkez\u0151 levelet\: mailTooLong=\u00a74Az \u00fczeneted t\u00fal hossz\u00fa. Pr\u00f3b\u00e1ld 1000 karakter alatt. markedAsAway=\u00a76M\u00e1r kijel\u00f6lted, mint t\u00e1vol. markedAsNotAway=\u00a76M\u00e1r nem jel\u00f6lted ki. -markMailAsRead=\u00a76Hogy megjel\u00f6ld olvasottk\u00e9nt, \u00edrd be a\u00a7c /mail clear \u00a76parancsot. +markMailAsRead=\u00a76Hogy t\u00f6r\u00f6ld az \u00fczenetet, \u00edrd be a\u00a7c /mail clear \u00a76parancsot. matchingIPAddress=\u00a76Az al\u00e1bbi j\u00e1t\u00e9kosok csatlakoztak utolj\u00e1ra err\u0151l az IP c\u00edmr\u0151l\: maxHomes=\u00a74Nem \u00e1ll\u00edthatsz be t\u00f6bb\u00a7c {0} \u00a74otthont. maxMoney=\u00a74Ez a tranzakci\u00f3 meghaladja a be\u00e1ll\u00edtott maxim\u00e1lis tranzakci\u00f3 hat\u00e1r\u00e9rt\u00e9k\u00e9t. -mayNotJail=\u00a74\u00d5t nem teheted b\u00f6rt\u00f6nbe\! +mayNotJail=\u00a74\u0151t nem teheted b\u00f6rt\u00f6nbe\! mayNotJailOffline=\u00a74Nem b\u00f6rt\u00f6n\u00f6zhetsz be Offline j\u00e1t\u00e9kost. me=\u00e9n minimumPayAmount=\u00a7cA minim\u00e1lis \u00f6sszeg, amit fizethetsz, {0}. @@ -381,7 +381,7 @@ playerKicked=\u00a7c{0} \u00a76 kickelte {1}-t. Indok\: {2}. playerMuted=\u00a76El lett\u00e9l n\u00e9m\u00edtva\! playerMutedFor=\u00a76Le lett\u00e9l n\u00e9m\u00edtva\u00a7c {0}-ra/-re. playerNeverOnServer=\u00a7c{0} \u00a74 m\u00e9g sose j\u00e1rt a szerveren. -playerNotFound=\u00a74Nincs ilyen nev\u00fb j\u00e1t\u00e9kos. +playerNotFound=\u00a74Nincs ilyen nev\u0171 j\u00e1t\u00e9kos. playerTempBanned=\u00a76A j\u00e1t\u00e9kos \u00a7c{0}\u00a76 ideiglenesen kitiltva \u00a7c{1}\u00a76 \u00a7c{2}\u00a76-ra/-re: \u00a7c{3}\u00a76. playerUnbanIpAddress=\u00a76\u00a7c{0} \u00a76feloldotta a k\u00f6vetkez\u0151 IP c\u00edmet\: {1}. playerUnbanned=\u00a76\u00a7c{0} \u00a76feloldotta {1}\u00a76-t. @@ -394,7 +394,7 @@ posY=\u00a76Y\: {0} (+Fel <-> -Le) posYaw=\u00a76Fordul\u00e1s\: {0} (Forg\u00e1s) posZ=\u00a76Z\: {0} (+D\u00e9l <-> -\u00c9szak) potions=\u00a76Var\u00e1zsitalok\:\u00a7r {0}\u00a76. -powerToolAir=\u00a74Nem csatolhatsz parancsot a leveg\u0151h\u00f6z. +powerToolAir=\u00a74Nem csatolhatsz parancsot leveg\u0151h\u00f6z. powerToolAlreadySet=\u00a74A(z)\u00a7c {0}\u00a74 parancs m\u00e1r bevan \u00e1ll\u00edtva \u00a7c{1}\u00a74-hoz/-hez. powerToolAttach=\u00a7c{0}\u00a76 berakva PowerToolnak a(z) {1}-ra/-re. powerToolClearAll=\u00a76\u00d6sszes PowerTool parancs ki\u00fcr\u00edtve. @@ -422,7 +422,7 @@ pWeatherReset=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1sa vissza lett \u pWeatherSet=\u00a76A j\u00e1t\u00e9kos id\u0151j\u00e1r\u00e1s\u00e1nak be\u00e1ll\u00edt\u00e1sa \u00a7c{0}\u00a76 \: \u00a7c{1}. questionFormat=\u00a72[K\u00e9rd\u00e9s]\u00a7r {0} radiusTooBig=\u00a74Ez a sug\u00e1r t\u00fal nagy\! A maximum\: {0}. -readNextPage=\u00a76\u00cdrd be a\u00a7c /{0} {1} \u00a76 parancsot a k\u00f6vetkez\u0151 oldal elolvas\u00e1s\u00e1hoz. +readNextPage=\u00a76\u00cdrd be a\u00a7c /{0} {1}\u00a76 parancsot a k\u00f6vetkez\u0151 oldal elolvas\u00e1s\u00e1hoz. recentlyForeverAlone=\u00a74{0} a k\u00f6zelm\u00faltban ment. recipe=\u00a76\u00a7c{0}\u00a76 receptje (\u00a7c{1}\u00a76 az \u00a7c{2}\u00a76-b\u00f3l/b\u0151l) recipeBadIndex=Nincs recept ennyihez. @@ -524,7 +524,7 @@ totalSellableAll=\u00a7aAz \u00f6sszes eladhat\u00f3 dolgod\u00e9rt \u00e9s bloc totalSellableBlocks=\u00a7aAz \u00f6sszes eladhat\u00f3 blockjaid\u00e9rt \u00a7c{1}\u00a7a-t kapsz. totalWorthAll=\u00a7aMinden t\u00e1rgyat \u00e9s blokkot eladt\u00e1l egy teljes \u00e9rt\u00e9kre \u00a7c{1}\u00a7a. totalWorthBlocks=\u00a7aEladtad az \u00f6sszes blokkot, \u00f6sszesen \u00e9rt\u00e9kben \u00a7c{1}\u00a7a. -tps=\u00a76Jelenlegi TPS\= {0} +tps=\u00a76Jelenlegi TPS \= {0} tradeSignEmpty=\u00a74A t\u00e1bla nem tud neked adni \u00e1rut. tradeSignEmptyOwner=\u00a74A t\u00e1bl\u00e1b\u00f3l m\u00e9g nem v\u00e1s\u00e1rolt senki. treeFailure=\u00a74Fa termel\u00e9si hiba. Pr\u00f3b\u00e1ld \u00fajra a f\u00f6ld\u00f6n. @@ -546,7 +546,7 @@ unmutedPlayer=\u00a7c {0}\u00a76-r\u00f3l fel lett oldva a n\u00e9m\u00edt\u00e1 unsafeTeleportDestination=\u00a74Ahova teleport\u00e1lni szeretn\u00e9l nem biztons\u00e1gos \u00e9s a biztons\u00e1gos teleport\u00e1l\u00e1s kikapcsolva. unvanishedReload=\u00a74Az \u00fajrat\u00f6lt\u00e9s k\u00f6vetkezt\u00e9ben mindenki l\u00e1tni fog. upgradingFilesError=Hiba t\u00f6rt\u00e9nt a f\u00e1jlok friss\u00edt\u00e9se k\u00f6zben. -uptime=\u00a76M\u00fbk\u00f6d\u00e9si id\u0151\:\u00a7c {0} +uptime=\u00a76M\u0171k\u00f6d\u00e9si id\u0151\:\u00a7c {0} userAFK=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy v\u00e1laszolni fog. userAFKWithMessage=\u00a75{0} \u00a75most AFK \u00e9s nem biztos, hogy fog v\u00e1laszolni. {1} userdataMoveBackError=Nem siker\u00fclt az userdata/{0}.tmp \u00e1thelyez\u00e9se a userdata/{1}\! @@ -589,7 +589,7 @@ whoisGeoLocation=\u00a76 - Helyezked\u00e9s\:\u00a7r {0} whoisGod=\u00a76 - Isten m\u00f3d\:\u00a7r {0} whoisHealth=\u00a76 - \u00c9let\:\u00a7r {0}/20 whoisHunger=\u00a76 - \u00c9hs\u00e9g\:\u00a7r {0}/20 (+{1} tel\u00edtetts\u00e9g) -whoisIPAddress=\u00a76 - IP C\u00edm\:\u00a7r {0} +whoisIPAddress=\u00a76 - IP c\u00edm\:\u00a7r {0} whoisJail=\u00a76 - B\u00f6rt\u00f6n\:\u00a7r {0} whoisLocation=\u00a76 - Helye\:\u00a7r ({0}, {1}, {2}, {3}) whoisMoney=\u00a76 - P\u00e9nz\:\u00a7r {0} @@ -602,7 +602,7 @@ whoisTop=\u00a76 \=\=\=\=\=\= Ki is \u0151:\u00a7c {0} \u00a76\=\=\=\=\=\= whoisUuid=\u00a76 - UUID\:\u00a7r {0} worth=\u00a7aStackel\u00e9s {0} \u00e9rdemes \u00a7c{1}\u00a7a ({2} elem(ek) {3} minden) worthMeta=\u00a7aStackel\u00e9s {0} az {1} \u00e9rt\u00e9k\u0171 metaadatokkal \u00a7c{2}\u00a7a ({3} elem(ek) {4} minden) -worthSet=\u00a76\u00c1r be\u00e1ll\u00edtva +worthSet=\u00a76\u00c1r be\u00e1ll\u00edtva. year=\u00e9v years=\u00e9v youAreHealed=\u00a76\u00c9leted felt\u00f6ltve. From a44775cafb9cd01318c89c6a9896a07cee772f95 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 17 Jul 2018 07:33:14 +0100 Subject: [PATCH 022/140] Prevent users being duplicated in the ignore list Fixes #2064, as well as alleviating the issue encountered in kangarko/ChatControl-Pro#627 for EssentialsX users. --- Essentials/src/com/earth2me/essentials/UserData.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 1fe8f5581..9a0265438 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -467,10 +467,11 @@ public abstract class UserData extends PlayerExtension implements IConf { } public void setIgnoredPlayer(IUser user, boolean set) { + final String entry = user.getName().toLowerCase(Locale.ENGLISH); if (set) { - ignoredPlayers.add(user.getName().toLowerCase(Locale.ENGLISH)); + if (!ignoredPlayers.contains(entry)) ignoredPlayers.add(entry); } else { - ignoredPlayers.remove(user.getName().toLowerCase(Locale.ENGLISH)); + ignoredPlayers.remove(entry); } setIgnoredPlayers(ignoredPlayers); } From 03b25a0f063d50046e9bb0870db6f6ddef216f51 Mon Sep 17 00:00:00 2001 From: DoNotSpamPls Date: Tue, 17 Jul 2018 11:38:01 +0300 Subject: [PATCH 023/140] Set target to Java 8 (for 1.13) & update Maven plugins (#1922) @DoNotSpamPls This is the same PR as the last one (PR #1823), but I messed that one up accidently, sorry for that! --- .travis.yml | 18 ------------------ Essentials/pom.xml | 4 ++-- EssentialsGeoIP/pom.xml | 8 +------- EssentialsXMPP/pom.xml | 11 +++-------- README.md | 2 +- nbactions.xml | 2 -- nms/ReflectionProvider/pom.xml | 7 ------- nms/UpdatedMetaProvider/pom.xml | 9 +-------- pom.xml | 26 +++++++++++++------------- 9 files changed, 21 insertions(+), 66 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c72688b41..000000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: java -jdk: - - oraclejdk7 - - openjdk7 - - openjdk6 -script: mvn compile test -install: true -notifications: - irc: - channels: - - "irc.esper.net#drtshock" - on_success: change - on_failure: always - email: - recipients: - - "drtshock13@gmail.com" - on_success: change - on_failure: always diff --git a/Essentials/pom.xml b/Essentials/pom.xml index c2e2b8480..ae5d8849e 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -23,7 +23,7 @@ org.apache.maven.plugins maven-compiler-plugin - 2.3.2 + 3.7.0 false @@ -31,7 +31,7 @@ org.apache.maven.plugins maven-shade-plugin - 1.4 + 3.1.0 package diff --git a/EssentialsGeoIP/pom.xml b/EssentialsGeoIP/pom.xml index 1f69e5578..b6e839e79 100644 --- a/EssentialsGeoIP/pom.xml +++ b/EssentialsGeoIP/pom.xml @@ -18,12 +18,6 @@ - - scm:git:https://github.com/essentials/Essentials.git - scm:git:https://github.com/essentials/Essentials.git - https://github.com/essentials/Essentials - - net.ess3 @@ -42,7 +36,7 @@ org.apache.maven.plugins maven-shade-plugin - 2.1 + 3.1.0 package diff --git a/EssentialsXMPP/pom.xml b/EssentialsXMPP/pom.xml index a127be087..412cc76ad 100644 --- a/EssentialsXMPP/pom.xml +++ b/EssentialsXMPP/pom.xml @@ -23,11 +23,13 @@ net.ess3 EssentialsX ${project.version} + provided org.igniterealtime.smack smack 3.2.1 + compile @@ -36,7 +38,7 @@ org.apache.maven.plugins maven-shade-plugin - 2.1 + 3.1.0 package @@ -45,13 +47,6 @@ - - - - org.igniterealtime.smack:smack - - - diff --git a/README.md b/README.md index b5be087ef..7779623dc 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ EssentialsX is almost a completely drop-in replacement for Essentials. However, * **If you have an unsupported permissions plugin but still wish to use wildcards, enable `use-bukkit-permissions` in the configuration. Otherwise, the plugin will fall back to config-based permissions.** -* **EssentialsX requires Java 7 or higher.** +* **EssentialsX requires Java 8 or higher.** * **1.7.10 is no longer supported.** diff --git a/nbactions.xml b/nbactions.xml index bdec16480..b4d59eee5 100644 --- a/nbactions.xml +++ b/nbactions.xml @@ -6,8 +6,6 @@ package dependency:copy - - diff --git a/nms/ReflectionProvider/pom.xml b/nms/ReflectionProvider/pom.xml index 101327ba5..6906b71f7 100644 --- a/nms/ReflectionProvider/pom.xml +++ b/nms/ReflectionProvider/pom.xml @@ -12,13 +12,6 @@ ReflectionProvider - - - spigot-repo - https://hub.spigotmc.org/nexus/content/groups/public/ - - - net.ess3 diff --git a/nms/UpdatedMetaProvider/pom.xml b/nms/UpdatedMetaProvider/pom.xml index 9ed83fb85..dfa6a4f14 100644 --- a/nms/UpdatedMetaProvider/pom.xml +++ b/nms/UpdatedMetaProvider/pom.xml @@ -11,14 +11,7 @@ 4.0.0 UpdatedMetaProvider - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/groups/public/ - - - + net.ess3 diff --git a/pom.xml b/pom.xml index 8e557c94b..6c81a14b1 100644 --- a/pom.xml +++ b/pom.xml @@ -17,9 +17,9 @@ - scm:git:https://github.com/drtshock/Essentials.git - scm:git:https://github.com/drtshock/Essentials.git - https://github.com/drtshock/Essentials + scm:git:https://github.com/EssentialsX/Essentials.git + scm:git:https://github.com/EssentialsX/Essentials.git + https://github.com/EssentialsX/Essentials @@ -59,13 +59,13 @@ junit junit - 4.11 + 4.12 test org.projectlombok lombok - 1.12.2 + 1.16.20 provided @@ -77,10 +77,10 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + 3.7.0 - 1.7 - 1.7 + 1.8 + 1.8 @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-dependency-plugin - 2.8 + 3.0.2 jars true @@ -155,7 +155,7 @@ maven-resources-plugin - 2.6 + 3.0.2 package @@ -186,7 +186,7 @@ com.google.code.maven-replacer-plugin replacer - 1.5.2 + 1.5.3 process-sources @@ -240,12 +240,12 @@ org.apache.maven.plugins maven-javadoc-plugin - 2.9.1 + 3.0.0 org.apache.maven.plugins maven-deploy-plugin - 2.8.1 + 2.8.2 true From 768b92749f769b94992ace988f435b005c26a64b Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 29 Jul 2018 17:39:32 +0100 Subject: [PATCH 024/140] update bukkit to 1.13-R0.1-SNAPSHOT. This commit just fixes compilation errors. --- .../com/earth2me/essentials/Enchantments.java | 10 ++--- .../essentials/EssentialsBlockListener.java | 8 +++- .../src/com/earth2me/essentials/ItemDb.java | 8 +++- .../earth2me/essentials/OfflinePlayer.java | 41 +++++++++++++++++++ .../essentials/commands/Commandspawner.java | 8 +++- .../essentials/craftbukkit/FakeWorld.java | 7 +++- .../essentials/storage/BukkitConstructor.java | 18 ++------ .../essentials/utils/LocationUtil.java | 21 ++++++++-- Essentials/src/plugin.yml | 1 + .../com/earth2me/essentials/FakeServer.java | 25 +++++++---- .../src/net/ess3/nms/SpawnerProvider.java | 8 +++- pom.xml | 2 +- 12 files changed, 121 insertions(+), 36 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Enchantments.java b/Essentials/src/com/earth2me/essentials/Enchantments.java index d71233ee5..f8c957420 100644 --- a/Essentials/src/com/earth2me/essentials/Enchantments.java +++ b/Essentials/src/com/earth2me/essentials/Enchantments.java @@ -1,6 +1,8 @@ package com.earth2me.essentials; import com.earth2me.essentials.utils.NumberUtil; + +import org.bukkit.NamespacedKey; import org.bukkit.enchantments.Enchantment; import java.util.HashMap; @@ -200,11 +202,9 @@ public class Enchantments { } public static Enchantment getByName(String name) { - Enchantment enchantment; - if (NumberUtil.isInt(name)) { - enchantment = Enchantment.getById(Integer.parseInt(name)); - } else { - enchantment = Enchantment.getByName(name.toUpperCase(Locale.ENGLISH)); + Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(name.toLowerCase())); + if (enchantment == null) { + enchantment = Enchantment.getByName(name.toUpperCase()); } if (enchantment == null) { enchantment = ENCHANTMENTS.get(name.toLowerCase(Locale.ENGLISH)); diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index 59b6c0f97..dc6e954ba 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -31,8 +31,14 @@ public class EssentialsBlockListener implements Listener { if (is == null) { return; } + Material MOB_SPAWNER; + try { + MOB_SPAWNER = Material.SPAWNER; + } catch (Exception e) { + MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); + } - if (is.getType() == Material.MOB_SPAWNER && event.getItemInHand() != null && event.getPlayer() != null && event.getItemInHand().getType() == Material.MOB_SPAWNER) { + if (is.getType() == MOB_SPAWNER && event.getItemInHand() != null && event.getPlayer() != null && event.getItemInHand().getType() == MOB_SPAWNER) { final BlockState blockState = event.getBlockPlaced().getState(); if (blockState instanceof CreatureSpawner) { final CreatureSpawner spawner = (CreatureSpawner) blockState; diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 6f5ec31db0..b9d74510b 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -184,7 +184,13 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { } retval = ess.getServer().getUnsafe().modifyItemStack(retval, nbt); } - if (mat == Material.MOB_SPAWNER) { + Material MOB_SPAWNER; + try { + MOB_SPAWNER = Material.SPAWNER; + } catch (Exception e) { + MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); + } + if (mat == MOB_SPAWNER) { if (metaData == 0) metaData = EntityType.PIG.getTypeId(); try { retval = ess.getSpawnerProvider().setEntityType(retval, EntityType.fromId(metaData)); diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index ecf44956e..1d3ab0f71 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -9,6 +9,7 @@ import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; import org.bukkit.block.Block; import org.bukkit.block.PistonMoveReaction; +import org.bukkit.block.data.BlockData; import org.bukkit.conversations.Conversation; import org.bukkit.conversations.ConversationAbandonedEvent; import org.bukkit.entity.*; @@ -470,6 +471,11 @@ public class OfflinePlayer implements Player { public void sendBlockChange(Location lctn, Material mtrl, byte b) { } + @Override + public void sendBlockChange(Location loc, BlockData block) { + + } + @Override public void setLastDamageCause(EntityDamageEvent ede) { } @@ -639,6 +645,31 @@ public class OfflinePlayer implements Player { public void setPlayerListName(String name) { } + @Override + public String getPlayerListHeader() { + return null; + } + + @Override + public String getPlayerListFooter() { + return null; + } + + @Override + public void setPlayerListHeader(String header) { + + } + + @Override + public void setPlayerListFooter(String footer) { + + } + + @Override + public void setPlayerListHeaderFooter(String header, String footer) { + + } + @Override public String getPlayerListName() { return name; @@ -1191,6 +1222,16 @@ public class OfflinePlayer implements Player { public void setGliding(boolean b) { } + @Override + public boolean isSwimming() { + return false; + } + + @Override + public void setSwimming(boolean swimming) { + + } + @Override public void setAI(boolean b) { } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java index 33704ece1..1e24f752e 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java @@ -28,7 +28,13 @@ public class Commandspawner extends EssentialsCommand { } final Location target = LocationUtil.getTarget(user.getBase()); - if (target == null || target.getBlock().getType() != Material.MOB_SPAWNER) { + Material MOB_SPAWNER; + try { + MOB_SPAWNER = Material.SPAWNER; + } catch (Exception e) { + MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); + } + if (target == null || target.getBlock().getType() != MOB_SPAWNER) { throw new Exception(tl("mobSpawnTarget")); } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index d6810d023..1f2b0409d 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -154,6 +154,11 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + @Override + public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) { + return false; + } + @Override public LightningStrike strikeLightning(Location lctn) { throw new UnsupportedOperationException("Not supported yet."); @@ -703,4 +708,4 @@ public class FakeWorld implements World { public List getNearbyEntities(Location loc, double x, double y, double z) { throw new UnsupportedOperationException("Not supported yet."); } -} \ No newline at end of file +} diff --git a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java index 959d5e3d6..f32aefd73 100644 --- a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java +++ b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java @@ -1,9 +1,11 @@ package com.earth2me.essentials.storage; +import com.earth2me.essentials.Enchantments; import com.earth2me.essentials.utils.NumberUtil; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @@ -94,13 +96,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { if (split3.length < 1) { continue; } - Enchantment enchantment; - if (NumberUtil.isInt(split3[0])) { - final int enchantId = Integer.parseInt(split3[0]); - enchantment = Enchantment.getById(enchantId); - } else { - enchantment = Enchantment.getByName(split3[0].toUpperCase(Locale.ENGLISH)); - } + Enchantment enchantment = Enchantments.getByName(split3[0]); if (enchantment == null) { continue; } @@ -128,13 +124,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { if (split.length == 0) { return null; } - Enchantment enchant; - if (NumberUtil.isInt(split[0])) { - final int typeId = Integer.parseInt(split[0]); - enchant = Enchantment.getById(typeId); - } else { - enchant = Enchantment.getByName(split[0].toUpperCase(Locale.ENGLISH)); - } + Enchantment enchant = Enchantments.getByName(split[0]); if (enchant == null) { return null; } diff --git a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java index 6fdfbe05d..ec616f043 100644 --- a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java @@ -30,7 +30,10 @@ public class LocationUtil { TRANSPARENT_MATERIALS.addAll(HOLLOW_MATERIALS); TRANSPARENT_MATERIALS.add(Material.WATER); - TRANSPARENT_MATERIALS.add(Material.FLOWING_WATER); + try { + TRANSPARENT_MATERIALS.add(Material.valueOf("FLOWING_WATER")); + } catch (Exception ignored) { // 1.13 WATER uses Levelled + } } public static final int RADIUS = 3; @@ -109,7 +112,6 @@ public class LocationUtil { switch (below.getType()) { case LAVA: - case FLOWING_LAVA: case FIRE: case BLACK_BED: case BLUE_BED: @@ -129,8 +131,19 @@ public class LocationUtil { case YELLOW_BED: return true; } - - if (world.getBlockAt(x, y, z).getType() == Material.PORTAL) { + try { + if (below.getType() == Material.valueOf("FLOWING_LAVA")) { + return true; + } + } catch (Exception ignored) { // 1.13 LAVA uses Levelled + } + Material PORTAL; + try { + PORTAL = Material.NETHER_PORTAL; + } catch (Exception ignored) { + PORTAL = Material.valueOf("PORTAL"); + } + if (world.getBlockAt(x, y, z).getType() == PORTAL) { return true; } diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 03c1374a7..0117f30a9 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -7,6 +7,7 @@ website: http://tiny.cc/EssentialsCommands description: Provides an essential, core set of commands for Bukkit. softdepend: [Vault] authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, md_5, Iaccidentally, drtshock, vemacs, SupaHam, md678685] +api-version: 1.13 commands: afk: description: Marks you as away-from-keyboard. diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 20b0d0fad..75078fa3c 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -45,6 +45,7 @@ import java.io.UnsupportedEncodingException; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.Future; +import java.util.function.Consumer; import java.util.logging.Logger; @@ -207,11 +208,6 @@ public class FakeServer implements Server { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public void cancelAllTasks() { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public boolean isCurrentlyRunning(int i) { throw new UnsupportedOperationException("Not supported yet."); @@ -971,8 +967,23 @@ public class FakeServer implements Server { } @Override - public BlockData createData(Material material) { - throw new UnsupportedOperationException("Not supported yet."); + public BlockData createBlockData(Material material) { + return null; + } + + @Override + public BlockData createBlockData(Material material, Consumer consumer) { + return null; + } + + @Override + public BlockData createBlockData(String data) throws IllegalArgumentException { + return null; + } + + @Override + public BlockData createBlockData(Material material, String data) throws IllegalArgumentException { + return null; } @Override diff --git a/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java b/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java index 9f74d9f4f..702fbe7d5 100644 --- a/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java +++ b/nms/NMSProvider/src/net/ess3/nms/SpawnerProvider.java @@ -31,7 +31,13 @@ public abstract class SpawnerProvider implements Provider { public boolean tryProvider() { try { EntityType type = EntityType.CREEPER; - ItemStack is = setEntityType(new ItemStack(Material.MOB_SPAWNER), type); + Material MOB_SPAWNER; + try { + MOB_SPAWNER = Material.SPAWNER; + } catch (Exception e) { + MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); + } + ItemStack is = setEntityType(new ItemStack(MOB_SPAWNER), type); EntityType readType = getEntityType(is); return type == readType; } catch (Throwable t) { diff --git a/pom.xml b/pom.xml index 6c81a14b1..c7693b8f3 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ org.bukkit bukkit - 18w02a-R0.1-SNAPSHOT + 1.13-R0.1-SNAPSHOT provided From bef440760a168bfcc00390db9309bea415284bf0 Mon Sep 17 00:00:00 2001 From: md678685 Date: Sun, 5 Aug 2018 20:45:04 +0100 Subject: [PATCH 025/140] Remove deprecated economy libs and support None of these economy plugins are supported any more, and removing these allows EssentialsX to be used as a dependency without locally `mvn install`ing the plugin. --- Essentials/pom.xml | 28 -- .../essentials/register/payment/Methods.java | 5 - .../register/payment/methods/BOSE7.java | 271 --------------- .../register/payment/methods/MCUR.java | 163 --------- .../register/payment/methods/iCo5.java | 312 ------------------ .../register/payment/methods/iCo6.java | 201 ----------- lib/BOSEconomy.jar | Bin 279896 -> 0 bytes lib/MultiCurrency.jar | Bin 13232 -> 0 bytes lib/iCo5.jar | Bin 174297 -> 0 bytes lib/iCo6.jar | Bin 135693 -> 0 bytes 10 files changed, 980 deletions(-) delete mode 100644 Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java delete mode 100644 Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java delete mode 100644 Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java delete mode 100644 Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java delete mode 100644 lib/BOSEconomy.jar delete mode 100644 lib/MultiCurrency.jar delete mode 100644 lib/iCo5.jar delete mode 100644 lib/iCo6.jar diff --git a/Essentials/pom.xml b/Essentials/pom.xml index ae5d8849e..cfdfa07c9 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -45,34 +45,6 @@ - - BOSEconomy - BOSEconomy - v0.7.8.1 - system - ${project.basedir}/../lib/BOSEconomy.jar - - - iConomy - iConomy5 - 5 - system - ${project.basedir}/../lib/iCo5.jar - - - iConomy - iConomy6 - 6 - system - ${project.basedir}/../lib/iCo6.jar - - - MultiCurrency - MultiCurrency - 2.2 - system - ${project.basedir}/../lib/MultiCurrency.jar - net.milkbowl.vault Vault diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java index 3cfa6b630..9316da190 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java @@ -42,11 +42,6 @@ public class Methods { * Implement all methods along with their respective name & class. */ private static void _init() { - addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo6()); - addMethod("iConomy", new com.earth2me.essentials.register.payment.methods.iCo5()); - addMethod("BOSEconomy", new com.earth2me.essentials.register.payment.methods.BOSE7()); - addMethod("Currency", new com.earth2me.essentials.register.payment.methods.MCUR()); - Dependencies.add("MultiCurrency"); addMethod("Vault", new com.earth2me.essentials.register.payment.methods.VaultEco()); } diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java deleted file mode 100644 index 5616d2d95..000000000 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java +++ /dev/null @@ -1,271 +0,0 @@ -package com.earth2me.essentials.register.payment.methods; - -import com.earth2me.essentials.register.payment.Method; -import cosine.boseconomy.BOSEconomy; -import org.bukkit.plugin.Plugin; - - -/** - * BOSEconomy 7 Implementation of Method - * - * @author Acrobot - * @author Nijikokun (@nijikokun) @copyright (c) 2011 @license AOL license - * - */ -public class BOSE7 implements Method { - private BOSEconomy BOSEconomy; - - @Override - public BOSEconomy getPlugin() { - return this.BOSEconomy; - } - - @Override - public String getName() { - return "BOSEconomy"; - } - - @Override - public String getLongName() { - return getName(); - } - - @Override - public String getVersion() { - return "0.7.0"; - } - - @Override - public int fractionalDigits() { - return this.BOSEconomy.getFractionalDigits(); - } - - @Override - public String format(double amount) { - String currency = this.BOSEconomy.getMoneyNamePlural(); - - if (amount == 1) { - currency = this.BOSEconomy.getMoneyName(); - } - - return amount + " " + currency; - } - - @Override - public boolean hasBanks() { - return true; - } - - @Override - public boolean hasBank(String bank) { - return this.BOSEconomy.bankExists(bank); - } - - @Override - public boolean hasAccount(String name) { - return this.BOSEconomy.playerRegistered(name, false); - } - - @Override - public boolean hasBankAccount(String bank, String name) { - return this.BOSEconomy.isBankOwner(bank, name) || this.BOSEconomy.isBankMember(bank, name); - } - - @Override - public boolean createAccount(String name) { - if (hasAccount(name)) { - return false; - } - - this.BOSEconomy.registerPlayer(name); - return true; - } - - @Override - public boolean createAccount(String name, Double balance) { - if (hasAccount(name)) { - return false; - } - - this.BOSEconomy.registerPlayer(name); - this.BOSEconomy.setPlayerMoney(name, balance, false); - return true; - } - - @Override - public MethodAccount getAccount(String name) { - if (!hasAccount(name)) { - return null; - } - - return new BOSEAccount(name, this.BOSEconomy); - } - - @Override - public MethodBankAccount getBankAccount(String bank, String name) { - if (!hasBankAccount(bank, name)) { - return null; - } - - return new BOSEBankAccount(bank, BOSEconomy); - } - - @Override - public boolean isCompatible(Plugin plugin) { - return plugin.getDescription().getName().equalsIgnoreCase("boseconomy") && plugin instanceof BOSEconomy && !plugin.getDescription().getVersion().equals("0.6.2"); - } - - @Override - public void setPlugin(Plugin plugin) { - BOSEconomy = (BOSEconomy) plugin; - } - - - public class BOSEAccount implements MethodAccount { - private final String name; - private final BOSEconomy BOSEconomy; - - public BOSEAccount(String name, BOSEconomy bOSEconomy) { - this.name = name; - this.BOSEconomy = bOSEconomy; - } - - @Override - public double balance() { - return this.BOSEconomy.getPlayerMoneyDouble(this.name); - } - - @Override - public boolean set(double amount) { - return this.BOSEconomy.setPlayerMoney(this.name, amount, false); - } - - @Override - public boolean add(double amount) { - return this.BOSEconomy.addPlayerMoney(this.name, amount, false); - } - - @Override - public boolean subtract(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setPlayerMoney(this.name, (balance - amount), false); - } - - @Override - public boolean multiply(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setPlayerMoney(this.name, (balance * amount), false); - } - - @Override - public boolean divide(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setPlayerMoney(this.name, (balance / amount), false); - } - - @Override - public boolean hasEnough(double amount) { - return (this.balance() >= amount); - } - - @Override - public boolean hasOver(double amount) { - return (this.balance() > amount); - } - - @Override - public boolean hasUnder(double amount) { - return (this.balance() < amount); - } - - @Override - public boolean isNegative() { - return (this.balance() < 0); - } - - @Override - public boolean remove() { - return false; - } - } - - - public class BOSEBankAccount implements MethodBankAccount { - private final String bank; - private final BOSEconomy BOSEconomy; - - public BOSEBankAccount(String bank, BOSEconomy bOSEconomy) { - this.bank = bank; - this.BOSEconomy = bOSEconomy; - } - - @Override - public String getBankName() { - return this.bank; - } - - @Override - public int getBankId() { - return -1; - } - - @Override - public double balance() { - return this.BOSEconomy.getBankMoneyDouble(bank); - } - - @Override - public boolean set(double amount) { - return this.BOSEconomy.setBankMoney(bank, amount, true); - } - - @Override - public boolean add(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setBankMoney(bank, (balance + amount), false); - } - - @Override - public boolean subtract(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setBankMoney(bank, (balance - amount), false); - } - - @Override - public boolean multiply(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setBankMoney(bank, (balance * amount), false); - } - - @Override - public boolean divide(double amount) { - double balance = this.balance(); - return this.BOSEconomy.setBankMoney(bank, (balance / amount), false); - } - - @Override - public boolean hasEnough(double amount) { - return (this.balance() >= amount); - } - - @Override - public boolean hasOver(double amount) { - return (this.balance() > amount); - } - - @Override - public boolean hasUnder(double amount) { - return (this.balance() < amount); - } - - @Override - public boolean isNegative() { - return (this.balance() < 0); - } - - @Override - public boolean remove() { - return this.BOSEconomy.removeBank(bank); - } - } -} \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java deleted file mode 100644 index b470051b6..000000000 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.earth2me.essentials.register.payment.methods; - -import com.earth2me.essentials.register.payment.Method; -import me.ashtheking.currency.Currency; -import me.ashtheking.currency.CurrencyList; -import org.bukkit.plugin.Plugin; - - -/** - * MultiCurrency Method implementation. - * - * @author Acrobot @copyright (c) 2011 @license AOL license - */ -public class MCUR implements Method { - private Currency currencyList; - - @Override - public Object getPlugin() { - return this.currencyList; - } - - @Override - public String getName() { - return "MultiCurrency"; - } - - @Override - public String getLongName() { - return getName(); - } - - @Override - public String getVersion() { - return "0.09"; - } - - @Override - public int fractionalDigits() { - return -1; - } - - @Override - public String format(double amount) { - return amount + " Currency"; - } - - @Override - public boolean hasBanks() { - return false; - } - - @Override - public boolean hasBank(String bank) { - return false; - } - - @Override - public boolean hasAccount(String name) { - return true; - } - - @Override - public boolean hasBankAccount(String bank, String name) { - return false; - } - - @Override - public boolean createAccount(String name) { - CurrencyList.setValue((String) CurrencyList.maxCurrency(name)[0], name, 0); - return true; - } - - @Override - public boolean createAccount(String name, Double balance) { - CurrencyList.setValue((String) CurrencyList.maxCurrency(name)[0], name, balance); - return true; - } - - @Override - public MethodAccount getAccount(String name) { - return new MCurrencyAccount(name); - } - - @Override - public MethodBankAccount getBankAccount(String bank, String name) { - return null; - } - - @Override - public boolean isCompatible(Plugin plugin) { - return (plugin.getDescription().getName().equalsIgnoreCase("Currency") || plugin.getDescription().getName().equalsIgnoreCase("MultiCurrency")) && plugin instanceof Currency; - } - - @Override - public void setPlugin(Plugin plugin) { - currencyList = (Currency) plugin; - } - - - public class MCurrencyAccount implements MethodAccount { - private final String name; - - public MCurrencyAccount(String name) { - this.name = name; - } - - @Override - public double balance() { - return CurrencyList.getValue((String) CurrencyList.maxCurrency(name)[0], name); - } - - @Override - public boolean set(double amount) { - CurrencyList.setValue((String) CurrencyList.maxCurrency(name)[0], name, amount); - return true; - } - - @Override - public boolean add(double amount) { - return CurrencyList.add(name, amount); - } - - @Override - public boolean subtract(double amount) { - return CurrencyList.subtract(name, amount); - } - - @Override - public boolean multiply(double amount) { - return CurrencyList.multiply(name, amount); - } - - @Override - public boolean divide(double amount) { - return CurrencyList.divide(name, amount); - } - - @Override - public boolean hasEnough(double amount) { - return CurrencyList.hasEnough(name, amount); - } - - @Override - public boolean hasOver(double amount) { - return CurrencyList.hasOver(name, amount); - } - - @Override - public boolean hasUnder(double amount) { - return CurrencyList.hasUnder(name, amount); - } - - @Override - public boolean isNegative() { - return CurrencyList.isNegative(name); - } - - @Override - public boolean remove() { - return CurrencyList.remove(name); - } - } -} diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java deleted file mode 100644 index 8a5dd6428..000000000 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java +++ /dev/null @@ -1,312 +0,0 @@ -package com.earth2me.essentials.register.payment.methods; - -import com.earth2me.essentials.register.payment.Method; -import com.iConomy.iConomy; -import com.iConomy.system.Account; -import com.iConomy.system.BankAccount; -import com.iConomy.system.Holdings; -import com.iConomy.util.Constants; -import org.bukkit.plugin.Plugin; - - -/** - * iConomy 5 Implementation of Method - * - * @author Nijikokun (@nijikokun) @copyright (c) 2011 @license AOL license - * - */ -public class iCo5 implements Method { - private iConomy iConomy; - - @Override - public iConomy getPlugin() { - return this.iConomy; - } - - @Override - public String getName() { - return "iConomy"; - } - - @Override - public String getLongName() { - return getName(); - } - - @Override - public String getVersion() { - return "5"; - } - - @Override - public int fractionalDigits() { - return 2; - } - - @Override - public String format(double amount) { - return com.iConomy.iConomy.format(amount); - } - - @Override - public boolean hasBanks() { - return Constants.Banking; - } - - @Override - public boolean hasBank(String bank) { - return (hasBanks()) && com.iConomy.iConomy.Banks.exists(bank); - } - - @Override - public boolean hasAccount(String name) { - return com.iConomy.iConomy.hasAccount(name); - } - - @Override - public boolean hasBankAccount(String bank, String name) { - return (hasBank(bank)) && com.iConomy.iConomy.getBank(bank).hasAccount(name); - } - - @Override - public boolean createAccount(String name) { - if (hasAccount(name)) { - return false; - } - - return com.iConomy.iConomy.Accounts.create(name); - } - - @Override - public boolean createAccount(String name, Double balance) { - if (hasAccount(name)) { - return false; - } - - if (!com.iConomy.iConomy.Accounts.create(name)) { - return false; - } - - getAccount(name).set(balance); - - return true; - } - - @Override - public MethodAccount getAccount(String name) { - return new iCoAccount(com.iConomy.iConomy.getAccount(name)); - } - - @Override - public MethodBankAccount getBankAccount(String bank, String name) { - return new iCoBankAccount(com.iConomy.iConomy.getBank(bank).getAccount(name)); - } - - @Override - public boolean isCompatible(Plugin plugin) { - return plugin.getDescription().getName().equalsIgnoreCase("iconomy") && plugin.getClass().getName().equals("com.iConomy.iConomy") && plugin instanceof iConomy; - } - - @Override - public void setPlugin(Plugin plugin) { - iConomy = (iConomy) plugin; - } - - - public class iCoAccount implements MethodAccount { - private final Account account; - private final Holdings holdings; - - public iCoAccount(Account account) { - this.account = account; - this.holdings = account.getHoldings(); - } - - public Account getiCoAccount() { - return account; - } - - @Override - public double balance() { - return this.holdings.balance(); - } - - @Override - public boolean set(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.set(amount); - return true; - } - - @Override - public boolean add(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.add(amount); - return true; - } - - @Override - public boolean subtract(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.subtract(amount); - return true; - } - - @Override - public boolean multiply(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.multiply(amount); - return true; - } - - @Override - public boolean divide(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.divide(amount); - return true; - } - - @Override - public boolean hasEnough(double amount) { - return this.holdings.hasEnough(amount); - } - - @Override - public boolean hasOver(double amount) { - return this.holdings.hasOver(amount); - } - - @Override - public boolean hasUnder(double amount) { - return this.holdings.hasUnder(amount); - } - - @Override - public boolean isNegative() { - return this.holdings.isNegative(); - } - - @Override - public boolean remove() { - if (this.account == null) { - return false; - } - this.account.remove(); - return true; - } - } - - - public class iCoBankAccount implements MethodBankAccount { - private final BankAccount account; - private final Holdings holdings; - - public iCoBankAccount(BankAccount account) { - this.account = account; - this.holdings = account.getHoldings(); - } - - public BankAccount getiCoBankAccount() { - return account; - } - - @Override - public String getBankName() { - return this.account.getBankName(); - } - - @Override - public int getBankId() { - return this.account.getBankId(); - } - - @Override - public double balance() { - return this.holdings.balance(); - } - - @Override - public boolean set(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.set(amount); - return true; - } - - @Override - public boolean add(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.add(amount); - return true; - } - - @Override - public boolean subtract(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.subtract(amount); - return true; - } - - @Override - public boolean multiply(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.multiply(amount); - return true; - } - - @Override - public boolean divide(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.divide(amount); - return true; - } - - @Override - public boolean hasEnough(double amount) { - return this.holdings.hasEnough(amount); - } - - @Override - public boolean hasOver(double amount) { - return this.holdings.hasOver(amount); - } - - @Override - public boolean hasUnder(double amount) { - return this.holdings.hasUnder(amount); - } - - @Override - public boolean isNegative() { - return this.holdings.isNegative(); - } - - @Override - public boolean remove() { - if (this.account == null) { - return false; - } - this.account.remove(); - return true; - } - } -} \ No newline at end of file diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java deleted file mode 100644 index 0c099a782..000000000 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java +++ /dev/null @@ -1,201 +0,0 @@ -package com.earth2me.essentials.register.payment.methods; - -import com.earth2me.essentials.register.payment.Method; -import com.iCo6.iConomy; -import com.iCo6.system.Account; -import com.iCo6.system.Accounts; -import com.iCo6.system.Holdings; -import org.bukkit.plugin.Plugin; - - -/** - * iConomy 6 Implementation of Method - * - * @author Nijikokun (@nijikokun) @copyright (c) 2011 @license AOL license - * - */ -public class iCo6 implements Method { - private iConomy iConomy; - - @Override - public iConomy getPlugin() { - return this.iConomy; - } - - @Override - public String getName() { - return "iConomy"; - } - - @Override - public String getLongName() { - return getName(); - } - - @Override - public String getVersion() { - return "6"; - } - - @Override - public int fractionalDigits() { - return 2; - } - - @Override - public String format(double amount) { - return com.iCo6.iConomy.format(amount); - } - - @Override - public boolean hasBanks() { - return false; - } - - @Override - public boolean hasBank(String bank) { - return false; - } - - @Override - public boolean hasAccount(String name) { - return (new Accounts()).exists(name); - } - - @Override - public boolean hasBankAccount(String bank, String name) { - return false; - } - - @Override - public boolean createAccount(String name) { - if (hasAccount(name)) { - return false; - } - - return (new Accounts()).create(name); - } - - @Override - public boolean createAccount(String name, Double balance) { - if (hasAccount(name)) { - return false; - } - - return (new Accounts()).create(name, balance); - } - - @Override - public MethodAccount getAccount(String name) { - return new iCoAccount((new Accounts()).get(name)); - } - - @Override - public MethodBankAccount getBankAccount(String bank, String name) { - return null; - } - - @Override - public boolean isCompatible(Plugin plugin) { - return plugin.getDescription().getName().equalsIgnoreCase("iconomy") && plugin.getClass().getName().equals("com.iCo6.iConomy") && plugin instanceof iConomy; - } - - @Override - public void setPlugin(Plugin plugin) { - iConomy = (iConomy) plugin; - } - - - public class iCoAccount implements MethodAccount { - private final Account account; - private final Holdings holdings; - - public iCoAccount(Account account) { - this.account = account; - this.holdings = account.getHoldings(); - } - - public Account getiCoAccount() { - return account; - } - - @Override - public double balance() { - return this.holdings.getBalance(); - } - - @Override - public boolean set(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.setBalance(amount); - return true; - } - - @Override - public boolean add(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.add(amount); - return true; - } - - @Override - public boolean subtract(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.subtract(amount); - return true; - } - - @Override - public boolean multiply(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.multiply(amount); - return true; - } - - @Override - public boolean divide(double amount) { - if (this.holdings == null) { - return false; - } - this.holdings.divide(amount); - return true; - } - - @Override - public boolean hasEnough(double amount) { - return this.holdings.hasEnough(amount); - } - - @Override - public boolean hasOver(double amount) { - return this.holdings.hasOver(amount); - } - - @Override - public boolean hasUnder(double amount) { - return this.holdings.hasUnder(amount); - } - - @Override - public boolean isNegative() { - return this.holdings.isNegative(); - } - - @Override - public boolean remove() { - if (this.account == null) { - return false; - } - this.account.remove(); - return true; - } - } -} diff --git a/lib/BOSEconomy.jar b/lib/BOSEconomy.jar deleted file mode 100644 index 14add8d948165f9d366d9c99217c052520a157d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279896 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 lzdxqI;LMS+mig=&hoPk-2lT_W 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

    -SJOD>m8a{_BqH@*R*(7UP2BDKJ^g&G#BtD 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 diff --git a/lib/MultiCurrency.jar b/lib/MultiCurrency.jar deleted file mode 100644 index 2140699e6e159d98d718f8251d48cc44933e9b2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13232 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 diff --git a/lib/iCo5.jar b/lib/iCo5.jar deleted file mode 100644 index 71a5d7141de3ec1ae157791ef83dac83d9e98d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174297 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

    coW*!T{jy1 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 fI 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 From d3cd4e356dd331aeb4b205d49b2c0810a330f94b Mon Sep 17 00:00:00 2001 From: md678685 Date: Sun, 5 Aug 2018 20:51:39 +0100 Subject: [PATCH 026/140] Add missing OfflinePlayer 1.13 methods --- .../src/com/earth2me/essentials/OfflinePlayer.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index 1d3ab0f71..f74f348d3 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -234,6 +234,15 @@ public class OfflinePlayer implements Player { return server; } + @Override + public boolean isPersistent() { + return false; + } + + @Override + public void setPersistent(boolean persistent) { + } + public Vector getMomentum() { return getVelocity(); } @@ -1232,6 +1241,11 @@ public class OfflinePlayer implements Player { } + @Override + public boolean isRiptiding() { + return false; + } + @Override public void setAI(boolean b) { } From 504a7aef0f023f87798fc6833adb0731a219d6a0 Mon Sep 17 00:00:00 2001 From: md678685 Date: Mon, 6 Aug 2018 17:09:50 +0100 Subject: [PATCH 027/140] Add 1.13 mobs --- Essentials/src/com/earth2me/essentials/Mob.java | 8 ++++++++ .../src/com/earth2me/essentials/MobData.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/Mob.java b/Essentials/src/com/earth2me/essentials/Mob.java index f2519a7cf..548f62326 100644 --- a/Essentials/src/com/earth2me/essentials/Mob.java +++ b/Essentials/src/com/earth2me/essentials/Mob.java @@ -75,6 +75,14 @@ public enum Mob { HUSK("Husk", Enemies.ENEMY, "HUSK"), ILLUSIONER("Illusioner", Enemies.ENEMY, "ILLUSIONER"), PARROT("Parrot", Enemies.NEUTRAL, "PARROT"), + TURTLE("Turtle", Enemies.NEUTRAL, "TURTLE"), + PHANTOM("Phantom", Enemies.ENEMY, "PHANTOM"), + COD("Cod", Enemies.NEUTRAL, "COD"), + SALMON("Salmon", Enemies.NEUTRAL, "SALMON"), + PUFFERFISH("Pufferfish", Enemies.NEUTRAL, "PUFFERFISH"), + TROPICAL_FISH("Tropical Fish", Enemies.NEUTRAL, "TROPICAL_FISH"), + DROWNED("Drowned", Enemies.ENEMY, "DROWNED"), + DOLPHIN("Dolphin", Enemies.NEUTRAL, "DOLPHIN"), ; public static final Logger logger = Logger.getLogger("Essentials"); diff --git a/Essentials/src/com/earth2me/essentials/MobData.java b/Essentials/src/com/earth2me/essentials/MobData.java index 033123fa5..358c9749a 100644 --- a/Essentials/src/com/earth2me/essentials/MobData.java +++ b/Essentials/src/com/earth2me/essentials/MobData.java @@ -95,6 +95,18 @@ public enum MobData { BLUE_PARROT("blue", EntityType.PARROT, Parrot.Variant.BLUE, true), CYAN_PARROT("cyan", EntityType.PARROT, Parrot.Variant.CYAN, true), GRAY_PARROT("gray", EntityType.PARROT, Parrot.Variant.GRAY, true), + KOB_TROPICAL_FISH("kob", EntityType.TROPICAL_FISH, TropicalFish.Pattern.KOB, true), + SUNSTREAK_TROPICAL_FISH("sunstreak", EntityType.TROPICAL_FISH, TropicalFish.Pattern.SUNSTREAK, true), + SNOOPER_TROPICAL_FISH("snooper", EntityType.TROPICAL_FISH, TropicalFish.Pattern.SNOOPER, true), + DASHER_TROPICAL_FISH("dasher", EntityType.TROPICAL_FISH, TropicalFish.Pattern.DASHER, true), + BRINELY_TROPICAL_FISH("brinely", EntityType.TROPICAL_FISH, TropicalFish.Pattern.BRINELY, true), + SPOTTY_TROPICAL_FISH("spotty", EntityType.TROPICAL_FISH, TropicalFish.Pattern.SPOTTY, true), + FLOPPER_TROPICAL_FISH("flopper", EntityType.TROPICAL_FISH, TropicalFish.Pattern.FLOPPER, true), + STRIPEY_TROPICAL_FISH("stripey", EntityType.TROPICAL_FISH, TropicalFish.Pattern.STRIPEY, true), + GLITTER_TROPICAL_FISH("glitter", EntityType.TROPICAL_FISH, TropicalFish.Pattern.GLITTER, true), + BLOCKFISH_TROPICAL_FISH("blockfish", EntityType.TROPICAL_FISH, TropicalFish.Pattern.BLOCKFISH, true), + BETTY_TROPICAL_FISH("betty", EntityType.TROPICAL_FISH, TropicalFish.Pattern.BETTY, true), + CLAYFISH_TROPICAL_FISH("clayfish", EntityType.TROPICAL_FISH, TropicalFish.Pattern.CLAYFISH, true); ; @@ -252,6 +264,8 @@ public enum MobData { } } else if (this.value instanceof Parrot.Variant) { ((Parrot) spawned).setVariant((Parrot.Variant) this.value); + } else if (this.value instanceof TropicalFish.Pattern) { + ((TropicalFish) spawned).setPattern((TropicalFish.Pattern) this.value); } } } From b8a8232bc3db6ce8ca52cfd66e5eabe010a7e1c5 Mon Sep 17 00:00:00 2001 From: md678685 Date: Mon, 6 Aug 2018 18:19:30 +0100 Subject: [PATCH 028/140] Wrap all constructScalar calls with reflection Allows configs to function with both SnakeYAML 1.19 and 1.21. --- .../essentials/storage/BukkitConstructor.java | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java index 2d82f134e..894a5d3bb 100644 --- a/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java +++ b/Essentials/src/com/earth2me/essentials/storage/BukkitConstructor.java @@ -9,6 +9,7 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; import org.bukkit.plugin.Plugin; +import org.yaml.snakeyaml.constructor.BaseConstructor; import org.yaml.snakeyaml.constructor.CustomClassLoaderConstructor; import org.yaml.snakeyaml.introspector.PropertyUtils; import org.yaml.snakeyaml.nodes.*; @@ -32,28 +33,28 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { setPropertyUtils(propertyUtils); } + private Method constructScalarMethod = null; + + protected String constructScalarRefl(ScalarNode scalarNode) { + try { + if (constructScalarMethod == null) { + constructScalarMethod = BaseConstructor.class.getDeclaredMethod("constructScalar", ScalarNode.class); + } + return (String) constructScalarMethod.invoke(this, scalarNode); + } catch (NoSuchMethodException + | SecurityException + | IllegalAccessException + | IllegalArgumentException + | InvocationTargetException e) { + e.printStackTrace(); + } + + return null; + } + private class ConstructBukkitScalar extends ConstructScalar { - private Method constructScalarMethod = null; - - protected String constructScalarRefl(ScalarNode scalarNode) { - try { - if (constructScalarMethod == null) { - constructScalarMethod = ConstructScalar.class.getMethod("constructScalar", ScalarNode.class); - } - return (String) constructScalarMethod.invoke(this, scalarNode); - } catch (NoSuchMethodException - | SecurityException - | IllegalAccessException - | IllegalArgumentException - | InvocationTargetException e) { - e.printStackTrace(); - } - - return null; - } - @Override public Object construct(final Node node) { if (node.getType().equals(Material.class)) { @@ -191,6 +192,7 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { } private class ConstructBukkitMapping extends ConstructMapping { + @Override public Object construct(final Node node) { if (node.getType().equals(Location.class)) { @@ -203,25 +205,25 @@ public class BukkitConstructor extends CustomClassLoaderConstructor { return null; } for (NodeTuple nodeTuple : mnode.getValue()) { - final String key = (String) constructScalar((ScalarNode) nodeTuple.getKeyNode()); + final String key = constructScalarRefl((ScalarNode) nodeTuple.getKeyNode()); final ScalarNode snode = (ScalarNode) nodeTuple.getValueNode(); if (key.equalsIgnoreCase("world")) { - worldName = (String) constructScalar(snode); + worldName = constructScalarRefl(snode); } if (key.equalsIgnoreCase("x")) { - x = Double.parseDouble((String) constructScalar(snode)); + x = Double.parseDouble(constructScalarRefl(snode)); } if (key.equalsIgnoreCase("y")) { - y = Double.parseDouble((String) constructScalar(snode)); + y = Double.parseDouble(constructScalarRefl(snode)); } if (key.equalsIgnoreCase("z")) { - z = Double.parseDouble((String) constructScalar(snode)); + z = Double.parseDouble(constructScalarRefl(snode)); } if (key.equalsIgnoreCase("yaw")) { - yaw = Float.parseFloat((String) constructScalar(snode)); + yaw = Float.parseFloat(constructScalarRefl(snode)); } if (key.equalsIgnoreCase("pitch")) { - pitch = Float.parseFloat((String) constructScalar(snode)); + pitch = Float.parseFloat(constructScalarRefl(snode)); } } if (worldName == null || worldName.isEmpty()) { From 3e1857b96673573019b960a29d633228860ba0a1 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 8 Aug 2018 15:42:29 +0100 Subject: [PATCH 029/140] Add module for FlattenedProvider --- Essentials/pom.xml | 6 ++++++ nms/FlattenedProvider/pom.xml | 36 +++++++++++++++++++++++++++++++++++ pom.xml | 1 + 3 files changed, 43 insertions(+) create mode 100644 nms/FlattenedProvider/pom.xml diff --git a/Essentials/pom.xml b/Essentials/pom.xml index 7f35d18c6..8483f9af2 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -106,6 +106,12 @@ + + net.ess3 + FlattenedProvider + 2.15.0 + compile + diff --git a/nms/FlattenedProvider/pom.xml b/nms/FlattenedProvider/pom.xml new file mode 100644 index 000000000..ce63a9be3 --- /dev/null +++ b/nms/FlattenedProvider/pom.xml @@ -0,0 +1,36 @@ + + + + EssentialsXParent + net.ess3 + 2.15.0 + ../../pom.xml + + 4.0.0 + + FlattenedProvider + + + + project.local + local repo + file:${project.basedir}/lib + + + + + + org.bukkit + craftbukkit + 1.13-R0.1-SNAPSHOT + provided + + + net.ess3 + NMSProvider + 2.15.0 + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f8a0da05d..d8faeff12 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,7 @@ nms/1_8_R2Provider nms/LegacyProvider nms/ReflectionProvider + nms/FlattenedProvider From c5376d3088a7332a2df473c472ada939b1cb6a4b Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 10 Aug 2018 22:07:02 +0100 Subject: [PATCH 030/140] Implement ItemDbProviders, pt 1 --- .../com/earth2me/essentials/Essentials.java | 10 + .../nms/flattened/FlatItemDbProvider.java | 75 +++++ nms/IdProvider/pom.xml | 32 +++ .../ess3/nms/ids/LegacyItemDbProvider.java | 261 ++++++++++++++++++ .../src/net/ess3/nms/ItemDbProvider.java | 240 ++++++++++++++++ pom.xml | 1 + 6 files changed, 619 insertions(+) create mode 100644 nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java create mode 100644 nms/IdProvider/pom.xml create mode 100644 nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java create mode 100644 nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index d49761f49..09c90abc9 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -34,9 +34,12 @@ import com.google.common.collect.Iterables; import net.ess3.api.*; import net.ess3.api.IEssentials; import net.ess3.api.ISettings; +import net.ess3.nms.ItemDbProvider; import net.ess3.nms.PotionMetaProvider; import net.ess3.nms.SpawnEggProvider; import net.ess3.nms.SpawnerProvider; +import net.ess3.nms.flattened.FlatItemDbProvider; +import net.ess3.nms.legacy.LegacyItemDbProvider; import net.ess3.nms.legacy.LegacyPotionMetaProvider; import net.ess3.nms.refl.ReflSpawnEggProvider; import net.ess3.nms.updatedmeta.BasePotionDataProvider; @@ -103,6 +106,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { private transient EssentialsTimer timer; private final transient Set vanishedPlayers = new LinkedHashSet<>(); private transient Method oldGetOnlinePlayers; + private transient ItemDbProvider itemDbProvider; private transient SpawnerProvider spawnerProvider; private transient SpawnEggProvider spawnEggProvider; private transient PotionMetaProvider potionMetaProvider; @@ -211,6 +215,12 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { execTimer.mark("Init(Worth/ItemDB)"); jails = new Jails(this); confList.add(jails); + + itemDbProvider = new ProviderFactory<>(getLogger(), + Arrays.asList( + FlatItemDbProvider.class, + LegacyItemDbProvider.class + ), "item database").getProvider(); spawnerProvider = new ProviderFactory<>(getLogger(), Arrays.asList( BlockMetaSpawnerProvider.class, diff --git a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java new file mode 100644 index 000000000..77f396edd --- /dev/null +++ b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatItemDbProvider.java @@ -0,0 +1,75 @@ +package net.ess3.nms.flattened; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonParser; +import net.ess3.nms.ItemDbProvider; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionType; + +import java.util.List; +import java.util.stream.Collectors; + +public class FlatItemDbProvider extends ItemDbProvider { + private static Gson gson = new Gson(); + + + @Override + public Material resolve(String name) { + return null; + } + + @Override + public boolean supportsLegacyIds() { + return false; + } + + @Override + public int getLegacyId(Material material) { + return -1; + } + + @Override + public Material getFromLegacyId(int id) { + return null; + } + + @Override + public String getPrimaryName(ItemStack item) { + return null; + } + + @Override + public List getNames(ItemStack item) { + return null; + } + + @Override + public void rebuild(List lines) { + String json = lines.stream().collect(Collectors.joining("\n")); + JsonArray jsonArray = (new JsonParser()).parse(json).getAsJsonArray(); + jsonArray.forEach(element -> { + if (element.isJsonObject()) { + } + }); + } + + @Override + public boolean tryProvider() { + // Build the database initially so that we can actually test the provider + this.rebuild(this.loadResource("/items.json")); + return super.tryProvider(); + } + + @Override + public String getHumanName() { + return "Post-1.13 item database provider"; + } + + private class MaterialData { + private Material material; + private PotionType potionEnum; + private String potionModifier; + } +} diff --git a/nms/IdProvider/pom.xml b/nms/IdProvider/pom.xml new file mode 100644 index 000000000..3756f2e7f --- /dev/null +++ b/nms/IdProvider/pom.xml @@ -0,0 +1,32 @@ + + + + EssentialsXParent + net.ess3 + 2.15.0 + ../../pom.xml + + 4.0.0 + + IdProvider + + + + net.ess3 + NMSProvider + 2.15.0 + + + net.ess3 + ReflectionProvider + 2.15.0 + + + org.bukkit + bukkit + 1.12.2-R0.1-SNAPSHOT + + + \ No newline at end of file diff --git a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java new file mode 100644 index 000000000..4a47ccbc1 --- /dev/null +++ b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java @@ -0,0 +1,261 @@ +package net.ess3.nms.ids; + +import net.ess3.nms.ItemDbProvider; +import net.ess3.nms.PotionMetaProvider; +import net.ess3.nms.SpawnEggProvider; +import net.ess3.nms.refl.ReflUtil; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.Server; +import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; + +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class LegacyItemDbProvider extends ItemDbProvider { + private final transient Map items = new HashMap<>(); + private final transient Map> names = new HashMap<>(); + private final transient Map primaryNames = new HashMap<>(); + private final transient Map legacyIds = new HashMap<>(); + private final transient Map durabilities = new HashMap<>(); + private final transient Map nbtData = new HashMap<>(); + + private final transient Pattern splitPattern = Pattern.compile("((.*)[:+',;.](\\d+))"); + private final transient Pattern csvSplitPattern = Pattern.compile("(\"([^\"]*)\"|[^,]*)(,|$)"); + + @Override + public Material resolve(String name) { + return null; + } + + @Override + public ItemStack getStack(String name) throws Exception { + int itemid = 0; + String itemname; + short metaData = 0; + + Matcher parts = splitPattern.matcher(name); + if (parts.matches()) { + itemname = parts.group(2); + metaData = Short.parseShort(parts.group(3)); + } else { + itemname = name; + } + + if (isInt(itemname)) { + itemid = Integer.parseInt(itemname); + } else if (isInt(name)) { + itemid = Integer.parseInt(name); + } else { + itemname = itemname.toLowerCase(Locale.ENGLISH); + } + + if (itemid < 1) { + if (items.containsKey(itemname)) { + itemid = items.get(itemname); + if (durabilities.containsKey(itemname) && metaData == 0) { + metaData = durabilities.get(itemname); + } + } + } + + if (itemid < 1) { + throw new Exception("Unknown item name " + itemname); + } + + ItemData data = legacyIds.get(itemid); + if (data == null) { + throw new Exception("Unknown item ID " + itemid); + } + + Material mat = data.getMaterial(); + ItemStack retval = new ItemStack(mat); + if (nbtData.containsKey(itemname)) { + String nbt = nbtData.get(itemname); + if (nbt.startsWith("*")) { + nbt = nbtData.get(nbt.substring(1)); + } + retval = Bukkit.getServer().getUnsafe().modifyItemStack(retval, nbt); + } + + + Material MOB_SPAWNER; + try { + MOB_SPAWNER = Material.valueOf("SPAWNER"); + } catch (Exception e) { + MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); + } + if (mat == MOB_SPAWNER) { + if (metaData == 0) metaData = EntityType.PIG.getTypeId(); + try { + retval = getSpawnerProvider().setEntityType(retval, EntityType.fromId(metaData)); + } catch (IllegalArgumentException e) { + throw new Exception("Can't spawn entity ID " + metaData + " from mob spawners."); + } + } else if (mat == Material.MONSTER_EGG) { + EntityType type; + try { + type = EntityType.fromId(metaData); + } catch (IllegalArgumentException e) { + throw new Exception("Can't spawn entity ID " + metaData + " from spawn eggs."); + } + retval = getSpawnEggProvider().createEggItem(type); + } else if (mat.name().endsWith("POTION") + && ReflUtil.getNmsVersionObject().isLowerThan(ReflUtil.V1_11_R1)) { // Only apply this to pre-1.11 as items.csv might only work in 1.11 + retval = getPotionMetaProvider().createPotionItem(mat, metaData); + } else { + retval.setDurability(metaData); + } + retval.setAmount(mat.getMaxStackSize()); + return retval; + } + + @Override + public boolean supportsLegacyIds() { + return true; + } + + @Override + public int getLegacyId(Material material) throws Exception { + for (Map.Entry entry : items.entrySet()) { + if (material.name().toLowerCase(Locale.ENGLISH).equalsIgnoreCase(entry.getKey())) { + return entry.getValue(); + } + } + + throw new Exception("Item ID missing for material " + material.name()); + } + + @Override + public Material getFromLegacyId(int id) { + ItemData data = this.legacyIds.get(id); + if (data == null) { + return null; + } + + return data.getMaterial(); + } + + @Override + public String getPrimaryName(ItemStack item) { + return null; + } + + @Override + public List getNames(ItemStack item) { + return null; + } + + @Override + public void rebuild(List lines) { + durabilities.clear(); + items.clear(); + names.clear(); + primaryNames.clear(); + + lines.stream() + .filter(line -> line.length() > 0 && !(line.charAt(0) == '#')) + .map(this::parseLine) + .filter(itemData -> itemData != null) + .forEach(this::addItem); + + for (List nameList : names.values()) { + nameList.sort(LengthCompare.INSTANCE); + } + } + + private ItemData parseLine(String line) { + String itemName = null; + int numeric = -1; + short data = 0; + String nbt = null; + + int col = 0; + Matcher matcher = csvSplitPattern.matcher(line); + while (matcher.find()) { + String match = matcher.group(1); + if (StringUtils.stripToNull(match) == null) { + continue; + } + match = StringUtils.strip(match.trim(), "\""); + switch (col) { + case 0: + itemName = match.toLowerCase(Locale.ENGLISH); + break; + case 1: + numeric = Integer.parseInt(match); + break; + case 2: + data = Short.parseShort(match); + break; + case 3: + nbt = StringUtils.stripToNull(match); + break; + default: + continue; + } + col++; + } + // Invalid row + if (itemName == null || numeric < 0) { + return null; + } + + Material material = Material.matchMaterial(itemName); + if (material == null) { + return null; + } + + return new ItemData(itemName, material, numeric, data, nbt); + } + + private void addItem(ItemData itemData) { + final String name = itemData.getItemName(); + final int numeric = itemData.getItemNo(); + final short data = itemData.getItemData(); + final String nbt = itemData.getNbt(); + + durabilities.put(name, data); + items.put(name, numeric); + + if (nbt != null) { + nbtData.put(itemData.getItemName(), nbt); + } + + if (names.containsKey(itemData)) { + List nameList = names.get(itemData); + nameList.add(name); + } else { + List nameList = new ArrayList<>(); + nameList.add(name); + names.put(itemData, nameList); + primaryNames.put(itemData, name); + } + + legacyIds.put(numeric, itemData); + } + + @Override + public boolean tryProvider() { + // Build the database initially so that we can actually test the provider + this.rebuild(this.loadResource("/items.csv")); + return super.tryProvider(); + } + + @Override + public String getHumanName() { + return "Pre-1.13 item database provider"; + } + + private boolean isInt(String integer) { + try { + Integer.parseInt(integer); + return true; + } catch (NumberFormatException e) { + return false; + } + } +} diff --git a/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java b/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java new file mode 100644 index 000000000..9f643be02 --- /dev/null +++ b/nms/NMSProvider/src/net/ess3/nms/ItemDbProvider.java @@ -0,0 +1,240 @@ +package net.ess3.nms; + +import net.ess3.providers.Provider; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionType; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.List; +import java.util.stream.Collectors; + +public abstract class ItemDbProvider implements Provider { + + private SpawnerProvider spawnerProvider; + private SpawnEggProvider spawnEggProvider; + private PotionMetaProvider potionMetaProvider; + + /** + * Resolves a material name to its corresponding Material + * + * @param name The material name to look up + * @return The corresponding Material for the given name + */ + public abstract Material resolve(String name); + + /** + * Whether the provider supports legacy ID values or not. + * + * @return True if the provider supports legacy IDs, otherwise false + */ + public abstract boolean supportsLegacyIds(); + + /** + * Get the legacy ID for the material. + * + * @param material The material to look up + * @return The ID corresponding to the material, or null if not supported + */ + public abstract int getLegacyId(Material material) throws Exception; + + /** + * Get the material for the legacy ID. + * + * @param id The ID to look up + * @return The material corresponding to the ID, or -1 if not supported + */ + public abstract Material getFromLegacyId(int id); + + /** + * Get the primary name for the item in the given stack. + * + * @param item The ItemStack to check + * @return The primary name for the item + */ + public abstract String getPrimaryName(ItemStack item); + + /** + * Get all names for the item in the given stack. + * + * @param item The ItemStack to check + * @return The names for the item + */ + public abstract List getNames(ItemStack item); + + /** + * Rebuild the item database, using the given lines of a file. + * + * @param lines The lines of the file from which the database should be built. + */ + public abstract void rebuild(List lines); + + /** + * Creates a stack of a given item by its name. + * + * @param name The material name to look up + * @return An ItemStack of size 1 of the given item + */ + public ItemStack getStack(String name) throws Exception { + return new ItemStack(resolve(name)); + } + + /** + * Creates a stack with the given amount of a given item by its name. + * + * @param name The material name to look up + * @param amount The amount of items in the returned ItemStack + * @return An ItemStack with the given amount of the given item + */ + public ItemStack getStack(String name, int amount) throws Exception { + ItemStack is = getStack(name); + is.setAmount(amount); + return is; + } + + /** + * Read a resource from the jar. + * Used to build the database before data from a ManagedFile is available. + * + * @param name The name of the resource to load. + * @return The lines of the resource. + */ + protected List loadResource(final String name) { + try (InputStreamReader isr = new InputStreamReader(ItemDbProvider.class.getResourceAsStream(name))) { + BufferedReader br = new BufferedReader(isr); + return br.lines().collect(Collectors.toList()); + } catch (IOException e) { + return null; + } + } + + @Override + public boolean tryProvider() { + try { + getStack("cstone"); + getStack("diorite"); + getStack("steelbar", 5); + getStack("aoepot"); + getStack("skeletonegg", 12); + return true; + } catch (Exception e) { + return false; + } + } + + protected SpawnerProvider getSpawnerProvider() { + return spawnerProvider; + } + + public void setSpawnerProvider(SpawnerProvider spawnerProvider) { + this.spawnerProvider = spawnerProvider; + } + + protected SpawnEggProvider getSpawnEggProvider() { + return spawnEggProvider; + } + + public void setSpawnEggProvider(SpawnEggProvider spawnEggProvider) { + this.spawnEggProvider = spawnEggProvider; + } + + protected PotionMetaProvider getPotionMetaProvider() { + return potionMetaProvider; + } + + public void setPotionMetaProvider(PotionMetaProvider potionMetaProvider) { + this.potionMetaProvider = potionMetaProvider; + } + + public static class ItemData { + final private String itemName; + final private Material material; + private int legacyId; + private short itemData; + final private String nbt; + private PotionData potionData; + + public ItemData(String itemName, Material material, String nbt) { + this.itemName = itemName; + this.material = material; + this.nbt = nbt; + } + + public ItemData(String itemName, Material material, String nbt, PotionData potionData) { + this.itemName = itemName; + this.material = material; + this.nbt = nbt; + this.potionData = potionData; + } + + @Deprecated + public ItemData(String itemName, Material material, final int legacyId, final short itemData, String nbt) { + this.itemName = itemName; + this.material = material; + this.legacyId = legacyId; + this.itemData = itemData; + this.nbt = nbt; + } + + public String getItemName() { + return itemName; + } + + public Material getMaterial() { + return material; + } + + @Deprecated + public int getItemNo() { + return legacyId; + } + + public short getItemData() { + return itemData; + } + + public String getNbt() { + return nbt; + } + + @Override + public int hashCode() { + return (31 * material.hashCode()) ^ itemData; + } + + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + if (!(o instanceof ItemData)) { + return false; + } + ItemData pairo = (ItemData) o; + return this.material == pairo.getMaterial() && this.itemData == pairo.getItemData() && this.nbt.equals(pairo.getNbt()); + } + } + + public static class PotionData { + private PotionType bukkitType; + private String vanillaType; + private boolean isStrong; + private boolean isLong; + } + + protected static class LengthCompare implements java.util.Comparator { + + public static final LengthCompare INSTANCE = new LengthCompare(); + + public LengthCompare() { + super(); + } + + @Override + public int compare(String s1, String s2) { + return s1.length() - s2.length(); + } + } +} diff --git a/pom.xml b/pom.xml index d8faeff12..c4374ac32 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,7 @@ nms/1_8_R2Provider nms/LegacyProvider nms/ReflectionProvider + nms/IdProvider nms/FlattenedProvider From a1e98f898b19daa87d57f9a1af90ca9c563d4fb0 Mon Sep 17 00:00:00 2001 From: Steve Green Date: Tue, 14 Aug 2018 08:35:33 -0400 Subject: [PATCH 031/140] Add missing methods for OfflinePlayer, FakeWorld, and FakeServer. --- .../com/earth2me/essentials/OfflinePlayer.java | 4 ++++ .../essentials/craftbukkit/FakeWorld.java | 15 +++++++++++++++ .../test/com/earth2me/essentials/FakeServer.java | 6 ++++++ 3 files changed, 25 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index f74f348d3..9730fa667 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -1529,4 +1529,8 @@ public class OfflinePlayer implements Player { public PistonMoveReaction getPistonMoveReaction() { return null; } + + @Override + public void updateCommands() { + } } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index 1f2b0409d..1613fcba7 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -708,4 +708,19 @@ public class FakeWorld implements World { public List getNearbyEntities(Location loc, double x, double y, double z) { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public T getGameRuleDefault(GameRule arg0) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public T getGameRuleValue(GameRule arg0) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean setGameRule(GameRule arg0, T arg1) { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 75078fa3c..339335f4a 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -25,6 +25,7 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.generator.ChunkGenerator; import org.bukkit.help.HelpMap; import org.bukkit.inventory.*; +import org.bukkit.loot.LootTable; import org.bukkit.map.MapView; import org.bukkit.permissions.Permissible; import org.bukkit.permissions.Permission; @@ -1152,4 +1153,9 @@ public class FakeServer implements Server { } } + @Override + public LootTable getLootTable(NamespacedKey arg0) { + throw new UnsupportedOperationException("Not supported yet."); + } + } From 4be28ba193495ce728189b75bb53bb06b5a47475 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 14 Aug 2018 18:57:47 +0100 Subject: [PATCH 032/140] Implement ItemDbProviders, pt 2 --- nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java index 4a47ccbc1..67ece3d3d 100644 --- a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java +++ b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java @@ -159,7 +159,7 @@ public class LegacyItemDbProvider extends ItemDbProvider { lines.stream() .filter(line -> line.length() > 0 && !(line.charAt(0) == '#')) .map(this::parseLine) - .filter(itemData -> itemData != null) + .filter(Objects::nonNull) .forEach(this::addItem); for (List nameList : names.values()) { From 4e165d375c463d5f755e2abf03185c38b4c2f638 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 14 Aug 2018 19:29:28 +0100 Subject: [PATCH 033/140] Fix playtime calculation --- .../src/com/earth2me/essentials/commands/Commandwhois.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java index eace45dd8..2b0232fb0 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java @@ -36,7 +36,7 @@ public class Commandwhois extends EssentialsCommand { sender.sendMessage(tl("whoisHunger", user.getBase().getFoodLevel(), user.getBase().getSaturation())); sender.sendMessage(tl("whoisExp", SetExpFix.getTotalExperience(user.getBase()), user.getBase().getLevel())); sender.sendMessage(tl("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); - long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60); + long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60 * 1000); sender.sendMessage(tl("whoisPlaytime", DateUtil.formatDateDiff(playtimeMs))); if (!ess.getSettings().isEcoDisabled()) { sender.sendMessage(tl("whoisMoney", NumberUtil.displayCurrency(user.getMoney(), ess))); From 5009b3b5459caf8aef0e03c31db7605ae258d864 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 14 Aug 2018 19:29:28 +0100 Subject: [PATCH 034/140] Revert "Fix playtime calculation" This reverts commit 4e165d375c463d5f755e2abf03185c38b4c2f638. --- .../src/com/earth2me/essentials/commands/Commandwhois.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java index 2b0232fb0..eace45dd8 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java @@ -36,7 +36,7 @@ public class Commandwhois extends EssentialsCommand { sender.sendMessage(tl("whoisHunger", user.getBase().getFoodLevel(), user.getBase().getSaturation())); sender.sendMessage(tl("whoisExp", SetExpFix.getTotalExperience(user.getBase()), user.getBase().getLevel())); sender.sendMessage(tl("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); - long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60 * 1000); + long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60); sender.sendMessage(tl("whoisPlaytime", DateUtil.formatDateDiff(playtimeMs))); if (!ess.getSettings().isEcoDisabled()) { sender.sendMessage(tl("whoisMoney", NumberUtil.displayCurrency(user.getMoney(), ess))); From 52d814f2cc410169f0e72d1a2e8f585e3d773e91 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 15:26:11 +0100 Subject: [PATCH 035/140] Properly fix inaccurate playtime measurement https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/b848d8ce633871b52115247b089029749c02f579 --- .../earth2me/essentials/commands/Commandwhois.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java index eace45dd8..a47c4ead9 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java @@ -16,8 +16,17 @@ import static com.earth2me.essentials.I18n.tl; public class Commandwhois extends EssentialsCommand { + private Statistic playOneTick; + public Commandwhois() { super("whois"); + try { + // For some reason, in 1.13 PLAY_ONE_MINUTE = ticks played + // https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/b848d8ce633871b52115247b089029749c02f579 + playOneTick = Statistic.valueOf("PLAY_ONE_MINUTE"); + } catch (IllegalArgumentException e) { + playOneTick = Statistic.valueOf("PLAY_ONE_TICK"); + } } @Override @@ -36,7 +45,7 @@ public class Commandwhois extends EssentialsCommand { sender.sendMessage(tl("whoisHunger", user.getBase().getFoodLevel(), user.getBase().getSaturation())); sender.sendMessage(tl("whoisExp", SetExpFix.getTotalExperience(user.getBase()), user.getBase().getLevel())); sender.sendMessage(tl("whoisLocation", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ())); - long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(Statistic.PLAY_ONE_MINUTE) * 60); + long playtimeMs = System.currentTimeMillis() - (user.getBase().getStatistic(playOneTick) * 50); sender.sendMessage(tl("whoisPlaytime", DateUtil.formatDateDiff(playtimeMs))); if (!ess.getSettings().isEcoDisabled()) { sender.sendMessage(tl("whoisMoney", NumberUtil.displayCurrency(user.getMoney(), ess))); From c27d05fd4ba5914ffc6b09bbc130913ff4ae866d Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 16:40:01 +0100 Subject: [PATCH 036/140] Fix dependency on IdProvider --- Essentials/pom.xml | 6 ++++++ Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Essentials/pom.xml b/Essentials/pom.xml index 8483f9af2..bd44cb37f 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -106,6 +106,12 @@ + + net.ess3 + IdProvider + 2.15.0 + compile + net.ess3 FlattenedProvider diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 09c90abc9..109c89c23 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -39,7 +39,7 @@ import net.ess3.nms.PotionMetaProvider; import net.ess3.nms.SpawnEggProvider; import net.ess3.nms.SpawnerProvider; import net.ess3.nms.flattened.FlatItemDbProvider; -import net.ess3.nms.legacy.LegacyItemDbProvider; +import net.ess3.nms.ids.LegacyItemDbProvider; import net.ess3.nms.legacy.LegacyPotionMetaProvider; import net.ess3.nms.refl.ReflSpawnEggProvider; import net.ess3.nms.updatedmeta.BasePotionDataProvider; From 773979cb37fb8e61cc862066064e52e816468a77 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 16:56:46 +0100 Subject: [PATCH 037/140] Provide ItemDb provider with other providers Provide providers to the provider that needs the providers. Provider provider provider provide provider. --- Essentials/src/com/earth2me/essentials/Essentials.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 109c89c23..f54cb2e0c 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -238,6 +238,9 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { BasePotionDataProvider.class, LegacyPotionMetaProvider.class ), "potion meta").getProvider(); + itemDbProvider.setSpawnerProvider(spawnerProvider); + itemDbProvider.setSpawnEggProvider(spawnEggProvider); + itemDbProvider.setPotionMetaProvider(potionMetaProvider); reload(); } catch (YAMLException exception) { if (pm.getPlugin("EssentialsUpdate") != null) { From 04feed8524daa7dfc7a386df05de9f3892ff1ff6 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 17:46:55 +0100 Subject: [PATCH 038/140] Add 1.13+ spawn egg provider Not sure how necessary this is, but I've done it anyway --- .../com/earth2me/essentials/Essentials.java | 2 ++ .../nms/flattened/FlatSpawnEggProvider.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index f54cb2e0c..eaa0a5dfa 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -39,6 +39,7 @@ import net.ess3.nms.PotionMetaProvider; import net.ess3.nms.SpawnEggProvider; import net.ess3.nms.SpawnerProvider; import net.ess3.nms.flattened.FlatItemDbProvider; +import net.ess3.nms.flattened.FlatSpawnEggProvider; import net.ess3.nms.ids.LegacyItemDbProvider; import net.ess3.nms.legacy.LegacyPotionMetaProvider; import net.ess3.nms.refl.ReflSpawnEggProvider; @@ -230,6 +231,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { ), "mob spawner").getProvider(); spawnEggProvider = new ProviderFactory<>(getLogger(), Arrays.asList( + FlatSpawnEggProvider.class, ReflSpawnEggProvider.class, LegacySpawnEggProvider.class ), "spawn egg").getProvider(); diff --git a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java new file mode 100644 index 000000000..5ea4402e0 --- /dev/null +++ b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java @@ -0,0 +1,31 @@ +package net.ess3.nms.flattened; + +import net.ess3.nms.SpawnEggProvider; +import net.ess3.nms.refl.ReflUtil; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; + +public class FlatSpawnEggProvider extends SpawnEggProvider { + @Override + public ItemStack createEggItem(EntityType type) throws IllegalArgumentException { + String name = type.name() + "_SPAWN_EGG"; + Material material = Material.valueOf(name); + return new ItemStack(material); + } + + @Override + public EntityType getSpawnedType(ItemStack eggItem) throws IllegalArgumentException { + String materialName = eggItem.getType().name(); + if (materialName.contains("_SPAWN_EGG")) { + return EntityType.valueOf(materialName.replace("_SPAWN_EGG", "")); + } else { + throw new IllegalArgumentException("Not a spawn egg"); + } + } + + @Override + public String getHumanName() { + return "1.13+ flat spawn egg provider"; + } +} From 299afdc6a1339f1be7c353c91b6fc57e6bdf1e31 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 18:05:44 +0100 Subject: [PATCH 039/140] Add V1_13_R1 to ReflUtil --- nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java index e2273d354..5ed8aa833 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java @@ -23,6 +23,7 @@ public class ReflUtil { public static final NMSVersion V1_10_R1 = NMSVersion.fromString("v1_10_R1"); public static final NMSVersion V1_11_R1 = NMSVersion.fromString("v1_11_R1"); public static final NMSVersion V1_12_R1 = NMSVersion.fromString("v1_12_R1"); + public static final NMSVersion V1_13_R1 = NMSVersion.fromString("v1_13_R1"); private static NMSVersion nmsVersionObject; private static String nmsVersion; From 0e9232ba815996fd966a24f54d4f93bf04053dbd Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 19:40:08 +0100 Subject: [PATCH 040/140] Remove breaking import --- .../src/net/ess3/nms/flattened/FlatSpawnEggProvider.java | 1 - 1 file changed, 1 deletion(-) diff --git a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java index 5ea4402e0..b3e5f3f46 100644 --- a/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java +++ b/nms/FlattenedProvider/src/net/ess3/nms/flattened/FlatSpawnEggProvider.java @@ -1,7 +1,6 @@ package net.ess3.nms.flattened; import net.ess3.nms.SpawnEggProvider; -import net.ess3.nms.refl.ReflUtil; import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; From 340baa9703a6fd612bc67286344299c50072c275 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 19:40:35 +0100 Subject: [PATCH 041/140] Add IEssentials#getItemDbProvider method --- Essentials/src/com/earth2me/essentials/Essentials.java | 5 +++++ Essentials/src/net/ess3/api/IEssentials.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index eaa0a5dfa..a71a13fe3 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -887,6 +887,11 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { return potionMetaProvider; } + @Override + public ItemDbProvider getItemDbProvider() { + return itemDbProvider; + } + private static void addDefaultBackPermissionsToWorld(World w) { String permName = "essentials.back.into." + w.getName(); diff --git a/Essentials/src/net/ess3/api/IEssentials.java b/Essentials/src/net/ess3/api/IEssentials.java index 1e76dda17..dc418b512 100644 --- a/Essentials/src/net/ess3/api/IEssentials.java +++ b/Essentials/src/net/ess3/api/IEssentials.java @@ -1,5 +1,6 @@ package net.ess3.api; +import net.ess3.nms.ItemDbProvider; import net.ess3.nms.PotionMetaProvider; import net.ess3.nms.SpawnEggProvider; @@ -12,4 +13,6 @@ public interface IEssentials extends com.earth2me.essentials.IEssentials { SpawnEggProvider getSpawnEggProvider(); PotionMetaProvider getPotionMetaProvider(); + + ItemDbProvider getItemDbProvider(); } From 3ef0f20b0df82f0fabcd19365830d66591ed3c67 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 19:42:12 +0100 Subject: [PATCH 042/140] Add tipped arrows support on 1.9/1.10 On a side note, need to investigate why the potion provider is only needed on 1.10 and below - I don't remember what changed in 1.11? --- nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java index 67ece3d3d..37260afe1 100644 --- a/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java +++ b/nms/IdProvider/src/net/ess3/nms/ids/LegacyItemDbProvider.java @@ -103,7 +103,7 @@ public class LegacyItemDbProvider extends ItemDbProvider { throw new Exception("Can't spawn entity ID " + metaData + " from spawn eggs."); } retval = getSpawnEggProvider().createEggItem(type); - } else if (mat.name().endsWith("POTION") + } else if ((mat.name().endsWith("POTION") || mat.name().equals("TIPPED_ARROW")) && ReflUtil.getNmsVersionObject().isLowerThan(ReflUtil.V1_11_R1)) { // Only apply this to pre-1.11 as items.csv might only work in 1.11 retval = getPotionMetaProvider().createPotionItem(mat, metaData); } else { From 3fb4b7958da889f2f13574c9137794d90b4b3a2f Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 19:50:15 +0100 Subject: [PATCH 043/140] Strip out legacy ItemDb code, pt 1 --- .../src/com/earth2me/essentials/ItemDb.java | 85 ++----------------- 1 file changed, 6 insertions(+), 79 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 358ea9ba7..022a96cee 100644 --- a/Essentials/src/com/earth2me/essentials/ItemDb.java +++ b/Essentials/src/com/earth2me/essentials/ItemDb.java @@ -3,6 +3,7 @@ package com.earth2me.essentials; import com.earth2me.essentials.utils.NumberUtil; import com.earth2me.essentials.utils.StringUtil; import net.ess3.api.IEssentials; +import net.ess3.nms.ItemDbProvider; import net.ess3.nms.refl.ReflUtil; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; @@ -29,6 +30,7 @@ import static com.earth2me.essentials.I18n.tl; public class ItemDb implements IConf, net.ess3.api.IItemDb { protected static final Logger LOGGER = Logger.getLogger("Essentials"); private final transient IEssentials ess; + private final transient ItemDbProvider provider; private final transient Map items = new HashMap<>(); private final transient Map> names = new HashMap<>(); private final transient Map primaryName = new HashMap<>(); @@ -41,6 +43,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { public ItemDb(final IEssentials ess) { this.ess = ess; + this.provider = ess.getItemDbProvider(); file = new ManagedFile("items.csv", ess); } @@ -130,88 +133,12 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { @Override public ItemStack get(final String id, final int quantity) throws Exception { - final ItemStack retval = get(id.toLowerCase(Locale.ENGLISH)); - retval.setAmount(quantity); - return retval; + return provider.getStack(id, quantity); } @Override public ItemStack get(final String id) throws Exception { - int itemid = 0; - String itemname; - short metaData = 0; - Matcher parts = splitPattern.matcher(id); - if (parts.matches()) { - itemname = parts.group(2); - metaData = Short.parseShort(parts.group(3)); - } else { - itemname = id; - } - - if (NumberUtil.isInt(itemname)) { - itemid = Integer.parseInt(itemname); - } else if (NumberUtil.isInt(id)) { - itemid = Integer.parseInt(id); - } else { - itemname = itemname.toLowerCase(Locale.ENGLISH); - } - - if (itemid < 1) { - if (items.containsKey(itemname)) { - itemid = items.get(itemname); - if (durabilities.containsKey(itemname) && metaData == 0) { - metaData = durabilities.get(itemname); - } - } - } - - if (itemid < 1) { - throw new Exception(tl("unknownItemName", itemname)); - } - - ItemData data = legacyIds.get(itemid); - if (data == null) { - throw new Exception(tl("unknownItemId", itemid)); - } - - Material mat = data.getMaterial(); - ItemStack retval = new ItemStack(mat); - if (nbtData.containsKey(itemname)) { - String nbt = nbtData.get(itemname); - if (nbt.startsWith("*")) { - nbt = nbtData.get(nbt.substring(1)); - } - retval = ess.getServer().getUnsafe().modifyItemStack(retval, nbt); - } - Material MOB_SPAWNER; - try { - MOB_SPAWNER = Material.SPAWNER; - } catch (Exception e) { - MOB_SPAWNER = Material.valueOf("MOB_SPAWNER"); - } - if (mat == MOB_SPAWNER) { - if (metaData == 0) metaData = EntityType.PIG.getTypeId(); - try { - retval = ess.getSpawnerProvider().setEntityType(retval, EntityType.fromId(metaData)); - } catch (IllegalArgumentException e) { - throw new Exception("Can't spawn entity ID " + metaData + " from mob spawners."); - } - } else if (mat == Material.LEGACY_MONSTER_EGG) { - EntityType type; - try { - type = EntityType.fromId(metaData); - } catch (IllegalArgumentException e) { - throw new Exception("Can't spawn entity ID " + metaData + " from spawn eggs."); - } - retval = ess.getSpawnEggProvider().createEggItem(type); - } else if (mat.name().endsWith("POTION") - && ReflUtil.getNmsVersionObject().isLowerThan(ReflUtil.V1_11_R1)) { // Only apply this to pre-1.11 as items.csv might only work in 1.11 - retval = ess.getPotionMetaProvider().createPotionItem(mat, metaData); - } else { - retval.setDurability(metaData); - } - retval.setAmount(mat.getMaxStackSize()); - return retval; + return provider.getStack(id); } @Override @@ -456,7 +383,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb { @Override public Material getFromLegacyId(int id) { ItemData data = this.legacyIds.get(id); - if(data == null) { + if (data == null) { return null; } From a3029131300996ebb0434ea664b4e80227e8d6e7 Mon Sep 17 00:00:00 2001 From: md678685 Date: Wed, 15 Aug 2018 20:08:22 +0100 Subject: [PATCH 044/140] Clean up unused files --- WebPush/apikey.php | 5 - WebPush/index.php | 59 - WebPush/nbproject/private/private.properties | 8 - WebPush/nbproject/project.properties | 7 - WebPush/simple_html_dom.php | 1727 ------------------ WebPush/upload.php | 89 - nbactions.xml | 26 - 7 files changed, 1921 deletions(-) delete mode 100644 WebPush/apikey.php delete mode 100644 WebPush/index.php delete mode 100644 WebPush/nbproject/private/private.properties delete mode 100644 WebPush/nbproject/project.properties delete mode 100644 WebPush/simple_html_dom.php delete mode 100644 WebPush/upload.php delete mode 100644 nbactions.xml diff --git a/WebPush/apikey.php b/WebPush/apikey.php deleted file mode 100644 index 59f2bf3ac..000000000 --- a/WebPush/apikey.php +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/WebPush/index.php b/WebPush/index.php deleted file mode 100644 index 56193ebf7..000000000 --- a/WebPush/index.php +++ /dev/null @@ -1,59 +0,0 @@ - - diff --git a/WebPush/nbproject/private/private.properties b/WebPush/nbproject/private/private.properties deleted file mode 100644 index 8c2a80c6f..000000000 --- a/WebPush/nbproject/private/private.properties +++ /dev/null @@ -1,8 +0,0 @@ -copy.src.files=false -copy.src.target= -index.file=index.php -remote.connection=localhost-d13e79 -remote.directory=/upload -remote.upload=ON_SAVE -run.as=REMOTE -url=http://ess.khhq.net/upload/ diff --git a/WebPush/nbproject/project.properties b/WebPush/nbproject/project.properties deleted file mode 100644 index 6ffde2f50..000000000 --- a/WebPush/nbproject/project.properties +++ /dev/null @@ -1,7 +0,0 @@ -include.path=${php.global.include.path} -php.version=PHP_5 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=true -web.root=. diff --git a/WebPush/simple_html_dom.php b/WebPush/simple_html_dom.php deleted file mode 100644 index 3f96f8d95..000000000 --- a/WebPush/simple_html_dom.php +++ /dev/null @@ -1,1727 +0,0 @@ -size is the "real" number of bytes the dom was created from. - * but for most purposes, it's a really good estimation. - * Paperg - Added the forceTagsClosed to the dom constructor. Forcing tags closed is great for malformed html, but it CAN lead to parsing errors. - * Allow the user to tell us how much they trust the html. - * Paperg add the text and plaintext to the selectors for the find syntax. plaintext implies text in the innertext of a node. text implies that the tag is a text node. - * This allows for us to find tags based on the text they contain. - * Create find_ancestor_tag to see if a tag is - at any level - inside of another specific tag. - * Paperg: added parse_charset so that we know about the character set of the source document. - * NOTE: If the user's system has a routine called get_last_retrieve_url_contents_content_type availalbe, we will assume it's returning the content-type header from the - * last transfer or curl_exec, and we will parse that and use it in preference to any other method of charset detection. - * - * Licensed under The MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author S.C. Chen - * @author John Schlick - * @author Rus Carroll - * @version 1.11 ($Rev: 184 $) - * @package PlaceLocalInclude - * @subpackage simple_html_dom - */ -/** - * All of the Defines for the classes below. - * @author S.C. Chen - */ -define('HDOM_TYPE_ELEMENT', 1); -define('HDOM_TYPE_COMMENT', 2); -define('HDOM_TYPE_TEXT', 3); -define('HDOM_TYPE_ENDTAG', 4); -define('HDOM_TYPE_ROOT', 5); -define('HDOM_TYPE_UNKNOWN', 6); -define('HDOM_QUOTE_DOUBLE', 0); -define('HDOM_QUOTE_SINGLE', 1); -define('HDOM_QUOTE_NO', 3); -define('HDOM_INFO_BEGIN', 0); -define('HDOM_INFO_END', 1); -define('HDOM_INFO_QUOTE', 2); -define('HDOM_INFO_SPACE', 3); -define('HDOM_INFO_TEXT', 4); -define('HDOM_INFO_INNER', 5); -define('HDOM_INFO_OUTER', 6); -define('HDOM_INFO_ENDSPACE', 7); -define('DEFAULT_TARGET_CHARSET', 'UTF-8'); -define('DEFAULT_BR_TEXT', "\r\n"); - -// helper functions -// ----------------------------------------------------------------------------- -// get html dom from file -// $maxlen is defined in the code as PHP_STREAM_COPY_ALL which is defined as -1. -function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) -{ - // We DO force the tags to be terminated. - $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $defaultBRText); - // For sourceforge users: uncomment the next line and comment the retreive_url_contents line 2 lines down if it is not already done. - $contents = file_get_contents($url, $use_include_path, $context, $offset); - // Paperg - use our own mechanism for getting the contents as we want to control the timeout. -// $contents = retrieve_url_contents($url); - if (empty($contents)) - { - return false; - } - // The second parameter can force the selectors to all be lowercase. - $dom->load($contents, $lowercase, $stripRN); - return $dom; -} - -// get html dom from string -function str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) -{ - $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $defaultBRText); - if (empty($str)) - { - $dom->clear(); - return false; - } - $dom->load($str, $lowercase, $stripRN); - return $dom; -} - -// dump html dom tree -function dump_html_tree($node, $show_attr=true, $deep=0) -{ - $node->dump($node); -} - -/** - * simple html dom node - * PaperG - added ability for "find" routine to lowercase the value of the selector. - * PaperG - added $tag_start to track the start position of the tag in the total byte index - * - * @package PlaceLocalInclude - */ -class simple_html_dom_node -{ - public $nodetype = HDOM_TYPE_TEXT; - public $tag = 'text'; - public $attr = array(); - public $children = array(); - public $nodes = array(); - public $parent = null; - public $_ = array(); - public $tag_start = 0; - private $dom = null; - - function __construct($dom) - { - $this->dom = $dom; - $dom->nodes[] = $this; - } - - function __destruct() - { - $this->clear(); - } - - function __toString() - { - return $this->outertext(); - } - - // clean up memory due to php5 circular references memory leak... - function clear() - { - $this->dom = null; - $this->nodes = null; - $this->parent = null; - $this->children = null; - } - - // dump node's tree - function dump($show_attr=true, $deep=0) - { - $lead = str_repeat(' ', $deep); - - echo $lead . $this->tag; - if ($show_attr && count($this->attr) > 0) - { - echo '('; - foreach ($this->attr as $k => $v) - echo "[$k]=>\"" . $this->$k . '", '; - echo ')'; - } - echo "\n"; - - foreach ($this->nodes as $c) - $c->dump($show_attr, $deep + 1); - } - - // Debugging function to dump a single dom node with a bunch of information about it. - function dump_node() - { - echo $this->tag; - if (count($this->attr) > 0) - { - echo '('; - foreach ($this->attr as $k => $v) - { - echo "[$k]=>\"" . $this->$k . '", '; - } - echo ')'; - } - if (count($this->attr) > 0) - { - echo ' $_ ('; - foreach ($this->_ as $k => $v) - { - if (is_array($v)) - { - echo "[$k]=>("; - foreach ($v as $k2 => $v2) - { - echo "[$k2]=>\"" . $v2 . '", '; - } - echo ")"; - } - else - { - echo "[$k]=>\"" . $v . '", '; - } - } - echo ")"; - } - - if (isset($this->text)) - { - echo " text: (" . $this->text . ")"; - } - - echo " children: " . count($this->children); - echo " nodes: " . count($this->nodes); - echo " tag_start: " . $this->tag_start; - echo "\n"; - } - - // returns the parent of node - function parent() - { - return $this->parent; - } - - // returns children of node - function children($idx=-1) - { - if ($idx === -1) - return $this->children; - if (isset($this->children[$idx])) - return $this->children[$idx]; - return null; - } - - // returns the first child of node - function first_child() - { - if (count($this->children) > 0) - return $this->children[0]; - return null; - } - - // returns the last child of node - function last_child() - { - if (($count = count($this->children)) > 0) - return $this->children[$count - 1]; - return null; - } - - // returns the next sibling of node - function next_sibling() - { - if ($this->parent === null) - return null; - $idx = 0; - $count = count($this->parent->children); - while ($idx < $count && $this !== $this->parent->children[$idx]) - ++$idx; - if (++$idx >= $count) - return null; - return $this->parent->children[$idx]; - } - - // returns the previous sibling of node - function prev_sibling() - { - if ($this->parent === null) - return null; - $idx = 0; - $count = count($this->parent->children); - while ($idx < $count && $this !== $this->parent->children[$idx]) - ++$idx; - if (--$idx < 0) - return null; - return $this->parent->children[$idx]; - } - - // function to locate a specific ancestor tag in the path to the root. - function find_ancestor_tag($tag) - { - global $debugObject; - if (is_object($debugObject)) - { - $debugObject->debugLogEntry(1); - } - - // Start by including ourselves in the comparison. - $returnDom = $this; - - while (!is_null($returnDom)) - { - if (is_object($debugObject)) - { - $debugObject->debugLog(2, "Current tag is: " . $returnDom->tag); - } - - if ($returnDom->tag == $tag) - { - break; - } - $returnDom = $returnDom->parent; - } - return $returnDom; - } - - // get dom node's inner html - function innertext() - { - if (isset($this->_[HDOM_INFO_INNER])) - return $this->_[HDOM_INFO_INNER]; - if (isset($this->_[HDOM_INFO_TEXT])) - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - - $ret = ''; - foreach ($this->nodes as $n) - $ret .= $n->outertext(); - return $ret; - } - - // get dom node's outer text (with tag) - function outertext() - { - global $debugObject; - if (is_object($debugObject)) - { - $text = ''; - if ($this->tag == 'text') - { - if (!empty($this->text)) - { - $text = " with text: " . $this->text; - } - } - $debugObject->debugLog(1, 'Innertext of tag: ' . $this->tag . $text); - } - - if ($this->tag === 'root') - return $this->innertext(); - - // trigger callback - if ($this->dom && $this->dom->callback !== null) - { - call_user_func_array($this->dom->callback, array($this)); - } - - if (isset($this->_[HDOM_INFO_OUTER])) - return $this->_[HDOM_INFO_OUTER]; - if (isset($this->_[HDOM_INFO_TEXT])) - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - - // render begin tag - if ($this->dom && $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]) - { - $ret = $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]->makeup(); - } - else - { - $ret = ""; - } - - // render inner text - if (isset($this->_[HDOM_INFO_INNER])) - { - // If it's a br tag... don't return the HDOM_INNER_INFO that we may or may not have added. - if ($this->tag != "br") - { - $ret .= $this->_[HDOM_INFO_INNER]; - } - } - else - { - if ($this->nodes) - { - foreach ($this->nodes as $n) - { - $ret .= $this->convert_text($n->outertext()); - } - } - } - - // render end tag - if (isset($this->_[HDOM_INFO_END]) && $this->_[HDOM_INFO_END] != 0) - $ret .= 'tag . '>'; - return $ret; - } - - // get dom node's plain text - function text() - { - if (isset($this->_[HDOM_INFO_INNER])) - return $this->_[HDOM_INFO_INNER]; - switch ($this->nodetype) - { - case HDOM_TYPE_TEXT: return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - case HDOM_TYPE_COMMENT: return ''; - case HDOM_TYPE_UNKNOWN: return ''; - } - if (strcasecmp($this->tag, 'script') === 0) - return ''; - if (strcasecmp($this->tag, 'style') === 0) - return ''; - - $ret = ''; - // In rare cases, (always node type 1 or HDOM_TYPE_ELEMENT - observed for some span tags, and some p tags) $this->nodes is set to NULL. - // NOTE: This indicates that there is a problem where it's set to NULL without a clear happening. - // WHY is this happening? - if (!is_null($this->nodes)) - { - foreach ($this->nodes as $n) - { - $ret .= $this->convert_text($n->text()); - } - } - return $ret; - } - - function xmltext() - { - $ret = $this->innertext(); - $ret = str_ireplace('', '', $ret); - return $ret; - } - - // build node's text with tag - function makeup() - { - // text, comment, unknown - if (isset($this->_[HDOM_INFO_TEXT])) - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - - $ret = '<' . $this->tag; - $i = -1; - - foreach ($this->attr as $key => $val) - { - ++$i; - - // skip removed attribute - if ($val === null || $val === false) - continue; - - $ret .= $this->_[HDOM_INFO_SPACE][$i][0]; - //no value attr: nowrap, checked selected... - if ($val === true) - $ret .= $key; - else - { - switch ($this->_[HDOM_INFO_QUOTE][$i]) - { - case HDOM_QUOTE_DOUBLE: $quote = '"'; - break; - case HDOM_QUOTE_SINGLE: $quote = '\''; - break; - default: $quote = ''; - } - $ret .= $key . $this->_[HDOM_INFO_SPACE][$i][1] . '=' . $this->_[HDOM_INFO_SPACE][$i][2] . $quote . $val . $quote; - } - } - $ret = $this->dom->restore_noise($ret); - return $ret . $this->_[HDOM_INFO_ENDSPACE] . '>'; - } - - // find elements by css selector - //PaperG - added ability for find to lowercase the value of the selector. - function find($selector, $idx=null, $lowercase=false) - { - $selectors = $this->parse_selector($selector); - if (($count = count($selectors)) === 0) - return array(); - $found_keys = array(); - - // find each selector - for ($c = 0; $c < $count; ++$c) - { - // The change on the below line was documented on the sourceforge code tracker id 2788009 - // used to be: if (($levle=count($selectors[0]))===0) return array(); - if (($levle = count($selectors[$c])) === 0) - return array(); - if (!isset($this->_[HDOM_INFO_BEGIN])) - return array(); - - $head = array($this->_[HDOM_INFO_BEGIN] => 1); - - // handle descendant selectors, no recursive! - for ($l = 0; $l < $levle; ++$l) - { - $ret = array(); - foreach ($head as $k => $v) - { - $n = ($k === -1) ? $this->dom->root : $this->dom->nodes[$k]; - //PaperG - Pass this optional parameter on to the seek function. - $n->seek($selectors[$c][$l], $ret, $lowercase); - } - $head = $ret; - } - - foreach ($head as $k => $v) - { - if (!isset($found_keys[$k])) - $found_keys[$k] = 1; - } - } - - // sort keys - ksort($found_keys); - - $found = array(); - foreach ($found_keys as $k => $v) - $found[] = $this->dom->nodes[$k]; - - // return nth-element or array - if (is_null($idx)) - return $found; - else if ($idx < 0) - $idx = count($found) + $idx; - return (isset($found[$idx])) ? $found[$idx] : null; - } - - // seek for given conditions - // PaperG - added parameter to allow for case insensitive testing of the value of a selector. - protected function seek($selector, &$ret, $lowercase=false) - { - global $debugObject; - if (is_object($debugObject)) - { - $debugObject->debugLogEntry(1); - } - - list($tag, $key, $val, $exp, $no_key) = $selector; - - // xpath index - if ($tag && $key && is_numeric($key)) - { - $count = 0; - foreach ($this->children as $c) - { - if ($tag === '*' || $tag === $c->tag) - { - if (++$count == $key) - { - $ret[$c->_[HDOM_INFO_BEGIN]] = 1; - return; - } - } - } - return; - } - - $end = (!empty($this->_[HDOM_INFO_END])) ? $this->_[HDOM_INFO_END] : 0; - if ($end == 0) - { - $parent = $this->parent; - while (!isset($parent->_[HDOM_INFO_END]) && $parent !== null) - { - $end -= 1; - $parent = $parent->parent; - } - $end += $parent->_[HDOM_INFO_END]; - } - - for ($i = $this->_[HDOM_INFO_BEGIN] + 1; $i < $end; ++$i) - { - $node = $this->dom->nodes[$i]; - - $pass = true; - - if ($tag === '*' && !$key) - { - if (in_array($node, $this->children, true)) - $ret[$i] = 1; - continue; - } - - // compare tag - if ($tag && $tag != $node->tag && $tag !== '*') - { - $pass = false; - } - // compare key - if ($pass && $key) - { - if ($no_key) - { - if (isset($node->attr[$key])) - $pass = false; - } else - { - if (($key != "plaintext") && !isset($node->attr[$key])) - $pass = false; - } - } - // compare value - if ($pass && $key && $val && $val !== '*') - { - // If they have told us that this is a "plaintext" search then we want the plaintext of the node - right? - if ($key == "plaintext") - { - // $node->plaintext actually returns $node->text(); - $nodeKeyValue = $node->text(); - } - else - { - // this is a normal search, we want the value of that attribute of the tag. - $nodeKeyValue = $node->attr[$key]; - } - if (is_object($debugObject)) - { - $debugObject->debugLog(2, "testing node: " . $node->tag . " for attribute: " . $key . $exp . $val . " where nodes value is: " . $nodeKeyValue); - } - - //PaperG - If lowercase is set, do a case insensitive test of the value of the selector. - if ($lowercase) - { - $check = $this->match($exp, strtolower($val), strtolower($nodeKeyValue)); - } - else - { - $check = $this->match($exp, $val, $nodeKeyValue); - } - if (is_object($debugObject)) - { - $debugObject->debugLog(2, "after match: " . ($check ? "true" : "false")); - } - - // handle multiple class - if (!$check && strcasecmp($key, 'class') === 0) - { - foreach (explode(' ', $node->attr[$key]) as $k) - { - // Without this, there were cases where leading, trailing, or double spaces lead to our comparing blanks - bad form. - if (!empty($k)) - { - if ($lowercase) - { - $check = $this->match($exp, strtolower($val), strtolower($k)); - } - else - { - $check = $this->match($exp, $val, $k); - } - if ($check) - break; - } - } - } - if (!$check) - $pass = false; - } - if ($pass) - $ret[$i] = 1; - unset($node); - } - // It's passed by reference so this is actually what this function returns. - if (is_object($debugObject)) - { - $debugObject->debugLog(1, "EXIT - ret: ", $ret); - } - } - - protected function match($exp, $pattern, $value) - { - global $debugObject; - if (is_object($debugObject)) - { - $debugObject->debugLogEntry(1); - } - - switch ($exp) - { - case '=': - return ($value === $pattern); - case '!=': - return ($value !== $pattern); - case '^=': - return preg_match("/^" . preg_quote($pattern, '/') . "/", $value); - case '$=': - return preg_match("/" . preg_quote($pattern, '/') . "$/", $value); - case '*=': - if ($pattern[0] == '/') - { - return preg_match($pattern, $value); - } - return preg_match("/" . $pattern . "/i", $value); - } - return false; - } - - protected function parse_selector($selector_string) - { - global $debugObject; - if (is_object($debugObject)) - { - $debugObject->debugLogEntry(1); - } - - // pattern of CSS selectors, modified from mootools - // Paperg: Add the colon to the attrbute, so that it properly finds like google does. - // Note: if you try to look at this attribute, yo MUST use getAttribute since $dom->x:y will fail the php syntax check. -// Notice the \[ starting the attbute? and the @? following? This implies that an attribute can begin with an @ sign that is not captured. -// This implies that an html attribute specifier may start with an @ sign that is NOT captured by the expression. -// farther study is required to determine of this should be documented or removed. -// $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is"; - $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is"; - preg_match_all($pattern, trim($selector_string) . ' ', $matches, PREG_SET_ORDER); - if (is_object($debugObject)) - { - $debugObject->debugLog(2, "Matches Array: ", $matches); - } - - $selectors = array(); - $result = array(); - //print_r($matches); - - foreach ($matches as $m) - { - $m[0] = trim($m[0]); - if ($m[0] === '' || $m[0] === '/' || $m[0] === '//') - continue; - // for browser generated xpath - if ($m[1] === 'tbody') - continue; - - list($tag, $key, $val, $exp, $no_key) = array($m[1], null, null, '=', false); - if (!empty($m[2])) - { - $key = 'id'; - $val = $m[2]; - } - if (!empty($m[3])) - { - $key = 'class'; - $val = $m[3]; - } - if (!empty($m[4])) - { - $key = $m[4]; - } - if (!empty($m[5])) - { - $exp = $m[5]; - } - if (!empty($m[6])) - { - $val = $m[6]; - } - - // convert to lowercase - if ($this->dom->lowercase) - { - $tag = strtolower($tag); - $key = strtolower($key); - } - //elements that do NOT have the specified attribute - if (isset($key[0]) && $key[0] === '!') - { - $key = substr($key, 1); - $no_key = true; - } - - $result[] = array($tag, $key, $val, $exp, $no_key); - if (trim($m[7]) === ',') - { - $selectors[] = $result; - $result = array(); - } - } - if (count($result) > 0) - $selectors[] = $result; - return $selectors; - } - - function __get($name) - { - if (isset($this->attr[$name])) - { - return $this->convert_text($this->attr[$name]); - } - switch ($name) - { - case 'outertext': return $this->outertext(); - case 'innertext': return $this->innertext(); - case 'plaintext': return $this->text(); - case 'xmltext': return $this->xmltext(); - default: return array_key_exists($name, $this->attr); - } - } - - function __set($name, $value) - { - switch ($name) - { - case 'outertext': return $this->_[HDOM_INFO_OUTER] = $value; - case 'innertext': - if (isset($this->_[HDOM_INFO_TEXT])) - return $this->_[HDOM_INFO_TEXT] = $value; - return $this->_[HDOM_INFO_INNER] = $value; - } - if (!isset($this->attr[$name])) - { - $this->_[HDOM_INFO_SPACE][] = array(' ', '', ''); - $this->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE; - } - $this->attr[$name] = $value; - } - - function __isset($name) - { - switch ($name) - { - case 'outertext': return true; - case 'innertext': return true; - case 'plaintext': return true; - } - //no value attr: nowrap, checked selected... - return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]); - } - - function __unset($name) - { - if (isset($this->attr[$name])) - unset($this->attr[$name]); - } - - // PaperG - Function to convert the text from one character set to another if the two sets are not the same. - function convert_text($text) - { - global $debugObject; - if (is_object($debugObject)) - { - $debugObject->debugLogEntry(1); - } - - $converted_text = $text; - - $sourceCharset = ""; - $targetCharset = ""; - if ($this->dom) - { - $sourceCharset = strtoupper($this->dom->_charset); - $targetCharset = strtoupper($this->dom->_target_charset); - } - if (is_object($debugObject)) - { - $debugObject->debugLog(3, "source charset: " . $sourceCharset . " target charaset: " . $targetCharset); - } - - if (!empty($sourceCharset) && !empty($targetCharset) && (strcasecmp($sourceCharset, $targetCharset) != 0)) - { - // Check if the reported encoding could have been incorrect and the text is actually already UTF-8 - if ((strcasecmp($targetCharset, 'UTF-8') == 0) && ($this->is_utf8($text))) - { - $converted_text = $text; - } - else - { - $converted_text = iconv($sourceCharset, $targetCharset, $text); - } - } - - return $converted_text; - } - - function is_utf8($string) - { - return (utf8_encode(utf8_decode($string)) == $string); - } - - // camel naming conventions - function getAllAttributes() - { - return $this->attr; - } - - function getAttribute($name) - { - return $this->__get($name); - } - - function setAttribute($name, $value) - { - $this->__set($name, $value); - } - - function hasAttribute($name) - { - return $this->__isset($name); - } - - function removeAttribute($name) - { - $this->__set($name, null); - } - - function getElementById($id) - { - return $this->find("#$id", 0); - } - - function getElementsById($id, $idx=null) - { - return $this->find("#$id", $idx); - } - - function getElementByTagName($name) - { - return $this->find($name, 0); - } - - function getElementsByTagName($name, $idx=null) - { - return $this->find($name, $idx); - } - - function parentNode() - { - return $this->parent(); - } - - function childNodes($idx=-1) - { - return $this->children($idx); - } - - function firstChild() - { - return $this->first_child(); - } - - function lastChild() - { - return $this->last_child(); - } - - function nextSibling() - { - return $this->next_sibling(); - } - - function previousSibling() - { - return $this->prev_sibling(); - } -} - -/** - * simple html dom parser - * Paperg - in the find routine: allow us to specify that we want case insensitive testing of the value of the selector. - * Paperg - change $size from protected to public so we can easily access it - * Paperg - added ForceTagsClosed in the constructor which tells us whether we trust the html or not. Default is to NOT trust it. - * - * @package PlaceLocalInclude - */ -class simple_html_dom -{ - public $root = null; - public $nodes = array(); - public $callback = null; - public $lowercase = false; - public $size; - protected $pos; - protected $doc; - protected $char; - protected $cursor; - protected $parent; - protected $noise = array(); - protected $token_blank = " \t\r\n"; - protected $token_equal = ' =/>'; - protected $token_slash = " />\r\n\t"; - protected $token_attr = ' >'; - protected $_charset = ''; - protected $_target_charset = ''; - protected $default_br_text = ""; - // use isset instead of in_array, performance boost about 30%... - protected $self_closing_tags = array('img' => 1, 'br' => 1, 'input' => 1, 'meta' => 1, 'link' => 1, 'hr' => 1, 'base' => 1, 'embed' => 1, 'spacer' => 1); - protected $block_tags = array('root' => 1, 'body' => 1, 'form' => 1, 'div' => 1, 'span' => 1, 'table' => 1); - // Known sourceforge issue #2977341 - // B tags that are not closed cause us to return everything to the end of the document. - protected $optional_closing_tags = array( - 'tr' => array('tr' => 1, 'td' => 1, 'th' => 1), - 'th' => array('th' => 1), - 'td' => array('td' => 1), - 'li' => array('li' => 1), - 'dt' => array('dt' => 1, 'dd' => 1), - 'dd' => array('dd' => 1, 'dt' => 1), - 'dl' => array('dd' => 1, 'dt' => 1), - 'p' => array('p' => 1), - 'nobr' => array('nobr' => 1), - 'b' => array('b' => 1), - ); - - function __construct($str=null, $lowercase=true, $forceTagsClosed=true, $target_charset=DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) - { - if ($str) - { - if (preg_match("/^http:\/\//i", $str) || is_file($str)) - $this->load_file($str); - else - $this->load($str, $lowercase, $stripRN, $defaultBRText); - } - // Forcing tags to be closed implies that we don't trust the html, but it can lead to parsing errors if we SHOULD trust the html. - if (!$forceTagsClosed) - { - $this->optional_closing_array = array(); - } - $this->_target_charset = $target_charset; - } - - function __destruct() - { - $this->clear(); - } - - // load html from string - function load($str, $lowercase=true, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT) - { - global $debugObject; - - // prepare - $this->prepare($str, $lowercase, $stripRN, $defaultBRText); - // strip out comments - $this->remove_noise("''is"); - // strip out cdata - $this->remove_noise("''is", true); - // Per sourceforge http://sourceforge.net/tracker/?func=detail&aid=2949097&group_id=218559&atid=1044037 - // Script tags removal now preceeds style tag removal. - // strip out