GeekRewardPlus

🎁GeekRewardPlus-高级累计奖励系统 ^1.1^
地表超强累计系统,多模块,多种排行榜,超高自由度GUI,满足你对累计奖励的大部分需求
💽兼容性
| 说明 | 作用 |
|---|---|
| 支持版本 | 1.12x - 1.19x |
| 可选依赖 | PlaceholderAPI、PlayerPoints、CMi、PM |
| 可迁移的插件 | PMReward |
| 数据储存 | Mysql、Sqlite |
📒插件介绍
🎉100%支持迁移 PMReward 插件数据
♻️GUI交互使用 Kether 脚本语言
💾多种数据储存模式 MYSQL / SQLITE
❇️超高自由度的 GUI 配置,设置奖励更加方便
❇️支持 累计充值奖励 ,玩家累计获得点券可获得相应礼包
❇️支持 累计获得金币奖励 ,玩家累计获得金币可获得相应礼包
❇️支持 累计在线奖励 ,玩家累计在线可获得相应礼包
❇️三种奖励模式均有独立排行榜变量,可展示 1-99999 名排行榜
❇️每种模式均为腐竹提供修改玩家数据的途径
❇️使用 Kether 100%自定义玩家交互提示
❗❗❗指令帮助
| 玩家命令 | 作用说明 |
|---|---|
| /GeekRw 或 /pms | 主命令 |
| /GeekRw open [菜单种类] | 打开对应礼包领取界面 |
| 管理员命令 | 作用说明 |
|---|---|
| /GeekRw 或 /pms | 主命令 |
| /GeekRw data [目标][种类] [add/take][值] | 修改指定玩家指定数据 |
| /GeekRw reset [目标] | 重置指定玩家的所有数据 |
| /GeekRw reload | 重新载入 ^(配置文件&语言文件是自动重载)^ |
| /GeekRw migrator [目标数据库] | 迁移 PMReward 数据库中的数据 |
🎛️权限帮助
| 权限 | 作用 |
|---|---|
| GeekRewardPlus.admin | (^迁移、重载、重置、设置)^ 权限 |
| GeekRewardPlus.menu | 打开菜单权限 |
💡占位符变量
| 变量 | 效果 |
|---|---|
| %GeekReward_points% | 累计充值数量 |
| %GeekReward_money% | 累计获得金币数量 |
| %GeekReward_time% | 累计在线时间戳 |
| %GeekReward_time_format% | 格式化后的累计在线时间 |
| %GeekReward_pointsTop_amt或name_1至9999% | 累计充值排行榜 |
| %GeekRewardmoneyTop_amt或name(1至9999% | 累计赚钱排行榜 |
| %GeekRewardtimeTop_amt或name(1至9999% | 累计在线排行榜 |
列如: %GeekReward_pointsTop_name_1% #将返回累计充值排行单一的玩家名称 {.is-info}
🔊如何修改奖励及其需求?
在 plugins/GeekRewardPlus/menu 文件夹下修改对应配置文件
累计在线奖励菜单

TITLE: '&0累计在线时长礼包'
TYPE: OnlineTime
Layout:
- '#########'
- '#A B C D#'
- '#########'
Icons:
A:
display:
# 展示的材质
mats: BOOK
name: "&e累计在线 &f一小时 &e礼包"
# 礼包唯一ID
packID: '一小时礼包'
# 领取该礼包需要的条件
# 设置格式 ??d ??h ??m ??s (天、小时、分钟、秒)
isValue: 1h # 这里需要玩家累计在线 1小时
#isValue: 1d 18h #这样表示 需要累计在线一天十八小时才可以领取
lore:
- "&f礼包内容:"
- "&f - 100 金币"
- "&f当前在线 &A{time}"
- "&f领取状态: {state}"
# 条件及其所有动作语句 参考 Kether
Require:
# 条件默认会判断这个礼包的 isValue 值 搭配下面的条件组可实现多种交互
condition: 'not timePack *一小时礼包'
action: |-
command "money give {player_name} 100" as console
sound ENTITY_EXPERIENCE_ORB_PICKUP by 1 1
deny: |-
sound BLOCK_NOTE_BLOCK_DIDGERIDOO by 1 1
if timePack *一小时礼包
then tell "你已经领取过这个礼包"
else
tell "你的在线时长不够!"
B:
display:
mats: BOOK
name: "&e累计在线 &f三小时 &e礼包"
packID: '三小时礼包'
isValue: 3h
lore:
- "&f礼包内容:"
- "&f - 980 金币"
- "&f当前在线 &A{time}"
- "&f领取状态: {state}"
Require:
condition: 'not timePack *三小时礼包'
action: |-
command "money give {player_name} 9800" as console
sound ENTITY_EXPERIENCE_ORB_PICKUP by 1 1
deny: |-
sound BLOCK_NOTE_BLOCK_DIDGERIDOO by 1 1
if timePack *三小时礼包
then tell "你已经领取过这个礼包"
else
tell "你的在线时长不够!"
'#':
display:
mats: BLACK_STAINED_GLASS_PANE
name: '&b&l 挡板'
2.累计充值菜单

TITLE: '&e累计充值 &e点卷礼包'
TYPE: PlayerPoints
Layout:
- '#########'
- '#A B C D#'
- '#########'
Icons:
A:
display:
mats: BOOK
name: "&e累计充值 &c100 &e点卷礼包"
# 奖励唯一ID
packID: 10
# 需求值
isValue: 100 #这里表示玩家需要获得100 点券才可以领取
lore:
- "&f礼包内容:"
- "&f - 1000 金币"
- "&f需要充值 &c100 &f点卷才可领取"
- "&f当前充值 &A{points}"
- "&f领取状态: {state}"
Require:
# 条件判断默认会判断该礼包的 isValue 值玩家是否达到,搭配一下条件组可实现多种交互模式
# not pointsPack *10 这里的 10 表示这个礼包的唯一ID
condition: 'not pointsPack *10' # 玩家需要没领取过这个礼包才可以领取
action: |-
command "money give {player_name} 1000" as console
sound ENTITY_EXPERIENCE_ORB_PICKUP by 1 1
deny: |-
sound BLOCK_NOTE_BLOCK_DIDGERIDOO by 1 1
if pointsPack *10
then tell "你已经领取过这个礼包"
else
tell "你的充值数量不够!"
B:
display:
mats: BOOK
name: "&e累计充值 &c300 &e点卷礼包"
packID: "累计300"
isValue: 300
lore:
- "&f礼包内容:"
- "&f - 3000 金币"
- "&f需要充值 &c300 &f点卷才可领取"
- "&f当前充值 &A{points}"
- "&f领取状态: {state}"
Require:
condition: 'not pointsPack *累计300'
action: |-
command "money give {player_name} 3000" as console
sound ENTITY_EXPERIENCE_ORB_PICKUP by 1 1
deny: |-
sound BLOCK_NOTE_BLOCK_DIDGERIDOO by 1 1
if pointsPack *累计300
then tell "你已经领取过这个礼包"
else
tell "你的充值数量不够!"
'#':
display:
mats: BLACK_STAINED_GLASS_PANE
name: '&b&l 挡板'
❗ Kether脚本
| 内置Kether脚本 | 作用 |
|---|---|
| moneyPack [action] | 判断玩家的累计金币礼包ID |
| pointsPack [action] | 判断玩家的累计充值礼包ID |
| timePack [action] | 判断玩家的累计在线礼包ID |
【timePack 三小时礼包】 判断玩家是否领取过 (三小时礼包)在线礼包,如果领取过返回 True 【pointsPack 充值100】 判断玩家是否领取过 (充值100)充值礼包,如果领取过返回 True 【moneyPack 100】 判断玩家是否领取过 (100)获取金币礼包,如果领取过返回 True {.is-success}
更多 Kether 脚本表达式 点击前往 {.is-info}
❗ 开发者API
// 获取玩家已赚取的金币数量
public static Double getPlayerMoney(@NotNull UUID uuid) {
return (ModulesManage.getPlayerData(uuid) != null) ? ModulesManage.getPlayerData(uuid).getMoney() : 0.00;
}
// 获取玩家累计充值的点券数量
public static int getPlayerPoints(@NotNull UUID uuid) {
return (ModulesManage.getPlayerData(uuid) != null) ? ModulesManage.getPlayerData(uuid).getPoints() : 0;
}
// 获取玩家累计在线时间戳
public static long getPlayerTime(@NotNull UUID uuid) {
return (ModulesManage.getPlayerData(uuid) != null) ? ModulesManage.getPlayerData(uuid).getTime() : 0L;
}
🔆更多图片展示
排行榜

GUI


