MrXiaoM / MineBBSReward

MineBBS 顶帖奖励插件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MineBBSReward

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% - 上次有玩家成功顶帖领取奖励的时间

About

MineBBS 顶帖奖励插件

License:GNU Affero General Public License v3.0


Languages

Language:Java 100.0%