Regions WORK!

This commit is contained in:
Lucas Nicodemus 2011-07-16 18:01:18 -06:00
parent 7cef36cfd0
commit 75e3e58c80
3 changed files with 17 additions and 40 deletions

View file

@ -164,37 +164,6 @@ namespace TShockAPI.DB
return false; return false;
} }
} }
[Obsolete("Use CanBuild and InArea instead.")]
public bool InProtectedAreaAndCantBuild(int X, int Y, User user)
{
Rectangle r = new Rectangle(X, Y, 0, 0);
for (int i = 0; i < Regions.Count; i++)
{
if (Regions[i].RegionArea.Intersects(r))
{
for (int j = 0; j < Regions[i].RegionAllowedIDs.Length; j++)
{
if (Regions[i].RegionAllowedIDs[j] == user.Name)
{
return false;
}
}
}
}
return true;
}
public bool CanBuild(int x, int y, User user)
{
for (int i = 0; i < Regions.Count; i++)
{
if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && Regions[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user))
{
return true;
}
}
return false;
}
public bool CanBuild(int x, int y, TSPlayer ply) public bool CanBuild(int x, int y, TSPlayer ply)
{ {
@ -203,13 +172,9 @@ namespace TShockAPI.DB
{ {
return false; return false;
} }
if (ply.Group.HasPermission("editspawn"))
{
return true;
}
for (int i = 0; i < Regions.Count; i++) for (int i = 0; i < Regions.Count; i++)
{ {
if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && !Regions[i].HasPermissionToBuildInRegion(new Rectangle(x, y, 0, 0), user)) if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && !Regions[i].HasPermissionToBuildInRegion(ply))
{ {
return false; return false;
} }
@ -345,8 +310,13 @@ namespace TShockAPI.DB
return false; return false;
} }
public bool HasPermissionToBuildInRegion(Rectangle point, User user) public bool HasPermissionToBuildInRegion(TSPlayer ply)
{ {
if (!ply.IsLoggedIn)
{
ply.SendMessage("You must be logged in to take advantage of protected regions.", Color.Red);
return false;
}
if (DisableBuild == 0) if (DisableBuild == 0)
{ {
return true; return true;
@ -354,7 +324,7 @@ namespace TShockAPI.DB
for (int i = 0; i < RegionAllowedIDs.Length; i++) for (int i = 0; i < RegionAllowedIDs.Length; i++)
{ {
if (RegionAllowedIDs[i] == user.Name) if (RegionAllowedIDs[i] == ply.UserAccountName)
{ {
return true; return true;
} }

View file

@ -23,7 +23,6 @@ using System.Data;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Community.CsharpSqlite.SQLiteClient; using Community.CsharpSqlite.SQLiteClient;
namespace TShockAPI.DB namespace TShockAPI.DB
{ {
public class UserManager public class UserManager
@ -192,7 +191,6 @@ namespace TShockAPI.DB
return null; return null;
} }
} }
public User GetUser(User user) public User GetUser(User user)
{ {
try try

View file

@ -333,6 +333,11 @@ namespace TShockAPI
return true; return true;
} }
if (TShock.Regions.InArea(x, y))
{
args.Player.SendMessage("Tick!");
}
return false; return false;
} }
@ -565,6 +570,10 @@ namespace TShockAPI
} }
} }
} }
if (TShock.Regions.InArea(tilex, tiley))
{
args.Player.SendMessage("Tick!");
}
return false; return false;
} }