Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 2.88 KB

章外篇之一-用指令设置玩家实体大小(简单版).md

File metadata and controls

57 lines (46 loc) · 2.88 KB

Nukkitlearn章外篇之---用指令设置玩家实体大小(简单版)

本章外篇教程由zsy制作,本教程非常的简单,目的是为萌新们打开一个很好的思路 如果你对本篇有任何合理地建议或者疑问,可以联系笔者QQ:910223023,笔者高三 可能回复不会及时,但看到后一定处理。

  1. 首先你需要按照章内的教程,创建一个项目,名称随意,我这里用的SetSize。配置好一系列的东西并创建好plugin.yml后,可以开始了。

  2. 这是我的plugin.yml中的内容

    name: SetSize
    main: xyz.zsy.SetSize.SetSize
    version: "1.0.0"
    api: ["1.0.0"]
    
    load: POSTWORLD
    
    author: zsy
    website: xyz.zsy

这里再次强调一个坑,main中的路径应是主类的所在的位置,精确到文件名,我这里xyz.zsy.SetSize.SetSize的意思是xyz\zsy\SetSize目录下的SetSize.java,读者应该根据自己的包和主类名字修改!否则Nukkit不会加载到插件的主类,插件是无法运行的,因为Nukkit无从下手。

3.之后在主类中添加内容,添加的内容如下

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if (command.getName().equals("ss")) {  //判断斜杠后的指令名字 /ss,用法/ss 玩家名字 大小
            if (sender instanceof Player) {  //判断发令者是否是玩家
                if (args.length>0) {  //判断指令/ss 后是否有参数
                    Player p = this.getServer().getPlayer(args[0]); //获取/ss 后的第一个参数,应该是String类
                    if (args.length>1) { //同上 判断是否有第二个参数 也就是是否有 大小 这个参数,应该是个数字
                        Float size = Float.parseFloat(args[1]); //获取大小,并将它转化为Float型,因为Nukkit中设置实体大小的方法,参数要求是Float
                        p.setScale(size); //调用setScale()方法来设置玩家大小
                        return true;
                    }
                }
            }
        }
        return false;
    }

4.不要忘了在plugin.yml加入权限组,不然这个指令将会是非法的。

commands:
  ss:
    description: Set A Player's Size.
    usage: "/ss [name] [size]"
    permission: SetSize.ss
permissions:
  SetSize.ss:
    default: op

5.检查没有丢步骤后,就可以编译并且测试了! 当然,设置的玩家大小,当玩家重新进入服务器或者死亡重生后将会变为正常大小,因为本篇设置的只是一个临时变量,实体消失后它也会一起被清理,如果想要永久的保存,则可以利用config储存下来大小,然后在进服和复活事件中进行设置,感兴趣的可以进一步咨询笔者,那么本教程就到此结束了!祝你在胜利之地越战越勇!