# 输入捕获
# 介绍
有的时候需要玩家输入一些功能 比如想点击按钮后输入某个值
然后根据这个值进行操作
TabooLib基于Kotlin的函数式编程风格写了几个工具供你使用
# 基于告示牌捕获
player.inputSign(arrayOf("", "", "请在第一行输入内容")) { line ->
// line 是输入完成后的内容
val name = line.getOrNull(0)
println("输入的内容是 $name")
}
# 基于书本的内容捕获
/**
* 向玩家发送一本书
* 并捕获该书本的编辑动作
*
* @param display 展示名称
* @param disposable 编辑后销毁
* @param content 原始内容
* @param catcher 编辑动作
*/
fun Player.inputBook(display: String, disposable: Boolean = true, content: List<String> = emptyList(), catcher: (List<String>) -> Unit)
player.inputBook("书本名称", true, listOf("原始内容")) { book ->
//book 是编辑后的书本
println("输出第一页内容")
println(book[0])
}
# 基于聊天框捕获
player.nextChat {
// it 是玩家输入的内容
println("玩家输入了 $it")
}
player.nextChatInTick(20 * 5, {
// it 是玩家输入的内容
println("玩家输入了 $it")
}, {
// 超时回调
println("超时了")
}, {
// 取消回调
println("取消了")
})
# 拓展 - 铁砧捕获
利用了UI模块 具体实现还请自行编写
player.openMenu<Anvil>("输入内容"){
onRename { player, s, inventory ->
// s 是玩家输入的内容
println("玩家输入了 $s")
}
}
入门
12分钟