From c4e10da646a0066cff73b497cd283ae42cc775f0 Mon Sep 17 00:00:00 2001 From: Chris Ward Date: Tue, 8 Jan 2013 02:26:09 +1100 Subject: [PATCH] Store regex, use util method instead of another regex. Store variable --- .../src/com/earth2me/essentials/ItemDb.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ItemDb.java b/Essentials/src/com/earth2me/essentials/ItemDb.java index 820aea12d..80c54a5a2 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 static com.earth2me.essentials.I18n._; import com.earth2me.essentials.api.IItemDb; import java.util.*; +import java.util.regex.Pattern; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @@ -21,6 +22,7 @@ public class ItemDb implements IConf, IItemDb private final transient Map> names = new HashMap>(); private final transient Map durabilities = new HashMap(); private final transient ManagedFile file; + private final transient Pattern splitPattern = Pattern.compile("[:+',;.]"); @Override public void reloadConfig() @@ -85,19 +87,20 @@ public class ItemDb implements IConf, IItemDb int itemid = 0; String itemname = null; short metaData = 0; + String[] parts = splitPattern.split(id);; if (id.matches("^\\d+[:+',;.]\\d+$")) { - itemid = Integer.parseInt(id.split("[:+',;.]")[0]); - metaData = Short.parseShort(id.split("[:+',;.]")[1]); + itemid = Integer.parseInt(parts[0]); + metaData = Short.parseShort(parts[1]); } - else if (id.matches("^\\d+$")) + else if (Util.isInt(id)) { itemid = Integer.parseInt(id); } else if (id.matches("^[^:+',;.]+[:+',;.]\\d+$")) { - itemname = id.split("[:+',;.]")[0].toLowerCase(Locale.ENGLISH); - metaData = Short.parseShort(id.split("[:+',;.]")[1]); + itemname = parts[0].toLowerCase(Locale.ENGLISH); + metaData = Short.parseShort(parts[1]); } else { @@ -138,7 +141,7 @@ public class ItemDb implements IConf, IItemDb public void addStringEnchantment(final User user, final boolean allowUnsafe, final ItemStack stack, final String string) throws Exception { - final String[] split = string.split("[:+',;.]", 2); + final String[] split = splitPattern.split(string, 2); if (split.length < 1) { return;