[UIScript] Add DeleteFavorite (WIP)
This commit is contained in:
parent
a24e68a83b
commit
c874336111
@ -309,6 +309,44 @@ namespace Components
|
|||||||
Game::MessageBox("Server added to favourites.", "Success");
|
Game::MessageBox("Server added to favourites.", "Success");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ServerList::RemoveFavourite(std::string server)
|
||||||
|
{
|
||||||
|
std::vector<std::string> servers;
|
||||||
|
|
||||||
|
if (Utils::IO::FileExists("players/favourites.json"))
|
||||||
|
{
|
||||||
|
std::string data = Utils::IO::ReadFile("players/favourites.json");
|
||||||
|
json11::Json object = json11::Json::parse(data, data);
|
||||||
|
|
||||||
|
if (!object.is_array())
|
||||||
|
{
|
||||||
|
Logger::Print("Favourites storage file is invalid!\n");
|
||||||
|
Game::MessageBox("Favourites storage file is invalid!", "Error");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto& storedServer : object.array_items())
|
||||||
|
{
|
||||||
|
if (storedServer.is_string() && storedServer.string_value() != server)
|
||||||
|
{
|
||||||
|
servers.push_back(storedServer.string_value());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
servers.push_back(server);
|
||||||
|
|
||||||
|
json11::Json data = json11::Json(servers);
|
||||||
|
Utils::IO::WriteFile("players/favourites.json", data.dump());
|
||||||
|
|
||||||
|
auto list = ServerList::GetList();
|
||||||
|
if (list) list->clear();
|
||||||
|
|
||||||
|
ServerList::RefreshVisibleList(UIScript::Token());
|
||||||
|
|
||||||
|
Game::MessageBox("Server removed from favourites.", "Success");
|
||||||
|
}
|
||||||
|
|
||||||
void ServerList::LoadFavourties()
|
void ServerList::LoadFavourties()
|
||||||
{
|
{
|
||||||
if (ServerList::IsFavouriteList() && Utils::IO::FileExists("players/favourites.json"))
|
if (ServerList::IsFavouriteList() && Utils::IO::FileExists("players/favourites.json"))
|
||||||
@ -705,7 +743,7 @@ namespace Components
|
|||||||
});
|
});
|
||||||
UIScript::Add("CreateCurrentServerFavorite", [] (UIScript::Token)
|
UIScript::Add("CreateCurrentServerFavorite", [] (UIScript::Token)
|
||||||
{
|
{
|
||||||
if (Dvar::Var("cl_ingame").get<bool>())
|
if (Game::CL_IsCgameInitialized())
|
||||||
{
|
{
|
||||||
std::string addressText = Network::Address(*Game::connectedHost).getString();
|
std::string addressText = Network::Address(*Game::connectedHost).getString();
|
||||||
if (addressText != "0.0.0.0:0" && addressText != "loopback")
|
if (addressText != "0.0.0.0:0" && addressText != "loopback")
|
||||||
@ -714,6 +752,15 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
UIScript::Add("DeleteFavorite", [] (UIScript::Token)
|
||||||
|
{
|
||||||
|
ServerList::ServerInfo* info = ServerList::GetCurrentServer();
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
{
|
||||||
|
ServerList::RemoveFavourite(info->addr.getString());
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
// Add required ownerDraws
|
// Add required ownerDraws
|
||||||
UIScript::AddOwnerDraw(220, ServerList::UpdateSource);
|
UIScript::AddOwnerDraw(220, ServerList::UpdateSource);
|
||||||
|
@ -116,6 +116,7 @@ namespace Components
|
|||||||
|
|
||||||
static void LoadFavourties();
|
static void LoadFavourties();
|
||||||
static void StoreFavourite(std::string server);
|
static void StoreFavourite(std::string server);
|
||||||
|
static void RemoveFavourite(std::string server);
|
||||||
|
|
||||||
static ServerInfo* GetServer(unsigned int index);
|
static ServerInfo* GetServer(unsigned int index);
|
||||||
static std::vector<ServerInfo>* GetList();
|
static std::vector<ServerInfo>* GetList();
|
||||||
|
Loading…
Reference in New Issue
Block a user