禁用 ZNC 上的 WATCH 命令

禁用 ZNC 上的 WATCH 命令

在 ZNC 上,有一个WATCH命令(不是watch模块)用作服务器端监视列表。它会自动添加我私信过的人,并在他们上线/下线时通知我,这很烦人。我知道我可以WATCH -nick删除昵称,但我不想一直这样做以删除它自动添加的每个昵称。有没有办法完全禁用这个WATCH命令?

编辑:我实际访问 ZNC 的唯一途径是通过 Web 管理界面。而且我不是管理员,只是服务器上的普通用户。

答案1

由于ZNC是开源的,因此我下载并分析了它。

供您参考,WATCH 命令由源文件中的 Watch 模块处理(令人惊讶)modules\watch.cpp。在文件的第 240 行,您将找到以下内容:

virtual void OnModCommand(const CString& sCommand) {
    CString sCmdName = sCommand.Token(0);
    if (sCmdName.Equals("ADD") || sCmdName.Equals("WATCH")) {
        Watch(sCommand.Token(1), sCommand.Token(2), sCommand.Token(3, true));

要使 WATCH 命令无效,您可以:

  1. 卸载 Watch 模块,这会使 WATCH 命令无法访问
  2. 将源中的字符串“WATCH”更改为其他内容并重新编译
  3. 用一个免费十六进制编辑器在二进制文件中搜索字符串“WATCH”(不带引号)并进行更改,同时保持相同的字符总数,例如更改为“VATCH”。

由于我不使用 ZNC,因此无法衡量卸载 Watch 模块对其正常运行的影响。其他两种解决方案需要在每个新版本的 ZNC 中重复执行。

答案2

阅读其他答案/评论后,我发现在服务器端执行此操作不会轻易发生......

那么...客户端怎么样?

这显然取决于您的客户,但您可以从那里忽略他们吗?

相关内容