mirror of
https://github.com/diamante0018/BlackOpsPlugin.git
synced 2025-04-21 18:55:42 +00:00
feature(chat): sv_disablechat dvar
This commit is contained in:
parent
54829603f0
commit
1d3c6e34c9
@ -14,6 +14,8 @@ utils::hook::detour client_command_hook;
|
|||||||
using client_list = std::unordered_set<std::uint64_t>;
|
using client_list = std::unordered_set<std::uint64_t>;
|
||||||
utils::concurrency::container<client_list> mute_list;
|
utils::concurrency::container<client_list> mute_list;
|
||||||
|
|
||||||
|
const game::dvar_t* sv_disableChat;
|
||||||
|
|
||||||
void mute_player(const game::client_s* client) {
|
void mute_player(const game::client_s* client) {
|
||||||
const auto xuid = client->xuid;
|
const auto xuid = client->xuid;
|
||||||
mute_list.access([&](client_list& clients) { clients.insert(xuid); });
|
mute_list.access([&](client_list& clients) { clients.insert(xuid); });
|
||||||
@ -40,6 +42,13 @@ void client_command_stub(const int client_number) {
|
|||||||
game::SV_Cmd_ArgvBuffer(0, buf, sizeof(buf));
|
game::SV_Cmd_ArgvBuffer(0, buf, sizeof(buf));
|
||||||
|
|
||||||
if (utils::string::starts_with(buf, "say")) {
|
if (utils::string::starts_with(buf, "say")) {
|
||||||
|
if (sv_disableChat->current.enabled) {
|
||||||
|
game::SV_GameSendServerCommand(
|
||||||
|
client_number, game::SV_CMD_CAN_IGNORE,
|
||||||
|
utils::string::va("%c \"Chat is disabled\"", 0x65));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const auto is_muted =
|
const auto is_muted =
|
||||||
mute_list.access<bool>([&](const client_list& clients) {
|
mute_list.access<bool>([&](const client_list& clients) {
|
||||||
return clients.contains(game::svs_clients[client_number].xuid);
|
return clients.contains(game::svs_clients[client_number].xuid);
|
||||||
@ -62,8 +71,10 @@ public:
|
|||||||
void post_unpack() override {
|
void post_unpack() override {
|
||||||
client_command_hook.create(SELECT_VALUE(0x63DB70, 0x4AF770),
|
client_command_hook.create(SELECT_VALUE(0x63DB70, 0x4AF770),
|
||||||
client_command_stub);
|
client_command_stub);
|
||||||
|
|
||||||
add_chat_commands();
|
add_chat_commands();
|
||||||
|
|
||||||
|
sv_disableChat = game::Dvar_RegisterBool(
|
||||||
|
"sv_disableChat", false, 0, "Disable chat messages from clients");
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user