Added in handler for TeamChange packet

This commit is contained in:
Zack Piispanen 2012-03-01 16:14:08 -05:00
parent ab9004df66
commit fd4880bcfe

View file

@ -135,6 +135,38 @@ namespace TShockAPI
return args.Handled; return args.Handled;
} }
/// <summary>
/// For use in a PlayerTeam event
/// </summary>
public class PlayerTeamEventArgs : HandledEventArgs
{
/// <summary>
/// The Terraria player ID of the player
/// </summary>
public byte PlayerId { get; set; }
/// <summary>
/// Enable/disable pvp?
/// </summary>
public byte Team { get; set; }
}
/// <summary>
/// TogglePvp - called when a player toggles pvp
/// </summary>
public static HandlerList<PlayerTeamEventArgs> PlayerTeam;
private static bool OnPlayerTeam(byte _id, byte _team)
{
if (PlayerTeam == null)
return false;
var args = new PlayerTeamEventArgs
{
PlayerId = _id,
Team = _team,
};
PlayerTeam.Invoke(null, args);
return args.Handled;
}
/// <summary> /// <summary>
/// For use in a PlayerSlot event /// For use in a PlayerSlot event
/// </summary> /// </summary>
@ -1091,6 +1123,7 @@ namespace TShockAPI
{PacketTypes.TileSendSquare, HandleSendTileSquare}, {PacketTypes.TileSendSquare, HandleSendTileSquare},
{PacketTypes.ProjectileNew, HandleProjectileNew}, {PacketTypes.ProjectileNew, HandleProjectileNew},
{PacketTypes.TogglePvp, HandleTogglePvp}, {PacketTypes.TogglePvp, HandleTogglePvp},
{PacketTypes.PlayerTeam, HandlePlayerTeam},
{PacketTypes.TileKill, HandleTileKill}, {PacketTypes.TileKill, HandleTileKill},
{PacketTypes.PlayerKillMe, HandlePlayerKillMe}, {PacketTypes.PlayerKillMe, HandlePlayerKillMe},
{PacketTypes.LiquidSet, HandleLiquidSet}, {PacketTypes.LiquidSet, HandleLiquidSet},
@ -1774,6 +1807,25 @@ namespace TShockAPI
return true; return true;
} }
private static bool HandlePlayerTeam(GetDataHandlerArgs args)
{
byte id = args.Data.ReadInt8();
byte team = args.Data.ReadInt8();
if (OnPlayerTeam(id, team))
return true;
if (id != args.Player.Index)
{
return true;
}
args.TPlayer.team = team;
NetMessage.SendData((int)PacketTypes.PlayerTeam, -1, -1, "", args.Player.Index);
return true;
}
private static bool HandlePlayerUpdate(GetDataHandlerArgs args) private static bool HandlePlayerUpdate(GetDataHandlerArgs args)
{ {
var plr = args.Data.ReadInt8(); var plr = args.Data.ReadInt8();