Fix several bugs

This commit is contained in:
MarioE 2013-10-31 23:35:42 -04:00
parent bd87eb361d
commit cf1feb9357
5 changed files with 31 additions and 14 deletions

View file

@ -2058,7 +2058,7 @@ namespace TShockAPI
args.Player.SendSuccessMessage("Warp added: " + warpName);
foreach (TSPlayer tsplr in TShock.Players)
{
if (tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.managewarp))
if (tsplr != null && tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.managewarp))
tsplr.SendRaptorWarp(TShock.Warps.FindWarp(warpName));
}
}
@ -2082,8 +2082,8 @@ namespace TShockAPI
args.Player.SendSuccessMessage("Warp deleted: " + warpName);
foreach (TSPlayer tsplr in TShock.Players)
{
if (tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.managewarp))
tsplr.SendRaptorWarpDeletion(TShock.Warps.FindWarp(warpName));
if (tsplr != null && tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.managewarp))
tsplr.SendRaptorWarpDeletion(warpName);
}
}
else
@ -3032,7 +3032,7 @@ namespace TShockAPI
foreach (TSPlayer tsplr in TShock.Players)
{
if (tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
if (tsplr != null && tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
tsplr.SendRaptorRegion(TShock.Regions.GetRegionByName(regionName));
}
}
@ -3086,8 +3086,8 @@ namespace TShockAPI
args.Player.SendInfoMessage("Deleted region \"{0}\".", regionName);
foreach (TSPlayer tsplr in TShock.Players)
{
if (tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
tsplr.SendRaptorRegionDelete(TShock.Regions.GetRegionByName(regionName));
if (tsplr != null && tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
tsplr.SendRaptorRegionDelete(regionName);
}
}
else
@ -3442,7 +3442,7 @@ namespace TShockAPI
args.Player.SendMessage("Region Resized Successfully!", Color.Yellow);
foreach (TSPlayer tsplr in TShock.Players)
{
if (tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
if (tsplr != null && tsplr.IsRaptor && tsplr.Group.HasPermission(Permissions.manageregion))
tsplr.SendRaptorRegion(TShock.Regions.GetRegionByName(args.Parameters[1]));
}
TShock.Regions.ReloadAllRegions();

View file

@ -3410,7 +3410,7 @@ namespace TShockAPI
int height = args.Data.ReadInt32();
string regionName = args.Data.ReadString();
if (TShock.Regions.GetRegionByName(regionName).Area == Rectangle.Empty)
if (TShock.Regions.GetRegionByName(regionName) == null)
{
TShock.Regions.AddRegion(x, y, width, height, regionName, args.Player.UserAccountName, Main.worldID.ToString());
Log.Info("{0} added region \"{1}\".", args.Player.UserAccountName, regionName);

View file

@ -235,6 +235,12 @@ namespace TShockAPI
negatedpermissions.Add(permission);
permissions.Remove(permission); // Ensure we don't have conflicting definitions for a permissions
}
for (int i = 0; i < TShock.Players.Length; i++)
{
if (TShock.Players[i] != null && TShock.Players[i].IsRaptor)
TShock.Players[i].SendRaptorPermissions();
}
}
/// <summary>
@ -254,6 +260,12 @@ namespace TShockAPI
permissions.Add(permission);
negatedpermissions.Remove(permission); // Ensure we don't have conflicting definitions for a permissions
}
for (int i = 0; i < TShock.Players.Length; i++)
{
if (TShock.Players[i] != null && TShock.Players[i].IsRaptor)
TShock.Players[i].SendRaptorPermissions();
}
}
/// <summary>
@ -281,6 +293,11 @@ namespace TShockAPI
return;
}
permissions.Remove(permission);
for (int i = 0; i < TShock.Players.Length; i++)
{
if (TShock.Players[i] != null && TShock.Players[i].IsRaptor && TShock.Players[i].Group == this)
TShock.Players[i].SendRaptorPermissions();
}
}
/// <summary>

View file

@ -960,9 +960,9 @@ namespace TShockAPI
}
/// <summary>
/// Sends a region deletion to the player.
/// <param name="region">The region.</param>
/// <param name="regionName">The region name.</param>
/// </summary>
public void SendRaptorRegionDelete(Region region)
public void SendRaptorRegionDelete(string regionName)
{
if (!IsRaptor)
return;
@ -980,7 +980,7 @@ namespace TShockAPI
writer.Write((byte)PacketTypes.Placeholder);
writer.Write((byte)RaptorPacketTypes.RegionDelete);
writer.Write(region.Name);
writer.Write(regionName);
length = (int)writer.BaseStream.Position;
writer.BaseStream.Position = 0;
@ -1029,9 +1029,9 @@ namespace TShockAPI
}
/// <summary>
/// Sends a warp deletion to the player.
/// <param name="warp">The warp.</param>
/// <param name="warpName">The warp name.</param>
/// </summary>
public void SendRaptorWarpDeletion(Warp warp)
public void SendRaptorWarpDeletion(string warpName)
{
if (!IsRaptor)
return;
@ -1049,7 +1049,7 @@ namespace TShockAPI
writer.Write((byte)PacketTypes.Placeholder);
writer.Write((byte)RaptorPacketTypes.WarpDelete);
writer.Write(warp.WarpName);
writer.Write(warpName);
length = (int)writer.BaseStream.Position;
writer.BaseStream.Position = 0;