From e87c497cbdbd11317f59dd8dbb99efdde71fa9a6 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Thu, 14 Jul 2011 17:57:48 -0600 Subject: [PATCH] Region up to date --- TShockAPI/Commands.cs | 2 +- TShockAPI/DB/RegionManager.cs | 31 +++++++++++++------------------ 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 4f61c064..265c1318 100755 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -1418,7 +1418,7 @@ namespace TShockAPI regionName = regionName + " " + args.Parameters[i]; } } - if ((playerID = TShock.Users.GetUserByName(Tools.FindPlayer(playerName)[0].Name)) != null) + if ((playerID = TShock.Users.GetUserByName(Tools.FindPlayer(playerName)[0].UserAccountName)) != null) { if (TShock.Regions.AddNewUser(regionName, playerID)) { diff --git a/TShockAPI/DB/RegionManager.cs b/TShockAPI/DB/RegionManager.cs index 2288fa2b..97804d4f 100644 --- a/TShockAPI/DB/RegionManager.cs +++ b/TShockAPI/DB/RegionManager.cs @@ -33,9 +33,7 @@ namespace TShockAPI.DB { public class RegionManager { - public static List Regions = new List(); - - public Region[] RegionArray; + public List Regions = new List(); private IDbConnection database; @@ -67,9 +65,7 @@ namespace TShockAPI.DB com.AddParameter("@worldid", Main.worldID.ToString()); using (var reader = com.ExecuteReader()) { - int regionCount = reader.RecordsAffected; - RegionArray = new Region[regionCount]; - int iterationCounter = 0; + Regions.Clear(); while (reader.Read()) { int X1 = reader.Get("X1"); @@ -84,8 +80,7 @@ namespace TShockAPI.DB Region r = new Region(new Rectangle(X1, Y1, width, height), name, Protected, Main.worldID.ToString()); r.RegionAllowedIDs = SplitIDs; - RegionArray[iterationCounter] = r; - iterationCounter++; + Regions.Add(r); } reader.Close(); } @@ -179,13 +174,13 @@ namespace TShockAPI.DB public bool InProtectedAreaAndCantBuild(int X, int Y, User user) { Rectangle r = new Rectangle(X, Y, 0, 0); - for (int i = 0; i < RegionArray.Length; i++) + for (int i = 0; i < Regions.Count; i++) { - if (RegionArray[i].RegionArea.Intersects(r)) + if (Regions[i].RegionArea.Intersects(r)) { - for (int j = 0; j < RegionArray[i].RegionAllowedIDs.Length; j++) + for (int j = 0; j < Regions[i].RegionAllowedIDs.Length; j++) { - if (RegionArray[i].RegionAllowedIDs[j] == user.Name) + if (Regions[i].RegionAllowedIDs[j] == user.Name) { return false; } @@ -197,9 +192,9 @@ namespace TShockAPI.DB public bool CanBuild(int x, int y, User user) { - for (int i = 0; i < RegionArray.Length; i++) + for (int i = 0; i < Regions.Count; i++) { - if (RegionArray[i].InArea(new Rectangle(x, y, 0, 0)) && RegionArray[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user)) + if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && Regions[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user)) { return true; } @@ -218,9 +213,9 @@ namespace TShockAPI.DB { return true; } - for (int i = 0; i < RegionArray.Length; i++) + for (int i = 0; i < Regions.Count; i++) { - if (RegionArray[i].InArea(new Rectangle(x, y, 0, 0)) && !RegionArray[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user)) + if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && !Regions[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user)) { return false; } @@ -230,9 +225,9 @@ namespace TShockAPI.DB public bool InArea(int x, int y, User user) { - for (int i = 0; i < RegionArray.Length; i++) + for (int i = 0; i < Regions.Count; i++) { - if (RegionArray[i].InArea(new Rectangle(x, y, 0, 0))) + if (Regions[i].InArea(new Rectangle(x, y, 0, 0))) { return true; }