Durham 发表于 2025-5-24 16:33:04

[综合|管理]LiteInvitation —— 更好用的邀请码系统[1.7-1.20]

本帖最后由 Durham 于 2025-5-24 17:45 编辑

Lite Invitation--轻量的邀请

序言



楼主因为一个偶然的想法想要为自己的服务器添加邀请码系统
然而在论坛上实在没有找到高自定义度高且轻量的推广插件 :(
于是..LiteInvitation诞生了

#由于某些奇怪的原因 这个插件似乎也没有那么轻量? :)
https://bstats.org/signatures/bukkit/LiteInvitation.svg






简介




[*]支持自定义邀请码长度
[*]所有由该插件发出的信息均可在message.yml自定义
[*]支持自由设置邀请完成后的奖励 玩家指令/消息/后台指令
[*]支持MySQL以及YML两种存储方式
[*]支持PlaceholderAPI占位符
[*]支持设置当玩家邀请指定人数获得指定奖励
[*]防止玩家使用小号刷取邀请奖励(玩家IP/在线时长/游戏等级/击杀生物数量)
[*]支持配置文件自动迭代 插件更新后无需手动修改配置








权限&命令




权限:

[*]LiteInvitation.Bypass: 持有该权限的玩家可以绕过防小号检查
[*]LiteInvitation.Admin: 管理员权限


命令:
注: #为玩家指令 *为管理员指令(/LiteInvitation可替换为缩写/yq)

# /LiteInvitation Help -- 获取插件帮助
# /LiteInvitation Look -- 查看自身的邀请数据
# /LiteInvitation Accept <邀请码> -- 输入玩家的邀请码以接受邀请

* /LiteInvitation Reload -- 重载插件
* /LiteInvitation Check <玩家ID> -- 查看指定玩家的邀请数据
* /LiteInvitation Clear <玩家ID> -- 清除指定玩家的邀请数据









配置文件



config.yml

#插件config版本 请勿修改!!!
version: 1.6

#插件所有信息的前缀
prefix: '&8[&aLiteInvitation&8] '

#是否开启配置文件随版本更新
update: true

#是否允许两名玩家之间相互邀请
allow-invite-each: false

#占位符: 当找不到玩家名时 插件将会返回什么值?
player-placeholder: '无'

#邀请码长度
CodeLength: 8

#防小号功能
Anti-SmallAccount:
IP:
    #是否启用IP防小号限制 开启后单个IP只能接受一次邀请
    Enable: true
Time:
    #是否开启游戏时间防小号限制
    Enable: true
    #当玩家至少需要游戏多久才能接受邀请 单位:小时
    Amount: 24
Level:
    #是否开启等级防小号限制
    Enable: true
    #玩家至少需要多少级才能接受邀请
    Amount: 20

mysql:
#是否开启SSL
useSSL: false
#是否开启mysql数据库存储
#若关闭则使用yaml存储玩家数据
enable: false
#数据库服务器地址
host: localhost
#数据库服务器端口
port: 3306
#数据库用户名
user: root
#数据库密码
password: 123456
#数据库名
database: minecraft
#数据表名
table: invitation

#完成邀请后执行的指令!
#邀请者--%inviter% 被邀请者--%player%
#插件前缀--%prefix% 邀请者累计邀请人数--%inviter_frequency%
#使用作为前缀则发送后续信息前缀则后台执行命令 前缀则该玩家执行指令 不填写则默认
#注: 当邀请事件发生时 邀请者不一定在线
#    不可对邀请者使用一些如在线指令如: tp、tphere等 (邀请者未必处于在线状态)
#    指令执行者为后台执行
Invite-Command:
- '%prefix%&e你接受了%inviter%的邀请!'
- '%prefix%&e他已经邀请了%inviter_frequency%人了!'
- '%prefix%&a所以我奖励你一堆泥土!! awa'
- 'money give %inviter% 50'
- 'give %player% minecraft:dirt 64'

#当一个玩家邀请人数达到一定值时所执行的命令
#(此为额外指令) 即上方Invite-Command项会与此项共同执行
#该项可随意修改 如,
#Frequency-Command:
#2:
#    - 'money give %player% 50'
#4:
#    - 'money give %player% 300'
#插件前缀--%prefix% 触发事件的玩家--%player%
#邀请者累计邀请人数--%inviter_frequency%
#注: 当邀请事件发生时 邀请者不一定在线
#    不可对邀请者使用一些如在线指令如: tell、tp、tphere等
#    指令执行者为后台执行
Frequency-Command:
3:
    - 'money give %player% 100'
5:
    - 'money give %player% 500'







PlaceholderAPI



%liteinvitation_code% -- 该玩家的邀请码
%liteinvitation_inviter% -- 该玩家接受了谁的邀请
%liteinvitation_frequency% -- 该玩家邀请了多少人







防小号




在config.yml中自行设置即可
#防小号功能
Anti-SmallAccount:
IP:
    #是否启用IP防小号限制 开启后单个IP只能接受一次邀请
    Enable: true
Time:
    #是否开启游戏时间防小号限制
    Enable: true
    #当玩家至少需要游戏多久才能接受邀请 单位:小时
    Amount: 24
Level:
    #是否开启等级防小号限制
    Enable: true
    #玩家至少需要多少级才能接受邀请
    Amount: 20








下载&更新日志



v1.5.1:

--May 21, 2025
在设置文件中新增了useSSL选项
添加了对1.20版本的支持

v1.5.0:

--Jan 7, 2024

[*]修复了SQL注入问题
[*]添加空名称的占位符在config.yml中 (这意味着当玩家没有被邀请时 邀请者不会显示为none或“无” 而是您在config中写入的内容)
[*]提升网络性能 优化数据库连接方式
[*]修复偶尔会出现在处理玩家名时插件在后台抛出的空指针错误
[*]如果MySQL数据库不可用 现在插件会直接切换为Yaml存储方式
[*]添加了命令前缀在config.yml的Invite-Command下 (前缀对应发送信息|前缀对应在后台使用指令|前缀对应使玩家发送指令) 这使您可以更方便的设置邀请成功后触发奖励的形式
[*]在config.yml中添加了是否允许两个玩家互相邀请的设置 (关闭后即可禁止玩家通过互相邀请获得邀请奖励)
[*]现在可以通过reload指令切换存储模式 (MySQL或Yaml)
[*]修复了防小号功能在MySQL模式在不生效的bug



v1.4.8:

--May 1, 2023
增加对1.19版本的支持
修复了reload命令无法刷新插件前缀的问题

v1.4.6:

--Jan 10, 2022
修复某些情况下因DNS服务器造成主线程阻塞的问题

v1.4.5:

--Dec 11, 2021
增加了击杀怪物数量以及玩家等级的防小号功能

#1.4.5版本前的jar包均已遗失 故无更新日志





页: [1]
查看完整版本: [综合|管理]LiteInvitation —— 更好用的邀请码系统[1.7-1.20]