本帖最后由 MagicLocyDragon 于 2018-10-16 20:28 编辑

欢迎加入技术讨论群

群号:546818810

有问题尽管在这里面提出即可,我看到了就会回复的,加好友一般不会理。
插件仅仅是刚刚开发两个星期,内容不是很丰富,请大家点击收藏关注~
顺便一提,这个介绍帖子是赶着发出来的,后面会稍微改一改的。
音乐:
http://music.163.com/style/swf/widget.swf?sid=535032&type=2&auto=1&width=320&height=66

本插件会一直更新下去的哦

来自SpicyChicken小组
教程最在下面!!!

演示图片

1.自定义简易的Title倒数3秒钟后传送到xxx边上并扣100块钱,注意,这里没有用essentials的tpa,而是自己做了一个传送的指令


2.一个给苹果的指令(你可以自己加个权限或者花钱啥的)

这个插件有什么用?

你可以制作一个只属于你自己的指令!
类似于 输入一个指令 比如
/指令 ******

然后,服务器广播 ******这个信息
并且,指令可以做中文指令。

也可以制作一个类似于

/苹果 64
然后花费了100块钱买了64个苹果

当然你也可以
/主城
之后,xxx秒传送到主城,并带有title提示,这里建议你去看一下视频效果更佳明显!



插件视频

未上传完成,耐心等等吧,其实效果可想而知都是很好的



权限

无(创建指令的权限只有OP拥有,不过你自己做出来的指令是所有人都能使用的,但是你也可以给自己做出来的指令加一个权限)



指令


使用/lcmd create [指令名] ——创建一个空的指令
使用/lcmd clean [指令名] ——清理一个指令内所有内容.
使用/lcmd removeItem [指令名] [内容ID] ——清理一个指令内某条内容.
使用/lcmd itemList 查看所有内容
使用/lcmd usage [指令名] [发送的信息] ——执行指令时参数不够时发送的信息
使用/lcmd sendmsg [指令名] [发送的信息] ——执行指令时发送信息.
使用/lcmd ccommand [指令名] [发送的信息] ——执行指令时执行控制台指令
使用/lcmd pcommand [指令名] [发送的信息] ——执行指令时执行为玩家指令
使用/lcmd haspermission [指令名] [权限] ——执行指令时所需的权限
使用/lcmd hasItem [指令名] [物品id] ——执行指令时所需的物品
使用/lcmd jobs [指令名] ——查看该指令所有需要完成的工作.
使用/lcmd delay [指令名] [序号] [秒数] ——在该指令的指定序号的工作后面停顿秒数.
使用/lcmd actionbar [指令名] [信息] ——发送小字ActionBar.
使用/lcmd cost [指令名] [金钱] ——设置指令扣钱.
使用/lcmd title [指令名] [大标题] [小标题] [淡入时间] [停留时间] [淡出时间] ——发送全屏Title.
使用/lcmd isInt [指令名] [第几个参数] ——判断指令中第几个参数必须是个数字.使用/lcmd isPlayer [指令名] [第几个参数] ——判断指令中第几个参数必须是个玩家.各种指令的具体用法请在游戏内查看,比如说你想查看title指令到底详细是怎么用的,可以在游戏里输入/lcmd title 然后就会有提示啦



Args变量

args变量是个什么呢,这是一个参数变量,可以用在一定的指令当中,比如发送title啊什么的,格式:

%args:第几个参数%
举个例子,玩家输入了这些指令:
/yu 哈哈 汪汪汪
这里%args:1%就是哈哈
%args:2%就是汪汪汪
如果玩家输入指令时参数不足会怎样?比如说你用到了三个参数,而玩家一个参数也没有输入。这时候输入指令就会被拦截,并发送一条使用提示信息。这个使用提示信息可以使用/lcmd usage [指令名] [信息] 来修改,信息中的空格请用 "_" 替代

args变量的实际应用例子,输入了以下指令:

/lcmd create args
/lcmd usage args &c&l请使用/args_[参数1]_[参数2]
/lcmd ccommand args say_%args:1%
/lcmd delay args 1 3
/lcmd ccommand args say_%args:2%

这段指令是什么意思呢?
就是当你输入指令
/args 信息1 信息2
时,会先广播 信息1,等待3秒,广播信息2(信息1和信息2是参数,可以替换成任何信息,比如你用
/args ****** 嚯嚯嚯,都是没有问题的)



配置文件

NoPermission: '&e你没有使用这个指令的权限.'
NotDone: '&e指令未完成.'
NoItem: '&e你没有足够的物品来使用这个指令.'
NoSuchMoney: '&e你的金币不足.'
IsNotInt: '&e&l请输入一个正确的数字.'
IsNotPlayer: '&e&l请输入一个正确的玩家.'
#都不说了,都识字,应该看得懂



下载地址:

帖内下载:
LocyCommand-1.1-SNAPSHOT.jar (45.36 KB, 下载次数: 596)
备用地址:
下载
前方不要脸!!!——求赞助几毛钱卖包辣条~
[afd]LocyDragon[/afd]
更新日志:
1.0.0——插件出炉
1.1.0——增加了isInt和isPlayer两个指令,完善了removeItem指令



开发者有关

本插件所有通过指令创造的指令都是真实注册在服务器内的
你可以使用 Bukkit.getPluginCommand() 这个方法来获取到

如何自己创建一个指令?
使用Centre.newCommand(String 指令名称); 指令名称不包含空格
此方法返回一个Cmd对象
如果指令已经被注册了将返回null
如何给指令增加一个工作?
首先new一个自定义Flag对象:

Flag flag = new Flag("Test_Flag", new String[]{"Test"});
Cmd.addFlag(flag);
然后注册你的Flag名字:

Obj.addOne("Test_Flag");其中Test_Flag是此Flag的名字,后面的数组是你对这个Flag的描述
然后监听OptionCall 事件,该事件会被应该调用的时候被调用,我们举的例子就是此Flag作用是发送Flag里的描述的第一个元素的信息,即"Test"
@EventHandler
public void onCall(OptionCall call) {
  if (call.getObj().equals(“Test_Flag”)) {
//判断flag类型
  call.getPlayer().sendMessage(call.getArgs()[0]); //给玩家发送Flag的描述中的第一个元素,即"Test"
  }
}

OptionCall:
call.getObj() ——获取Flag的类型
call.getArgs() ——获取Flag的描述
call.getCommandArgs() ——获取指令的参数

开源地址:
https://github.com/PluginsCDTribe/LocyCommand
请遵守GPL3协议




教程

1.1创建你的第一个指令
该部分非常简单,首先安装本插件。把插件放进plugins文件夹中即可。
然后开始创建指令:
使用:
/lcmd create 我的第一个指令
于是,指令就创建好了。
1.1.1执行指令:
输入指令:
/
我的第一个指令
即可执行你刚才创建的指令
执行后发现什么也没有发生,因为这个指令里面没有任何的任务.接下来,我们就来添加任务.
1.2给你的指令添加第一个任务.
各位刚才是否已经创建了你的第一个指令了呢,接下来我们就给你的指令添加一个任务。
思路:
输入指令
/我的第一个指令 后给玩家发送信息: 欢迎来到服务器
操作:
输入指令: /lcmd sendmsg 我的第一个指令 &c&l欢迎来到服务器
这样就好了,很简单,是不是。
然后执行你创建的指令:
/我的第一个指令
发现是不是有一条信息发送过来了呢.
1.3任务思想
任务是什么呢?就是比如说 执行指令给玩家发送一个信息 这个就是一个任务
也或者 执行指令后给玩家一个东西 这也是一个任务
一个指令可以有多个任务
如何查看你的任务呢
输入指令/lcmd jobs [指令名字]
这里是/lcmd jobs 我的第一个指令
这样可以查看你的所有任务.
1.4指令的判断
什么叫做指令的判断呢?就是比如说 需要xxx的权限,才能执行这个指令,这就是一个判断。如果没有权限,就不能执行指令了
实例:
输入指令/lcmd haspermission 我的第一个指令 test
这样子,只有有权限 "LocyCommand.test" 的人才能使用这个指令了
默认是只有op拥有的~
1.5延迟
思路:
输入指令 /指令2 后给玩家发送信息:
欢迎来到服务器 1秒后,再发送一次 欢迎来到服务器 再过一秒,再发送 欢迎来到服务器
首先,我们得重新创建一个指令.

/lcmd create 指令2
然后,给玩家发送信息的语句:

/lcmd sendmsg 指令2 &c&l欢迎来到服务器
使用/lcmd jobs 指令2 ——查看指令2中所有的任务,发现发送红色的"欢迎来到服务器"的任务序号是1,我们要在这个任务需要后面执行一个一秒的延迟任务。
使用/lcmd delay [指令名] [序号] [秒数]
这里就是 /lcmd delay 指令2 1 1
然后再发送蓝色的"欢迎来到服务器"
/lcmd sendmsg 指令2 &b&l欢迎来到服务器

使用/lcmd jobs 指令2 ——查看指令2中所有的任务,发现发送蓝色的"欢迎来到服务器"的任务序号是3,我们要在这个任务需要后面执行一个一秒的延迟任务。
这里就是 /lcmd delay 指令2 3 1
然后再发送绿色的"欢迎来到服务器"
/lcmd sendmsg 指令2 &a&l欢迎来到服务器
大功告成了!输入 /指令2 试试吧
完整指令:

/lcmd create 指令2
/lcmd sendmsg 指令2 &c&l欢迎来到服务器
/lcmd jobs 指令2
/lcmd delay 指令2 1 1
/lcmd sendmsg 指令2 &b&l欢迎来到服务器
/lcmd jobs 指令2
/lcmd delay 指令2 3 1
/lcmd sendmsg 指令2 &a&l欢迎来到服务器

1.6参数
部分详见上面的模块 "Args变量" 我们这里只给出一个例子
思路: 输入 /指令3 [信息]
——给玩家发送 [信息]

完整指令:
/lcmd create 指令3
/lcmd sendmsg 指令3 %args:1%
/lcmd usage 指令3 &c&l请使用_/指令3_[信息]_——来发送一条信息

1.7最终实例!
思路:输入 /传送到 [玩家] 后,3秒钟后传送到玩家的身边。每秒都有一个提示。需要权限:
"LocyCommand.chuansong"

完整指令:
/lcmd create 传送到

/lcmd haspermission 传送到 chuansong
/lcmd isPlayer 传送到 1
/lcmd sendmsg 传送到 &c&l3秒后传送到%args:1%
/lcmd jobs 传送到
/lcmd delay 传送到 3 1
/lcmd sendmsg 传送到 &b&l2秒后传送到%args:1%
/lcmd jobs 传送到
/lcmd delay 传送到 5 1
/lcmd sendmsg 传送到 &a&l1秒后传送到%args:1%
/lcmd jobs 传送到
/lcmd delay 传送到 7 1
/lcmd ccommand 传送到 tp_%player%_%args:1%
/lcmd sendmsg 传送到 &a&l已经传送到%args:1%边上了!
/lcmd usage 传送到 &c&l请使用_/传送到_[对方]_——传送到别人的旁边


就是这些指令了,输入完之后就可以使用 /传送到 这个指令了。
对于isPlayer这个指令大家可能不太理解
这是判断第一个参数,即%args:1%这个参数有没有在线,如果没有在线就不给传送。这也是一个指令判断
[groupid=1533]SpicyChicken[/groupid]