add sv_sayName & say[raw] + tell[raw]

This commit is contained in:
m 2025-04-14 20:01:49 -05:00
parent b05d9dadb9
commit 39f2452c60

View File

@ -85,6 +85,8 @@ namespace party
std::unordered_map<std::string, std::string> hash_cache; std::unordered_map<std::string, std::string> hash_cache;
const game::dvar_t* sv_say_name = nullptr;
std::string get_file_hash(const std::string& file) std::string get_file_hash(const std::string& file)
{ {
const auto iter = hash_cache.find(file); const auto iter = hash_cache.find(file);
@ -915,6 +917,71 @@ namespace party
}, scheduler::pipeline::server); }, scheduler::pipeline::server);
}); });
scheduler::once([]()
{
sv_say_name = game::Dvar_RegisterString("sv_sayName", "console", game::DvarFlags::DVAR_FLAG_NONE, "Custom name for RCON console");
}, scheduler::pipeline::main);
command::add("tell", [](const command::params& params)
{
if (params.size() < 3)
{
return;
}
const auto client_num = atoi(params.get(1));
const auto message = params.join(2);
const auto* const name = sv_say_name->current.string;
game::SV_GameSendServerCommand(client_num, game::SV_CMD_CAN_IGNORE,
utils::string::va("%c \"%s: %s\"", 84, name, message.data()));
console::info("%s -> %i: %s\n", name, client_num, message.data());
});
command::add("tellraw", [](const command::params& params)
{
if (params.size() < 3)
{
return;
}
const auto client_num = atoi(params.get(1));
const auto message = params.join(2);
game::SV_GameSendServerCommand(client_num, game::SV_CMD_CAN_IGNORE,
utils::string::va("%c \"%s\"", 84, message.data()));
console::info("%i: %s\n", client_num, message.data());
});
command::add("say", [](const command::params& params)
{
if (params.size() < 2)
{
return;
}
const auto message = params.join(1);
const auto* const name = sv_say_name->current.string;
game::SV_GameSendServerCommand(
-1, game::SV_CMD_CAN_IGNORE, utils::string::va("%c \"%s: %s\"", 84, name, message.data()));
console::info("%s: %s\n", name, message.data());
});
command::add("sayraw", [](const command::params& params)
{
if (params.size() < 2)
{
return;
}
const auto message = params.join(1);
game::SV_GameSendServerCommand(-1, game::SV_CMD_CAN_IGNORE,
utils::string::va("%c \"%s\"", 84, message.data()));
console::info("%s\n", message.data());
});
network::on("getInfo", [](const game::netadr_s& target, const std::string_view& data) network::on("getInfo", [](const game::netadr_s& target, const std::string_view& data)
{ {
utils::info_string info{}; utils::info_string info{};