aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Guilds/GuildFinderMgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Guilds/GuildFinderMgr.h')
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.h252
1 files changed, 0 insertions, 252 deletions
diff --git a/src/server/game/Guilds/GuildFinderMgr.h b/src/server/game/Guilds/GuildFinderMgr.h
deleted file mode 100644
index ff20c29a413..00000000000
--- a/src/server/game/Guilds/GuildFinderMgr.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __TRINITY_GUILDFINDER_H
-#define __TRINITY_GUILDFINDER_H
-
-#include "Common.h"
-#include "ObjectGuid.h"
-#include "SharedDefines.h"
-#include <unordered_map>
-
-class Guild;
-class Player;
-
-enum GuildFinderOptionsInterest
-{
- INTEREST_QUESTING = 0x01,
- INTEREST_DUNGEONS = 0x02,
- INTEREST_RAIDS = 0x04,
- INTEREST_PVP = 0x08,
- INTEREST_ROLE_PLAYING = 0x10,
- ALL_INTERESTS = INTEREST_QUESTING | INTEREST_DUNGEONS | INTEREST_RAIDS | INTEREST_PVP | INTEREST_ROLE_PLAYING
-};
-
-enum GuildFinderOptionsAvailability
-{
- AVAILABILITY_WEEKDAYS = 0x1,
- AVAILABILITY_WEEKENDS = 0x2,
- AVAILABILITY_ALWAYS = AVAILABILITY_WEEKDAYS | AVAILABILITY_WEEKENDS
-};
-
-enum GuildFinderOptionsRoles
-{
- GUILDFINDER_ROLE_TANK = 0x1,
- GUILDFINDER_ROLE_HEALER = 0x2,
- GUILDFINDER_ROLE_DPS = 0x4,
- GUILDFINDER_ALL_ROLES = GUILDFINDER_ROLE_TANK | GUILDFINDER_ROLE_HEALER | GUILDFINDER_ROLE_DPS
-};
-
-enum GuildFinderOptionsLevel
-{
- ANY_FINDER_LEVEL = 0x1,
- MAX_FINDER_LEVEL = 0x2,
- ALL_GUILDFINDER_LEVELS = ANY_FINDER_LEVEL | MAX_FINDER_LEVEL
-};
-
-/// Holds all required informations about a membership request
-struct MembershipRequest
-{
- public:
- MembershipRequest();
-
- MembershipRequest(ObjectGuid const& playerGUID, ObjectGuid const& guildId, uint32 availability, uint32 classRoles, uint32 interests, std::string comment, time_t submitTime);
-
- ObjectGuid const& GetGuildGuid() const { return _guildId; }
- ObjectGuid const& GetPlayerGUID() const { return _playerGUID; }
- uint8 GetAvailability() const { return _availability; }
- uint8 GetClassRoles() const { return _classRoles; }
- uint8 GetInterests() const { return _interests; }
- time_t GetSubmitTime() const { return _time; }
- time_t GetExpiryTime() const { return time_t(_time + 30 * 24 * 3600); } // Adding 30 days
- std::string const& GetComment() const { return _comment; }
-
- private:
- std::string _comment;
-
- ObjectGuid _guildId;
- ObjectGuid _playerGUID;
-
- uint8 _availability;
- uint8 _classRoles;
- uint8 _interests;
-
- time_t _time;
-};
-
-/// Holds all informations about a player's finder settings. _NOT_ stored in database.
-struct LFGuildPlayer
-{
- public:
- LFGuildPlayer()
- {
- _roles = 0;
- _availability = 0;
- _interests = 0;
- _level = 0;
- }
-
- LFGuildPlayer(ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level)
- {
- _guid = guid;
- _roles = role;
- _availability = availability;
- _interests = interests;
- _level = level;
- }
-
- LFGuildPlayer(ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) : _comment(comment)
- {
- _guid = guid;
- _roles = role;
- _availability = availability;
- _interests = interests;
- _level = level;
- }
-
- ObjectGuid const& GetGUID() const { return _guid; }
- uint8 GetClassRoles() const { return _roles; }
- uint8 GetAvailability() const { return _availability; }
- uint8 GetInterests() const { return _interests; }
- uint8 GetLevel() const { return _level; }
- std::string const& GetComment() const { return _comment; }
-
- private:
- std::string _comment;
- ObjectGuid _guid;
- uint8 _roles;
- uint8 _availability;
- uint8 _interests;
- uint8 _level;
-};
-
-/// Holds settings for a guild in the finder system. Saved to database.
-struct LFGuildSettings : public LFGuildPlayer
-{
- public:
- LFGuildSettings() : LFGuildPlayer(), _listed(false), _team(TEAM_ALLIANCE) {}
-
- LFGuildSettings(bool listed, TeamId team) : LFGuildPlayer(), _listed(listed), _team(team) {}
-
- LFGuildSettings(bool listed, TeamId team, ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level) :
- LFGuildPlayer(guid, role, availability, interests, level), _listed(listed), _team(team) {}
-
- LFGuildSettings(bool listed, TeamId team, ObjectGuid const& guid, uint8 role, uint8 availability, uint8 interests, uint8 level, std::string& comment) :
- LFGuildPlayer(guid, role, availability, interests, level, comment), _listed(listed), _team(team) {}
-
- bool IsListed() const { return _listed; }
- void SetListed(bool state) { _listed = state; }
-
- TeamId GetTeam() const { return _team; }
- private:
- bool _listed;
- TeamId _team;
-};
-
-typedef std::unordered_map<ObjectGuid /* guildGuid */, LFGuildSettings> LFGuildStore;
-
-class GuildFinderMgr
-{
- private:
- GuildFinderMgr();
- ~GuildFinderMgr();
-
- LFGuildStore _guildSettings;
-
- std::unordered_map<ObjectGuid /*guildGUID*/, std::unordered_map<ObjectGuid /*playerGUID*/, MembershipRequest>> _membershipRequestsByGuild;
- std::unordered_map<ObjectGuid /*playerGUID*/, std::unordered_map<ObjectGuid /*guildGUID*/, MembershipRequest>> _membershipRequestsByPlayer;
-
- void LoadGuildSettings();
- void LoadMembershipRequests();
-
- public:
- void LoadFromDB();
-
- /**
- * @brief Stores guild settings and begins an asynchronous database insert
- * @param guildGuid The guild's database guid.
- * @param LFGuildSettings The guild's settings storage.
- */
- void SetGuildSettings(ObjectGuid const& guildGuid, LFGuildSettings const& settings);
-
- /**
- * @brief Returns settings for a guild.
- * @param guildGuid The guild's database guid.
- */
- LFGuildSettings const& GetGuildSettings(ObjectGuid const& guildGuid) { return _guildSettings[guildGuid]; }
-
- /**
- * @brief Files a membership request to a guild
- * @param guildGuid The guild's database GUID.
- * @param MembershipRequest An object storing all data related to the request.
- */
- void AddMembershipRequest(ObjectGuid const& guildGuid, MembershipRequest const& request);
-
- /**
- * @brief Removes all membership request from a player.
- * @param playerId The player's database guid whose application shall be deleted.
- */
- void RemoveAllMembershipRequestsFromPlayer(ObjectGuid const& playerId);
-
- /**
- * @brief Removes a membership request to a guild.
- * @param playerId The player's database guid whose application shall be deleted.
- * @param guildId The guild's database guid
- */
- void RemoveMembershipRequest(ObjectGuid const& playerId, ObjectGuid const& guildId);
-
- /// Wipes everything related to a guild. Used when that guild is disbanded
- void DeleteGuild(ObjectGuid const& guildId);
-
- /**
- * @brief Returns a set of membership requests for a guild
- * @param guildGuid The guild's database guid.
- */
- std::unordered_map<ObjectGuid, MembershipRequest> const* GetAllMembershipRequestsForGuild(ObjectGuid const& guildGuid)
- {
- auto itr = _membershipRequestsByGuild.find(guildGuid);
- return itr != _membershipRequestsByGuild.end() ? &itr->second : nullptr;
- }
-
- /**
- * @brief Returns a list of membership requests for a player.
- * @param playerGuid The player's database guid.
- */
- std::vector<MembershipRequest const*> GetAllMembershipRequestsForPlayer(ObjectGuid const& playerGuid);
-
- /**
- * @brief Returns a store of guilds matching the settings provided, using bitmask operators.
- * @param settings The player's finder settings
- * @param teamId The player's faction (TEAM_ALLIANCE or TEAM_HORDE)
- */
- std::vector<LFGuildSettings const*> GetGuildsMatchingSetting(LFGuildPlayer& settings, TeamId faction);
-
- /// Provided a player guid and a guild guid, determines if a pending request is filed with these keys.
- bool HasRequest(ObjectGuid const& playerId, ObjectGuid const& guildId);
-
- /// Counts the amount of pending membership requests, given the player's db guid.
- uint8 CountRequestsFromPlayer(ObjectGuid const& playerId);
-
- static void SendApplicantListUpdate(Guild* guild);
- static void SendMembershipRequestListUpdate(Player* player);
-
- static GuildFinderMgr* instance();
-};
-
-#define sGuildFinderMgr GuildFinderMgr::instance()
-
-#endif // __TRINITY_GUILDFINDER_H