本帖最后由 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版呀 好东西
感谢楼主
牛蛙!!!!
感谢楼主分享,很实用的插件
MCBBS有你更精彩~
啥时候能更新1.16呀 太需要了!
希望支持1.16.x
我一个新腐竹 好像加这些插件呀 但是不会呀!好烦!
MCBBS有你更精彩~
真不错ing
大佬可否留个qq之类的?
正好需要,谢谢楼主,拿走了~
刚好需要66666
感谢楼主!
qwq
啥时候支持1.16啊
啥时候支持1.16啊
感谢分享,是个好插件
666,支持一下
很不错的DailyBonus插件
支持原创
支持原创
感谢楼主,很nice
感谢楼主分享
这个可以让服务器经常保持人数在线
很不错的DailyBonus插件
感谢楼主
支持原创
感谢楼主
支持原创
感谢大佬的插件 期待大佬的更新
感谢大佬的插件 神乎其技 期待大佬的更新
神乎其技!6的飞起
好用的插件
支持一下
支持一下
ppai变量能用么?
已下载,萌新开服,多谢大佬
6666666666
6666666666
很棒的插件,支持一下
233333333333333333
MCBBS有你更精彩~
可以可以6666
牛逼!!Great job!
哇,不错啊,原创插件辛苦了!
感谢楼主的原创插件 加油