diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs index 6ddaffce..fff0fe58 100644 --- a/TShockAPI/Commands.cs +++ b/TShockAPI/Commands.cs @@ -1927,7 +1927,13 @@ namespace TShockAPI if (args.Parameters.Count > 1) { string regionName = String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1)); - Region r = TShock.Regions.getRegion(regionName); + Region r = TShock.Regions.GetRegionByName(regionName); + + if (r == null) + { + args.Player.SendMessage("Region {0} does not exist"); + break; + } args.Player.SendMessage(r.Name + ": P: " + r.DisableBuild + " X: " + r.Area.X + " Y: " + r.Area.Y + " W: " + r.Area.Width + " H: " + r.Area.Height); foreach (int s in r.AllowedIDs) @@ -1936,7 +1942,9 @@ namespace TShockAPI } } else + { args.Player.SendMessage("Invalid syntax! Proper syntax: /region info [name]", Color.Red); + } break; } diff --git a/TShockAPI/DB/RegionManager.cs b/TShockAPI/DB/RegionManager.cs index 5fb74e28..ee355198 100644 --- a/TShockAPI/DB/RegionManager.cs +++ b/TShockAPI/DB/RegionManager.cs @@ -256,7 +256,7 @@ namespace TShockAPI.DB public bool AddRegion(int tx, int ty, int width, int height, string regionname, string worldid) { - if (TShock.Regions.getRegion(regionname) == null) + if (TShock.Regions.GetRegionByName(regionname) == null) { return false; } @@ -279,7 +279,8 @@ namespace TShockAPI.DB try { database.Query("DELETE FROM Regions WHERE RegionName=@0 AND WorldID=@1", name, Main.worldID.ToString()); - Regions.Remove(getRegion(name)); + var worldid = Main.worldID.ToString(); + Regions.RemoveAll(r => r.Name == name && r.WorldID == worldid); return true; } catch (Exception ex) @@ -294,7 +295,9 @@ namespace TShockAPI.DB try { database.Query("UPDATE Regions SET Protected=@0 WHERE RegionName=@1 AND WorldID=@2", state ? 1 : 0, name, Main.worldID.ToString()); - getRegion(name).DisableBuild = state; + var region = GetRegionByName(name); + if (region != null) + region.DisableBuild = state; return true; } catch (Exception ex) @@ -309,7 +312,9 @@ namespace TShockAPI.DB try { database.Query("UPDATE Regions SET Protected=@0 WHERE RegionName=@1 AND WorldID=@2", state ? 1 : 0, name, world); - getRegion(name).DisableBuild = state; + var region = GetRegionByName(name); + if (region != null) + region.DisableBuild = state; return true; } catch (Exception ex) @@ -370,7 +375,7 @@ namespace TShockAPI.DB public bool RemoveUser(string regionName, string userName ) { - Region r = getRegion(regionName); + Region r = GetRegionByName(regionName); if( r != null ) { r.RemoveID(TShock.Users.GetUserID(userName)); @@ -437,14 +442,9 @@ namespace TShockAPI.DB return regions; } - public Region getRegion(String name) + public Region GetRegionByName(String name) { - foreach (Region r in Regions) - { - if (r.Name.Equals(name) && r.WorldID == Main.worldID.ToString()) - return r; - } - return new Region(); + return Regions.FirstOrDefault(r => r.Name.Equals(name) && r.WorldID == Main.worldID.ToString()); } } diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs index 529c736f..e6f0cce7 100644 --- a/TShockAPI/Properties/AssemblyInfo.cs +++ b/TShockAPI/Properties/AssemblyInfo.cs @@ -36,5 +36,5 @@ using System.Runtime.InteropServices; // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.2.8.0818")] -[assembly: AssemblyFileVersion("3.2.8.0818")] +[assembly: AssemblyVersion("3.2.8.0820")] +[assembly: AssemblyFileVersion("3.2.8.0820")] diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 02fb234b..25fe5c07 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -383,9 +383,9 @@ namespace TShockAPI player.TilesDestroyed.Clear(); } } - if (CheckPlayerCollision(player.TileX, player.TileY)) - player.SendMessage("You are currently nocliping!", Color.Red); - if (player.LastDeath != null && player.ForceSpawn && (DateTime.Now - player.LastDeath).Seconds >= 3) + /*if (CheckPlayerCollision(player.TileX, player.TileY)) + player.SendMessage("You are currently nocliping!", Color.Red);*/ + if (player.ForceSpawn && (DateTime.Now - player.LastDeath).Seconds >= 3) { player.Spawn(); player.ForceSpawn = false;