首页 男生 游戏竞技 Minecraft指令手册

第五十二章 /kick和黑名单系统

Minecraft指令手册 你好MC 2955 2024-07-09 15:29

  在上一章我们学习了白名单的使用方法。但在MC Java版中不只有白名单,还有黑名单系统。

  黑名单系统的组成和白名单类似,也是由两部分组成:黑名单相关指令和服务器目录下的黑名单文件。

  虽然组成成分类似,但黑名单和白名单还是有许多不同之处。第一,黑名单目前仅在Java版服务器中有;第二,黑名单的记录内容比白名单的内容更加复杂;第三,黑名单的作用和白名单是相反的;第四,黑名单系统是一直在运行的,无法关闭

  那么黑名单有什么用呢?黑名单和白名单一样,也是服务器随身携带的一个小本本,这个小本本上面也记录了一些玩家(还有IP地址)。当一个玩家想要进入服务器时,服务器就会拿出这个小本本,看一看该玩家的名字和UUID是否被记录在了本子上,然后再看看该玩家的IP地址是否也被记录。只要玩家名和IP地址中两者有任意一者被记录在了本子上,该玩家就无法进入服务器。

  没错,黑名单系统就是一个服务器的“封号”系统。但是说成“封号”并不准确,因为“封号”仅指的是封禁整个账号,而黑名单系统不止会封禁账号,还可以封禁IP地址。

  什么是IP地址?IP地址(Internet Protocol Address),即互联网协议地址。用人话来说,IP地址就相当于你和其他人在互联网上的邮编,双方都需要通过IP地址才能互相收发邮件。假设你的IP地址是222.216.131.255,你的朋友的IP地址是23.135.160.255,你想要给他发送一条信息,那么这条信息上面就会标注上你作为发信人的IP地址还有他作为收信人的IP地址,这样他才能收到信息。

  封禁IP地址,就相当于拒收从某IP地址发来的信息。

  黑名单上到底记录了什么信息呢?一项封禁具体有如下信息:

  如果封禁的是玩家名,这里会记录该玩家名对应的UUID:XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX

  被封禁的玩家名(name)或IP地址(ibr /):XXXXXX

  该项封禁的创建时间(created):XXXX-XX-XX XX:XX:XX +XXXX

  该项封禁的创建人(source):XXXXXX

  该项封禁的到期时间(exbr /ires):默认为forever

  封禁的原因(reason):默认为Banned by an obr /erator.

  我们该怎样通过指令使用黑名单?

  黑名单相关的指令有许多,具体有:

  \\封禁相关\\

  /ban <玩家名或UUID>[封禁原因]——通过玩家名或UUID来封禁一名玩家,玩家无需在线。

  /ban-ibr / <IP地址或在线玩家名称>[封禁原因]——直接封禁一个IP地址或封禁一名在线玩家的IP地址

  \\查看相关\\

  /banlist <ibr /s|br /layers>——查看被封禁的IP列表或玩家列表。ibr /s即Ibr /列表,br /layers即玩家列表。

  \\解封相关\\

  /br /ardon <玩家名>——解封一个玩家名(从黑名单上移除指定玩家名)

  /br /ardon-ibr / <IP地址>——解封一个IP地址(从黑名单上移除指定IP地址)

  虽然比/whitelist指令要复杂一点,但仍然很简单,对吧?

  现在我们来看一个情景(本情景为作者瞎编,如有雷同,纯属巧合):

  在某生存+小游戏服务器中,有一名叫做Klee的玩家(IP地址为1.145.14.191)乱放TNT,放火烧山,给该服务器中的其他玩家造成许多损失。经管理员们讨论后,服务器给予该玩家永久封禁账号(/ban Klee 由于您严重违反我们服务器相关规定,该帐号已被永久封禁)+IP地址(/ban-ibr / 1.145.14.191)大礼包,并补偿服务器内的其他玩家每人3万游戏币,同时对受灾严重地区进行回档操作。

  如果这名玩家想要再次进入服务器,那么她将会收到一条错误信息:由于您严重违反我们服务器相关规定,该帐号已被永久封禁。

  如果这名玩家还不服气,网上买了个黑号打算再进服务器大干一番,只要她的IP地址还是原来的那个1.145.14.191,那么她就永远无法进入该服务器(除非IP地址被解封或她的IP地址换了)。

  对了,如何查看一名玩家的IP地址呢?

  打开你服务器的根目录,找到logs文件夹。进入该文件夹,找到需要查看的玩家最后上线那天的服务器日志文件。打开后,使用Ctrl+F(Windows和Linux)或Command⌘+F(Mac)搜索该玩家名称,就能很快地找到该玩家的IP信息。

  现在你知道如何使用黑名单了吧?就算你学会了,本章也没有到此结束(/kick还没讲呢!)。

  注意到上面封禁的具体信息中有一行封禁到期时间了没有?

  你有没有发现,在黑名单的相关指令中,从来没有出现过能够设置封禁时长的参数,每次封禁都是forever(永久封禁)。这究竟是怎么一回事?

  实际上,这里藏着一个天大的BUG,一个从Java1.9甚至更早到现在都未能解决的BUG:

  当一项封禁到了到期时间,游戏仍然会继续封禁而不是放弃该项封禁。

  虽然该bug在1.9版本才被发现,Mojang内部员工也说了该Bug在1.13.1被解决(MC-84786),但实际上仍然没有解决(MC-158900)。根据目前Mojang bug反馈网站上显示的信息,该错误影响了原版MC的1.9~1.12.2、1.14.4~1.17版本。如果这个bug在接下来的1.19甚至是以后的1.20版本中被解决,那么Mojang很有可能会给/ban还有/ban-ibr /指令添加一个新的可以设定到期时间的参数!

  唉,我们是不是漏了什么东西?

  /kick啊!

  /kick的作用是踢出一名玩家。和黑名单不同的是,被踢出的玩家可以再次进入到服务器中而不受限制,相当于是一个警告或是一个玩笑。

  /kick的语法如下:

  /kick <目标选择器:玩家>[踢出原因]

  即使/kick的使用如此简单,我们仍然需要注意以下几点:

  ①在基岩版中,/kick可以在命令方块中执行(需要权限等级仅为1)。但在Java版中不行(需要3级权限)。

  ②在基岩版中,/kick不能踢出服务器的拥有者。但在Java版中,这是可行的。

  ③在基岩版中,/kick在命令方块执行成功输出的红石信号强度等同于/kick本次执行所踢出的玩家数量。

  本章就到此结束了。

目录
设置
手机
书架
书页
评论