跳到主要内容

玩家写信

玩家之间可以互相寄信,附带物品与金币。需要权限 starmail.write(默认所有人都有),而且 config.yml 的 player-mail.enabled 为 true(默认)。

打开写信界面的方式:

方式说明
/sm write打开空白的写信界面
/sm write 玩家名收件人先填好
邮箱里的「写信」按钮同 /sm write
单封邮件里的「回信」按钮收件人填寄件人,标题加上「回复:」

还在寄信冷却中时打不开写信界面,会提示「寄信太快了,N 秒后再试」。

写信界面​

默认布局(menus/compose.yml,可以修改,见 菜单):

格位按钮操作
4信件预览(纸)只显示:收件人、标题、正文、附件数量与金币
10收件人(头颅)点击后在聊天栏输入玩家名字
12标题(命名牌)点击后在聊天栏输入标题
14正文(书与羽毛笔)左键:添加一行(用 | 一次写多行);右键:删除最后一行;Shift + 点击:清空
16附带金币(金粒)左键:输入数量;右键:清除。见下方「附带金币」
19 – 43 中间三行附件格把要寄的物品放进来
45取消写信(屏障)关闭界面,附件退回背包
49怎么写信(知识之书)只显示说明
53寄出(潜影盒)寄出;还没填收件人时是灰色的

在聊天栏输入​

点收件人、标题、正文、金币按钮时,界面会先关闭,聊天栏提示要输入什么。输入后界面自动重新打开,已经填的内容和放进去的附件都还在。

  • 输入的内容只交给星月邮箱,不会显示给其他玩家(会拦下聊天插件转发的消息)。
  • 输入 取消(或 cancel)放弃这次输入,直接回到写信界面;90 秒没输入也会自动取消。
  • 收件人只取第一个词,名字不分大小写。

长度与格式​

项目默认限制设置
标题最多 32 个字,超过的部分截掉player-mail.max-title-length
正文行数最多 10 行,满了再添加会提示「正文最多 10 行」player-mail.max-content-lines
每行长度最多 64 个字,超过的部分截掉player-mail.max-line-length

玩家输入的标题与正文会去掉 & 颜色代码,MiniMessage 标签原样显示为文字,防止伪装成系统邮件。 有 starmail.admin.compose 权限的人不受这个限制,可以使用颜色。 没有填标题时,寄出的信标题为「(无标题)」。

收件人​

收件人可以是:

  • 现在在线的玩家;
  • 在任何一个连同一数据库的子服上线过的玩家(星月邮箱会记录每个上线过的玩家);
  • 本服务器以前来过的玩家。

找不到时提示「找不到玩家 xxx(对方需要在本服或连同一数据库的子服上线过)」。 不能寄信给自己(有 starmail.admin.compose 权限的管理员除外)。

放入附件​

  • 直接把物品点进中间的格子,或拖曳、用数字键交换,都可以。
  • 在自己的背包里 Shift + 点击 物品,会自动放进附件格(相同的物品会先叠在一起)。
  • 每个占用的格子算「一组」附件。可放的格数等于 mail.max-items(默认 21,也就是中间三行全部);超过的格子会显示灰色玻璃板「无法放置附件」。
  • 服务器把 player-mail.allow-items 设为 false 时,所有附件格都锁住,只能寄文字信。

物品黑名单​

以下物品放不进附件格,提示「这个物品不能邮寄(原因)」:

规则默认
材质 player-mail.blacklist.materials基岩、屏障、命令方块(三种)、结构方块、拼图方块、调试棒
名称或说明含有的文字 player-mail.blacklist.name-or-lore-contains绑定、綁定、Soulbound、不可交易(不分大小写,自动忽略颜色)

有 starmail.bypass.blacklist 权限(默认 OP)的人不受限制。寄出前还会再检查一次所有附件。

附带金币​

可以把自己的金币随信寄给对方,对方领取附件时入账。需要同时满足:

  • 服务器装了 Vault 与经济插件;
  • player-mail.allow-money 为 true(默认);
  • 玩家有 starmail.write.money 权限(默认所有人都有)。

不满足时金币按钮不显示。附带的金币在寄出时和邮费一起从余额扣除。

邮费​

player-mail:
cost:
money: 0 # 每封固定收取的金币
points: 0 # 每封固定收取的点券(需要 PlayerPoints)
money-per-item: 0 # 每一组附件额外收取的金币
  • 邮费金币 = money + money-per-item × 附件组数。
  • 寄出按钮会显示「邮费 X 金币 / Y 点券」和「合计扣除 Z 金币」(邮费 + 附带金币)。
  • 金币或点券不够时不会寄出,提示「金币不足,需要 N」。
  • 有 starmail.bypass.cost 权限(默认 OP)的人免邮费。

寄出时的检查​

点「寄出」后依序检查,任何一项不通过都不会扣钱。前三项在界面里直接提示,界面不关闭; 后面几项不通过时,附件退回背包,写信界面重新打开(已填的文字保留):

检查提示不受限制的权限
收件人已填写请先填写收件人—
不是空信(标题、正文、附件、金币至少一项)这是一封空信—
附件不在黑名单这个物品不能邮寄starmail.bypass.blacklist
收件人存在、不是自己找不到玩家 / 不能寄信给自己—
今天寄出的数量没超过 daily-limit(默认 30,0 = 不限)今天已经寄了 30 封信,明天再来吧starmail.bypass.limit
对方邮箱里未领取的玩家来信少于 max-unclaimed-from-players(默认 50,0 = 不限)xxx 的邮箱里堆了太多未领取的信,暂时无法寄送starmail.bypass.limit
付得起邮费与附带金币金币不足 / 点券不足starmail.bypass.cost(只免邮费)

全部通过后寄出,提示「已寄给 xxx!邮费 N」。对方在线会马上收到提示(在别的子服几秒内收到)。

  • 每日次数按服务器所在时区的 0 点重新计算;使用 MySQL 跨服时,所有子服合计。
  • 冷却(cooldown-seconds,默认 10 秒)从寄出成功开始计算,冷却中打不开写信界面;冷却记录在每个子服各自计算。有 starmail.bypass.cooldown 的人不受限制。
  • 对方邮箱上限只计算玩家寄来、还没领取、没过期的信,系统与管理员的邮件不受影响。

关闭界面会怎样​

情况附件
关闭界面 / 点「取消写信」退回背包,提示「已取消写信,N 组附件已退回背包」
输入时下线退回背包
服务器执行 /sm reload 或关服界面关闭,附件退回背包
退回时背包放不下默认另寄一封「背包已满 · 物品退回」的信给自己(mail.overflow: drop 时掉在脚下)

过期与退信​

  • 玩家互寄的信默认 7 天后过期(mail.player-expire-days,0 = 永不过期)。
  • 过期时对方还没领取附件:附件(物品与附带的金币)会以一封「退信:原标题」的信退回给寄件人,正文写明是寄给谁的信过期了(mail.return-expired-to-sender,默认开启)。
  • 退信本身按系统邮件的期限计算(mail.system-expire-days,默认 30 天)。
  • 邮费不会退还。
  • 过期检查每 5 分钟进行一次,所以退信可能比过期时间晚几分钟才出现;但收件人那边一到期就看不到这封信了。