Anschluss_zeit
本帖最后由 MinecraftE_D 于 2021-9-19 08:18 编辑

在教程开始之前,我先和大家道个歉
我说的连续更新没能实现
今天开始应该能恢复正常更新,抱歉,我鸽了几个月了

还记得我们上次写了一个/hello指令吗?
/hello后面没有跟任何东西,意思就是它没有参数
可是如果我们需要参数怎么办呢
就像Essentials的一个指令/mute <玩家> [状态] 一样,我们怎么得到后两个参数呢

上次在写onCommand方法时,注意到那个args数组了吗?
那个就是储存参数的数组!

我们要获取玩家发送了多少个参数很简单,数组的长度就是参数的个数
args.length便代表了这个值
学过Python,C++等语言的人应该知道数组这个东西(可能也有人管他叫列表)
访问数组需要一个值,这便是索引(index)
数组的索引从0开始,Python支持负下标(负下标是什么,可以自行百度)
但是,Java等其他的语言大多不支持负下标,一旦超出下标最大值(数组.length-1)
就会出现IndexOutOfRange下标越界

现在,我们准备让这个/hello有1个参数
首先,掏出上次的代码
  1. @Override
  2.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
  3.         if("hello".equals(command.getName())){
  4.             sender.sendMessage("你好呀qwq");
  5.         }
  6.         return false;
  7.     }
复制代码
在第一个if语句里,sendMessage前,加一个if语句
  1. if(args.length!=1){
  2.     return false;
  3. }
复制代码
这个if主要是为了判断参数个数是不是一个,写指令的时候一定要记得判断参数!
然后将
  1. sender.sendMessage("你好呀qwq");
复制代码
改为
  1. sender.sendMessage(args[0]);
复制代码

这样子,我们的/hello就有了参数,玩家输入参数后,会向玩家发送自己填入的参数



好了,今天的教程到此结束,谢谢你的阅读

下帖预告:插件开发教程[6] - 铁砧彩字命名支持

更新,补充版编写完成!  
插件开发教程[5-2] - 补充说明





白色的小熊
你这教程有点敷衍吧,看完之后感觉根本没学到啥,而且你也不更新了,还不如去看别人写的教程

王小睿
感觉并没有多大的收获

水逆行星
整合一下会比较好

KevinSalfman
王小睿 发表于 2021-8-17 00:21
感觉并没有多大的收获

我也是
。。。。。。。。。。。。。。。。

宇迪小哥哥哥
这不就是你好世界吗??兄弟不带这样误人子弟吧

第一页 上一页 下一页 最后一页