private static void HandleJoin(GameSession session, PacketReader packet) { Party party = GameServer.PartyManager.GetPartyById(session.Player.PartyId); if (party == null) { return; } long clubId = packet.ReadLong(); Club club = GameServer.ClubManager.GetClubById(clubId); if (club == null) { return; } if (club.Leader.CharacterId == session.Player.CharacterId) { party.BroadcastPacketParty(ClubPacket.UpdatePlayerClubList(session.Player, club)); } else { int response = packet.ReadInt(); // 0 = accept, 76 (0x4C) = reject if (response == 0) { party.BroadcastPacketParty(ClubPacket.ConfirmCreate(club.Id)); club.Leader.Session.Send(ClubPacket.Join(session.Player, club)); club.Leader.Session.Send(ClubPacket.Establish(club)); // TODO add member to club (club.AddMember(session.Player);) } else { // TODO update to proper rejection packet party.Leader.Session.Send(ChatPacket.Send(party.Leader, session.Player.Name + " declined the invitation.", ChatType.NoticeAlert2)); } } }