我的世界js允许原理?
允许,就是允许玩家使用命令,比如刷物品,飞等。 禁止,就是禁止玩家使用命令,比如刷物品,踢人等。 限制,一般就是限制玩家的行为,比如只能飞行256格,或者跳得更高之类的。 要了解如何实现这些指令,就得了解一下我的世界中两个重要的东西:一个是我创造的命令,一个是Java中的命令执行器。 我创造的命令分为两种,一种是数据标记型命令,一种是数据流控制型命令。 Java的命令执行器中有一个类叫做CommandInstance,这个类里面管理着我所实现的命令,当输入/emc(我创造的命令的首字母)时,Minecraft就会进入命令执行阶段,这时会查找CommandInstance类中是否存在此命令,如果不存在则返回错误信息,如果存在则根据命令的不同而有所不同。 如果是一个数据标记型的命令,那么就会将客户端的发给服务器的数值用字符串的形式保存在服务器的数据库中;如果是数据流控型的命令,那么就会在接收到客户端的命令后,根据命令的内容发送特定的消息给到各个服务器。
这样,只要能够获取到我的世界的数据库或者干扰命令的执行过程,就能够达到修改世界、刷物品、飞等等的目的了。 而要实现这些,就需要对这二者中的一个或多个进行攻击。 如果要攻击数据库,则需要知道数据库的存储路径以及访问口令。然后尝试将不正确的数据写入数据库,这样就可以达到刷物品的目的了。
当然,也可以尝试去攻破命令执行器,让命令执行器按照黑客的思维去思考并做出反应,这样也能达到刷物品的目的。 至于其他的功能,比如说飞,就可以借助数据流的特性,先输入/elevate (玩家id) 100,再输入/gravitate (玩家id) -100,来实现短暂的飞天效果。