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); args.Player.SendSuccessMessage("Warp added: " + warpName);
foreach (TSPlayer tsplr in TShock.Players) 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)); tsplr.SendRaptorWarp(TShock.Warps.FindWarp(warpName));
} }
} }
@ -2082,8 +2082,8 @@ namespace TShockAPI
args.Player.SendSuccessMessage("Warp deleted: " + warpName); args.Player.SendSuccessMessage("Warp deleted: " + warpName);
foreach (TSPlayer tsplr in TShock.Players) 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.SendRaptorWarpDeletion(TShock.Warps.FindWarp(warpName)); tsplr.SendRaptorWarpDeletion(warpName);
} }
} }
else else
@ -3032,7 +3032,7 @@ namespace TShockAPI
foreach (TSPlayer tsplr in TShock.Players) 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)); tsplr.SendRaptorRegion(TShock.Regions.GetRegionByName(regionName));
} }
} }
@ -3086,8 +3086,8 @@ namespace TShockAPI
args.Player.SendInfoMessage("Deleted region \"{0}\".", regionName); args.Player.SendInfoMessage("Deleted region \"{0}\".", regionName);
foreach (TSPlayer tsplr in TShock.Players) 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.SendRaptorRegionDelete(TShock.Regions.GetRegionByName(regionName)); tsplr.SendRaptorRegionDelete(regionName);
} }
} }
else else
@ -3442,7 +3442,7 @@ namespace TShockAPI
args.Player.SendMessage("Region Resized Successfully!", Color.Yellow); args.Player.SendMessage("Region Resized Successfully!", Color.Yellow);
foreach (TSPlayer tsplr in TShock.Players) 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])); tsplr.SendRaptorRegion(TShock.Regions.GetRegionByName(args.Parameters[1]));
} }
TShock.Regions.ReloadAllRegions(); TShock.Regions.ReloadAllRegions();

View file

@ -3410,7 +3410,7 @@ namespace TShockAPI
int height = args.Data.ReadInt32(); int height = args.Data.ReadInt32();
string regionName = args.Data.ReadString(); 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()); TShock.Regions.AddRegion(x, y, width, height, regionName, args.Player.UserAccountName, Main.worldID.ToString());
Log.Info("{0} added region \"{1}\".", args.Player.UserAccountName, regionName); Log.Info("{0} added region \"{1}\".", args.Player.UserAccountName, regionName);

View file

@ -235,6 +235,12 @@ namespace TShockAPI
negatedpermissions.Add(permission); negatedpermissions.Add(permission);
permissions.Remove(permission); // Ensure we don't have conflicting definitions for a permissions 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> /// <summary>
@ -254,6 +260,12 @@ namespace TShockAPI
permissions.Add(permission); permissions.Add(permission);
negatedpermissions.Remove(permission); // Ensure we don't have conflicting definitions for a permissions 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> /// <summary>
@ -281,6 +293,11 @@ namespace TShockAPI
return; return;
} }
permissions.Remove(permission); 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> /// <summary>

View file

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