1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-02 11:13:55 +02:00

Cleanup usages of split.

This commit is contained in:
md_5
2012-10-27 12:51:18 +11:00
parent 10c8540fa0
commit 811f20d254
11 changed files with 68 additions and 34 deletions

View File

@@ -10,6 +10,7 @@ import java.text.MessageFormat;
import java.util.*; import java.util.*;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Pattern;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.II18n; import net.ess3.api.II18n;
@@ -97,6 +98,7 @@ public class I18n implements II18n
} }
return messageFormat.format(objects); return messageFormat.format(objects);
} }
private final Pattern partSplit = Pattern.compile("[_\\.]");
public void updateLocale(final String loc) public void updateLocale(final String loc)
{ {
@@ -104,7 +106,7 @@ public class I18n implements II18n
{ {
return; return;
} }
final String[] parts = loc.split("[_\\.]"); final String[] parts = partSplit.split(loc);
if (parts.length == 1) if (parts.length == 1)
{ {
currentLocale = new Locale(parts[0]); currentLocale = new Locale(parts[0]);

View File

@@ -84,31 +84,39 @@ public class ItemDb implements IItemDb
return stack; return stack;
} }
@Override
public ItemStack get(final String id, final int quantity) throws Exception public ItemStack get(final String id, final int quantity) throws Exception
{ {
final ItemStack retval = get(id.toLowerCase(Locale.ENGLISH)); final ItemStack retval = get(id.toLowerCase(Locale.ENGLISH));
retval.setAmount(quantity); retval.setAmount(quantity);
return retval; return retval;
} }
private final Pattern idMatch = Pattern.compile("^\\d+[:+',;.]\\d+$");
private final Pattern metaSplit = Pattern.compile("[:+',;.]");
private final Pattern number = Pattern.compile("^\\d+$");
private final Pattern conjoined = Pattern.compile("^[^:+',;.]+[:+',;.]\\d+$");
@Override
public ItemStack get(final String id) throws Exception public ItemStack get(final String id) throws Exception
{ {
int itemid = 0; int itemid = 0;
String itemname = null; String itemname = null;
short metaData = 0; short metaData = 0;
if (id.matches("^\\d+[:+',;.]\\d+$")) if (idMatch.matcher(id).matches())
{ {
itemid = Integer.parseInt(id.split("[:+',;.]")[0]); String[] split = metaSplit.split(id);
metaData = Short.parseShort(id.split("[:+',;.]")[1]); itemid = Integer.parseInt(split[0]);
metaData = Short.parseShort(split[1]);
} }
else if (id.matches("^\\d+$")) else if (number.matcher(id).matches())
{ {
itemid = Integer.parseInt(id); itemid = Integer.parseInt(id);
} }
else if (id.matches("^[^:+',;.]+[:+',;.]\\d+$")) else if (conjoined.matcher(id).matches())
{ {
itemname = id.split("[:+',;.]")[0].toLowerCase(Locale.ENGLISH); String[] split = metaSplit.split(id);
metaData = Short.parseShort(id.split("[:+',;.]")[1]); itemname = split[0].toLowerCase(Locale.ENGLISH);
metaData = Short.parseShort(split[1]);
} }
else else
{ {

View File

@@ -1,6 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
@@ -9,6 +10,8 @@ import org.bukkit.command.CommandSender;
public class Commanddelhome extends EssentialsCommand public class Commanddelhome extends EssentialsCommand
{ {
private final transient Pattern colon = Pattern.compile(":");
@Override @Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
@@ -22,7 +25,7 @@ public class Commanddelhome extends EssentialsCommand
String[] expandedArg; String[] expandedArg;
//Allowing both formats /sethome khobbits house | /sethome khobbits:house //Allowing both formats /sethome khobbits house | /sethome khobbits:house
final String[] nameParts = args[0].split(":"); final String[] nameParts = colon.split(args[0]);
if (nameParts[0].length() != args[0].length()) if (nameParts[0].length() != args[0].length())
{ {
expandedArg = nameParts; expandedArg = nameParts;

View File

@@ -1,6 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
@@ -13,6 +14,8 @@ import org.bukkit.inventory.ItemStack;
public class Commandgive extends EssentialsCommand public class Commandgive extends EssentialsCommand
{ {
private final transient Pattern data = Pattern.compile("[:+',;.]");
@Override @Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{ {
@@ -45,7 +48,7 @@ public class Commandgive extends EssentialsCommand
{ {
for (int i = Util.isInt(args[3]) ? 4 : 3; i < args.length; i++) for (int i = Util.isInt(args[3]) ? 4 : 3; i < args.length; i++)
{ {
final String[] split = args[i].split("[:+',;.]", 2); final String[] split = data.split(args[i], 2);
if (split.length < 1) if (split.length < 1)
{ {
continue; continue;

View File

@@ -2,6 +2,7 @@ package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
@@ -14,6 +15,8 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
public class Commandhome extends EssentialsCommand public class Commandhome extends EssentialsCommand
{ {
private final transient Pattern colon = Pattern.compile(":");
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
@@ -24,7 +27,7 @@ public class Commandhome extends EssentialsCommand
String[] nameParts; String[] nameParts;
if (args.length > 0) if (args.length > 0)
{ {
nameParts = args[0].split(":"); nameParts = colon.split(args[0]);
if (nameParts[0].length() == args[0].length() || !Permissions.HOME_OTHERS.isAuthorized(user)) if (nameParts[0].length() == args[0].length() || !Permissions.HOME_OTHERS.isAuthorized(user))
{ {
homeName = nameParts[0]; homeName = nameParts[0];

View File

@@ -1,6 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
@@ -10,6 +11,8 @@ import org.bukkit.inventory.ItemStack;
public class Commanditem extends EssentialsCommand public class Commanditem extends EssentialsCommand
{ {
private final transient Pattern data = Pattern.compile("[:+',;.]");
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
@@ -41,7 +44,7 @@ public class Commanditem extends EssentialsCommand
{ {
for (int i = 2; i < args.length; i++) for (int i = 2; i < args.length; i++)
{ {
final String[] split = args[i].split("[:+',;.]", 2); final String[] split = data.split(args[i], 2);
if (split.length < 1) if (split.length < 1)
{ {
continue; continue;

View File

@@ -1,6 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
@@ -8,13 +9,15 @@ import net.ess3.permissions.Permissions;
public class Commandsethome extends EssentialsCommand public class Commandsethome extends EssentialsCommand
{ {
private final transient Pattern colon = Pattern.compile(":");
@Override @Override
public void run(final IUser user, final String commandLabel, String[] args) throws Exception public void run(final IUser user, final String commandLabel, String[] args) throws Exception
{ {
if (args.length > 0) if (args.length > 0)
{ {
//Allowing both formats /sethome khobbits house | /sethome khobbits:house //Allowing both formats /sethome khobbits house | /sethome khobbits:house
final String[] nameParts = args[0].split(":"); final String[] nameParts = colon.split(args[0]);
if (nameParts[0].length() != args[0].length()) if (nameParts[0].length() != args[0].length())
{ {
args = nameParts; args = nameParts;

View File

@@ -4,6 +4,7 @@ import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
@@ -22,6 +23,8 @@ import org.bukkit.material.Colorable;
public class Commandspawnmob extends EssentialsCommand public class Commandspawnmob extends EssentialsCommand
{ {
private final transient Pattern colon = Pattern.compile(":");
@Override @Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{ {
@@ -45,7 +48,7 @@ public class Commandspawnmob extends EssentialsCommand
final String[] mountparts = args[0].split(","); final String[] mountparts = args[0].split(",");
String[] parts = mountparts[0].split(":"); String[] parts = colon.split(mountparts[0]);
String mobType = parts[0]; String mobType = parts[0];
String mobData = null; String mobData = null;
if (parts.length == 2) if (parts.length == 2)
@@ -56,7 +59,7 @@ public class Commandspawnmob extends EssentialsCommand
String mountData = null; String mountData = null;
if (mountparts.length > 1) if (mountparts.length > 1)
{ {
parts = mountparts[1].split(":"); parts = colon.split(mountparts[1]);
mountType = parts[0]; mountType = parts[0];
if (parts.length == 2) if (parts.length == 2)
{ {

View File

@@ -7,6 +7,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Pattern;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
@@ -318,12 +319,13 @@ public class EssentialsPlayerListener implements Listener
}); });
} }
} }
private final Pattern spaceSplit = Pattern.compile(" ");
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
{ {
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = ess.getUserMap().getUser(event.getPlayer());
final String cmd = event.getMessage().toLowerCase(Locale.ENGLISH).split(" ")[0].replace("/", "").toLowerCase(Locale.ENGLISH); final String cmd = spaceSplit.split(event.getMessage().toLowerCase(Locale.ENGLISH))[0].replace("/", "").toLowerCase(Locale.ENGLISH);
if (ess.getSettings().getData().getCommands().getSocalspy().getSocialspyCommands().contains(cmd)) if (ess.getSettings().getData().getCommands().getSocalspy().getSocialspyCommands().contains(cmd))
{ {
for (Player player : ess.getServer().getOnlinePlayers()) for (Player player : ess.getServer().getOnlinePlayers())

View File

@@ -21,6 +21,8 @@ import org.yaml.snakeyaml.nodes.*;
public class BukkitConstructor extends Constructor public class BukkitConstructor extends Constructor
{ {
private final transient Pattern NUMPATTERN = Pattern.compile("\\d+"); private final transient Pattern NUMPATTERN = Pattern.compile("\\d+");
private final transient Pattern DATAPATTERN = Pattern.compile("[:+',;.]");
private final transient Pattern WORD = Pattern.compile("\\W");
private final transient IPlugin plugin; private final transient IPlugin plugin;
public BukkitConstructor(final Class clazz, final IPlugin plugin) public BukkitConstructor(final Class clazz, final IPlugin plugin)
@@ -59,7 +61,7 @@ public class BukkitConstructor extends Constructor
{ {
return null; return null;
} }
final String[] split = val.split("[:+',;.]", 2); final String[] split = DATAPATTERN.split(val, 2);
if (split.length == 0) if (split.length == 0)
{ {
return null; return null;
@@ -92,12 +94,12 @@ public class BukkitConstructor extends Constructor
{ {
return null; return null;
} }
final String[] split1 = val.split("\\W"); final String[] split1 = WORD.split(val);
if (split1.length == 0) if (split1.length == 0)
{ {
return null; return null;
} }
final String[] split2 = split1[0].split("[:+',;.]", 2); final String[] split2 = DATAPATTERN.split(split1[0], 2);
if (split2.length == 0) if (split2.length == 0)
{ {
return null; return null;
@@ -131,7 +133,7 @@ public class BukkitConstructor extends Constructor
{ {
for (int i = 2; i < split1.length; i++) for (int i = 2; i < split1.length; i++)
{ {
final String[] split3 = split1[0].split("[:+',;.]", 2); final String[] split3 = DATAPATTERN.split(split1[0], 2);
if (split3.length < 1) if (split3.length < 1)
{ {
continue; continue;
@@ -175,7 +177,7 @@ public class BukkitConstructor extends Constructor
{ {
return null; return null;
} }
final String[] split = val.split("[:+',;.]", 2); final String[] split = DATAPATTERN.split(val, 2);
if (split.length == 0) if (split.length == 0)
{ {
return null; return null;

View File

@@ -7,6 +7,7 @@ import java.util.LinkedHashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.api.IUserMap; import net.ess3.api.IUserMap;
@@ -144,11 +145,12 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{ {
return matchUsers(name, false, false, requester); return matchUsers(name, false, false, requester);
} }
private final Pattern comma = Pattern.compile(",");
public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester) public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester)
{ {
final String colorlessName = FormatUtil.stripColor(name); final String colorlessName = FormatUtil.stripColor(name);
final String[] search = colorlessName.split(","); final String[] search = comma.split(colorlessName);
final boolean multisearch = search.length > 1; final boolean multisearch = search.length > 1;
final Set<IUser> result = new LinkedHashSet<IUser>(); final Set<IUser> result = new LinkedHashSet<IUser>();
final String nicknamePrefix = FormatUtil.stripColor(getNickNamePrefix()); final String nicknamePrefix = FormatUtil.stripColor(getNickNamePrefix());