Improved Performance of some operations

Replaced quite a few whiles and fors with for-eachs giving a performance gain. Also fixed a few issues with the MySQLDatabase and made several other minor improvements.
This commit is contained in:
Dark Arc 2012-11-03 00:19:20 -04:00
parent aa53c0aa6a
commit fcfc3acbb8
16 changed files with 123 additions and 199 deletions

View File

@ -82,11 +82,9 @@ public abstract class LocalPlayer {
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
if (!(obj instanceof LocalPlayer)) {
return false; return obj instanceof LocalPlayer && ((LocalPlayer) obj).getName().equals(getName());
}
return ((LocalPlayer)obj).getName().equals(getName());
} }
@Override @Override

View File

@ -19,6 +19,7 @@
package com.sk89q.worldguard.blacklist; package com.sk89q.worldguard.blacklist;
import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@ -105,9 +106,7 @@ public void setIgnoreGroups(String[] ignoreGroups) {
*/ */
public void setIgnorePermissions(String[] ignorePermissions) { public void setIgnorePermissions(String[] ignorePermissions) {
Set<String> ignorePermissionsSet = new HashSet<String>(); Set<String> ignorePermissionsSet = new HashSet<String>();
for (String perm : ignorePermissions) { Collections.addAll(ignorePermissionsSet, ignorePermissions);
ignorePermissionsSet.add(perm);
}
this.ignorePermissions = ignorePermissionsSet; this.ignorePermissions = ignorePermissionsSet;
} }

View File

@ -19,29 +19,20 @@
package com.sk89q.worldguard.bukkit; package com.sk89q.worldguard.bukkit;
import java.util.List; import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BlockID; import com.sk89q.worldedit.blocks.BlockID;
import com.sk89q.worldedit.blocks.BlockType;
import com.sk89q.worldedit.blocks.ItemID; import com.sk89q.worldedit.blocks.ItemID;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Entity; import org.bukkit.entity.*;
import org.bukkit.entity.ExperienceOrb;
import org.bukkit.entity.Item;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.FallingSand;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.sk89q.worldedit.BlockVector; import java.util.List;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BlockType;
public class BukkitUtil { public class BukkitUtil {
@ -149,11 +140,7 @@ public static void setBlockToWater(World world, int ox, int oy, int oz) {
public static boolean isBlockWater(World world, int ox, int oy, int oz) { public static boolean isBlockWater(World world, int ox, int oy, int oz) {
Block block = world.getBlockAt(ox, oy, oz); Block block = world.getBlockAt(ox, oy, oz);
int id = block.getTypeId(); int id = block.getTypeId();
if (id == 8 || id == 9) { return id == 8 || id == 9;
return true;
} else {
return false;
}
} }
/** /**
@ -264,7 +251,7 @@ public static boolean hasHangingEvent() {
Class<?> tmp = null; Class<?> tmp = null;
try { try {
tmp = Class.forName("org.bukkit.event.hanging.HangingEvent"); tmp = Class.forName("org.bukkit.event.hanging.HangingEvent");
} catch (ClassNotFoundException ex) { } } catch (ClassNotFoundException ignored) { }
return (tmp != null); return (tmp != null);
} }
} }

View File

@ -19,21 +19,6 @@
package com.sk89q.worldguard.bukkit; package com.sk89q.worldguard.bukkit;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import com.sk89q.util.yaml.YAMLFormat; import com.sk89q.util.yaml.YAMLFormat;
import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.util.yaml.YAMLProcessor;
import com.sk89q.worldguard.blacklist.Blacklist; import com.sk89q.worldguard.blacklist.Blacklist;
@ -43,6 +28,15 @@
import com.sk89q.worldguard.blacklist.loggers.FileLoggerHandler; import com.sk89q.worldguard.blacklist.loggers.FileLoggerHandler;
import com.sk89q.worldguard.chest.ChestProtection; import com.sk89q.worldguard.chest.ChestProtection;
import com.sk89q.worldguard.chest.SignChestProtection; import com.sk89q.worldguard.chest.SignChestProtection;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.*;
import java.util.logging.Level;
/** /**
* Holds the configuration for individual worlds. * Holds the configuration for individual worlds.
@ -513,10 +507,8 @@ public boolean isChestProtected(Block block, Player player) {
} }
public boolean isChestProtected(Block block) { public boolean isChestProtected(Block block) {
if (!signChestProtection) {
return false; return signChestProtection && chestProtection.isProtected(block, null);
}
return chestProtection.isProtected(block, null);
} }
public boolean isChestProtectedPlacement(Block block, Player player) { public boolean isChestProtectedPlacement(Block block, Player player) {

View File

@ -19,23 +19,7 @@
package com.sk89q.worldguard.bukkit.commands; package com.sk89q.worldguard.bukkit.commands;
import java.lang.reflect.InvocationTargetException; import com.sk89q.minecraft.util.commands.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.sk89q.minecraft.util.commands.Command;
import com.sk89q.minecraft.util.commands.CommandContext;
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissions;
import com.sk89q.minecraft.util.commands.CommandPermissionsException;
import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.Location; import com.sk89q.worldedit.Location;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
@ -49,22 +33,25 @@
import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.domains.DefaultDomain; import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.flags.DefaultFlag; import com.sk89q.worldguard.protection.databases.ProtectionDatabaseException;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.databases.RegionDBUtil;
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat; import com.sk89q.worldguard.protection.databases.migrators.AbstractDatabaseMigrator;
import com.sk89q.worldguard.protection.flags.RegionGroup; import com.sk89q.worldguard.protection.databases.migrators.MigrationException;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag; import com.sk89q.worldguard.protection.databases.migrators.MigratorKey;
import com.sk89q.worldguard.protection.flags.*;
import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.GlobalProtectedRegion; import com.sk89q.worldguard.protection.regions.GlobalProtectedRegion;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion; import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion.CircularInheritanceException; import com.sk89q.worldguard.protection.regions.ProtectedRegion.CircularInheritanceException;
import com.sk89q.worldguard.protection.databases.ProtectionDatabaseException; import org.bukkit.ChatColor;
import com.sk89q.worldguard.protection.databases.migrators.AbstractDatabaseMigrator; import org.bukkit.World;
import com.sk89q.worldguard.protection.databases.migrators.MigrationException; import org.bukkit.command.CommandSender;
import com.sk89q.worldguard.protection.databases.migrators.MigratorKey; import org.bukkit.entity.Player;
import com.sk89q.worldguard.protection.databases.RegionDBUtil;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
public class RegionCommands { public class RegionCommands {
private final WorldGuardPlugin plugin; private final WorldGuardPlugin plugin;
@ -507,9 +494,9 @@ public void displayRegionInfo(CommandSender sender, final LocalPlayer localPlaye
} }
if(group == null) { if(group == null) {
s.append(flag.getName() + ": " + String.valueOf(val)); s.append(flag.getName()).append(": ").append(String.valueOf(val));
} else { } else {
s.append(flag.getName() + " -g " + String.valueOf(group) + ": " + String.valueOf(val)); s.append(flag.getName()).append(" -g ").append(String.valueOf(group)).append(": ").append(String.valueOf(val));
} }
hasFlags = true; hasFlags = true;

View File

@ -115,10 +115,7 @@ private Boolean isProtectedSignAndChest(Block block, Player player) {
private boolean isProtectedSignAndChestBinary(Block block, Player player) { private boolean isProtectedSignAndChestBinary(Block block, Player player) {
Boolean res = isProtectedSignAndChest(block, player); Boolean res = isProtectedSignAndChest(block, player);
if (res == null || !res) { return !(res == null || !res);
return false;
}
return true;
} }
public boolean isAdjacentChestProtected(Block searchBlock, Player player) { public boolean isAdjacentChestProtected(Block searchBlock, Player player) {

View File

@ -18,23 +18,13 @@
*/ */
package com.sk89q.worldguard.protection; package com.sk89q.worldguard.protection;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.protection.flags.DefaultFlag; import com.sk89q.worldguard.protection.flags.*;
import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.flags.StateFlag.State;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.util.*;
/** /**
* Represents a set of regions for a particular point or area and the rules * Represents a set of regions for a particular point or area and the rules
* that are represented by that set. An instance of this can be used to * that are represented by that set. An instance of this can be used to
@ -216,16 +206,12 @@ private boolean internalGetState(StateFlag flag, LocalPlayer player,
Set<ProtectedRegion> needsClear = new HashSet<ProtectedRegion>(); Set<ProtectedRegion> needsClear = new HashSet<ProtectedRegion>();
Set<ProtectedRegion> hasCleared = new HashSet<ProtectedRegion>(); Set<ProtectedRegion> hasCleared = new HashSet<ProtectedRegion>();
Iterator<ProtectedRegion> it = applicable.iterator(); for (ProtectedRegion region : applicable) {
while (it.hasNext()) {
ProtectedRegion region = it.next();
// Ignore lower priority regions // Ignore lower priority regions
if (hasFlagDefined && region.getPriority() < lastPriority) { if (hasFlagDefined && region.getPriority() < lastPriority) {
break; break;
} }
lastPriority = region.getPriority(); lastPriority = region.getPriority();
// Ignore non-build regions // Ignore non-build regions
@ -244,7 +230,7 @@ private boolean internalGetState(StateFlag flag, LocalPlayer player,
continue; continue;
} }
} }
State v = region.getFlag(flag); State v = region.getFlag(flag);
// Allow DENY to override everything // Allow DENY to override everything
@ -337,11 +323,7 @@ public <T extends Flag<V>, V> V getFlag(T flag, LocalPlayer groupPlayer) {
Map<ProtectedRegion, V> needsClear = new HashMap<ProtectedRegion, V>(); Map<ProtectedRegion, V> needsClear = new HashMap<ProtectedRegion, V>();
Set<ProtectedRegion> hasCleared = new HashSet<ProtectedRegion>(); Set<ProtectedRegion> hasCleared = new HashSet<ProtectedRegion>();
Iterator<ProtectedRegion> it = applicable.iterator(); for (ProtectedRegion region : applicable) {
while (it.hasNext()) {
ProtectedRegion region = it.next();
// Ignore lower priority regions // Ignore lower priority regions
if (found && region.getPriority() < lastPriority) { if (found && region.getPriority() < lastPriority) {
break; break;
@ -360,11 +342,11 @@ public <T extends Flag<V>, V> V getFlag(T flag, LocalPlayer groupPlayer) {
if (hasCleared.contains(region)) { if (hasCleared.contains(region)) {
// Already cleared, so do nothing // Already cleared, so do nothing
} else if (region.getFlag(flag) != null){ } else if (region.getFlag(flag) != null) {
clearParents(needsClear, hasCleared, region); clearParents(needsClear, hasCleared, region);
needsClear.put(region, region.getFlag(flag)); needsClear.put(region, region.getFlag(flag));
found = true; found = true;
} }

View File

@ -182,7 +182,7 @@ public void load() throws ProtectionDatabaseException {
} finally { } finally {
try { try {
reader.close(); reader.close();
} catch (IOException e) { } catch (IOException ignored) {
} }
} }

View File

@ -20,26 +20,6 @@
package com.sk89q.worldguard.protection.databases; package com.sk89q.worldguard.protection.databases;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.representer.Representer;
import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.BlockVector2D; import com.sk89q.worldedit.BlockVector2D;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
@ -52,6 +32,17 @@
import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion.CircularInheritanceException; import com.sk89q.worldguard.protection.regions.ProtectedRegion.CircularInheritanceException;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.representer.Representer;
import java.sql.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MySQLDatabase extends AbstractProtectionDatabase { public class MySQLDatabase extends AbstractProtectionDatabase {
private final Logger logger; private final Logger logger;
@ -68,12 +59,11 @@ public class MySQLDatabase extends AbstractProtectionDatabase {
private final ConfigurationManager config; private final ConfigurationManager config;
private Connection conn; private Connection conn;
private String world;
private int worldDbId = -1; // The database will never have an id of -1; private int worldDbId = -1; // The database will never have an id of -1;
public MySQLDatabase(ConfigurationManager config, String world, Logger logger) throws ProtectionDatabaseException { public MySQLDatabase(ConfigurationManager config, String world, Logger logger) throws ProtectionDatabaseException {
this.config = config; this.config = config;
this.world = world; String world1 = world;
this.logger = logger; this.logger = logger;
try { try {
@ -97,7 +87,7 @@ public MySQLDatabase(ConfigurationManager config, String world, Logger logger) t
"WHERE `name` = ? LIMIT 0,1" "WHERE `name` = ? LIMIT 0,1"
); );
worldStmt.setString(1, this.world); worldStmt.setString(1, world1);
ResultSet worldResult = worldStmt.executeQuery(); ResultSet worldResult = worldStmt.executeQuery();
if (worldResult.first()) { if (worldResult.first()) {
@ -551,15 +541,15 @@ private Map<String,Integer> getUserIds(String... usernames) {
Statement.RETURN_GENERATED_KEYS Statement.RETURN_GENERATED_KEYS
); );
for(int i=0, len=usernames.length; i<len; i++) { for (String username : usernames) {
if (!users.containsKey(usernames[i])) { if (!users.containsKey(username)) {
insertUserStatement.setString(1, usernames[i]); insertUserStatement.setString(1, username);
insertUserStatement.execute(); insertUserStatement.execute();
ResultSet generatedKeys = insertUserStatement.getGeneratedKeys(); ResultSet generatedKeys = insertUserStatement.getGeneratedKeys();
if (generatedKeys.first()) { if (generatedKeys.first()) {
users.put(usernames[i], generatedKeys.getInt(1)); users.put(username, generatedKeys.getInt(1));
} else { } else {
logger.warning("Could not get the database id for user " + usernames[i]); logger.warning("Could not get the database id for user " + username);
} }
} }
} }
@ -615,15 +605,15 @@ private Map<String,Integer> getGroupIds(String... groupnames) {
Statement.RETURN_GENERATED_KEYS Statement.RETURN_GENERATED_KEYS
); );
for(int i=0, len=groupnames.length; i<len; i++) { for (String groupname : groupnames) {
if (!groups.containsKey(groupnames[i])) { if (!groups.containsKey(groupname)) {
insertGroupStatement.setString(1, groupnames[i]); insertGroupStatement.setString(1, groupname);
insertGroupStatement.execute(); insertGroupStatement.execute();
ResultSet generatedKeys = insertGroupStatement.getGeneratedKeys(); ResultSet generatedKeys = insertGroupStatement.getGeneratedKeys();
if (generatedKeys.first()) { if (generatedKeys.first()) {
groups.put(groupnames[i], generatedKeys.getInt(1)); groups.put(groupname, generatedKeys.getInt(1));
} else { } else {
logger.warning("Could not get the database id for user " + groupnames[i]); logger.warning("Could not get the database id for user " + groupname);
} }
} }
} }
@ -804,9 +794,9 @@ private void updatePlayerAndGroups(ProtectedRegion region, Boolean owners) throw
"VALUES (?, " + this.worldDbId + ", ?, ?)" "VALUES (?, " + this.worldDbId + ", ?, ?)"
); );
Map<String,Integer> players = getUserIds(domain.getPlayers().toArray(new String[0])); Set<String> var = domain.getPlayers();
for (Integer player : players.values()) { for (Integer player : getUserIds(var.toArray(new String[var.size()])).values()) {
insertUsersForRegion.setString(1, region.getId().toLowerCase()); insertUsersForRegion.setString(1, region.getId().toLowerCase());
insertUsersForRegion.setInt(2, player); insertUsersForRegion.setInt(2, player);
insertUsersForRegion.setBoolean(3, owners); insertUsersForRegion.setBoolean(3, owners);
@ -831,9 +821,8 @@ private void updatePlayerAndGroups(ProtectedRegion region, Boolean owners) throw
"VALUES (?, " + this.worldDbId + ", ?, ?)" "VALUES (?, " + this.worldDbId + ", ?, ?)"
); );
Map<String,Integer> groups = getGroupIds(domain.getGroups().toArray(new String[0])); Set<String> groupVar = domain.getGroups();
for (Integer group : getGroupIds(groupVar.toArray(new String[groupVar.size()])).values()) {
for (Integer group : groups.values()) {
insertGroupsForRegion.setString(1, region.getId().toLowerCase()); insertGroupsForRegion.setString(1, region.getId().toLowerCase());
insertGroupsForRegion.setInt(2, group); insertGroupsForRegion.setInt(2, group);
insertGroupsForRegion.setBoolean(3, owners); insertGroupsForRegion.setBoolean(3, owners);

View File

@ -19,6 +19,14 @@
package com.sk89q.worldguard.protection.databases.migrators; package com.sk89q.worldguard.protection.databases.migrators;
import com.sk89q.worldguard.bukkit.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.databases.MySQLDatabase;
import com.sk89q.worldguard.protection.databases.ProtectionDatabase;
import com.sk89q.worldguard.protection.databases.ProtectionDatabaseException;
import com.sk89q.worldguard.protection.databases.YAMLDatabase;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.sql.Connection; import java.sql.Connection;
@ -29,14 +37,6 @@
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.sk89q.worldguard.bukkit.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.databases.MySQLDatabase;
import com.sk89q.worldguard.protection.databases.ProtectionDatabase;
import com.sk89q.worldguard.protection.databases.ProtectionDatabaseException;
import com.sk89q.worldguard.protection.databases.YAMLDatabase;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
public class MySQLToYAMLMigrator extends AbstractDatabaseMigrator { public class MySQLToYAMLMigrator extends AbstractDatabaseMigrator {
private WorldGuardPlugin plugin; private WorldGuardPlugin plugin;
@ -59,7 +59,7 @@ public MySQLToYAMLMigrator(WorldGuardPlugin plugin) throws MigrationException {
conn.close(); conn.close();
} catch (SQLException e) { } catch (SQLException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} }
} }
@ -75,7 +75,7 @@ protected Map<String, ProtectedRegion> getRegionsForWorldFromOld(String world) t
oldDatabase = new MySQLDatabase(plugin.getGlobalStateManager(), world, plugin.getLogger()); oldDatabase = new MySQLDatabase(plugin.getGlobalStateManager(), world, plugin.getLogger());
oldDatabase.load(); oldDatabase.load();
} catch (ProtectionDatabaseException e) { } catch (ProtectionDatabaseException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} }
return oldDatabase.getRegions(); return oldDatabase.getRegions();
@ -89,9 +89,9 @@ protected ProtectionDatabase getNewWorldStorage(String world) throws MigrationEx
return new YAMLDatabase(file, plugin.getLogger()); return new YAMLDatabase(file, plugin.getLogger());
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} catch (ProtectionDatabaseException e) { } catch (ProtectionDatabaseException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} }
} }
} }

View File

@ -19,12 +19,6 @@
package com.sk89q.worldguard.protection.databases.migrators; package com.sk89q.worldguard.protection.databases.migrators;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.databases.MySQLDatabase; import com.sk89q.worldguard.protection.databases.MySQLDatabase;
import com.sk89q.worldguard.protection.databases.ProtectionDatabase; import com.sk89q.worldguard.protection.databases.ProtectionDatabase;
@ -32,6 +26,12 @@
import com.sk89q.worldguard.protection.databases.YAMLDatabase; import com.sk89q.worldguard.protection.databases.YAMLDatabase;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class YAMLToMySQLMigrator extends AbstractDatabaseMigrator { public class YAMLToMySQLMigrator extends AbstractDatabaseMigrator {
private WorldGuardPlugin plugin; private WorldGuardPlugin plugin;
@ -66,9 +66,9 @@ protected Map<String, ProtectedRegion> getRegionsForWorldFromOld(String world) t
oldDatabase = new YAMLDatabase(this.regionYamlFiles.get(world), plugin.getLogger()); oldDatabase = new YAMLDatabase(this.regionYamlFiles.get(world), plugin.getLogger());
oldDatabase.load(); oldDatabase.load();
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} catch (ProtectionDatabaseException e) { } catch (ProtectionDatabaseException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} }
return oldDatabase.getRegions(); return oldDatabase.getRegions();
@ -79,7 +79,7 @@ protected ProtectionDatabase getNewWorldStorage(String world) throws MigrationEx
try { try {
return new MySQLDatabase(plugin.getGlobalStateManager(), world, plugin.getLogger()); return new MySQLDatabase(plugin.getGlobalStateManager(), world, plugin.getLogger());
} catch (ProtectionDatabaseException e) { } catch (ProtectionDatabaseException e) {
throw new MigrationException((Exception) e); throw new MigrationException(e);
} }
} }

View File

@ -82,7 +82,7 @@ public Location parseInput(WorldGuardPlugin plugin, CommandSender sender, String
), ),
yaw, pitch yaw, pitch
); );
} catch (NumberFormatException e) { } catch (NumberFormatException ignored) {
} }
} }

View File

@ -61,7 +61,7 @@ public Vector parseInput(WorldGuardPlugin plugin, CommandSender sender, String i
Double.parseDouble(split[1]), Double.parseDouble(split[1]),
Double.parseDouble(split[2]) Double.parseDouble(split[2])
); );
} catch (NumberFormatException e) { } catch (NumberFormatException ignored) {
} }
} }

View File

@ -18,13 +18,6 @@
*/ */
package com.sk89q.worldguard.protection.managers; package com.sk89q.worldguard.protection.managers;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.ApplicableRegionSet;
@ -32,6 +25,8 @@
import com.sk89q.worldguard.protection.databases.ProtectionDatabase; import com.sk89q.worldguard.protection.databases.ProtectionDatabase;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.util.*;
/** /**
* A very simple implementation of the region manager that uses a flat list * A very simple implementation of the region manager that uses a flat list
* and iterates through the list to identify applicable regions. This method * and iterates through the list to identify applicable regions. This method
@ -78,9 +73,7 @@ public void removeRegion(String id) {
if (region != null) { if (region != null) {
List<String> removeRegions = new ArrayList<String>(); List<String> removeRegions = new ArrayList<String>();
Iterator<ProtectedRegion> iter = regions.values().iterator(); for (ProtectedRegion curRegion : regions.values()) {
while (iter.hasNext()) {
ProtectedRegion curRegion = iter.next();
if (curRegion.getParent() == region) { if (curRegion.getParent() == region) {
removeRegions.add(curRegion.getId().toLowerCase()); removeRegions.add(curRegion.getId().toLowerCase());
} }

View File

@ -19,12 +19,6 @@
package com.sk89q.worldguard.protection.regions; package com.sk89q.worldguard.protection.regions;
import java.awt.geom.Line2D;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.BlockVector2D; import com.sk89q.worldedit.BlockVector2D;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
@ -33,6 +27,12 @@
import com.sk89q.worldguard.protection.UnsupportedIntersectionException; import com.sk89q.worldguard.protection.UnsupportedIntersectionException;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import java.awt.geom.Line2D;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
/** /**
* Represents a region of any shape and size that can be protected. * Represents a region of any shape and size that can be protected.
* *
@ -541,25 +541,25 @@ protected boolean intersectsEdges(ProtectedRegion region) {
List<BlockVector2D> pts2 = region.getPoints(); List<BlockVector2D> pts2 = region.getPoints();
BlockVector2D lastPt1 = pts1.get(pts1.size() - 1); BlockVector2D lastPt1 = pts1.get(pts1.size() - 1);
BlockVector2D lastPt2 = pts2.get(pts2.size() - 1); BlockVector2D lastPt2 = pts2.get(pts2.size() - 1);
for (int i = 0; i < pts1.size(); i++ ) { for (BlockVector2D aPts1 : pts1) {
for (int j = 0; j < pts2.size(); j++) { for (BlockVector2D aPts2 : pts2) {
Line2D line1 = new Line2D.Double( Line2D line1 = new Line2D.Double(
lastPt1.getBlockX(), lastPt1.getBlockX(),
lastPt1.getBlockZ(), lastPt1.getBlockZ(),
pts1.get(i).getBlockX(), aPts1.getBlockX(),
pts1.get(i).getBlockZ()); aPts1.getBlockZ());
if (line1.intersectsLine( if (line1.intersectsLine(
lastPt2.getBlockX(), lastPt2.getBlockX(),
lastPt2.getBlockZ(), lastPt2.getBlockZ(),
pts2.get(j).getBlockX(), aPts2.getBlockX(),
pts2.get(j).getBlockZ())) { aPts2.getBlockZ())) {
return true; return true;
} }
lastPt2 = pts2.get(j); lastPt2 = aPts2;
} }
lastPt1 = pts1.get(i); lastPt1 = aPts1;
} }
return false; return false;
} }

View File

@ -84,7 +84,7 @@ public void run() {
in = conn.getInputStream(); in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in)); BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line; String line;
StringBuffer response = new StringBuffer(); StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
response.append(line); response.append(line);
response.append("\r\n"); response.append("\r\n");
@ -114,13 +114,13 @@ public void run() {
if (in != null) { if (in != null) {
try { try {
in.close(); in.close();
} catch (IOException e) { } catch (IOException ignored) {
} }
} }
if (out != null) { if (out != null) {
try { try {
out.close(); out.close();
} catch (IOException e) { } catch (IOException ignored) {
} }
} }
} }