diff --git a/src/main/java/com/sk89q/worldguard/protection/databases/MySQLDatabase.java b/src/main/java/com/sk89q/worldguard/protection/databases/MySQLDatabase.java index 57cd1451..79e65726 100755 --- a/src/main/java/com/sk89q/worldguard/protection/databases/MySQLDatabase.java +++ b/src/main/java/com/sk89q/worldguard/protection/databases/MySQLDatabase.java @@ -433,6 +433,12 @@ private void loadPoly2d() { poly2dVectorResultSet.getInt("z") )); } + + if (points.size() < 3) { + logger.warning(String.format("Invalid polygonal region '%s': region only has %d point(s). Ignoring.", id, points.size())); + continue; + } + ProtectedRegion region = new ProtectedPolygonalRegion(id, points, minY, maxY); region.setPriority(poly2dResultSet.getInt("priority")); @@ -932,7 +938,7 @@ private void updatePoly2dPoints(ProtectedPolygonalRegion region) throws SQLExcep ") VALUES (null, ?, " + this.worldDbId + ", ?, ?)" ); - String lowerId = region.getId(); + String lowerId = region.getId().toLowerCase(); for (BlockVector2D point : region.getPoints()) { insertPoly2dPointStatement.setString(1, lowerId); insertPoly2dPointStatement.setInt(2, point.getBlockZ());