- 版权类型
- 原创
- 插件中文名称
- Sweet爱发电
- 插件英文名称
- SweetAfdian
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 前置组件
- PlaceholderAPI(可选):https://www.minebbs.com/resources/8229
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
SweetAfdian
基于赞助和电铺的爱发电充值/购买系统。测试时截图(WebHook),其中的提示信息、日志显示顺序与正式版不同。
图中的 IP 地址是 WebHook 消息来源 IP,即爱发电的服务器 IP,可以依此添加防火墙白名单。

正式版(1.0.2)的截图(轮询API)
在使用本项目的任何部分(包括但不限于源代码、二进制文件等等)时,应当遵守爱发电使用条款。
正如生产菜刀不是为了伤害他人一样,你(使用者)应当独自承担使用本项目产生的一切责任。
正如生产菜刀不是为了伤害他人一样,你(使用者)应当独自承担使用本项目产生的一切责任。
简介
使用两种工作模式,实现通过爱发电购买虚拟商品的功能。推荐使用的是使用 Webhook 接收爱发电订单信息,在开发者页面配置好 Webhook 地址后,爱发电将会把订单发送到那个地址,插件接收后作出反应。缺点是需要额外开放一个端口,实在不行可以上 Cloudflare Tunnel 之类的进行内网穿透。
除此之外,本插件还有轮询API模式。插件会把自己处理过的每一笔订单的订单号及其备份信息存到数据库,定时器会定期向爱发电接口查询订单列表,并寻找没有处理过的订单,作出相应的操作。
推荐与 SweetRewards 一同使用,实现累积充值奖励。
用法
爱发电上的用户进行发电时,在“留言”那一栏里输入玩家名,只要提交时服务器有这个离线玩家,就可以触发相关操作。特殊地,你也可以创建电铺商品,在插件配置文件中设定收到某个商品的某个型号的订单时,执行相关操作。
个人觉得电铺商品比普通发电要更好用,你可以设置“留言”栏显示自定义文字,以更好地引导玩家输入玩家名。
简单来说,你只要在爱发电上面配置好商品,在插件配置文件配置好执行的操作就可以了。玩家需要做的,只有下单时在“留言”那一栏填写自己的玩家名。
至于配置的方法以及注意事项,已经全部写到配置文件注释了,尽情享用吧!
使用命令
/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: ''
GitHub - MrXiaoM/SweetAfdian: Minecraft 爱发电 Webhook/主动API 对接插件
Minecraft 爱发电 Webhook/主动API 对接插件. Contribute to MrXiaoM/SweetAfdian development by creating an account on GitHub.