本帖最后由 1582952890 于 2017-9-16 21:09 编辑

SuperBan
报复熊孩子的艺术
上面那个是民间非正式译名,官方译名为
《论如何在现有Minecraft多人联机协议条件之下尽可能的惩罚
给Minecraft服务器带来损失的恶意破坏者(民间称呼"熊孩子")等其他任何不受欢迎的游玩者并尽可能使其无法进行报复行为》


未经明示允许严禁转载


  • 介绍

    • 当您的服务器变的越来越大,玩家越来越多时,相信您一定会遇到“罪大恶极”,给您的服务器带来损失的恶意破坏者等所有不受欢迎的游玩者(下简称"熊孩子")吧?这个时候您会不会感觉“ban了这熊孩子实在是太便宜他了”可是您又能怎么样呢?——有本事钻出屏幕来咬我呀!(比如我就遇到过这种情况:用op帐号给全服人民发钻石块还在那得意洋洋的笑等等等)有了这个插件,再也不用担心“得不到应有的惩罚了”,装了此插件后,被您ban了/banip了的熊孩子可以正常进入服务器,然后插件就会——炸了他的客户端!
    • 注意是“炸了他的客户端”准确的说,这个插件不会导致崩溃(虽然那样轻而易举),而是会让客户端进入永久的未响应状态——估计只有天河二号才能抵得住。
    • 哦对了,还有一种情况,就是怕你ban了熊孩子,他回来报复/重新开小号换ip进入。在这种情况下,把配置文件设为不提示消息,这样熊孩子永远也不会知道是怎么回事2333(不过如果他看了这帖子/猜到是怎么回事,我可不负责任)。他会以为是客户端问题/电脑问题,甚至去重装系统2333祝他好运



  • 效果图
    什么?这都需要效果图啊!要知道我测试时客户端已经崩了不下20次了!好吧好吧,,,


    就这样吧=。=相信足以说明问题了



  • 配置文件
    配置文件默认编码为  Windows -> GB2312 (GBK)  Linux -> UTF-8
    在Windows环境下建议使用WindowsXP以上自带的"写字板"程序进行编辑。
    1. # ******************** #
    2. # SuperBan by andylizi #
    3. # ******************** #

    4. # 是否向崩客户端时向玩家发送理由(也就是"/ban 名字 理由"中的"理由"部分。如果理由不填默认为,,这个依据是否使用ESS而定,自己试试吧
    5. sendBanReason: true
    6. # 自定义消息设置
    7. sendCustomMessage:
    8.     # 是否开启发送自定义消息。此项开启后会无视"sendBanReason"项。
    9.     # 如果把显示理由和显示自定义消息都关闭,将不会有任何提示。这种情况下,虽然"有点便宜他"但是可以防止他回来报复。自行决定。
    10.     enable: true
    11.     # 消息内容。可以使用颜色代码,可以使用%reason%变量代替理由(见"sendBanReason"项的说明)
    12.     msg: '&c嘿嘿嘿嘿嘿..叫你熊我服!'
    复制代码



  • 命令 & 权限
    命令权限说明
    /crash <玩家名>superban.crash崩了玩家的客户端!
    注意,这个命令不会给玩家任何提示可以用来整人不过玩家找你算账可别怪我

    注意:/ban指令或/ban-ip指令不会触发crash操作而是会像默认的一样,t出熊孩子并显示他已被服务器封禁。所以当你封禁的那个玩家在线时,可以先/crash了再/ban。因为一旦熊孩子被crash,他的客户端未响应了就不会显示任何服务器的操作,所以,当你在/crash后执行的任何操作,都不会被他看见。也就是说,他不会知道你ban了他
    隐藏玩法Get:/crash xxxxx  ,"xxxx你个大【数据删除,自行脑洞】,有本事你来【数据删除】啊,来啊!"  (可怜的人,永远不会知道有人骂他了)


  • 原理
    这个插件崩玩家客户端时不会给服务器带来任何副作用。其原理是:向玩家发送30个数据包。数据包的类型是PacketPlayOutExplosion——也就是,给玩家发送一个指定位置的爆炸数据包。这个数据包的参数如下。
    • 爆炸的位置:玩家所在位置
    • 爆炸的强度:Float.MAX_VALUE。这个值是Java中float类型所能表示的最大值——相当于3.4028234663852886 E+38(科学计数法,转换为普通数字为340282346638528860000000000000000000000,转换为大写为【高能,请做一个深呼吸】 ——三百四十涧两千八百二十三沟四千六百六十三穰八千五百二十八秭八千六百垓——不要问我"涧,沟,穰,秭,垓"都是些什么玩意,由于我实在不知道"千兆"后面的计数单位是什么了,于是我专门查了【百度百科】计数单位
      注:一个普通TNT的爆炸强度为4,苦力怕的强度为3,高压苦力怕的强度为5。请不要问我那个数字会带来什么结果,嘿嘿嘿嘿,我实在太黑了

      这个爆炸的发生会把玩家炸飞。飞多远呢?
    • 击飞向量:X=Float.MAX_VALUE,Y=Float.MAX_VALUE,Z=Float.MAX_VALUE。(不要逼我重复Float.MAX_VALUE是多少)
    嘿嘿嘿嘿,大概只有天河二号才"可能"不炸
    但是关键是,MC处理爆炸效果不会烧内存只会烧CPU,所以客户端永远也不会崩。嘿嘿嘿嘿
    还有一点很重要:这个数据包在服务端看来只是一个普普通通的数据包,而在客户端那边就必须运算数据包带来的结果。因此服务端唯一做的几件事就是发了几个数据包而已,不会对服务端造成任何影响。



注意:此插件虽然会让被ban的玩家进入服务器,但是为了防止他破坏,会把他op下了,再把他游戏模式改为冒险模式。因此您ban了自己进行测试时务必注意这一点。

  • Q & A
    • Q1: 这个插件会把被ban的玩家放进服务器,那要是他客户端没炸,不就可以继续做坏事了吗?
      A1: 如果被ban玩家20秒后还在线,会将他以"java.net.SocketTimeoutException: Time out"理由踢出。也就是常见的“连接超时”错误。并且,插件会拦截服务端发给玩家的地图数据和实体数据,所以他的客户端无法显示周围的环境,这也就意味着他会被卡住无法移动。
    • Q2: 那要是熊孩子能使用天河二号呢?
      A2: 放弃吧,金钱的力量是无穷的!






开发不易。如果您觉得这插件帮到了您惩罚熊孩子,请不要吝惜一个评分哦!
给予人气不会消耗自己的积分