Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如何使用带有on*:CONNECT:mirc脚本的if语句_If Statement_Irc_Mirc - Fatal编程技术网

If statement 如何使用带有on*:CONNECT:mirc脚本的if语句

If statement 如何使用带有on*:CONNECT:mirc脚本的if语句,if-statement,irc,mirc,If Statement,Irc,Mirc,我想加入三个网络,对nicksrv进行身份验证,并在启动IRC客户端时向机器人发送消息/或自动加入几个通道。我正在使用mIRC 7.55 客户端应该做什么取决于它是哪个网络。所以我有一个if语句,但是它不能正常工作 对于一台服务器,它工作得非常完美,只要我添加了多台服务器,我就有问题了。我的语法一定有问题,或者可能除了$server,我还可以使用其他东西 on *:start: { /server irc.gazellegames.net:+7000 /server -m irc.scr

我想加入三个网络,对nicksrv进行身份验证,并在启动IRC客户端时向机器人发送消息/或自动加入几个通道。我正在使用mIRC 7.55

客户端应该做什么取决于它是哪个网络。所以我有一个if语句,但是它不能正常工作

对于一台服务器,它工作得非常完美,只要我添加了多台服务器,我就有问题了。我的语法一定有问题,或者可能除了
$server
,我还可以使用其他东西

on *:start: {
  /server irc.gazellegames.net:+7000
  /server -m irc.scratch-network.net:+7000
  /server -m irc.myanonamouse.net:+6697
}
on *:CONNECT: {
  if ($server = "horus.gazellegames.net" || "anubis.gazellegames.net") {
    /msg NickServ IDENTIFY password
    /msg Vertigo ENTER username password
  }
  if ($server = brooklyn.scratch-network.net) {
    /msg NickServ IDENTIFY password
    /msg Drone enter #channel1 username password
  }
  if ($server = "irc.myanonamouse.net" || "irc2.myanonamouse.net") {
    /msg NickServ IDENTIFY password
    /j #channel1,#channel2
  }
}
预期的结果是加入网络并遵循IF语句,并使用每个网络的正确凭据进行身份验证。脚本可以工作,但不可靠

脚本似乎将所有内容发送到它连接的第一台服务器,请参见此处的代码段:

并且无法加入irc.myanonamouse.net/irc2.myanonamouse.net的第二个频道


我想避免泄露我的凭据并使其自动化,所以我只需要启动客户端以加入所有网络、身份验证、向机器人发送消息或加入几个频道。

我通过在每台服务器上输入nickserv身份验证、工具->选项->服务器->选择服务器并选择编辑->登录方法=nickserv(/msg nickserv)来解决此问题->输入密码并保存

我还将
$server
换成了
$network
,看起来更可靠

on *:start: {
  /server irc.gazellegames.net:+7000
  /server -m irc.scratch-network.net:+7000
  /server -m irc.myanonamouse.net:+6697
}
on *:CONNECT: {

  if ($network = MYANONAMOUSE) {
    /j #channel1
    /j #channel2
  }
  if ($network = GGn) {
    /msg Vertigo ENTER username password
  }
  if ($network = Scratch-Network) {
    /msg Drone enter #channel username password
  }
}

我通过在每台服务器上输入nickserv身份验证解决了这个问题,工具->选项->服务器->选择服务器,然后选择编辑->登录方法=nickserv(/msg nickserv)->输入密码并保存

我还将
$server
换成了
$network
,看起来更可靠

on *:start: {
  /server irc.gazellegames.net:+7000
  /server -m irc.scratch-network.net:+7000
  /server -m irc.myanonamouse.net:+6697
}
on *:CONNECT: {

  if ($network = MYANONAMOUSE) {
    /j #channel1
    /j #channel2
  }
  if ($network = GGn) {
    /msg Vertigo ENTER username password
  }
  if ($network = Scratch-Network) {
    /msg Drone enter #channel username password
  }
}

我已将不同类型的活动拆分为特定的别名处理程序,并将网络标识符传递给它。i、 e:特定网络命令、JoinNetworkChannel

我还从连接过程中删除了NickServ身份验证,并且不仅在NickServ启动通知事件时触发响应。这将帮助您在网络服务重新启动并要求您重新验证时始终获得身份验证

注意:

  • 所有这些重复的
    if$network==
    都可以通过进一步创建
    身份验证
    自动连接
    的存储机制,使其变得动态和更干净
  • 您还可以使用Authentication\Identification、AutoJoin、执行命令mSL脚本,这些命令将不费吹灰之力地为您完成这项工作的每一部分,而且大部分时间都是通过UI完成的
  • 代码:(未经测试)


    我已将不同类型的活动拆分为特定的别名处理程序,并将网络标识符传递给它。i、 e:特定网络命令、JoinNetworkChannel

    我还从连接过程中删除了NickServ身份验证,并且不仅在NickServ启动通知事件时触发响应。这将帮助您在网络服务重新启动并要求您重新验证时始终获得身份验证

    注意:

  • 所有这些重复的
    if$network==
    都可以通过进一步创建
    身份验证
    自动连接
    的存储机制,使其变得动态和更干净
  • 您还可以使用Authentication\Identification、AutoJoin、执行命令mSL脚本,这些命令将不费吹灰之力地为您完成这项工作的每一部分,而且大部分时间都是通过UI完成的
  • 代码:(未经测试)


    如果是
    NickServ
    身份验证,我会采取不同的做法,如果您仍然想要另一个解决方案,我会很乐意写出来。我创建了一个答案。如果是
    NickServ
    身份验证,我会采取不同的做法。如果您仍然想要另一个解决方案,我会很乐意写出来。我创建了一个答案