mirror of
https://github.com/JezuzLizard/T4SP-Server-Plugin.git
synced 2025-07-04 02:01:54 +00:00
Update fileio.cpp
Add file io functions * directoryexists * createdirectory * fileexists * readfile * writefile
This commit is contained in:
committed by
GitHub
parent
38a860e4ce
commit
8b3433887d
@ -32,6 +32,7 @@ namespace fileio
|
||||
|
||||
std::array<scr_fh_t, max_fhs> scr_fhs = {};
|
||||
|
||||
|
||||
bool validate_scr_path(const std::string& fpath)
|
||||
{
|
||||
if (fpath.empty())
|
||||
@ -196,6 +197,9 @@ namespace fileio
|
||||
auto fd = 0;
|
||||
auto file_length = game::FS_FOpenFileRead(fpath.c_str(), &fd);
|
||||
|
||||
printf("FD %d", fd);
|
||||
printf("FILE LENGHT %d", file_length);
|
||||
|
||||
if (!fd || file_length < 0)
|
||||
{
|
||||
game::Com_PrintWarning(game::CON_CHANNEL_SCRIPT, "Failed to open file for reading: %s\n", fpath.c_str());
|
||||
@ -418,6 +422,63 @@ namespace fileio
|
||||
|
||||
game::FS_FreeFileList(files);
|
||||
});
|
||||
|
||||
gsc::function::add("writefile", []()
|
||||
{
|
||||
const auto path = game::Scr_GetString(0, game::SCRIPTINSTANCE_SERVER);
|
||||
const auto data = game::Scr_GetString(1, game::SCRIPTINSTANCE_SERVER);
|
||||
|
||||
auto append = false;
|
||||
if (game::Scr_GetNumParam(game::SCRIPTINSTANCE_SERVER) > 2)
|
||||
{
|
||||
append = game::Scr_GetInt(game::SCRIPTINSTANCE_SERVER, 2);
|
||||
}
|
||||
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, utils::io::write_file(path, data, append));
|
||||
});
|
||||
|
||||
gsc::function::add("readfile", []()
|
||||
{
|
||||
const auto path = game::Scr_GetString(0, game::SCRIPTINSTANCE_SERVER);
|
||||
game::Scr_AddString(game::SCRIPTINSTANCE_SERVER, utils::io::read_file(path).c_str());
|
||||
});
|
||||
|
||||
gsc::function::add("fileexists", []()
|
||||
{
|
||||
const auto path = game::Scr_GetString(0, game::SCRIPTINSTANCE_SERVER);
|
||||
|
||||
if (!utils::io::file_exists(path))
|
||||
{
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1);
|
||||
});
|
||||
|
||||
gsc::function::add("createdirectory", []()
|
||||
{
|
||||
const auto path = game::Scr_GetString(0, game::SCRIPTINSTANCE_SERVER);
|
||||
if (!utils::io::create_directory(path))
|
||||
{
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1);
|
||||
});
|
||||
|
||||
gsc::function::add("directoryexists", []()
|
||||
{
|
||||
const auto path = game::Scr_GetString(0, game::SCRIPTINSTANCE_SERVER);
|
||||
if(!utils::io::directory_exists(path))
|
||||
{
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user