• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
SweetAfdian —— 基于普通发电和电铺的 爱发电充值/购买系统 [1.8-1.21]

原创 开源 经济 SweetAfdian —— 基于普通发电和电铺的 爱发电充值/购买系统 [1.8-1.21] 1.0.2

版权类型
原创
插件中文名称
Sweet爱发电
插件英文名称
SweetAfdian
原帖地址
https://github.com/MrXiaoM/SweetAfdian
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
语言支持
中文(简体)
前置组件
PlaceholderAPI(可选):https://www.minebbs.com/resources/8229
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
  10. 1.12
  11. 1.11
  12. 1.10
  13. 1.9
  14. 1.8
在 MineBBS 花费金粒下载是对作者的支持
如果您因为各种原因不想花费金粒,可前往 MCIO Plugins 下载,本插件优先在 Github 更新。
-- Sweet系列插件作品 --

SweetAfdian

基于赞助和电铺的爱发电充值/购买系统。

56ad27e7-1ac1-4f91-84b9-c0ade0b7a33e.png

测试时截图(WebHook),其中的提示信息、日志显示顺序与正式版不同。
图中的 IP 地址是 WebHook 消息来源 IP,即爱发电的服务器 IP,可以依此添加防火墙白名单。


676f5c96d0e0a243d4ebd664.png

正式版(1.0.2)的截图(轮询API)

在使用本项目的任何部分(包括但不限于源代码、二进制文件等等)时,应当遵守爱发电使用条款
正如生产菜刀不是为了伤害他人一样,你(使用者)应当独自承担使用本项目产生的一切责任。

简介

使用两种工作模式,实现通过爱发电购买虚拟商品的功能。

推荐使用的是使用 Webhook 接收爱发电订单信息,在开发者页面配置好 Webhook 地址后,爱发电将会把订单发送到那个地址,插件接收后作出反应。缺点是需要额外开放一个端口,实在不行可以上 Cloudflare Tunnel 之类的进行内网穿透。

除此之外,本插件还有轮询API模式。插件会把自己处理过的每一笔订单的订单号及其备份信息存到数据库,定时器会定期向爱发电接口查询订单列表,并寻找没有处理过的订单,作出相应的操作。

推荐与 SweetRewards 一同使用,实现累积充值奖励。

用法

爱发电上的用户进行发电时,在“留言”那一栏里输入玩家名,只要提交时服务器有这个离线玩家,就可以触发相关操作。

特殊地,你也可以创建电铺商品,在插件配置文件中设定收到某个商品的某个型号的订单时,执行相关操作。

个人觉得电铺商品比普通发电要更好用,你可以设置“留言”栏显示自定义文字,以更好地引导玩家输入玩家名。

cfdb7850-20a9-45aa-8d4f-9bf2beb31fab.png


简单来说,你只要在爱发电上面配置好商品,在插件配置文件配置好执行的操作就可以了。玩家需要做的,只有下单时在“留言”那一栏填写自己的玩家名。

至于配置的方法以及注意事项,已经全部写到配置文件注释了,尽情享用吧!

使用命令 /safd reload 重载配置文件,/safd reload database 重连数据库。

YAML:
debug: false
# 工作模式
# WEB_HOOK 或 POLLING_API
mode: WEB_HOOK
# 在 WEB_HOOK 模式(WebHook)下的配置
web_hook:
  # WebHook 端口号
  port: 8087
  # 接收地址,最终 WebHook 地址为
  # http://<你的服务器IP>:端口/接收地址
  # 建议将地址设置得尽量复杂,并且套 Cloudflare Tunnel,不要与服务器共用同一个二级域名
  path: /api/afdian/hook
  # 是否忽略执行所有提交上来的订单,用于测试 webhook 是否工作正常
  # 确认工作正常后,应该关闭此项
  ignore-all: true
# 在 POLLING_API 模式(轮询API)下的配置
polling_api:
  # 多少秒轮询一次爱发电订单列表API
  period_seconds: 30
  # 一次拉取多少个订单,支持 1-100
  limit_count: 50
  # 是否忽略执行所有查询到的订单,用于初次安装插件,或从 WebHook 切换到此模式时,同步爱发电数据使用
  # 确认工作正常后,应该关闭此项
  ignore-all: true

player-name:
  # 订单备注去除首尾空格后,完全匹配这个正则表达式,才执行相应操作
  # 中文名:'[a-zA-Z0-9_\u4e00-\u9fa5]*'
  # 英文名:'[a-zA-Z0-9_]*'
  pattern: '[a-zA-Z0-9_]*'
  # 最小长度
  min-length: 3
  # 最大长度
  max-length: 20

# 收到一般赞助
product-normal:
  # 赞助金额处理(可选,默认为 10, floor)
  point:
    # 乘数
    scale: 10
    # 四舍五入方式
    # floor 向下取整,ceil 向上取整,round 四舍五入,
    # 输入数字即保留N位小数,比如2保留两位小数
    rounding: floor
  # 是否要求玩家在线(可选,默认为 false)
  require-online: false
  # 收到一般赞助执行的命令
  # [console]控制台命令
  # [player]玩家命令(如果玩家在线的话)
  # [message]提示玩家(如果玩家在线的话)
  # 由于收到订单完成通知时,玩家不一定在线,仅玩家在线时支持完整的 PAPI 变量,建议配合 require-online 使用
  # 可用的变量如下
  # %player% 为玩家名,
  # %money% 为原始金额(带两位小数点)
  # %point% 为处理后金额(按配置处理)
  # 以下变量仅在用户填写时有效,可能为空
  # %person% 联系方式 姓名
  # %phone% 联系方式 电话号码
  # %address% 联系方式 地址
  commands:
    - '[console]points give %player% %point%'
# 收到电铺订单
product-shop:
  # 商品名称,在爱发电创建的时候不要重名
  测试商品:
    # 型号名称
    测试型号:
      # 同 product-normal.point
      point:
        scale: 1
        rounding: floor
      # 同 product-normal.require-online
      require-online: false
      # 执行类型(可选,默认为 command)
      # point:point的值乘以购买数量,只执行一次 commands 列表
      # command:执行 购买数量 次数的 commands 列表
      type: command
      # 同 product-normal.commands
      commands:
        - '[console]lp user %player% parent add vip'

# 爱发电API设置,用户ID 和 API Token 到开发者中心获取
# https://afdian.com/dashboard/dev
api:
  user_id: ''
  token: ''


作者
MrXiaoM
价格
50金粒
下载
13
查看
704
首次发布
最后更新

评分

5.00 星 1 次评分

MrXiaoM 的其他资源

最新更新

  1. 1.0.2

    + 修复了轮询API模式不可使用的问题 + 修复了 1.0.1 起,因变量替换顺序问题,导致装有 PlaceholderAPI 时无法正确替换玩家名的问题 + 轮询API模式下,必须要...
  2. 1.0.1

    + 增加选项 `require-online` 要求玩家在线,默认关闭 + 清理不必要的代码

最新评价

nice work
后退
顶部 底部