void HandleGuildFinderGetApplications(LFGuildGetApplications lfGuildGetApplications) { List <MembershipRequest> applicatedGuilds = Global.GuildFinderMgr.GetAllMembershipRequestsForPlayer(GetPlayer().GetGUID()); LFGuildApplications lfGuildApplications = new LFGuildApplications(); lfGuildApplications.NumRemaining = 10 - Global.GuildFinderMgr.CountRequestsFromPlayer(GetPlayer().GetGUID()); for (var i = 0; i < applicatedGuilds.Count; ++i) { MembershipRequest application = applicatedGuilds[i]; LFGuildApplicationData applicationData = new LFGuildApplicationData(); Guild guild = Global.GuildMgr.GetGuildByGuid(application.GetGuildGuid()); LFGuildSettings guildSettings = Global.GuildFinderMgr.GetGuildSettings(application.GetGuildGuid()); applicationData.GuildGUID = application.GetGuildGuid(); applicationData.GuildVirtualRealm = Global.WorldMgr.GetVirtualRealmAddress(); applicationData.GuildName = guild.GetName(); applicationData.ClassRoles = guildSettings.GetClassRoles(); applicationData.PlayStyle = guildSettings.GetInterests(); applicationData.Availability = guildSettings.GetAvailability(); applicationData.SecondsSinceCreated = (uint)(Time.UnixTime - application.GetSubmitTime()); applicationData.SecondsUntilExpiration = (uint)(application.GetExpiryTime() - Time.UnixTime); applicationData.Comment = application.GetComment(); lfGuildApplications.Application.Add(applicationData); } GetPlayer().SendPacket(lfGuildApplications); }
void HandleGuildFinderGetGuildPost(LFGuildGetGuildPost lfGuildGetGuildPost) { Player player = GetPlayer(); Guild guild = player.GetGuild(); if (!guild) // Player must be in guild { return; } LFGuildPost lfGuildPost = new LFGuildPost(); if (guild.GetLeaderGUID() == player.GetGUID()) { LFGuildSettings settings = Global.GuildFinderMgr.GetGuildSettings(guild.GetGUID()); if (settings == null) { return; } lfGuildPost.Post.HasValue = true; lfGuildPost.Post.Value.Active = settings.IsListed(); lfGuildPost.Post.Value.PlayStyle = settings.GetInterests(); lfGuildPost.Post.Value.Availability = settings.GetAvailability(); lfGuildPost.Post.Value.ClassRoles = settings.GetClassRoles(); lfGuildPost.Post.Value.LevelRange = settings.GetLevel(); lfGuildPost.Post.Value.Comment = settings.GetComment(); } player.SendPacket(lfGuildPost); }
void HandleGuildFinderBrowse(LFGuildBrowse lfGuildBrowse) { if (!lfGuildBrowse.ClassRoles.HasAnyFlag((uint)GuildFinderOptionsRoles.All) || lfGuildBrowse.ClassRoles > (uint)GuildFinderOptionsRoles.All) { return; } if (!lfGuildBrowse.Availability.HasAnyFlag((uint)GuildFinderOptionsAvailability.Always) || lfGuildBrowse.Availability > (uint)GuildFinderOptionsAvailability.Always) { return; } if (!lfGuildBrowse.PlayStyle.HasAnyFlag((uint)GuildFinderOptionsInterest.All) || lfGuildBrowse.PlayStyle > (uint)GuildFinderOptionsInterest.All) { return; } if (lfGuildBrowse.CharacterLevel > WorldConfig.GetIntValue(WorldCfg.MaxPlayerLevel) || lfGuildBrowse.CharacterLevel < 1) { return; } Player player = GetPlayer(); LFGuildPlayer settings = new LFGuildPlayer(player.GetGUID(), lfGuildBrowse.ClassRoles, lfGuildBrowse.Availability, lfGuildBrowse.PlayStyle, (uint)GuildFinderOptionsLevel.Any); var guildList = Global.GuildFinderMgr.GetGuildsMatchingSetting(settings, (uint)player.GetTeam()); LFGuildBrowseResult lfGuildBrowseResult = new LFGuildBrowseResult(); for (var i = 0; i < guildList.Count; ++i) { LFGuildSettings guildSettings = guildList[i]; LFGuildBrowseData guildData = new LFGuildBrowseData(); Guild guild = Global.GuildMgr.GetGuildByGuid(guildSettings.GetGUID()); guildData.GuildName = guild.GetName(); guildData.GuildGUID = guild.GetGUID(); guildData.GuildVirtualRealm = Global.WorldMgr.GetVirtualRealmAddress(); guildData.GuildMembers = guild.GetMembersCount(); guildData.GuildAchievementPoints = guild.GetAchievementMgr().GetAchievementPoints(); guildData.PlayStyle = guildSettings.GetInterests(); guildData.Availability = guildSettings.GetAvailability(); guildData.ClassRoles = guildSettings.GetClassRoles(); guildData.LevelRange = guildSettings.GetLevel(); guildData.EmblemStyle = guild.GetEmblemInfo().GetStyle(); guildData.EmblemColor = guild.GetEmblemInfo().GetColor(); guildData.BorderStyle = guild.GetEmblemInfo().GetBorderStyle(); guildData.BorderColor = guild.GetEmblemInfo().GetBorderColor(); guildData.Background = guild.GetEmblemInfo().GetBackgroundColor(); guildData.Comment = guildSettings.GetComment(); guildData.Cached = 0; guildData.MembershipRequested = (sbyte)(Global.GuildFinderMgr.HasRequest(player.GetGUID(), guild.GetGUID()) ? 1 : 0); lfGuildBrowseResult.Post.Add(guildData); } player.SendPacket(lfGuildBrowseResult); }
void HandleGuildFinderSetGuildPost(LFGuildSetGuildPost lfGuildSetGuildPost) { // Level sent is zero if untouched, force to any (from interface). Idk why if (lfGuildSetGuildPost.LevelRange == 0) { lfGuildSetGuildPost.LevelRange = (uint)GuildFinderOptionsLevel.Any; } if (!lfGuildSetGuildPost.ClassRoles.HasAnyFlag((uint)GuildFinderOptionsRoles.All) || lfGuildSetGuildPost.ClassRoles > (uint)GuildFinderOptionsRoles.All) { return; } if (!lfGuildSetGuildPost.Availability.HasAnyFlag((uint)GuildFinderOptionsAvailability.Always) || lfGuildSetGuildPost.Availability > (uint)GuildFinderOptionsAvailability.Always) { return; } if (!lfGuildSetGuildPost.PlayStyle.HasAnyFlag((uint)GuildFinderOptionsInterest.All) || lfGuildSetGuildPost.PlayStyle > (uint)GuildFinderOptionsInterest.All) { return; } if (!lfGuildSetGuildPost.LevelRange.HasAnyFlag((uint)GuildFinderOptionsLevel.All) || lfGuildSetGuildPost.LevelRange > (uint)GuildFinderOptionsLevel.All) { return; } Player player = GetPlayer(); if (player.GetGuildId() == 0) // Player must be in guild { return; } Guild guild = Global.GuildMgr.GetGuildById(player.GetGuildId()); if (guild == null) { return; } if (guild.GetLeaderGUID() != player.GetGUID()) { return; } LFGuildSettings settings = new LFGuildSettings(lfGuildSetGuildPost.Active, (uint)player.GetTeam(), player.GetGuild().GetGUID(), lfGuildSetGuildPost.ClassRoles, lfGuildSetGuildPost.Availability, lfGuildSetGuildPost.PlayStyle, lfGuildSetGuildPost.LevelRange, lfGuildSetGuildPost.Comment); Global.GuildFinderMgr.SetGuildSettings(player.GetGuild().GetGUID(), settings); }
public LFGuildSettings(LFGuildSettings settings) : base(settings) { _listed = settings.IsListed(); _team = settings.GetTeam(); }