聊天方块 (Chat Box)
物品命令:/give @p advancedperipherals:chat_box 64

聊天方块能够读写聊天框中的消息,发送消息可以指定某名玩家或所有玩家;和以<玩家ID>开头的玩家不同,由Chat Box发送的消息在聊天框以[AP]开头显示("[""]"内的内容可以修改)。

事件

聊天事件

当玩家发送消息时触发。

发送以美元符号"$"开头的消息将会被隐藏,并且聊天方块收到的消息不会包含该前缀。当指令过多不希望刷屏时可以使用

local event, username, message, uuid, isHidden = os.pullEvent("chat")

print("The 'chat' event was fired with the username " .. username .. " and the message " .. message)
  1. username: string 发送该消息的玩家用户名。

  2. message: string 发送的消息内容。

  3. uuid: string 玩家的UUID。

  4. isHidden: boolean 消息是否被隐藏(通过$发送)。

如果聊天箱已经连接到电脑,可以直接监听 chat 事件,而不用先包装该外设(除非想发消息)。

函数

发送消息

sendMessage(message: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string

prefix 前缀,改变开头方括号内的文本,默认为[AP]。

brackets 改变前缀两边的符号,比如"[]", "()", "<>"。

bracketColor 改变括号的颜色,使用MOTD格式

range 发送消息的范围,如果为空,则使用配置文件内的最大距离(默认无限距离且跨维度)。

如果成功,返回true,否则返回nil和错误信息。

注:想发送彩色消息,见后文”格式化消息“。

示例:

local chatBox = peripheral.find("chatBox")

chatBox.sendMessage("Hello world!") -- 在聊天栏发送 "[AP] Hello world!" 
sleep(math.ceil(chatBox.getOperationCooldown("chatMessage") / 1000 / 20) * 20) -- 我们必须考虑到发送消息的间隔防止垃圾邮件
chatBox.sendMessage("I am dave", "Dave") -- 发送 "[Dave] I am dave"
sleep(math.ceil(chatBox.getOperationCooldown("chatMessage") / 1000 / 20) * 20)

-- 发送 "Welcome!" ,用青色”<>“包住  ”Box“
-- 发送给距聊天箱30方块之内的玩家
chatBox.sendMessage("Welcome!", "Box", "<>", "&b", 30)

给指定的人发消息

sendMessageToPlayer(message: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string

和sendMessage类似,但是可以用username指定发送对象(可为玩家用户名或UUID)。

示例:

local chatBox = peripheral.find("chatBox")

chatBox.sendMessageToPlayer("Hello there.", "Player123") -- 给Player123发送 "[AP] Hello there."

给指定的人发送toast

给指定的玩家发送toast(如图,位于右上角)。聊天方块-第1张图片!Image of the toast

示例:

local chatBox = peripheral.find("chatBox")

chatBox.sendToastToPlayer("I will chat box you", "Hello", "Dev", "&4&lBoxi", "()", "&c&l")

发送格式化消息

这个函数基本上与sendMessage()相同,只是它接受一个json文本组件作为第一个参数。

minecraft fandom wiki上找到更多关于文本组件格式如何工作的信息。你可以在minecraft.tools中生成json。

示例:(发送"Click here for the AP documentation!",“here”有超链接、下划线和颜色,AP为红色)

local chatBox = peripheral.find("chatBox")

local message = {
    {text = "Click "}, 
    {
        text = "here",
        underlined = true,
        color = "aqua",
        clickEvent = {
            action = "open_url",
            value = "https://advancedperipherals.madefor.cc/"
        }
    },
    {text = " for the AP "},
    {text = "documentation", color = "red"},
    {text = "!"}
}

local json = textutils.serialiseJSON(message)

chatBox.sendFormattedMessage(json)

给指定的人发送格式化消息

sendFormattedMessageToPlayer(json: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string

用法同上。

发送格式化toast

sendFormattedToastToPlayer(messageJson: string, titleJson: string, username: string[, prefix: string, brackets: string, bracketColor: string, range: number]) -> true | nil, string

与前文相同,但可以用json文本作为第一、二个参数。

示例:聊天方块-第2张图片!Image of the formatted toast

local chatBox = peripheral.find("chatBox")


local title = {
    { text = "Hello", color = "dark_purple"}
}

local message = {
    { text = "I will chat "},
    { text = "box ", color = "red"},
    { text = "you"}
}

local titleJson = textutils.serializeJSON(title)
local messageJson = textutils.serialiseJSON(message)

successful, error = chatBox.sendFormattedToastToPlayer(messageJson, titleJson, "Dev", "&4&lBoxi", "()", "&c&l")
聊天方块 (Chat Box)
聊天方块 (Chat Box)
资料分类:机器
最大叠加:64个 / 组
滑动合成表可以查看更多信息~
材料统计输入 >> 输出备注

[使用: 工作台]


标签: minecraft:logs * 7

Peripheral Casing * 1

金锭 * 1

Chat box * 1

活木
梦之木
丛林原木
深色橡木原木
云杉原木
活木
梦之木
丛林原木
深色橡木原木
云杉原木
活木
梦之木
丛林原木
深色橡木原木
云杉原木
活木
梦之木
丛林原木
深色橡木原木
云杉原木
Peripheral Casing
活木
梦之木
丛林原木
深色橡木原木
云杉原木
活木
梦之木
丛林原木
深色橡木原木
云杉原木
金锭
活木
梦之木
丛林原木
深色橡木原木
云杉原木
Chat box
*这里只会显示该物品合成方式,且最多显示10个,点击右边栏"查看合成/用途"可查看该物品作为材料的合成。

短评加载中..