Merge branch '1.13-items' into 1.13

This commit is contained in:
md678685 2018-10-26 15:59:51 +01:00
commit 73bb41d579
42 changed files with 18853 additions and 385 deletions

View File

@ -106,6 +106,12 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.ess3</groupId>
<artifactId>FlattenedProvider</artifactId>
<version>2.15.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>

View File

@ -37,17 +37,17 @@ import net.ess3.api.ISettings;
import net.ess3.nms.PotionMetaProvider;
import net.ess3.nms.SpawnEggProvider;
import net.ess3.nms.SpawnerProvider;
import net.ess3.nms.flattened.FlatSpawnEggProvider;
import net.ess3.nms.legacy.LegacyPotionMetaProvider;
import net.ess3.nms.legacy.LegacySpawnEggProvider;
import net.ess3.nms.legacy.LegacySpawnerProvider;
import net.ess3.nms.refl.ReflSpawnEggProvider;
import net.ess3.nms.updatedmeta.BasePotionDataProvider;
import net.ess3.nms.updatedmeta.BlockMetaSpawnerProvider;
import net.ess3.nms.legacy.LegacySpawnEggProvider;
import net.ess3.nms.legacy.LegacySpawnerProvider;
import net.ess3.nms.v1_8_R1.v1_8_R1SpawnerProvider;
import net.ess3.nms.v1_8_R2.v1_8_R2SpawnerProvider;
import net.ess3.providers.ProviderFactory;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
@ -211,6 +211,8 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials {
execTimer.mark("Init(Worth/ItemDB)");
jails = new Jails(this);
confList.add(jails);
execTimer.mark("Init(Jails)");
spawnerProvider = new ProviderFactory<>(getLogger(),
Arrays.asList(
BlockMetaSpawnerProvider.class,
@ -220,6 +222,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();
@ -228,6 +231,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials {
BasePotionDataProvider.class,
LegacyPotionMetaProvider.class
), "potion meta").getProvider();
execTimer.mark("Init(Providers)");
reload();
} catch (YAMLException exception) {
if (pm.getPlugin("EssentialsUpdate") != null) {

View File

@ -134,8 +134,11 @@ public interface ISettings extends IConf {
boolean isEcoDisabled();
@Deprecated
boolean isTradeInStacks(int id);
boolean isTradeInStacks(Material type);
List<Material> itemSpawnBlacklist();
List<EssentialsSign> enabledSigns();

View File

@ -1,27 +1,25 @@
package com.earth2me.essentials;
import com.earth2me.essentials.utils.NumberUtil;
import com.earth2me.essentials.utils.StringUtil;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.ess3.api.IEssentials;
import net.ess3.nms.refl.ReflUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.Material;
import org.bukkit.block.Banner;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.*;
import org.bukkit.potion.Potion;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffect;
import java.util.*;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static com.earth2me.essentials.I18n.tl;
@ -29,189 +27,111 @@ 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<String, Integer> items = new HashMap<>();
private final transient Map<ItemData, List<String>> names = new HashMap<>();
private final transient Map<ItemData, String> primaryName = new HashMap<>();
private final transient Map<Integer, ItemData> legacyIds = new HashMap<>();
private final transient Map<String, Short> durabilities = new HashMap<>();
private final transient Map<String, String> nbtData = new HashMap<>();
private final transient ManagedFile file;
private final transient Pattern splitPattern = Pattern.compile("((.*)[:+',;.](\\d+))");
private final transient Pattern csvSplitPattern = Pattern.compile("(\"([^\"]*)\"|[^,]*)(,|$)");
private static Gson gson = new Gson();
// Maps primary name to ItemData
private final transient Map<String, ItemData> items = new HashMap<>();
// Maps alias to primary name
private final transient Map<String, String> itemAliases = new HashMap<>();
// Every known alias
private final transient Set<String> allAliases = new HashSet<>();
private transient ManagedFile file = null;
public ItemDb(final IEssentials ess) {
this.ess = ess;
file = new ManagedFile("items.csv", ess);
}
@Override
public void reloadConfig() {
final List<String> lines = file.getLines();
if (lines.isEmpty()) {
return;
if (file == null) {
file = new ManagedFile("items.json", ess);
}
durabilities.clear();
this.rebuild();
LOGGER.info(String.format("Loaded %s items.", listNames().size()));
}
private void rebuild() {
this.reset();
this.loadJSON(String.join("\n", file.getLines()));
}
private void reset() {
items.clear();
names.clear();
primaryName.clear();
itemAliases.clear();
allAliases.clear();
}
for (String line : lines) {
if (line.length() > 0 && line.charAt(0) == '#') {
continue;
}
public void loadJSON(String source) {
JsonObject map = (new JsonParser()).parse(source).getAsJsonObject();
String itemName = null;
int numeric = -1;
short data = 0;
String nbt = null;
for (Map.Entry<String, JsonElement> entry : map.entrySet()) {
String key = entry.getKey();
JsonElement element = entry.getValue();
boolean valid = false;
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) {
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(material, numeric, data);
if (names.containsKey(itemData)) {
List<String> nameList = names.get(itemData);
nameList.add(itemName);
if (element.isJsonObject()) {
ItemData data = gson.fromJson(element, ItemData.class);
items.put(key, data);
valid = true;
} else {
List<String> nameList = new ArrayList<>();
nameList.add(itemName);
names.put(itemData, nameList);
primaryName.put(itemData, itemName);
try {
String target = element.getAsString();
itemAliases.put(key, target);
valid = true;
} catch (Exception ignored) {}
}
legacyIds.put(numeric, itemData);
}
for (List<String> nameList : names.values()) {
Collections.sort(nameList, LengthCompare.INSTANCE);
if (valid) {
allAliases.add(key);
} else {
LOGGER.warning(String.format("Failed to add item: \"%s\": %s", key, element.toString()));
}
}
}
@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;
ItemStack is = get(id);
is.setAmount(quantity);
return is;
}
@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;
}
ItemData data = getByName(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));
throw new Exception(tl("unknownItemName", id));
}
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);
PotionData potionData = data.getPotionData();
Material material = data.getMaterial();
ItemStack stack = new ItemStack(material);
if (potionData != null) {
PotionMeta meta = (PotionMeta) stack.getItemMeta();
meta.setBasePotionData(potionData);
stack.setItemMeta(meta);
}
Material MOB_SPAWNER;
try {
MOB_SPAWNER = Material.SPAWNER;
} catch (Exception e) {
MOB_SPAWNER = Material.valueOf("MOB_SPAWNER");
return stack;
}
private ItemData getByName(String name) {
name = name.toLowerCase();
if (items.containsKey(name)) {
return items.get(name);
} else if (itemAliases.containsKey(name)) {
return items.get(itemAliases.get(name));
}
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 null;
}
@Override
@ -249,15 +169,7 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb {
@Override
public String names(ItemStack item) {
ItemData itemData = new ItemData(item.getType(), item.getDurability());
List<String> nameList = names.get(itemData);
if (nameList == null) {
itemData = new ItemData(item.getType(), (short) 0);
nameList = names.get(itemData);
if (nameList == null) {
return null;
}
}
List<String> nameList = nameList(item);
if (nameList.size() > 15) {
nameList = nameList.subList(0, 14);
@ -266,17 +178,38 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb {
}
@Override
public String name(ItemStack item) {
ItemData itemData = new ItemData(item.getType(), item.getDurability());
String name = primaryName.get(itemData);
if (name == null) {
itemData = new ItemData(item.getType(), (short) 0);
name = primaryName.get(itemData);
if (name == null) {
return null;
public List<String> nameList(ItemStack item) {
List<String> names = new ArrayList<>();
String primaryName = name(item);
names.add(primaryName);
for (Map.Entry<String, String> entry : itemAliases.entrySet()) {
if (entry.getValue().equalsIgnoreCase(primaryName)) {
names.add(entry.getKey());
}
}
return name;
return names;
}
@Override
public String name(ItemStack item) {
Material type = item.getType();
PotionData potion = null;
if ((type.name().contains("POTION") || type.name().equals("TIPPED_ARROW")) && item.getItemMeta() instanceof PotionMeta) {
potion = ((PotionMeta) item.getItemMeta()).getBasePotionData();
}
ItemData data = new ItemData(type, potion);
for (Map.Entry<String, ItemData> entry : items.entrySet()) {
if (entry.getValue().equals(data)) {
return entry.getKey();
}
}
return null;
}
@Override
@ -454,64 +387,35 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb {
}
@Override
@Deprecated
public Material getFromLegacyId(int id) {
ItemData data = this.legacyIds.get(id);
if(data == null) {
return null;
}
return data.getMaterial();
throw new UnsupportedOperationException("Legacy IDs aren't supported on this version of EssentialsX.");
}
@Override
@Deprecated
public int getLegacyId(Material material) throws Exception {
for(Map.Entry<String, Integer> 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());
throw new UnsupportedOperationException("Legacy IDs aren't supported on this version of EssentialsX.");
}
@Override
public Collection<String> listNames() {
return primaryName.values();
return Collections.unmodifiableSet(allAliases);
}
static class ItemData {
final private Material material;
private int legacyId;
final private short itemData;
public static class ItemData {
private String itemName;
private Material material;
private PotionData potionData;
ItemData(Material material, short itemData) {
public ItemData(Material material, PotionData potionData) {
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 legacyId;
}
public short getItemData() {
return itemData;
this.potionData = potionData;
}
@Override
public int hashCode() {
return (31 * material.hashCode()) ^ itemData;
return (31 * material.hashCode()) ^ potionData.hashCode();
}
@Override
@ -522,23 +426,30 @@ public class ItemDb implements IConf, net.ess3.api.IItemDb {
if (!(o instanceof ItemData)) {
return false;
}
ItemData pairo = (ItemData) o;
return this.material == pairo.getMaterial() && this.itemData == pairo.getItemData();
}
}
static class LengthCompare implements java.util.Comparator<String> {
private static final LengthCompare INSTANCE = new LengthCompare();
public LengthCompare() {
super();
ItemData that = (ItemData) o;
return this.material == that.getMaterial() && potionDataEquals(that);
}
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
public String getItemName() {
return itemName;
}
public Material getMaterial() {
return material;
}
public PotionData getPotionData() {
return this.potionData;
}
private boolean potionDataEquals(ItemData o) {
if (this.potionData == null && o.getPotionData() == null) {
return true;
} else if (this.potionData != null && o.getPotionData() != null) {
return this.potionData.equals(o.getPotionData());
} else {
return false;
}
}
}
}

View File

@ -649,10 +649,17 @@ public class Settings implements net.ess3.api.ISettings {
// #easteregg
@Override
@Deprecated
public boolean isTradeInStacks(int id) {
return config.getBoolean("trade-in-stacks-" + id, false);
}
// #easteregg
@Override
public boolean isTradeInStacks(Material type) {
return config.getBoolean("trade-in-stacks." + type.toString().toLowerCase().replace("_", ""), false);
}
// #easteregg
private boolean economyDisabled = false;

View File

@ -1,6 +1,7 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
import com.earth2me.essentials.utils.EnumUtil;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;
@ -23,17 +24,10 @@ public class Worth implements IConf {
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
// Check for matches with item name
result = config.getBigDecimal("worth." + itemname + "." + itemStack.getDurability(), BigDecimal.ONE.negate());
if (result.signum() < 0) {
final ConfigurationSection itemNameMatch = config.getConfigurationSection("worth." + itemname);
@ -48,27 +42,6 @@ public class Worth implements IConf {
result = config.getBigDecimal("worth." + itemname, BigDecimal.ONE.negate());
}
//Now we should check for item ID
if (result.signum() < 0) {
result = config.getBigDecimal("worth." + itemId + "." + itemStack.getDurability(), BigDecimal.ONE.negate());
}
if (result.signum() < 0) {
final ConfigurationSection itemNumberMatch = config.getConfigurationSection("worth." + itemId);
if (itemNumberMatch != null && itemNumberMatch.getKeys(false).size() == 1) {
result = config.getBigDecimal("worth." + itemId + ".0", BigDecimal.ONE.negate());
}
}
if (result.signum() < 0) {
result = config.getBigDecimal("worth." + itemId + ".*", BigDecimal.ONE.negate());
}
if (result.signum() < 0) {
result = config.getBigDecimal("worth." + itemId, BigDecimal.ONE.negate());
}
//This is to match the old worth syntax
if (result.signum() < 0) {
result = config.getBigDecimal("worth-" + itemId, BigDecimal.ONE.negate());
}
if (result.signum() < 0) {
return null;
}
@ -80,14 +53,6 @@ public class Worth implements IConf {
throw new Exception(tl("itemSellAir"));
}
int id;
try {
id = ess.getItemDb().getLegacyId(is.getType());
} catch (Exception e) {
return 0;
}
int amount = 0;
if (args.length > 1) {
@ -102,7 +67,7 @@ public class Worth implements IConf {
}
boolean stack = args.length > 1 && args[1].endsWith("s");
boolean requireStack = ess.getSettings().isTradeInStacks(id);
boolean requireStack = ess.getSettings().isTradeInStacks(is.getType());
if (requireStack && !stack) {
throw new Exception(tl("itemMustBeStacked"));
@ -146,15 +111,7 @@ public class Worth implements IConf {
// 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);
}
int itemId;
try {
itemId = ess.getItemDb().getLegacyId(itemStack.getType());
} catch (Exception e) {
return;
}
config.removeProperty("worth-" + itemId);
config.save();
}

View File

@ -15,6 +15,8 @@ public interface IItemDb {
String names(ItemStack item);
List<String> nameList(ItemStack item);
String name(ItemStack item);
List<ItemStack> getMatching(User user, String[] args) throws Exception;
@ -23,7 +25,9 @@ public interface IItemDb {
Collection<String> listNames();
@Deprecated
Material getFromLegacyId(int id);
@Deprecated
int getLegacyId(Material material) throws Exception;
}

View File

@ -14,11 +14,7 @@ import org.bukkit.Server;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.*;
public class Commandclearinventory extends EssentialsCommand {
@ -89,7 +85,7 @@ public class Commandclearinventory extends EssentialsCommand {
short data = -1;
int type = -1;
int amount = -1;
Material mat = null;
final Set<Material> mats = new HashSet<>();
if (args.length > (offset + 1) && NumberUtil.isInt(args[(offset + 1)])) {
amount = Integer.parseInt(args[(offset + 1)]);
@ -98,16 +94,15 @@ public class Commandclearinventory extends EssentialsCommand {
if (args[offset].equalsIgnoreCase("**")) {
type = -2;
} else if (!args[offset].equalsIgnoreCase("*")) {
final String[] split = args[offset].split(":");
final ItemStack item = ess.getItemDb().get(split[0]);
type = ess.getItemDb().getLegacyId(item.getType());
mat = item.getType();
final String[] split = args[offset].split(",");
if (split.length > 1 && NumberUtil.isInt(split[1])) {
data = Short.parseShort(split[1]);
} else {
data = item.getDurability();
for (String name : split) {
try {
mats.add(ess.getItemDb().get(name).getType());
} catch (Exception ignored) {}
}
type = 1;
}
}
@ -127,32 +122,27 @@ public class Commandclearinventory extends EssentialsCommand {
InventoryWorkaround.setItemInOffHand(player, null);
player.getInventory().setArmorContents(null);
} else {
if (data == -1) // data -1 means that all subtypes will be cleared
{
ItemStack stack = new ItemStack(mat);
if (showExtended) {
sender.sendMessage(tl("inventoryClearingAllStack", stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName()));
}
player.getInventory().remove(mat);
} else if (amount == -1) // amount -1 means all items will be cleared
{
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) {
sender.sendMessage(tl("inventoryClearingStack", removedAmount, stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName()));
}
} else {
if (amount < 0) {
amount = 1;
}
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);
for (Material mat : mats) {
if (amount == -1) // amount -1 means all items will be cleared
{
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) {
sender.sendMessage(tl("inventoryClearingStack", removedAmount, stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName()));
}
} else {
if (showExtended) {
sender.sendMessage(tl("inventoryClearFail", player.getDisplayName(), amount, stack.getType().toString().toLowerCase(Locale.ENGLISH)));
if (amount < 0) {
amount = 1;
}
ItemStack stack = new ItemStack(mat, amount);
if (player.getInventory().containsAtLeast(stack, amount)) {
sender.sendMessage(tl("inventoryClearingStack", amount, stack.getType().toString().toLowerCase(Locale.ENGLISH), player.getDisplayName()));
player.getInventory().removeItem(stack);
} else {
if (showExtended) {
sender.sendMessage(tl("inventoryClearFail", player.getDisplayName(), amount, stack.getType().toString().toLowerCase(Locale.ENGLISH)));
}
}
}
}

View File

@ -31,10 +31,9 @@ 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-" + itemId)) : (!ess.getUser(sender.getPlayer()).isAuthorized("essentials.itemspawn.exempt") && !ess.getUser(sender.getPlayer()).canSpawnItem(stack.getType())))) {
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.exempt") && !ess.getUser(sender.getPlayer()).canSpawnItem(stack.getType())))) {
throw new Exception(tl("cantSpawnItem", itemname));
}

View File

@ -27,11 +27,9 @@ public class Commanditem extends EssentialsCommand {
}
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-" + itemId)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) {
if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) {
throw new Exception(tl("cantSpawnItem", itemname));
}
try {

View File

@ -32,8 +32,7 @@ public class Commanditemdb extends EssentialsCommand {
itemStack = ess.getItemDb().get(args[0]);
}
int itemId = ess.getItemDb().getLegacyId(itemStack.getType());
sender.sendMessage(tl("itemType", itemStack.getType().toString(), itemId + ":" + Integer.toString(itemStack.getDurability())));
sender.sendMessage(tl("itemType", itemStack.getType().toString()));
if (itemHeld && itemStack.getType() != Material.AIR) {
int maxuses = itemStack.getType().getMaxDurability();

View File

@ -21,13 +21,11 @@ public class Commandmore extends EssentialsCommand {
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-" + itemId)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) {
if (ess.getSettings().permissionBasedItemSpawn() ? (!user.isAuthorized("essentials.itemspawn.item-all") && !user.isAuthorized("essentials.itemspawn.item-" + itemname)) : (!user.isAuthorized("essentials.itemspawn.exempt") && !user.canSpawnItem(stack.getType()))) {
throw new Exception(tl("cantSpawnItem", itemname));
}
if (user.isAuthorized("essentials.oversizedstacks")) {

View File

@ -47,10 +47,8 @@ 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-" + itemId, new Trade("repair-item", ess), ess), ess);
final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-item", ess), ess);
charge.isAffordableFor(user);
@ -96,10 +94,8 @@ public class Commandrepair extends EssentialsCommand {
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-" + itemId, new Trade("repair-item", ess), ess), ess);
final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), new Trade("repair-item", ess), ess);
try {
charge.isAffordableFor(user);
} catch (ChargeException ex) {

18541
Essentials/src/items.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aSold for \u00a7c{0} \u00a7a({1} {2} at {3} each).
itemSoldConsole=\u00a7a{0} \u00a7asold {1} for \u00a7a{2} \u00a7a({3} items at {4} each).
itemSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Person is already in jail\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74You do the crime, you do the time.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Nemas zadne predmety ktere lze prevest na bloky.
itemSold=\u00a7aProdano za \u00a7c{0} \u00a7a({1} {2} za cenu {3} kus)
itemSoldConsole=\u00a7a{0} \u00a7aProdano {1} za \u00a7a{2} \u00a7a({3} za cenu {4} kus).
itemSpawn=\u00a76Davam\u00a7c {0}\u00a7c {1}
itemType=\u00a76Predmet\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Predmet\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Tento hrace ja jiz uveznen\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Porusil jsi pravidla, ted si to odsedis\!

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Hold venligst et spillerkranie.
invalidWarpName=\u00a74Ugyldigt warp navn.
invalidWorld=\u00a74Ugyldig verden.
inventoryClearFail=\u00a74Spilleren {0} \u00a74har ikke\u00a7c {1} \u00a74af\u00a7c {2}\u00a74.
inventoryClearingAllArmor=\u00a76Rydede alle inventar-elementer og armor fra{0}\u00a76.
inventoryClearingAllArmor=\u00a76Rydede alle inventar-elementer og armor fra{0}\u00a76.
inventoryClearingAllItems=\u00a76Ryddede alle inventar-elementer fra {0}\u00a76.
inventoryClearingAllStack=\u00a76Ryddede alle\u00a7c {0} \u00a76fra {1}\u00a76.
inventoryClearingFromAll=\u00a76Rydder alle spilleres inventar...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aSolgt for \u00a7c{0} \u00a7a({1} {2} for {3} hver).
itemSoldConsole=\u00a7a{0} \u00a7asolgt {1} for \u00a7a{2} \u00a7a({3} elementer for {4} hver).
itemSpawn=\u00a76Giver\u00a7c {0} \u00a76af\u00a7c {1}
itemType=\u00a76Element\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Element\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Spilleren er allerede i f\u00e6ngsel\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7cDu bryder reglerne, du tager straffen.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Du hast keine Items die in Bl\u00f6cke konvertiert werd
itemSold=\u00a7aVerkauft f\u00fcr \u00a7c{0}\u00a7a ({1} {2} Einheiten je {3})
itemSoldConsole=\u00a7a{0} $averkauft {1} f\u00fcr \u00a7a{2} \u00a7a({3} Einheiten je {4})
itemSpawn=\u00a76Gebe\u00a7c {0}\u00a76x\u00a7c {1}
itemType=\u00a76Gegenstand\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Gegenstand\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Spieler ist bereits im Gef\u00e4ngnis\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Du hast ein Verbrechen begangen, also musst du deine Zeit absitzen.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aSold for \u00a7c{0} \u00a7a({1} {2} at {3} each).
itemSoldConsole=\u00a7a{0} \u00a7asold {1} for \u00a7a{2} \u00a7a({3} items at {4} each).
itemSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Person is already in jail\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74You do the crime, you do the time.

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Por favor sost\u00e9n un cr\u00e1neo de un jugador.
invalidWarpName=\u00a74\u00a1Nombre del Warp no reconocido\!
invalidWorld=\u00a74Mundo erroneo o no cargado.
inventoryClearFail=\u00a74El jugador {0} \u00a74no tiene\u00a7c {1} \u00a74de\u00a7c {2}\u00a74.
inventoryClearingAllArmor=\u00a7eLimpiado objetos y armaduras de\u00a7a {0}\u00a7e.
inventoryClearingAllArmor=\u00a7eLimpiado objetos y armaduras de\u00a7a {0}\u00a7e.
inventoryClearingAllItems=\u00a76Limpiado todos los objetos del inventario a\u00a76 {0}.
inventoryClearingAllStack=\u00a76Inventario limpiado completamente a \u00a7c {0} \u00a76de {1}\u00a76.
inventoryClearingFromAll=\u00a77Limpiando el inventario de todos los usuarios...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74No tienes items que puedan ser convertidos a bloques.
itemSold=\u00a77Vendido por \u00a7c {0} \u00a77 ({1} {2} a {3} cada uno).
itemSoldConsole={0} Vendio {1} por\u00a77 {2} \u00a77({3} objetos a {4} cada uno)
itemSpawn=\u00a76Dando {0} de {1}
itemType=\u00a76Objeto\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Objeto\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Ese jugador ya est\u00e1 en la c\u00e1rcel\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7c\u00a1Por el crimen hacer, a la c\u00e1rcel ir\u00e1s\!

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Palun hoia k\u00e4es m\u00e4ngija koljut.
invalidWarpName=\u00a74Vigane l\u00f5imu nimi\!
invalidWorld=\u00a74Vigane maailm.
inventoryClearFail=\u00a74M\u00e4ngijal {0} \u00a74ei ole\u00a7c {1} \u00a74eset\u00a7c {2}\u00a74.
inventoryClearingAllArmor=\u00a76Puhastati k\u00f5ik seljakoti esemed ja armor\: {0}\u00a76.
inventoryClearingAllArmor=\u00a76Puhastati k\u00f5ik seljakoti esemed ja armor\: {0}\u00a76.
inventoryClearingAllItems=\u00a76Puhastati k\u00f5ik seljakoti esemed\: {0}\u00a76.
inventoryClearingAllStack=\u00a76Eemaldati k\u00f5ik\u00a7c {0} \u00a76m\u00e4ngijalt {1}\u00a76.
inventoryClearingFromAll=\u00a76T\u00fchjendan k\u00f5ikide m\u00e4ngijate seljakoti...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aM\u00fc\u00fcs hinnaga \u00a7c{0} \u00a7a({1} {2} asukohas {3} \u00fche eest).
itemSoldConsole=\u00a7a{0} \u00a7am\u00fc\u00fcs {1} hinnaga \u00a7a{2} \u00a7a({3} eset asukohas {4} \u00fche eest).
itemSpawn=\u00a76Annan\u00a7c {0}\u00a7c {1}\u00a76-i
itemType=\u00a76Ese\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Ese\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74M\u00e4ngija on juba vanglas\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Sooritad kuriteo, oled vangis ka.

View File

@ -162,7 +162,7 @@ hatPlaced=\u00a7eNauti uudesta hatustasi\!
hatRemoved=\u00a76Hattusi on poistettu.
haveBeenReleased=\u00a77Sinut on vapautettu
heal=\u00a77Sinut on parannettu.
healDead=\u00a74Et voi parantaa pelaajaa, joka on kuollut\!
healDead=\u00a74Et voi parantaa pelaajaa, joka on kuollut\!
healOther=\u00a77Paransit pelaajan {0}.
helpConsole=Katsoaksesi apua konsolista, kirjoita ?.
helpFrom=\u00a77Komennot {0}\:
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a77Myy \u00a7c{0} \u00a77({1} {2} hintaan {3} kpl)
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
itemSpawn=\u00a77Annetaan {0} kpl {1}
itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a7cPelaaja on jo vankilassa\: {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7cSin\u00e4 teet rikoksen, istut my\u00f6s sen mukaan.

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Vous devez tenir une t\u00eate de joueur.
invalidWarpName=\u00a74Nom de warp invalide.
invalidWorld=\u00a7cMonde invalide.
inventoryClearFail=\u00a74Le joueur {0} \u00a74n''a pas\u00a7c {1}\u00a7c {2}\u00a74 sur lui.
inventoryClearingAllArmor=\u00a76Tous les items de l''inventaire et l''armure de {0}\u00a76 ont \u00e9t\u00e9 supprim\u00e9s.
inventoryClearingAllArmor=\u00a76Tous les items de l''inventaire et l''armure de {0}\u00a76 ont \u00e9t\u00e9 supprim\u00e9s.
inventoryClearingAllItems=\u00a76Tous les items de l''inventaire de {0}\u00a76 ont \u00e9t\u00e9 supprim\u00e9s.
inventoryClearingAllStack=\u00a76Tous les\u00a7c {0} \u00a76de l''inventaire de {1}\u00a76 ont \u00e9t\u00e9 supprim\u00e9s.
inventoryClearingFromAll=\u00a76Tous les inventaires sont en train d''\u00ea vid\u00e9s...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Vous n''avez pas d''items pouvant \u00eatre convertis e
itemSold=\u00a77Vendu pour \u00a7c{0} \u00a77({1} {2} \u00e0 {3} chacun)
itemSoldConsole={0} vendu {1} pour \u00a77{2} \u00a77({3} objet(s) \u00e0 {4} chacun)
itemSpawn=\u00a77Donne {0} de {1}
itemType=\u00a76Item \:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Item \:\u00a7c {0}
jailAlreadyIncarcerated=\u00a7cJoueur d\u00e9j\u00e0 emprisonn\u00e9 \: {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7cVous avez commis un crime, vous en payez le prix.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Nincs olyan elem, amely blokk\u00e1 alak\u00edthat\u00f
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}
itemType=\u00a76T\u00e1rgy\:\u00a7c {0}
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.
@ -257,7 +257,7 @@ 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\:
listGroupTag={0}\u00a7r\:
listHiddenTag=\u00a77[REJTETT]\u00a7r
loadWarpError=\u00a74Nem siker\u00fclt a warp bet\u00f6lt\u00e9se {0}.
localFormat=[H]<{0}> {1}

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Non hai oggetti che possono essere convertiti in blocch
itemSold=\u00a7aVenduto per \u00a7c{0} \u00a7a({1} {2} a {3} l''uno).
itemSoldConsole=\u00a7a{0} \u00a7aha venduto {1} per \u00a7a{2} \u00a7a({3} oggetti a {4} l''uno).
itemSpawn=\u00a76Dati\u00a7c {0} \u00a76di\u00a7c {1}
itemType=\u00a76Oggetto\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Oggetto\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Giocatore gi\u00E0 in prigione\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Avrai tempo per riflettere... in prigione.

View File

@ -21,7 +21,7 @@ antiBuildUse=\u00a74\ub2f9\uc2e0\uc740 \u00a7c {0}\u00a74\uc744 \uc0ac\uc6a9\ud5
autoAfkKickReason={0}\ubd84 \uc774\uc0c1\uc758 \uc720\ud734\uc0c1\ud0dc\ub85c \uc788\uc5c8\uae30\uc5d0 \ucd94\ubc29\ub2f9\ud558\uc168\uc2b5\ub2c8\ub2e4.
backAfterDeath=\u00a7c/back \u00a76\uba85\ub839\uc5b4\ub85c \uc0ac\ub9dd\ud55c \uc9c0\uc810\uc73c\ub85c \ud154\ub808\ud3ec\ud2b8 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
backupDisabled=\u00a74\uc678\ubd80 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
backupFinished=\u00a76\ubc31\uc5c5\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
backupFinished=\u00a76\ubc31\uc5c5\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
backupStarted=\u00a76\ubc31\uc5c5\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4.
backUsageMsg=\u00a76\uc774\uc804 \uc7a5\uc18c\ub85c \ub3cc\uc544\uac00\ub294\uc911..
balance=\u00a76\uc794\uace0\:\u00a7c {0}
@ -37,7 +37,7 @@ bedMissing=\u00a74\ub2f9\uc2e0\uc758 \uce68\ub300\uac00 \ub193\uc5ec\uc9c0\uc9c0
bedNull=\u00a7m\uce68\ub300\u00a7r
bedSet=\u00a76\uce68\ub300 \uc2a4\ud3f0\uc9c0\uc810\uc774 \uc124\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4\!
bigTreeFailure=\u00a7c\ud070 \ub098\ubb34 \uc0dd\uc131\uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc794\ub514\ub098 \ud759\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc138\uc694.
bigTreeSuccess=\u00a76\ud070 \ub098\ubb34\ub97c \uc131\uacf5\uc801\uc73c\ub85c \uc0dd\uc131\ud558\uc600\uc2b5\ub2c8\ub2e4.
bigTreeSuccess=\u00a76\ud070 \ub098\ubb34\ub97c \uc131\uacf5\uc801\uc73c\ub85c \uc0dd\uc131\ud558\uc600\uc2b5\ub2c8\ub2e4.
blockList=\u00a76\uc5d0\uc13c\uc15c\uc740 \ub2e4\uc74c \ud50c\ub7ec\uadf8\uc778\uc5d0 \uc758\ud574 \ucee4\ub9e8\ub4dc\uac00 \uad50\uccb4\ub429\ub2c8\ub2e4\:
bookAuthorSet=\u00a76\ucc45\uc758 \uc800\uc790\ub97c \u00a7c{0}\u00a76\uc73c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.
bookLocked=\u00a76\uc774 \ucc45\uc740 \uc7a0\uae34\uc0c1\ud0dc\ub85c \uc804\ud658\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
@ -72,7 +72,7 @@ connectedPlayers=\u00a76\uc811\uc18d \uc911\uc778 \ud50c\ub808\uc774\uc5b4\u00a7
connectionFailed=\uc5f0\uacb0\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4.
cooldownWithMessage=\u00a7c\uc7ac\uc0ac\uc6a9 \ub300\uae30\: {0}
coordsKeyword={0}, {1}, {2}
corruptNodeInConfig=\u00a7c\uc624\ub958\: \u00a74config.yml \ub0b4 {0} \ub178\ub4dc\uc5d0 \uc624\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4.
corruptNodeInConfig=\u00a7c\uc624\ub958\: \u00a74config.yml \ub0b4 {0} \ub178\ub4dc\uc5d0 \uc624\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4.
couldNotFindTemplate=\ud15c\ud50c\ub9bf {0}\ub97c \ucc3e\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries and delay \u00a7c{2}
createKitFailed=\u00a74Error occurred whilst creating kit {0}.
@ -89,14 +89,14 @@ defaultBanReason=\ub2f9\uc2e0\uc740 \uad00\ub9ac\uc790\uc5d0 \uc758\ud574 \uc11c
deleteFileError={0} \ud30c\uc77c\uc774 \uc0ad\uc81c\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
deleteHome=\u00a76\uc9d1\u00a7c {0} \uc774 \uc81c\uac70\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.
deleteJail=\u00a77{0} \uac10\uc625\uc774 \uc81c\uac70\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
deleteWarp=\u00a76\uc6cc\ud504 {0}\ub294(\uc740) \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
deleteWarp=\u00a76\uc6cc\ud504 {0}\ub294(\uc740) \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
deniedAccessCommand=\u00a7c{0}\ub2d8\uc740 \ud574\ub2f9 \uba85\ub839\uc5b4\uc5d0 \uc811\uadfc\ud560 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
denyBookEdit=\u00a74\ub2f9\uc2e0\uc740 \uc774 \ucc45\uc758 \uc7a0\uae08\uc744 \ud574\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
denyChangeAuthor=\u00a74\ub2f9\uc2e0\uc740 \uc774 \ucc45\uc758 \uc800\uc790\ub97c \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
denyChangeTitle=\u00a74\ub2f9\uc2e0\uc740 \uc774 \ucc45\uc758 \uc81c\ubaa9\uc744 \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
depth=\u00a77\ub2f9\uc2e0\uc740 \ud574\uc218\uba74\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
depthAboveSea=\u00a76\ub2f9\uc2e0\uc740 \ud574\uc218\uba74 {0} \u00a76\ube14\ub85d \uc704\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
depthBelowSea=\u00a76\ub2f9\uc2e0\uc740 \ud574\uc218\uba74 {0} \u00a76\ube14\ub85d \uc544\ub798\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
depthBelowSea=\u00a76\ub2f9\uc2e0\uc740 \ud574\uc218\uba74 {0} \u00a76\ube14\ub85d \uc544\ub798\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
destinationNotSet=\ubaa9\uc801\uc9c0\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
disabled=\ube44\ud65c\uc131\ud654\ub428
disabledToSpawnMob=\u00a74\uc774 \ubaac\uc2a4\ud130\uc758 \uc2a4\ud3f0\uc740 \uc124\uc815 \ud30c\uc77c\uc5d0\uc11c \ud574\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a77 \u00a7c {0} \u00a77 {{1} \uc640 {2} \uc758 \uc544\uc774\ud15c\uc774 \ud314\ub9ac\ub2e4.)
itemSoldConsole={0} \ud310\ub9e4 {1} \uc758 \u00a77 {2} \u00a77 ({3} \uc544\uc774\ud15c\uc758 \ud56d\ubaa9 {4} \uac01\uac01\uc758)
itemSpawn=\u00a77\uc544\uc774\ud15c {1}\uc744/\ub97c {0}\uac1c \uc90d\ub2c8\ub2e4.
itemType=\u00a76\uc544\uc774\ud15c\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76\uc544\uc774\ud15c\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\uc0ac\ub78c\uc774 \uc774\ubbf8 \uac10\uc625\uc5d0 \uc788\uc74c\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7c\ub2f9\uc2e0\uc740 \ubc94\uc8c4\ub97c \uc800\uc9c0\ub974\uace0\uc788\uc2b5\ub2c8\ub2e4, \ub2f9\uc2e0\uc740 \uc2dc\uac04\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
@ -379,7 +379,7 @@ payToggleOn=\u00a76You are now accepting payments.
pendingTeleportCancelled=\u00a74\uc21c\uac04\uc774\ub3d9 \uc694\uccad\uc774 \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
playerBanned=\u00a76\ud50c\ub808\uc774\uc5b4\u00a7c {0} \u00a76\ub2d8\uc774\u00a7c {1} \u00a76\ub2d8\uc744 \ubca4\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc0ac\uc720\: \u00a7c{2}\u00a76.
playerInJail=\u00a74\uadf8 \ud50c\ub808\uc774\uc5b4\ub294 \uc774\ubbf8 {0}\u00a74 \uac10\uc625\uc5d0 \uc218\uac10\ub418\uc5b4\uc788\uc2b5\ub2c8\ub2e4.
playerInJail=\u00a74\uadf8 \ud50c\ub808\uc774\uc5b4\ub294 \uc774\ubbf8 {0}\u00a74 \uac10\uc625\uc5d0 \uc218\uac10\ub418\uc5b4\uc788\uc2b5\ub2c8\ub2e4.
playerJailed=\u00a76{0} \ud50c\ub808\uc774\uc5b4\uac00 \uac10\uae08\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
playerJailedFor=\u00a76\ud50c\ub808\uc774\uc5b4 {0}\uc740 {1}\uc5d0 \uac10\uae08\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
playerKicked=\u00a76Player\u00a7c {0} \u00a76kicked {1} for {2}.
@ -498,7 +498,7 @@ survival=\uc11c\ubc14\uc774\ubc8c
takenFromAccount=\u00a7c{0} \ub9cc\ud07c \uc9c0\ubd88\ud558\uc600\uc2b5\ub2c8\ub2e4.
takenFromOthersAccount=\u00a7a{1}\u00a7a\uc758 \uacc4\uc815\uc5d0\uc11c {0}\u00a7a\uc744 \uac00\uc838\uc640 \uc794\uace0\uac00 {2}\u00a7a\uc774 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.
teleportAAll=\u00a76\ubaa8\ub4e0 \ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ud154\ub808\ud3ec\ud2b8 \uc694\uccad\uc744 \ubcf4\ub0c8\uc2b5\ub2c8\ub2e4...
teleportAll=\u00a76\ubaa8\ub4e0 \ud50c\ub808\uc774\uc5b4\ub97c \ud154\ub808\ud3ec\ud2b8 \ud558\ub294\uc911..
teleportAll=\u00a76\ubaa8\ub4e0 \ud50c\ub808\uc774\uc5b4\ub97c \ud154\ub808\ud3ec\ud2b8 \ud558\ub294\uc911..
teleportationCommencing=\u00a76\ud154\ub808\ud3ec\ud2b8 \uc911...
teleportationDisabled=\u00a76\ud154\ub808\ud3ec\ud2b8\uac00 \u00a7c\ube44\ud65c\uc131\ud654\u00a76\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
teleportationDisabledFor=\u00a7c{0}\u00a76 \uc5d0 \ub300\ud55c \uc774\ub3d9\uc774 \uc81c\ud55c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
@ -554,7 +554,7 @@ unlimitedItems=\ubb34\uc81c\ud55c \uc544\uc774\ud15c \ubaa9\ub85d\:
unmutedPlayer=\ud50c\ub808\uc774\uc5b4 \u00a7c{0}\u00a76\ub294 \uc774\uc81c \ub9d0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
unsafeTeleportDestination=\u00a74\ud154\ub808\ud3ec\ud2b8 \ub300\uc0c1\uc774 \uc548\uc804\ud558\uace0 \ud154\ub808\ud3ec\ud2b8\uac00 \uc548\uc804 \ube44\ud65c\uc131\ud654 \ub429\ub2c8\ub2e4.
unvanishedReload=\u00a74A reload has forced you to become visible.
upgradingFilesError=\ud30c\uc77c\uc744 \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\ub358 \ub3c4\uc911, \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4.
upgradingFilesError=\ud30c\uc77c\uc744 \uc5c5\uadf8\ub808\uc774\ub4dc \ud558\ub358 \ub3c4\uc911, \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4.
uptime=\u00a76\uac00\ub3d9 \uc2dc\uac04\:\u00a7c {0}
userAFK=\u00a77{0} \u00a75\uc740 \ud604\uc7ac \uc7a0\uc218 \uc0c1\ud0dc\uc774\ubbc0\ub85c \uc751\ub2f5\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
userAFKWithMessage=\u00a77{0} \u00a75\uc740 \ud604\uc7ac \uc7a0\uc218 \uc0c1\ud0dc\uc774\ubbc0\ub85c \uc751\ub2f5\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. {1}
@ -570,7 +570,7 @@ usingTempFolderForTesting=\ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 temp \ud3f4\ub35
vanish=\u00a76{0}\u00a76\ub2d8\uc758 \uc0ac\ub77c\uc9c0\uae30\uac00 {1}.
vanished=\u00a76\ub2f9\uc2e0\uc740 \uc774\uc81c \uc77c\ubc18 \ud50c\ub808\uc774\uc5b4\uc5d0\uac8c \ubcf4\uc774\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4, \uadf8\ub9ac\uace0 \uac8c\uc784 \ub0b4 \uba85\ub839\uc5b4\ub85c\ubd80\ud130 \uc228\uaca8\uc9d1\ub2c8\ub2e4.
versionMismatch=\u00a74\ubc84\uc804 \ubd88\uc77c\uce58\! {0}\uc744 \ub3d9\uc77c\ud55c \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ud574 \uc8fc\uc138\uc694
versionMismatchAll=\ubc84\uc804\uc774 \ubd88\uc77c\uce58\ud569\ub2c8\ub2e4\! \ubaa8\ub4e0 Essentials jar \ud30c\uc77c\ub4e4\uc758 \ubc84\uc804\uc744 \uac19\uc740 \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ud574 \uc8fc\uc138\uc694.
versionMismatchAll=\ubc84\uc804\uc774 \ubd88\uc77c\uce58\ud569\ub2c8\ub2e4\! \ubaa8\ub4e0 Essentials jar \ud30c\uc77c\ub4e4\uc758 \ubc84\uc804\uc744 \uac19\uc740 \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ud574 \uc8fc\uc138\uc694.
voiceSilenced=\u00a76\ub2f9\uc2e0\uc758 \ubaa9\uc18c\ub9ac\uac00 \uce68\ubb35\ub418\uc5c8\uc2b5\ub2c8\ub2e4
walking=\uac77\uae30
warpDeleteError=\u00a74\uc6cc\ud504 \ud30c\uc77c \uc0ad\uc81c\uc911 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aParduota po \u00a7c{0} \u00a7a({1} {2} uz {3} kiekviena).
itemSoldConsole=\u00a7a{0} \u00a7asold {1} for \u00a7a{2} \u00a7a({3} items at {4} each).
itemSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Item\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\u017daid\u0117jas jau yra kal\u0117jime\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Padarei nusikaltim\u0105, laikas atpirkti nuod\u0117mes.

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Houd alstublieft een schedel vast.
invalidWarpName=\u00a74Ongeldige warp naam.
invalidWorld=\u00a7cOngeldige wereld.
inventoryClearFail=\u00a74Player {0} \u00a74heeft geen\u00a7c {1} \u00a74stuks\u00a7c {2}\u00a74.
inventoryClearingAllArmor=\u00a76Alle inventaris voorwerpen en het harnas van {0}\u00a76 zijn verwijderd.
inventoryClearingAllArmor=\u00a76Alle inventaris voorwerpen en het harnas van {0}\u00a76 zijn verwijderd.
inventoryClearingAllItems=\u00a76Alle inventaris voorwerpen van {0}\u00a76 zijn verwijderd.
inventoryClearingAllStack=\u00a76Alle\u00a7c {0} \u00a76van {1}\u00a76 is verwijderd.
inventoryClearingFromAll=\u00a76Inventarissen van alle gebruikers leegmaken....
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a77Verkocht voor \u00a7c{0} \u00a77({1} {2} voorwerpen voor {3} per stuk)
itemSoldConsole={0} verkocht {1} voor \u00a77{2} \u00a77({3} voorwerpen voor {4} per stuk)
itemSpawn=\u00a77Geeft {0} {1}
itemType=\u00a76Voorwerp\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Voorwerp\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Deze persoon zit al in de gevangenis\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74U begaat een misdrijf, U zit uw tijd uit.
@ -457,7 +457,7 @@ requiredBukkit=\u00a76* \! * U heeft op zijn minst build {0} van CraftBukkit nod
resetBal=\u00a76Balans is gereset naar \u00a7c{0} \u00a76voor alle online spelers.
resetBalAll=\u00a76Saldo is gereset naar \u00a7c{0} \u00a76voor alle spelers.
returnPlayerToJailError=\u00a74Een error is verschenen tijdens het proberen om het terugsturen van speler\u00a7c {0} \u00a74naar gevangenis\: \u00a7c{1}\u00a74\!
runningPlayerMatch=\u00a76Zoeken naar spelers die ''\u00a7c{0}\u00a76'' matchen (Dit kan even duren)
runningPlayerMatch=\u00a76Zoeken naar spelers die ''\u00a7c{0}\u00a76'' matchen (Dit kan even duren)
second=seconde
seconds=seconden
seenAccounts=\u00a76Speler is ook bekend als\:\u00a7c {0}
@ -468,7 +468,7 @@ sellHandPermission=\u00a76You do not have permission to hand sell.
serverFull=Server is vol.
serverTotal=\u00a76Server Totaal\:\u00a7c {0}
setBal=\u00a7aUw saldo is ingesteld op {0}.
setBalOthers=\u00a7aU heeft het saldo van {0} \u00a7aingesteld op {1}.
setBalOthers=\u00a7aU heeft het saldo van {0} \u00a7aingesteld op {1}.
setSpawner=\u00a76Veranderde oproeper type naar\u00a7c {0}\u00a76.
sheepMalformedColor=\u00a74Misvormde kleur.
shoutFormat=\u00a76[Schreeuw]\u00a7r {0}

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74Nie znaleziono przedmiot\u00F3w kt\u00F3re mo\u017Cna z
itemSold=\u00a7aSprzedano za \u00a7c{0} \u00a7a({1} {2} po {3} ka\u017Cdy)
itemSoldConsole=\u00a7a{0} \u00a7aSprzedano {1} za \u00a7a{2} \u00a7a({3} sztuki po {4} kazda)
itemSpawn=\u00a77Otrzymano\u00a7c {0} \u00a77z\u00a7c {1}
itemType=\u00a77Przedmiot\:\u00a7c {0} \u00a77-\u00a7c {1}
itemType=\u00a77Przedmiot\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Ten gracz jest ju\u017C w wi\u0119zieniu \u00a7c{0} \u00a74.
jailList=\u00a76Wi\u0119zienia\:\u00a7r {0}
jailMessage=\u00a74Za ka\u017Cde przewinienie czeka Ci\u0119 kara.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00A74N\u00E3o tens itens que possam ser transformado em bloc
itemSold=\u00A7aVendido por \u00A7c{0} \u00A7a({1} {2} a {3} cada).
itemSoldConsole=\u00A7a{0} \u00A7avendeu {1} por \u00A7a{2} \u00A7a({3} itens a {4} cada).
itemSpawn=\u00A76A dar\u00A7c {0}\u00A7c {1}
itemType=\u00A76Itens:\u00A7c {0} \u00A76-\u00A7c {1}
itemType=\u00A76Itens:\u00A7c {0}
jailAlreadyIncarcerated=\u00A74Esse jogador j\u00E1 est\u00E1 na pris\u00E3o:\u00A7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00A74Foste condenado. Pensa bem antes de voltares a fazer o que fizeste.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00A74Voc\u00EA n\u00E3o tem itens que possam virar blocos.
itemSold=\u00A7aVendido por \u00A7c{0} \u00A7a({1} {2} a {3} cada).
itemSoldConsole=\u00A7a{0} \u00A7avendeu {1} por \u00A7a{2} \u00A7a({3} itens a {4} cada).
itemSpawn=\u00A76Dando\u00A7c {0}\u00A7c {1}
itemType=\u00A76Item\:\u00A7c {0} \u00A76-\u00A7c {1}
itemType=\u00A76Item\:\u00A7c {0}
jailAlreadyIncarcerated=\u00A74Essa pessoa j\u00E1 est\u00E1 na cadeia\:\u00A7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00A74Voc\u00EA foi condenado. Pense bem antes de fazer o que fez.

View File

@ -202,7 +202,7 @@ invalidSkull=\u00a74Te rog tine un craniu al unui player.
invalidWarpName=\u00a74Numele teleportarei este invalida\!
invalidWorld=\u00a74Lume invalida.
inventoryClearFail=\u00a74Jucatorul {0} \u00a74nu are\u00a7c {1} \u00a74de\u00a7c {2} \u00a74.
inventoryClearingAllArmor=\u00a76Se curata tot inventarul lui {0} \u00a76.
inventoryClearingAllArmor=\u00a76Se curata tot inventarul lui {0} \u00a76.
inventoryClearingAllItems=\u00a76Se curata inventarul lui {0} \u00a76.
inventoryClearingAllStack=\u00a76Se curata\u00a7c {0} \u00a76ale lui {1} \u00a76.
inventoryClearingFromAll=\u00a76Se curata inventarul tuturor jucatorilor...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aVandut pentru \u00a7c{0} \u00a7a({1} {2} la {3} fiecare).
itemSoldConsole=\u00a7a{0} \u00a7aa vandut {1} pentru \u00a7a{2} \u00a7a({3} obiecte la {4} fiecare).
itemSpawn=\u00a76Ai primit\u00a7c {0} \u00a76bucata(ti) de\u00a7c {1}
itemType=\u00a76Obiect\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Obiect\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Acest jucator este deja in inchisoare\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Incalci reguli, trebuie sa platesti.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7a\u041f\u0440\u043e\u0434\u0430\u043d\u043e \u0437\u0430 \u00a7c{0} \u00a7a({1} {2} \u043f\u043e {3} \u043a\u0430\u0436\u0434\u044b\u0439).
itemSoldConsole=\u00a7a{0} \u00a7a\u043f\u0440\u043e\u0434\u0430\u043b {1} \u0437\u0430 \u00a7a{2} \u00a7a({3} \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0437\u0430 {4} \u043a\u0430\u0436\u0434\u044b\u0439).
itemSpawn=\u00a76\u0412\u044b\u0434\u0430\u043d\u043e\u00a7c {0} \u00a76\u0448\u0442\u0443\u043a\u00a7c {1}
itemType=\u00a76\u041f\u0440\u0435\u0434\u043c\u0435\u0442\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76\u041f\u0440\u0435\u0434\u043c\u0435\u0442\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\u0438\u0433\u0440\u043e\u043a \u0443\u0436\u0435 \u0432 \u0442\u044e\u0440\u044c\u043c\u0435\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74\u0412\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0442\u044e\u0440\u044c\u043c\u0443. \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u0434\u044b\u0445\u0430\!

View File

@ -109,7 +109,7 @@ durability=\u00a77Det h\u00e4r verktyget har \u00a7c{0}\u00a77 anv\u00e4ndningar
east=E
editBookContents=\u00a7eDu kan nu \u00e4ndra inneh\u00e5llet i denna bok.
enabled=aktiverad
enableUnlimited=Ger o\u00e4ndligt med pengar till
enableUnlimited=Ger o\u00e4ndligt med pengar till
enchantmentApplied=\u00a77F\u00f6rtrollningen {0} har blivit till\u00e4mpad p\u00e5 saken du har i handen.
enchantmentNotFound=\u00a7cF\u00f6rtrollningen hittades inte
enchantmentPerm=\u00a7cDu har inte beh\u00f6righet att {0}
@ -202,7 +202,7 @@ invalidSkull=\u00a74Sn\u00e4lla h\u00e5ll i ett spelar Huvud.
invalidWarpName=\u00a74Ogiltigt warpnamn
invalidWorld=\u00a7cOgiltig v\u00e4rld.
inventoryClearFail=\u00a74Spelaren {0} \u00a74har inte \u00a7c {1} \u00a74av\u00a7c {2}\u00a74.
inventoryClearingAllArmor=\u00a76Rensade alla inventory objekt och rustning fr\u00e5n {0}\u00a76.
inventoryClearingAllArmor=\u00a76Rensade alla inventory objekt och rustning fr\u00e5n {0}\u00a76.
inventoryClearingAllItems=\u00a76Rensade alla inventory saker fr\u00e5n {0}\u00a76.
inventoryClearingAllStack=\u00a76Rensade alla\u00a7c {0} \u00a76fr\u00e5n {1}\u00a76.
inventoryClearingFromAll=\u00a76Rensar inventoriet f\u00f6r alla spelare...
@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a77S\u00e5lde f\u00f6r \u00a7c{0} \u00a77({1} {2} f\u00f6r {3} styck)
itemSoldConsole={0} s\u00e5lde {1} f\u00f6r \u00a77{2} \u00a77({3} saker f\u00f6r {4} styck)
itemSpawn=\u00a77Ger {0} stycken {1}
itemType=Objekt\: {0} - {1}
itemType=Objekt\: {0}
jailAlreadyIncarcerated=\u00a7cPersonen \u00e4r redan i f\u00e4ngelse\: {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a7cBryter du mot reglerna, f\u00e5r du st\u00e5 ditt kast.

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7aSatilan Esya \u00a7c{0} \u00a7a({1} {2} , {3}).
itemSoldConsole=\u00a7a{0} \u00a7aSatildi {1} , \u00a7a{2} \u00a7a({3} , {4}).
itemSpawn=\u00a76Verilmekte\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Esya ve Araclar\:\u00a7c {0} \u00a76-\u00a7c {1}
itemType=\u00a76Esya ve Araclar\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74Bu Oyuncu Zaten Hapse Mahkum\:\u00a7c {0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74Cezalandirildin Lutfen Kurallara Dikkat Et\!
@ -257,7 +257,7 @@ lightningUse=\u00a76Bu Kisi Simsek Atiyor\u00a7c {0}
listAfkTag=\u00a77[UzaktaAFK]\u00a7r
listAmount=\u00a76Oyuncu Kapasitesi \u00a7c{0}\u00a76 Acik Olan \u00a7c{1}\u00a76.
listAmountHidden=\u00a76Suan \u00a7c{0}\u00a76/{1}\u00a76 Sunucudaki \u00a7c{2}\u00a76 oyuncu cevrimici.
listGroupTag={0}\u00a7f\:
listGroupTag={0}\u00a7f\:
listHiddenTag=\u00a77[Gizlenmis]\u00a7r
loadWarpError=\u00a74Is\u0131nlanma Noktasi Yuklenemedi {0}.
localFormat=[L]<{0}> {1}

View File

@ -198,7 +198,7 @@ itemSellAir=\u0042\u1ea1\u006e \u0111\u0061\u006e\u0067 \u0063\u1ed1 \u0067\u1ea
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}
itemType=\u00a76\u0056\u1ead\u0074 \u0070\u0068\u1ea9\u006d\:\u00a7c {0}
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}
jailList=\u00a76Jails\:\u00a7r {0}

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74\u4f60\u6ca1\u6709\u8db3\u591f\u7684\u7269\u54c1\u6765\
itemSold=\u00a7a\u83b7\u5f97 \u00a7c {0} \u00a7a \uff08{1} \u5355\u4f4d{2},\u6bcf\u4e2a\u4ef7\u503c {3}\uff09
itemSoldConsole=\u00a7c{0} \u00a76\u5356\u51fa\u4e86 {1},\u83b7\u5f97\u4e86\u00a76 {2} \u00a76 \uff08{3} \u5355\u4f4d\u7269\u54c1,\u6bcf\u4e2a\u4ef7\u503c {4}\uff09
itemSpawn=\u00a76\u751f\u6210 {0} \u4e2a {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0} \u00a76-\u00a74 {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\u5df2\u5728\u76d1\u72f1\u4e2d\u7684\u73a9\u5bb6\:{0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74\u8bf7\u5728\u76d1\u72f1\u4e2d\u9762\u58c1\u601d\u8fc7\uff01

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7a\u7372\u5f97 \u00a7c {0} \u00a7a \uff08{1} \u55ae\u4f4d{2},\u6bcf\u500b\u50f9\u503c {3}\uff09
itemSoldConsole=\u00a7c{0} \u00a76\u8ce3\u51fa\u4e86 {1},\u7372\u5f97\u4e86\u00a76 {2} \u00a76 \uff08{3} \u55ae\u4f4d\u7269\u54c1,\u6bcf\u500b\u50f9\u503c {4}\uff09
itemSpawn=\u00a76\u751f\u6210 {0} \u500b {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0} \u00a76-\u00a74 {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\u5df2\u5728\u76e3\u7344\u4e2d\u7684\u73a9\u5bb6\:{0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74\u8acb\u5728\u76e3\u7344\u4e2d\u9762\u58c1\u601d\u904e\uff01

View File

@ -223,7 +223,7 @@ itemsNotConverted=\u00a74You have no items that can be converted into blocks.
itemSold=\u00a7a\u7372\u5f97 \u00a7c {0} \u00a7a \uff08{1} \u55ae\u4f4d{2},\u6bcf\u500b\u50f9\u503c {3}\uff09
itemSoldConsole=\u00a7c{0} \u00a76\u8ce3\u51fa\u4e86 {1},\u7372\u5f97\u4e86\u00a76 {2} \u00a76 \uff08{3} \u55ae\u4f4d\u7269\u54c1,\u6bcf\u500b\u50f9\u503c {4}\uff09
itemSpawn=\u00a76\u751f\u6210 {0} \u500b {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0} \u00a76-\u00a74 {1}
itemType=\u00a76\u7269\u54c1\:\u00a7c {0}
jailAlreadyIncarcerated=\u00a74\u5df2\u5728\u76e3\u7344\u4e2d\u7684\u73a9\u5bb6\:{0}
jailList=\u00a76Jails\:\u00a7r {0}
jailMessage=\u00a74\u8acb\u5728\u76e3\u7344\u4e2d\u9762\u58c1\u601d\u904e\uff01

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>EssentialsXParent</artifactId>
<groupId>net.ess3</groupId>
<version>2.15.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>FlattenedProvider</artifactId>
<dependencies>
<dependency>
<groupId>net.ess3</groupId>
<artifactId>NMSProvider</artifactId>
<version>2.15.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,30 @@
package net.ess3.nms.flattened;
import net.ess3.nms.SpawnEggProvider;
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";
}
}

View File

@ -47,6 +47,7 @@
<module>nms/1_8_R2Provider</module>
<module>nms/LegacyProvider</module>
<module>nms/ReflectionProvider</module>
<module>nms/FlattenedProvider</module>
</modules>
<dependencies>
@ -171,6 +172,7 @@
<include>messages*.properties</include>
<include>config.yml</include>
<include>items.csv</include>
<include>items.json</include>
</includes>
<excludes>
<exclude>plugin.yml</exclude>
@ -276,6 +278,7 @@
<include>*.yml</include>
<include>*.csv</include>
<include>*.txt</include>
<include>*.json</include>
</includes>
<filtering>true</filtering>
</resource>