1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-02 03:02:49 +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,16 +11,18 @@ 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
{ {
if (args.length < 1) if (args.length < 1)
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
if (args.length > 1 && args[0].equals("love") && args[1].equals("you")) if (args.length > 1 && args[0].equals("love") && args[1].equals("you"))
{ {
user.sendMessage("What is love?"); user.sendMessage("What is love?");
user.sendMessage("Baby don't hurt me"); user.sendMessage("Baby don't hurt me");
return; return;
@@ -36,12 +39,12 @@ public class Commanditem extends EssentialsCommand
{ {
stack.setAmount(Integer.parseInt(args[1])); stack.setAmount(Integer.parseInt(args[1]));
} }
if (args.length > 2 && Permissions.ITEM_ENCHANTED.isAuthorized(user)) if (args.length > 2 && Permissions.ITEM_ENCHANTED.isAuthorized(user))
{ {
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;
@@ -66,14 +69,14 @@ public class Commanditem extends EssentialsCommand
} }
} }
} }
if (stack.getTypeId() == 0) if (stack.getTypeId() == 0)
{ {
throw new Exception(_("cantSpawnItem", "Air")); throw new Exception(_("cantSpawnItem", "Air"));
} }
user.giveItems(stack, false); user.giveItems(stack, false);
final String displayName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' '); final String displayName = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' ');
user.sendMessage(_("itemSpawn", stack.getAmount(), displayName)); user.sendMessage(_("itemSpawn", stack.getAmount(), displayName));
} }

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;
@@ -171,7 +172,7 @@ public class EssentialsPlayerListener implements Listener
{ {
event.setJoinMessage(joinMessage); event.setJoinMessage(joinMessage);
} }
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.updateDisplayName(); user.updateDisplayName();
@@ -243,7 +244,7 @@ public class EssentialsPlayerListener implements Listener
default: default:
return; return;
} }
ess.getUserMap().addPrejoinedPlayer(event.getPlayer()); ess.getUserMap().addPrejoinedPlayer(event.getPlayer());
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = ess.getUserMap().getUser(event.getPlayer());
ess.getUserMap().removePrejoinedPlayer(event.getPlayer()); ess.getUserMap().removePrejoinedPlayer(event.getPlayer());
@@ -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;
@@ -100,19 +101,19 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{ {
return getObject(player.getName()); return getObject(player.getName());
} }
@Override @Override
public IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException public IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException
{ {
return matchUser(name, true, includeOffline, null); return matchUser(name, true, includeOffline, null);
} }
@Override @Override
public IUser matchUserExcludingHidden(final String name, final Player requester) throws TooManyMatchesException, PlayerNotFoundException public IUser matchUserExcludingHidden(final String name, final Player requester) throws TooManyMatchesException, PlayerNotFoundException
{ {
return matchUser(name, false, false, requester); return matchUser(name, false, false, requester);
} }
public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester) throws TooManyMatchesException, PlayerNotFoundException public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester) throws TooManyMatchesException, PlayerNotFoundException
{ {
final Set<IUser> users = matchUsers(name, includeHidden, includeOffline, requester); final Set<IUser> users = matchUsers(name, includeHidden, includeOffline, requester);
@@ -132,7 +133,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
} }
} }
} }
@Override @Override
public Set<IUser> matchUsers(final String name, final boolean includeOffline) public Set<IUser> matchUsers(final String name, final boolean includeOffline)
{ {
@@ -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());