MineBBS 顶帖奖励插件。
没有网站管理权限的我们并不能获取到谁为帖子使用过「手动顶帖卡」这一道具,所以,这个插件并不能解决顶帖奖励被冒领的问题。
但只要玩家遵守规则,插件机制设计将尽可能地减少奖励被冒领的可能。
本插件为「无法回复」的「服务器帖子」设计,帖子被顶帖之后,帖子左上角「查看数」左边的更新时间会变动。
插件将以时间戳记录这个时间,每次玩家申请领取奖励时,通过爬虫获取这个时间,与保留的时间进行对比,判断是否给予玩家奖励。
插件每次被加载时,爬虫将会访问目标帖子,获取上文提到的时间并保存。
我们将这个时间,定义为「上次顶帖时间」。数次实践表明,至少在「服务器帖子」中,这个时间跟顶帖时间是相关的。
为了避免混淆,这里定义一些数值
【A】
是爬虫在帖子获取的「上次顶帖时间」【B】
是插件储存在本地的「上次顶帖时间」[C]
是顶帖后限定领取时间,默认1分钟[D]
是执行命令后冷却时间[E]
是两次成功顶帖的冷却时间
当用户顶帖后,应在[C]
时间内执行命令 /mbr reward
领取奖励,
否则,无论后面判定如何,都将判定为顶帖失败。
执行该命令之后,玩家将进入[D]
冷却。命令冷却时间不会保存,服务器重启后将重置。
随后,爬虫将访问目标帖子,获取【A】
,
如果【A】
获取失败,将提示玩家,并重置玩家的冷却时间[C]
。
否则,如果【A】
与【B】
相差的时间,
- 超过了
[E]
,则判定顶帖成功,给予玩家奖励。记录顶帖成功时间。 - 未超过冷却时间,则判定顶帖失败。
判定之后,将把【A】
的值储存到【B】
。
玩家需要在顶帖后1分钟
内执行以下命令领取奖励,不然就领不了。
/mbr reward
安装插件后,详见配置文件进行配置。
主命令为 /minebbsreward
,简写 /mbreward
或 /mbr
/mbr reward - 请求领取顶帖奖励
/mbr fetch - 调用爬虫获取上次顶帖时间 (测试命令)
/mbr reload - 重载配置文件
权限为 minebbsreward.command.<命令名>
,如 minebbsreward.command.reward
安装 PlaceholderAPI 后,可使用以下变量
%minebbsreward_cooldown_top% - 配置文件设置的顶帖冷却时间
%minebbsreward_cooldown_reward% - 配置文件设置的reward命令冷却时间
%minebbsreward_cooldown_top_remain% - 还有多长时间才允许再次使用手动顶帖卡进行顶帖
%minebbsreward_cooldown_reward_remain% - 还有多长时间才允许再次使用reward命令
%minebbsreward_last_time% - 本地保存的上次顶帖成功的时间,使用fetch命令可刷新该时间
%minebbsreward_last_success_time% - 上次有玩家成功顶帖领取奖励的时间