常见问题
指令
输入 /sm 打开的不是邮箱?/ 和别的插件指令冲突?
星月邮箱的主指令是 /starmail,/sm 是别名。服务器上如果有别的插件也注册了 /sm,原本会由服务器决定交给谁。
星月邮箱为此提供了 config.yml 的 command-aliases(默认 [sm]):玩家输入列表里的指令时,一律交给星月邮箱。
- 想把
/sm让给别的插件:改成command-aliases: [],玩家改用/starmail,或加一个新的别名例如[mail]。 - 控制台不受这个设定影响,冲突时请在控制台写
starmail。
见 config.yml。
装了 CMI,/sm 会冲突吗?
CMI 没有使用 /sm,一般不会冲突。会和 CMI 撞名的是同系列 StarCrate 星月造物的 /sc(CMI 也有 /sc 别名),星月造物用它自己的 command-aliases 把 /sc 导回自己,做法和这里相同。
万一你的服务器上真的有别的插件占用了 /sm,照上一题的 command-aliases 处理即可:列表里的指令会在其他插件之前被导向 /starmail。
玩家没有权限打开邮箱?
starmail.use 默认所有人都有。如果被权限插件拿掉了,加回来:lp group default permission set starmail.use true。全部节点见 权限。
收信与领取
在 A 服寄的信,玩家在 B 服收不到 ?
依序检查:
- 两边的
/sm version是不是都显示 MySQL?显示 SQLite 表示那个子服还在用自己的data.db。 - 两边的
database设定(地址、数据库名称)与table-prefix是不是完全一样?前缀不同就是不同的表格,互相看不到。 - 改了数据库设定之后有没有重启?
/sm reload不会重新连接数据库。 - 控制台有没有「跨服已开启」这一行?没有的话检查
sync.enabled(auto或true)。 - 用的是不是
@online?@online只发给执行指令那个子服的在线玩家,想全部子服都收到请用@all。
跨服的新邮件提示有 sync.interval-seconds(默认 3 秒)的延迟,属于正常。详见 跨服设置。
领取时说「背包空间不足」,可是我有空格?
插件只算背包的 36 个主格子(不含装备栏与副手),而且会把这封信的所有附件一起算:要全部放得下才会领取,不会只领一半。 提示里的「需要 N 个空格」是这 封信的物品总共要占几格。整理背包后再领即可。
一键领取时,放得下的邮件照常领取,放不下的整封留在邮箱里。
附件里的东西不见了?
先用 /sm log <玩家> 查记录,看那封信是「领取」「删除」还是「过期」:
| 记录 | 可能的原因 | 怎么办 |
|---|---|---|
| 领取 | 已经领到背包了。如果当时背包刚好被塞满,放不下的物品会另寄一封「背包已满 · 物品退回」的信,看看邮箱 | — |
| 过期 | 超过期限没领。玩家寄的信会退回寄件人;系统 / 管理员的信过期后附件就失效了 | 在 mail.keep-deleted-days(默认 14 天)内可以 /sm restore <编号> |
| 删除 / 管理员删除 | 被删掉了 | 同上,可以恢复 |
| 没有「领取」记录、信还在 | 可能是附件读不出来(见下一题)或领取的子服没有经济插件 | 看领取时的提示 |
恢复前请确认对方真的没拿到东西,恢复后附件可以再领一次。
提示「附件数据无法读取」?
附件物品是由更新版本的服务器寄出的,这个子服的 Minecraft 版本比较旧,读不懂。附件不会发放、邮件也不会标为已领取, 到相同或更新版本的子服就能领。 共用数据库的子服请使用相同的 Minecraft 版本,见 跨服设置。
金币 / 点券领不了?
金币与点券是在领取的那个子服存入的:那个子服要装 Vault + 经济插件(金币)或 PlayerPoints(点券)。没有的话这封信会被跳过并提示原因,邮件还在,装好之后再领即可。
收到新邮件没有提示?
- 看
config.yml的notify.new-mail:chat是不是true,title/subtitle是不是都被清空了。 - 上线提示:
notify.join-delay-seconds不能是0;join-only-when-unread: true时没有未读、没有待领取就不会提示。 - 跨服寄来的信要等下一次轮询(默认 3 秒)。
messages.yml里对应的new-mail、join被写成''也不会显示。
发信
怎么给所有玩家发礼物,包括以后才 进服的新玩家?
做一个模板,期限设成永不过期,发一次全服邮件就好:
# templates.yml
gift:
title: '开服礼包'
items:
- {material: DIAMOND, amount: 5}
expire-days: 0
/sm send @all gift
现在的玩家马上收到(离线的下次上线收到),以后第一次进服的每个新玩家也会收到一份,每人只有一份。
不想再发时 /sm broadcasts 找编号,/sm cancel <编号>。只想发给现有玩家(例如停机补偿)用 @all-existing。
全服邮件的期限从发出那一刻算起,到期后就不再发给新玩家。不写 expire-days 时默认 30 天。
怎么接投票插件 / 活动插件?
把奖励做成模板,在那个插件的奖励指令里写:
sm send %player% vote
玩家变量的写法以那个插件为准(%player%、{player} 等)。玩家不在线也没关系,奖励会在邮箱里等他。见 邮件模板。
管理员写信放进去的物品会被复制吗?
不会。/sm admin 里放进附件格的物品会真的寄出,离开你的背包。要发很多份:用群发对象(全部 在线 / 全服),或存成模板再用 /sm send。
只有 /sm item 是寄出手上物品的副本。
模板界面关掉后,物品会退回吗?
你自己从背包放进去的物品会退回背包;用 /sm template edit 载入的模板原有物品是副本,不会退回(不然每编辑一次就会多出一份)。见 邮件模板。
/sm send 提示「模板的物品数据无法读取」?
这个模板的 items-data 读不出来,通常是在更新版本的服务器上保存的(共用数据库的子服版本不同时最常见),或文件被手动改坏。
插件会停止发送,不会寄出缺少物品的信。请在版本最旧的子服用 /sm template create <名字> 重新做一次并保存。