本帖最后由 GiNYAi 于 2021-3-13 01:16 编辑
DailyBonus
签到与在线时长奖励
命令与权限
配置文件
DailyBonusGeneral.conf
常规配置文件
奖励设定范例
配置文件中的id会自动加上根据文件名生成的前缀
month.conf
(13.89 KB, 下载次数: 69)
以月为周期的循环签到
online.conf
(5.49 KB, 下载次数: 50)
每天在线时长奖励
lunarnewyear2021.conf
(5.67 KB, 下载次数: 46)
以2021年春节为例的临时签到活动
源代码
附件
更新日志
来自群组: Power of Spongie
签到与在线时长奖励
命令与权限
配置文件
DailyBonusGeneral.conf
常规配置文件
```
DailyBonusGeneral {
# 读取语音文件所用地区
Locale=zh-CN
# 扫描的配置文件文件夹
SettingsDir=[
"%data_dir%/settings"
]
# 每天的分界时间点
StartOfDay="04:00"
# 每周的分界日
StartOfWeek=MONDAY
# Settings for data storage
# 存储信息
Storage {
# For Mysql & MariaDB, Default: localhost
Address=localhost
# For Mysql & MariaDB.
Database=minecraft
# For H2 & SQLite Database, Placeholders: %data_dir% %mc_dir%, Default: %data_dir%/database.db
File="%data_dir%/database"
# Usable when you want to set the url directly, Default: ""
JdbcUrl=""
Password=""
# For Mysql & MariaDB, Default: 3306
Port=3306
# For resolving table name conflict, Default: DailyBonus_
TablePrefix="DailyBonus_"
# Support: MySql, MariaDB, H2, SQLite, Default: H2
Type=H2
User=""
}
}
```
奖励设定范例
配置文件中的id会自动加上根据文件名生成的前缀
以月为周期的循环签到

```DailyBonus: {
SignGroup: [
# 一个签到组
{
Id=month
Display=Display
# 每月一个循环
Cycle=month
# 在数据库中使用 `basic` 作为键, 默认值为组的id
DataId=basic
}
]
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day",
# 显示给玩家的名字
Display="&aDay",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 没有前置条件, 也就是可以直接完成
Requirements=[]
# 基于的奖励是在 month 组 签到一次
Entries=[{
Type=sign
SignGroup=month
}]
# 自动完成(目前只在玩家登录的时候有一次检查), 这样就完成了一个简单的每月登录次数
AutoComplete=true
}
{
# 第一天的奖励, id
Id="day-of-month-1",
Display="Day1",
ExtraInfo="",
Cycle="month",
# 需要month组的计数之少1次
Requirements=[{
Type=signcount
SignGroup=month
Count=1
}]
# 奖励的命令,会以控制台身份执行
Entries=[{
Type=command
Commands=[
"say %player% day1"
]
}]
}
{
Id="day-of-month-2",
Display="Day2",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=2
}]
Entries=[{
Type=command
Commands=[
"say %player% day2"
]
}]
}
{
Id="day-of-month-3",
Display="Day3",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=3
}]
Entries=[{
Type=command
Commands=[
"say %player% day3"
]
}]
}
{
Id="day-of-month-4",
Display="Day4",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=4
}]
Entries=[{
Type=command
Commands=[
"say %player% day4"
]
}]
}
{
Id="day-of-month-5",
Display="Day5",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=5
}]
Entries=[{
Type=command
Commands=[
"say %player% day5"
]
}]
}
{
Id="day-of-month-6",
Display="Day6",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=6
}]
Entries=[{
Type=command
Commands=[
"say %player% day6"
]
}]
}
{
Id="day-of-month-7",
Display="Day7",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=7
}]
Entries=[{
Type=command
Commands=[
"say %player% day7"
]
}]
}
{
Id="day-of-month-8",
Display="Day8",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=8
}]
Entries=[{
Type=command
Commands=[
"say %player% day8"
]
}]
}
{
Id="day-of-month-9",
Display="Day9",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=9
}]
Entries=[{
Type=command
Commands=[
"say %player% day9"
]
}]
}
{
Id="day-of-month-10",
Display="Day10",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=10
}]
Entries=[{
Type=command
Commands=[
"say %player% day10"
]
}]
}
{
Id="day-of-month-11",
Display="Day11",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=11
}]
Entries=[{
Type=command
Commands=[
"say %player% day11"
]
}]
}
{
Id="day-of-month-12",
Display="Day12",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=12
}]
Entries=[{
Type=command
Commands=[
"say %player% day13"
]
}]
}
{
Id="day-of-month-13",
Display="Day13",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=13
}]
Entries=[{
Type=command
Commands=[
"say %player% day13"
]
}]
}
{
Id="day-of-month-14",
Display="Day14",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=14
}]
Entries=[{
Type=command
Commands=[
"say %player% day14"
]
}]
}
{
Id="day-of-month-15",
Display="Day15",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=15
}]
Entries=[{
Type=command
Commands=[
"say %player% day15"
]
}]
}
{
Id="day-of-month-16",
Display="Day16",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=16
}]
Entries=[{
Type=command
Commands=[
"say %player% day16"
]
}]
}
{
Id="day-of-month-17",
Display="Day17",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=17
}]
Entries=[{
Type=command
Commands=[
"say %player% day17"
]
}]
}
{
Id="day-of-month-18",
Display="Day18",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=18
}]
Entries=[{
Type=command
Commands=[
"say %player% day18"
]
}]
}
{
Id="day-of-month-19",
Display="Day19",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=19
}]
Entries=[{
Type=command
Commands=[
"say %player% day19"
]
}]
}
{
Id="day-of-month-20",
Display="Day20",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=20
}]
Entries=[{
Type=command
Commands=[
"say %player% day20"
]
}]
}
{
Id="day-of-month-21",
Display="Day21",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=21
}]
Entries=[{
Type=command
Commands=[
"say %player% day21"
]
}]
}
{
Id="day-of-month-22",
Display="Day22",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=22
}]
Entries=[{
Type=command
Commands=[
"say %player% day22"
]
}]
}
{
Id="day-of-month-23",
Display="Day23",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=23
}]
Entries=[{
Type=command
Commands=[
"say %player% day23"
]
}]
}
{
Id="day-of-month-24",
Display="Day24",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=24
}]
Entries=[{
Type=command
Commands=[
"say %player% day24"
]
}]
}
{
Id="day-of-month-25",
Display="Day25",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=25
}]
Entries=[{
Type=command
Commands=[
"say %player% day25"
]
}]
}
{
Id="day-of-month-26",
Display="Day26",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=26
}]
Entries=[{
Type=command
Commands=[
"say %player% day26"
]
}]
}
{
Id="day-of-month-27",
Display="Day27",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=27
}]
Entries=[{
Type=command
Commands=[
"say %player% day27"
]
}]
}
]
# 箱子界面
ChestView: {
month: {
# 箱子的大小, 需要为9的整数倍
Size: 45
# 可以使用 § 的样式代码
Title: "每月签到"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 5
36: ${Items.GlassPaneWhite}
37: ${Items.GlassPaneWhite}
38: ${Items.GlassPaneWhite}
39: ${Items.GlassPaneWhite}
40: ${Items.GlassPaneWhite}
41: ${Items.GlassPaneWhite}
42: ${Items.GlassPaneWhite}
43: ${Items.GlassPaneWhite}
44: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day-of-month-1"}
11: ${Items.BasicBonus}{BonusSet:"day-of-month-2"}
12: ${Items.BasicBonus}{BonusSet:"day-of-month-3"}
13: ${Items.BasicBonus}{BonusSet:"day-of-month-4"}
14: ${Items.BasicBonus}{BonusSet:"day-of-month-5"}
15: ${Items.BasicBonus}{BonusSet:"day-of-month-6"}
16: ${Items.BasicBonus}{BonusSet:"day-of-month-7"}
17: ${Items.GlassPaneBlack}
# line 3
18: ${Items.GlassPaneBlack}
19: ${Items.BasicBonus}{BonusSet:"day-of-month-8"}
20: ${Items.BasicBonus}{BonusSet:"day-of-month-9"}
21: ${Items.BasicBonus}{BonusSet:"day-of-month-10"}
22: ${Items.BasicBonus}{BonusSet:"day-of-month-11"}
23: ${Items.BasicBonus}{BonusSet:"day-of-month-12"}
24: ${Items.BasicBonus}{BonusSet:"day-of-month-13"}
25: ${Items.BasicBonus}{BonusSet:"day-of-month-14"}
26: ${Items.GlassPaneBlack}
# line 4
18: ${Items.GlassPaneBlack}
19: ${Items.BasicBonus}{BonusSet:"day-of-month-15"}
20: ${Items.BasicBonus}{BonusSet:"day-of-month-16"}
21: ${Items.BasicBonus}{BonusSet:"day-of-month-17"}
22: ${Items.BasicBonus}{BonusSet:"day-of-month-18"}
23: ${Items.BasicBonus}{BonusSet:"day-of-month-19"}
24: ${Items.BasicBonus}{BonusSet:"day-of-month-20"}
25: ${Items.BasicBonus}{BonusSet:"day-of-month-21"}
26: ${Items.GlassPaneBlack}
# line 5
27: ${Items.GlassPaneBlack}
28: ${Items.BasicBonus}{BonusSet:"day-of-month-21"}
29: ${Items.BasicBonus}{BonusSet:"day-of-month-22"}
30: ${Items.BasicBonus}{BonusSet:"day-of-month-23"}
31: ${Items.BasicBonus}{BonusSet:"day-of-month-24"}
32: ${Items.BasicBonus}{BonusSet:"day-of-month-25"}
33: ${Items.BasicBonus}{BonusSet:"day-of-month-26"}
34: ${Items.BasicBonus}{BonusSet:"day-of-month-27"}
35: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
# 解析变量并设置为 int
Count: "{i:%player_signgroup_month.month_count%}"
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: ["%signgroup_month.month_count%"]
}
}
}
}
}
```
每天在线时长奖励

```
DailyBonus: {
SignGroup: []
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day0",
# 显示给玩家的名字
Display="&a5分钟在线奖励",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 要求本日在线超过5分钟
Requirements=[{
Type="onlinetimetoday"
OnlineTime="5m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day1",
# 显示给玩家的名字
Display="&a10分钟在线奖励",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 要求本日在线超过5分钟
Requirements=[{
Type="onlinetimetoday"
OnlineTime="10m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day2",
Display="&a15分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="15m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day3",
Display="&a20分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="20m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day4",
Display="&a25分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="25m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day5",
Display="&a30分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="30m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day6",
Display="&a60分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="60m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
]
# 箱子界面
ChestView: {
view: {
# 箱子的大小, 需要为9的整数倍
Size: 27
# 可以使用 § 的样式代码
Title: "§c每日时长奖励"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 3
18: ${Items.GlassPaneWhite}
19: ${Items.GlassPaneWhite}
20: ${Items.GlassPaneWhite}
21: ${Items.GlassPaneWhite}
22: ${Items.GlassPaneWhite}
23: ${Items.GlassPaneWhite}
24: ${Items.GlassPaneWhite}
25: ${Items.GlassPaneWhite}
26: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day0"}
11: ${Items.BasicBonus}{BonusSet:"day1"}
12: ${Items.BasicBonus}{BonusSet:"day2"}
13: ${Items.BasicBonus}{BonusSet:"day3"}
14: ${Items.BasicBonus}{BonusSet:"day4"}
15: ${Items.BasicBonus}{BonusSet:"day5"}
16: ${Items.BasicBonus}{BonusSet:"day6"}
17: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: [""]
}
}
}
}
}
```
以2021年春节为例的临时签到活动
```
DailyBonus: {
SignGroup: [
{
Id=newyear
Display=Display
# 单次
Cycle=once
# 在数据库中使用 `basic` 作为键, 也就是直接使用每月签到中自动签到的数据
DataId=basic
# 开始时间
Start="2021-02-11T04:00"
# 结束时间
End="2021-03-27T04:00"
}]
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day1",
# 显示给玩家的名字
Display="&a春节签到奖励Day1",
# 暂时还没想好有啥用
ExtraInfo="",
# 不循环
Cycle="once",
# 签到一次
Requirements=[{
Type=signcount
SignGroup=newyear
Count=1
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day2",
Display="&a春节签到奖励Day2",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=2
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day3",
Display="&a春节签到奖励Day3",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=3
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day4",
Display="&a春节签到奖励Day4",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=4
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day5",
Display="&a春节签到奖励Day5",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=5
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day6",
Display="&a春节签到奖励Day6",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=6
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day7",
Display="&a春节签到奖励Day7",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=7
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
]
# 箱子界面
ChestView: {
view: {
# 箱子的大小, 需要为9的整数倍
Size: 27
# 可以使用 § 的样式代码
Title: "§a2021农历新年签到"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 3
18: ${Items.GlassPaneWhite}
19: ${Items.GlassPaneWhite}
20: ${Items.GlassPaneWhite}
21: ${Items.GlassPaneWhite}
22: ${Items.GlassPaneWhite}
23: ${Items.GlassPaneWhite}
24: ${Items.GlassPaneWhite}
25: ${Items.GlassPaneWhite}
26: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day1"}
11: ${Items.BasicBonus}{BonusSet:"day2"}
12: ${Items.BasicBonus}{BonusSet:"day3"}
13: ${Items.BasicBonus}{BonusSet:"day4"}
14: ${Items.BasicBonus}{BonusSet:"day5"}
15: ${Items.BasicBonus}{BonusSet:"day6"}
16: ${Items.BasicBonus}{BonusSet:"day7"}
17: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: [""]
}
}
}
}
}
```
源代码
附件
更新日志
0.1.0 2021-02-15 第一版快照
0.1.1 2021-02-21 修复重载可能丢失未保存的玩家数据的问题, 修复配置文件Text加载问题
0.1.2 2021-03-05 调整箱子界面物品使用的占位符
本插件所用所有代码均为原创,不存在借用/抄袭等行为
DailyBonus
签到与在线时长奖励
命令与权限
/dailybonus[command] | dailybonus.command.root.base | 根命令 |
/dailybonus help [command] | dailybonus.command.help.base | 显示命令帮助. |
/dailybonus bonus [player] <set> | dailybonus.command.bonus.base | 领取某个奖励. |
dailybonus.command.bonus.other | 令其他人领取某个奖励. | |
/dailybonus open [player] <set> | dailybonus.command.open.base | 打开奖励界面. |
dailybonus.command.open.other | 令其他人打开奖励界面. | |
/dailybonus reload | dailybonus.command.reload.base | 重载配置文件. |
/dailybonus sign [player] <sign> | dailybonus.command.sign.base | Debug 命令 直接签到一次. |
/dailybonus list_parms [player] | dailybonus.command.list_parms.base | Debug 命令 显示可用的占位符. |
配置文件
DailyBonusGeneral.conf
常规配置文件
奖励设定范例
配置文件中的id会自动加上根据文件名生成的前缀

以月为周期的循环签到

每天在线时长奖励

以2021年春节为例的临时签到活动
源代码
附件
-
DailyBonus-0.1.2.jar (157.87 KB, 下载次数: 313)
更新日志
本插件所用所有代码均为原创,不存在借用/抄袭等行为
来自群组: Power of Spongie
2021.12 数据,可能有更多内容
DailyBonus签到与在线时长奖励
命令与权限
/dailybonus[command] |
dailybonus.command.root.base |
根命令 |
/dailybonus help [command] |
dailybonus.command.help.base |
显示命令帮助. |
/dailybonus bonus [player] <set> |
dailybonus.command.bonus.base |
领取某个奖励. |
dailybonus.command.bonus.other |
令其他人领取某个奖励. |
/dailybonus open [player] <set> |
dailybonus.command.open.base |
打开奖励界面. |
dailybonus.command.open.other |
令其他人打开奖励界面. |
/dailybonus reload |
dailybonus.command.reload.base |
重载配置文件. |
/dailybonus sign [player] <sign> |
dailybonus.command.sign.base |
Debug 命令 直接签到一次. |
/dailybonus list_parms [player] |
dailybonus.command.list_parms.base |
Debug 命令 显示可用的占位符. |
配置文件
DailyBonusGeneral.conf
常规配置文件
```
DailyBonusGeneral {
# 读取语音文件所用地区
Locale=zh-CN
# 扫描的配置文件文件夹
SettingsDir=[
"%data_dir%/settings"
]
# 每天的分界时间点
StartOfDay="04:00"
# 每周的分界日
StartOfWeek=MONDAY
# Settings for data storage
# 存储信息
Storage {
# For Mysql & MariaDB, Default: localhost
Address=localhost
# For Mysql & MariaDB.
Database=minecraft
# For H2 & SQLite Database, Placeholders: %data_dir% %mc_dir%, Default: %data_dir%/database.db
File="%data_dir%/database"
# Usable when you want to set the url directly, Default: ""
JdbcUrl=""
Password=""
# For Mysql & MariaDB, Default: 3306
Port=3306
# For resolving table name conflict, Default: DailyBonus_
TablePrefix="DailyBonus_"
# Support: MySql, MariaDB, H2, SQLite, Default: H2
Type=H2
User=""
}
}
```
奖励设定范例
配置文件中的id会自动加上根据文件名生成的前缀
以月为周期的循环签到

```DailyBonus: {
SignGroup: [
# 一个签到组
{
Id=month
Display=Display
# 每月一个循环
Cycle=month
# 在数据库中使用 `basic` 作为键, 默认值为组的id
DataId=basic
}
]
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day",
# 显示给玩家的名字
Display="&aDay",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 没有前置条件, 也就是可以直接完成
Requirements=[]
# 基于的奖励是在 month 组 签到一次
Entries=[{
Type=sign
SignGroup=month
}]
# 自动完成(目前只在玩家登录的时候有一次检查), 这样就完成了一个简单的每月登录次数
AutoComplete=true
}
{
# 第一天的奖励, id
Id="day-of-month-1",
Display="Day1",
ExtraInfo="",
Cycle="month",
# 需要month组的计数之少1次
Requirements=[{
Type=signcount
SignGroup=month
Count=1
}]
# 奖励的命令,会以控制台身份执行
Entries=[{
Type=command
Commands=[
"say %player% day1"
]
}]
}
{
Id="day-of-month-2",
Display="Day2",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=2
}]
Entries=[{
Type=command
Commands=[
"say %player% day2"
]
}]
}
{
Id="day-of-month-3",
Display="Day3",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=3
}]
Entries=[{
Type=command
Commands=[
"say %player% day3"
]
}]
}
{
Id="day-of-month-4",
Display="Day4",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=4
}]
Entries=[{
Type=command
Commands=[
"say %player% day4"
]
}]
}
{
Id="day-of-month-5",
Display="Day5",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=5
}]
Entries=[{
Type=command
Commands=[
"say %player% day5"
]
}]
}
{
Id="day-of-month-6",
Display="Day6",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=6
}]
Entries=[{
Type=command
Commands=[
"say %player% day6"
]
}]
}
{
Id="day-of-month-7",
Display="Day7",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=7
}]
Entries=[{
Type=command
Commands=[
"say %player% day7"
]
}]
}
{
Id="day-of-month-8",
Display="Day8",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=8
}]
Entries=[{
Type=command
Commands=[
"say %player% day8"
]
}]
}
{
Id="day-of-month-9",
Display="Day9",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=9
}]
Entries=[{
Type=command
Commands=[
"say %player% day9"
]
}]
}
{
Id="day-of-month-10",
Display="Day10",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=10
}]
Entries=[{
Type=command
Commands=[
"say %player% day10"
]
}]
}
{
Id="day-of-month-11",
Display="Day11",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=11
}]
Entries=[{
Type=command
Commands=[
"say %player% day11"
]
}]
}
{
Id="day-of-month-12",
Display="Day12",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=12
}]
Entries=[{
Type=command
Commands=[
"say %player% day13"
]
}]
}
{
Id="day-of-month-13",
Display="Day13",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=13
}]
Entries=[{
Type=command
Commands=[
"say %player% day13"
]
}]
}
{
Id="day-of-month-14",
Display="Day14",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=14
}]
Entries=[{
Type=command
Commands=[
"say %player% day14"
]
}]
}
{
Id="day-of-month-15",
Display="Day15",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=15
}]
Entries=[{
Type=command
Commands=[
"say %player% day15"
]
}]
}
{
Id="day-of-month-16",
Display="Day16",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=16
}]
Entries=[{
Type=command
Commands=[
"say %player% day16"
]
}]
}
{
Id="day-of-month-17",
Display="Day17",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=17
}]
Entries=[{
Type=command
Commands=[
"say %player% day17"
]
}]
}
{
Id="day-of-month-18",
Display="Day18",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=18
}]
Entries=[{
Type=command
Commands=[
"say %player% day18"
]
}]
}
{
Id="day-of-month-19",
Display="Day19",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=19
}]
Entries=[{
Type=command
Commands=[
"say %player% day19"
]
}]
}
{
Id="day-of-month-20",
Display="Day20",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=20
}]
Entries=[{
Type=command
Commands=[
"say %player% day20"
]
}]
}
{
Id="day-of-month-21",
Display="Day21",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=21
}]
Entries=[{
Type=command
Commands=[
"say %player% day21"
]
}]
}
{
Id="day-of-month-22",
Display="Day22",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=22
}]
Entries=[{
Type=command
Commands=[
"say %player% day22"
]
}]
}
{
Id="day-of-month-23",
Display="Day23",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=23
}]
Entries=[{
Type=command
Commands=[
"say %player% day23"
]
}]
}
{
Id="day-of-month-24",
Display="Day24",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=24
}]
Entries=[{
Type=command
Commands=[
"say %player% day24"
]
}]
}
{
Id="day-of-month-25",
Display="Day25",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=25
}]
Entries=[{
Type=command
Commands=[
"say %player% day25"
]
}]
}
{
Id="day-of-month-26",
Display="Day26",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=26
}]
Entries=[{
Type=command
Commands=[
"say %player% day26"
]
}]
}
{
Id="day-of-month-27",
Display="Day27",
ExtraInfo="",
Cycle="month",
Requirements=[{
Type=signcount
SignGroup=month
Count=27
}]
Entries=[{
Type=command
Commands=[
"say %player% day27"
]
}]
}
]
# 箱子界面
ChestView: {
month: {
# 箱子的大小, 需要为9的整数倍
Size: 45
# 可以使用 § 的样式代码
Title: "每月签到"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 5
36: ${Items.GlassPaneWhite}
37: ${Items.GlassPaneWhite}
38: ${Items.GlassPaneWhite}
39: ${Items.GlassPaneWhite}
40: ${Items.GlassPaneWhite}
41: ${Items.GlassPaneWhite}
42: ${Items.GlassPaneWhite}
43: ${Items.GlassPaneWhite}
44: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day-of-month-1"}
11: ${Items.BasicBonus}{BonusSet:"day-of-month-2"}
12: ${Items.BasicBonus}{BonusSet:"day-of-month-3"}
13: ${Items.BasicBonus}{BonusSet:"day-of-month-4"}
14: ${Items.BasicBonus}{BonusSet:"day-of-month-5"}
15: ${Items.BasicBonus}{BonusSet:"day-of-month-6"}
16: ${Items.BasicBonus}{BonusSet:"day-of-month-7"}
17: ${Items.GlassPaneBlack}
# line 3
18: ${Items.GlassPaneBlack}
19: ${Items.BasicBonus}{BonusSet:"day-of-month-8"}
20: ${Items.BasicBonus}{BonusSet:"day-of-month-9"}
21: ${Items.BasicBonus}{BonusSet:"day-of-month-10"}
22: ${Items.BasicBonus}{BonusSet:"day-of-month-11"}
23: ${Items.BasicBonus}{BonusSet:"day-of-month-12"}
24: ${Items.BasicBonus}{BonusSet:"day-of-month-13"}
25: ${Items.BasicBonus}{BonusSet:"day-of-month-14"}
26: ${Items.GlassPaneBlack}
# line 4
18: ${Items.GlassPaneBlack}
19: ${Items.BasicBonus}{BonusSet:"day-of-month-15"}
20: ${Items.BasicBonus}{BonusSet:"day-of-month-16"}
21: ${Items.BasicBonus}{BonusSet:"day-of-month-17"}
22: ${Items.BasicBonus}{BonusSet:"day-of-month-18"}
23: ${Items.BasicBonus}{BonusSet:"day-of-month-19"}
24: ${Items.BasicBonus}{BonusSet:"day-of-month-20"}
25: ${Items.BasicBonus}{BonusSet:"day-of-month-21"}
26: ${Items.GlassPaneBlack}
# line 5
27: ${Items.GlassPaneBlack}
28: ${Items.BasicBonus}{BonusSet:"day-of-month-21"}
29: ${Items.BasicBonus}{BonusSet:"day-of-month-22"}
30: ${Items.BasicBonus}{BonusSet:"day-of-month-23"}
31: ${Items.BasicBonus}{BonusSet:"day-of-month-24"}
32: ${Items.BasicBonus}{BonusSet:"day-of-month-25"}
33: ${Items.BasicBonus}{BonusSet:"day-of-month-26"}
34: ${Items.BasicBonus}{BonusSet:"day-of-month-27"}
35: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
# 解析变量并设置为 int
Count: "{i:%player_signgroup_month.month_count%}"
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: ["%signgroup_month.month_count%"]
}
}
}
}
}
```
每天在线时长奖励

```
DailyBonus: {
SignGroup: []
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day0",
# 显示给玩家的名字
Display="&a5分钟在线奖励",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 要求本日在线超过5分钟
Requirements=[{
Type="onlinetimetoday"
OnlineTime="5m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day1",
# 显示给玩家的名字
Display="&a10分钟在线奖励",
# 暂时还没想好有啥用
ExtraInfo="",
# 每天一个周期
Cycle="day",
# 要求本日在线超过5分钟
Requirements=[{
Type="onlinetimetoday"
OnlineTime="10m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day2",
Display="&a15分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="15m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day3",
Display="&a20分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="20m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day4",
Display="&a25分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="25m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day5",
Display="&a30分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="30m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day6",
Display="&a60分钟在线奖励",
ExtraInfo="",
Cycle="day",
Requirements=[{
Type="onlinetimetoday"
OnlineTime="60m"
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
]
# 箱子界面
ChestView: {
view: {
# 箱子的大小, 需要为9的整数倍
Size: 27
# 可以使用 § 的样式代码
Title: "§c每日时长奖励"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 3
18: ${Items.GlassPaneWhite}
19: ${Items.GlassPaneWhite}
20: ${Items.GlassPaneWhite}
21: ${Items.GlassPaneWhite}
22: ${Items.GlassPaneWhite}
23: ${Items.GlassPaneWhite}
24: ${Items.GlassPaneWhite}
25: ${Items.GlassPaneWhite}
26: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day0"}
11: ${Items.BasicBonus}{BonusSet:"day1"}
12: ${Items.BasicBonus}{BonusSet:"day2"}
13: ${Items.BasicBonus}{BonusSet:"day3"}
14: ${Items.BasicBonus}{BonusSet:"day4"}
15: ${Items.BasicBonus}{BonusSet:"day5"}
16: ${Items.BasicBonus}{BonusSet:"day6"}
17: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: [""]
}
}
}
}
}
```
以2021年春节为例的临时签到活动
```
DailyBonus: {
SignGroup: [
{
Id=newyear
Display=Display
# 单次
Cycle=once
# 在数据库中使用 `basic` 作为键, 也就是直接使用每月签到中自动签到的数据
DataId=basic
# 开始时间
Start="2021-02-11T04:00"
# 结束时间
End="2021-03-27T04:00"
}]
# 签到奖励
BonusSet: [
{
# id, id 中包含 `_` 目前会导致变量解析时出错
Id="day1",
# 显示给玩家的名字
Display="&a春节签到奖励Day1",
# 暂时还没想好有啥用
ExtraInfo="",
# 不循环
Cycle="once",
# 签到一次
Requirements=[{
Type=signcount
SignGroup=newyear
Count=1
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day2",
Display="&a春节签到奖励Day2",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=2
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day3",
Display="&a春节签到奖励Day3",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=3
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day4",
Display="&a春节签到奖励Day4",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=4
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day5",
Display="&a春节签到奖励Day5",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=5
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day6",
Display="&a春节签到奖励Day6",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=6
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
{
Id="day7",
Display="&a春节签到奖励Day7",
ExtraInfo="",
Cycle="once",
Requirements=[{
Type=signcount
SignGroup=newyear
Count=7
}]
Entries=[{
Type=command
Commands=[
"say %player% %player_onlinetimetoday%"
]
}]
}
]
# 箱子界面
ChestView: {
view: {
# 箱子的大小, 需要为9的整数倍
Size: 27
# 可以使用 § 的样式代码
Title: "§a2021农历新年签到"
Elements: {
# line 1
0: ${Items.GlassPaneWhite}
1: ${Items.GlassPaneWhite}
2: ${Items.GlassPaneWhite}
3: ${Items.GlassPaneWhite}
4: ${Items.GlassPaneWhite}
5: ${Items.GlassPaneWhite}
6: ${Items.GlassPaneWhite}
7: ${Items.GlassPaneWhite}
8: ${Items.GlassPaneWhite}
# line 3
18: ${Items.GlassPaneWhite}
19: ${Items.GlassPaneWhite}
20: ${Items.GlassPaneWhite}
21: ${Items.GlassPaneWhite}
22: ${Items.GlassPaneWhite}
23: ${Items.GlassPaneWhite}
24: ${Items.GlassPaneWhite}
25: ${Items.GlassPaneWhite}
26: ${Items.GlassPaneWhite}
# line 2
9: ${Items.GlassPaneBlack}
10: ${Items.BasicBonus}{BonusSet:"day1"}
11: ${Items.BasicBonus}{BonusSet:"day2"}
12: ${Items.BasicBonus}{BonusSet:"day3"}
13: ${Items.BasicBonus}{BonusSet:"day4"}
14: ${Items.BasicBonus}{BonusSet:"day5"}
15: ${Items.BasicBonus}{BonusSet:"day6"}
16: ${Items.BasicBonus}{BonusSet:"day7"}
17: ${Items.GlassPaneBlack}
}
}
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
# 类型 fixed 固定的装饰内容
Type: "Fixed"
# 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 0
Count: 1
# NBT tag
UnsafeData: {
display: {
#设置物品显示名
Name: ""
}
}
}
}
GlassPaneBlack: {
Type: "Fixed"
Item: {
ItemType: "minecraft:stained_glass_pane"
UnsafeDamage: 15
Count: 1
UnsafeData: {
display: {
Name: ""
}
}
}
}
BasicBonus: {
# 类型bonus 这个格子代表一个bonus
Type: "Bonus"
# 所对应的 bonus set
BonusSet: null
# 已经领取
ItemReceived: {
ItemType: "minecraft:air"
Count: 1
UnsafeDamage: 0
}
# 可以领取
ItemUsable: {
ItemType: "minecraft:grass"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%bonus_display%"
Lore: ["Lore"]
}
}
}
# 不可领取
ItemUnusable: {
ItemType: "minecraft:stone"
Count: 1
UnsafeDamage: 0
UnsafeData: {
display: {
Name: "%player_name%"
Lore: [""]
}
}
}
}
}
```
源代码
附件
更新日志
0.1.0 2021-02-15 第一版快照
0.1.1 2021-02-21 修复重载可能丢失未保存的玩家数据的问题, 修复配置文件Text加载问题
0.1.2 2021-03-05 调整箱子界面物品使用的占位符
本插件所用所有代码均为原创,不存在借用/抄袭等行为
支持一下。
66666666666666
MCBBS有你更精彩~!
请问是否支持mysql
好用的插件
支持一下
支持一下
你好,1.12.2 catserver用不了,生成不了配置文件,插件看起来还是不错的,加油
咱就支持下1.16.5呗
MCBBS有你更精彩~
感谢楼主分享
很实用的一个插件!感谢作者与团队我拿走了
这个插件啥时候更新1.16版呀 好东西