private void HandleTeamRequest(PacketCommand command)
{
if (InvokeRequired)
{
Invoke(new Action<PacketCommand>(HandleTeamRequest), command);
return;
}
switch (command.Command)
{
case "JOIN":
if (Program.Config.RefuseTeamInvites)
{
Program.ChatServer.SendPacket(DevServerPackets.TeamCommand,
JsonSerializer.SerializeToString(new PacketCommand { Command = "AUTOREFUSE" }));
return;
}
if (MessageBox.Show(command.Data + " has invited you to join a team.", "Team Request", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
WriteMessage(new ChatMessage(MessageType.System, CommandType.None, Program.UserInfo.username, "You have accepted the team invite."));
Program.ChatServer.SendPacket(DevServerPackets.TeamCommand,
JsonSerializer.SerializeToString(new PacketCommand { Command = "ACCEPT" }));
}
else
{
WriteMessage(new ChatMessage(MessageType.System, CommandType.None, Program.UserInfo.username, "You have refused the team invite."));
Program.ChatServer.SendPacket(DevServerPackets.TeamCommand,
JsonSerializer.SerializeToString(new PacketCommand { Command = "REFUSE" }));
}
break;
case "LEAVE":
Program.UserInfo.team = string.Empty;
Program.UserInfo.teamRank = 0;
ChannelTabs.TabPages.Remove(GetChatWindow(MessageType.Team.ToString()));
WriteMessage(new ChatMessage(MessageType.System, CommandType.None, Program.UserInfo.username, "You have left the team."));
break;
case "REMOVED":
Program.UserInfo.team = string.Empty;
Program.UserInfo.teamRank = 0;
ChannelTabs.TabPages.Remove(GetChatWindow(MessageType.Team.ToString()));
WriteMessage(new ChatMessage(MessageType.System, CommandType.None, Program.UserInfo.username, "You have been removed from the team."));
break;
case "DISBAND":
if (Program.UserInfo.team == command.Data)
{
Program.UserInfo.team = string.Empty;
Program.UserInfo.teamRank = 0;
ChannelTabs.TabPages.Remove(GetChatWindow(MessageType.Team.ToString()));
}
break;
}
}