GiNYAi
本帖最后由 GiNYAi 于 2021-3-13 01:16 编辑
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 reloaddailybonus.command.reload.base重载配置文件.
/dailybonus sign [player] <sign>dailybonus.command.sign.baseDebug 命令 直接签到一次.
/dailybonus list_parms [player]dailybonus.command.list_parms.baseDebug 命令 显示可用的占位符.


配置文件

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
2021.12 数据,可能有更多内容DailyBonus

签到与在线时长奖励


命令与权限

/dailybonus[command]
dailybonus.command.root.base
根命令
/dailybonus help [command]
dailybonus.command.help.base
显示命令帮助.
/dailybonus bonus [player] &lt;set&gt;
dailybonus.command.bonus.base
领取某个奖励.
dailybonus.command.bonus.other
令其他人领取某个奖励.
/dailybonus open [player] &lt;set&gt;
dailybonus.command.open.base
打开奖励界面.
dailybonus.command.open.other
令其他人打开奖励界面.
/dailybonus reload
dailybonus.command.reload.base
重载配置文件.
/dailybonus sign [player] &lt;sign&gt;
dailybonus.command.sign.base
Debug 命令 直接签到一次.
/dailybonus list_parms [player]
dailybonus.command.list_parms.base
Debug 命令 显示可用的占位符.



配置文件

DailyBonusGeneral.conf

常规配置文件


```
DailyBonusGeneral {
    # 读取语音文件所用地区
    Locale=zh-CN
    # 扫描的配置文件文件夹
    SettingsDir=[
  &quot;%data_dir%/settings&quot;
    ]
    # 每天的分界时间点
    StartOfDay=&quot;04:00&quot;
    # 每周的分界日
    StartOfWeek=MONDAY
    # Settings for data storage
    # 存储信息
    Storage {
  # For Mysql &amp; MariaDB, Default: localhost
  Address=localhost
  # For Mysql &amp; MariaDB.
  Database=minecraft
  # For H2 &amp; SQLite Database, Placeholders: %data_dir% %mc_dir%, Default: %data_dir%/database.db
  File=&quot;%data_dir%/database&quot;
  # Usable when you want to set the url directly, Default: &quot;&quot;
  JdbcUrl=&quot;&quot;
  Password=&quot;&quot;
  # For Mysql &amp; MariaDB, Default: 3306
  Port=3306
  # For resolving table name conflict, Default: DailyBonus_
  TablePrefix=&quot;DailyBonus_&quot;
  # Support: MySql, MariaDB, H2, SQLite, Default: H2
  Type=H2
  User=&quot;&quot;
    }
}
```
奖励设定范例

配置文件中的id会自动加上根据文件名生成的前缀



以月为周期的循环签到



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

每天在线时长奖励



```
DailyBonus: {
SignGroup: []
# 签到奖励
BonusSet: [
    {
   # id, id 中包含 `_` 目前会导致变量解析时出错
   Id=&quot;day0&quot;,
   # 显示给玩家的名字
   Display=&quot;&amp;a5分钟在线奖励&quot;,
   # 暂时还没想好有啥用
   ExtraInfo=&quot;&quot;,
   # 每天一个周期
   Cycle=&quot;day&quot;,
   # 要求本日在线超过5分钟
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;5m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   # id, id 中包含 `_` 目前会导致变量解析时出错
   Id=&quot;day1&quot;,
   # 显示给玩家的名字
   Display=&quot;&amp;a10分钟在线奖励&quot;,
   # 暂时还没想好有啥用
   ExtraInfo=&quot;&quot;,
   # 每天一个周期
   Cycle=&quot;day&quot;,
   # 要求本日在线超过5分钟
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;10m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day2&quot;,
   Display=&quot;&amp;a15分钟在线奖励&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;day&quot;,
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;15m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day3&quot;,
   Display=&quot;&amp;a20分钟在线奖励&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;day&quot;,
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;20m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day4&quot;,
   Display=&quot;&amp;a25分钟在线奖励&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;day&quot;,
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;25m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day5&quot;,
   Display=&quot;&amp;a30分钟在线奖励&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;day&quot;,
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;30m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day6&quot;,
   Display=&quot;&amp;a60分钟在线奖励&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;day&quot;,
   Requirements=[{
  Type=&quot;onlinetimetoday&quot;
  OnlineTime=&quot;60m&quot;
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
]
# 箱子界面
ChestView: {
    view: {
   # 箱子的大小, 需要为9的整数倍
   Size: 27
   # 可以使用 § 的样式代码
   Title: &quot;§c每日时长奖励&quot;
   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:&quot;day0&quot;}
  11: ${Items.BasicBonus}{BonusSet:&quot;day1&quot;}
  12: ${Items.BasicBonus}{BonusSet:&quot;day2&quot;}
  13: ${Items.BasicBonus}{BonusSet:&quot;day3&quot;}
  14: ${Items.BasicBonus}{BonusSet:&quot;day4&quot;}
  15: ${Items.BasicBonus}{BonusSet:&quot;day5&quot;}
  16: ${Items.BasicBonus}{BonusSet:&quot;day6&quot;}
  17: ${Items.GlassPaneBlack}
   }
    }
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
    # 类型 fixed 固定的装饰内容
    Type: &quot;Fixed&quot;
    # 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
    Item: {
   ItemType: &quot;minecraft:stained_glass_pane&quot;
   UnsafeDamage: 0
   Count: 1
   # NBT tag
   UnsafeData: {
  display: {
    #设置物品显示名
    Name: &quot;&quot;
  }
   }
    }
}
GlassPaneBlack: {
    Type: &quot;Fixed&quot;
    Item: {
   ItemType: &quot;minecraft:stained_glass_pane&quot;
   UnsafeDamage: 15
   Count: 1
   UnsafeData: {
  display: {
    Name: &quot;&quot;
  }
   }
    }
}
BasicBonus: {
    # 类型bonus 这个格子代表一个bonus
    Type: &quot;Bonus&quot;
    # 所对应的 bonus set
    BonusSet: null
    # 已经领取
    ItemReceived: {
   ItemType: &quot;minecraft:air&quot;
   Count: 1
   UnsafeDamage: 0
    }
    # 可以领取
    ItemUsable: {
   ItemType: &quot;minecraft:grass&quot;
   Count: 1
   UnsafeDamage: 0
   UnsafeData: {
  display: {
    Name: &quot;%player_name%&quot;
    Lore: [&quot;Lore&quot;]
  }
   }
    }
    # 不可领取
    ItemUnusable: {
   ItemType: &quot;minecraft:stone&quot;
   Count: 1
   UnsafeDamage: 0
   UnsafeData: {
  display: {
    Name: &quot;%bonus_display%&quot;
    Lore: [&quot;&quot;]
  }
   }
    }
}
}
```

以2021年春节为例的临时签到活动


```
DailyBonus: {
SignGroup: [
    {
   Id=newyear
   Display=Display
   # 单次
   Cycle=once
   # 在数据库中使用 `basic` 作为键, 也就是直接使用每月签到中自动签到的数据
   DataId=basic
   # 开始时间
   Start=&quot;2021-02-11T04:00&quot;
   # 结束时间
   End=&quot;2021-03-27T04:00&quot;
    }]
# 签到奖励
BonusSet: [
    {
   # id, id 中包含 `_` 目前会导致变量解析时出错
   Id=&quot;day1&quot;,
   # 显示给玩家的名字
   Display=&quot;&amp;a春节签到奖励Day1&quot;,
   # 暂时还没想好有啥用
   ExtraInfo=&quot;&quot;,
   # 不循环
   Cycle=&quot;once&quot;,
   # 签到一次
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=1
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day2&quot;,
   Display=&quot;&amp;a春节签到奖励Day2&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=2
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day3&quot;,
   Display=&quot;&amp;a春节签到奖励Day3&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=3
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day4&quot;,
   Display=&quot;&amp;a春节签到奖励Day4&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=4
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day5&quot;,
   Display=&quot;&amp;a春节签到奖励Day5&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=5
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day6&quot;,
   Display=&quot;&amp;a春节签到奖励Day6&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=6
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
    {
   Id=&quot;day7&quot;,
   Display=&quot;&amp;a春节签到奖励Day7&quot;,
   ExtraInfo=&quot;&quot;,
   Cycle=&quot;once&quot;,
   Requirements=[{
  Type=signcount
  SignGroup=newyear
  Count=7
   }]
   Entries=[{
  Type=command
  Commands=[
    &quot;say %player% %player_onlinetimetoday%&quot;
  ]
   }]
    }
]
# 箱子界面
ChestView: {
    view: {
   # 箱子的大小, 需要为9的整数倍
   Size: 27
   # 可以使用 § 的样式代码
   Title: &quot;§a2021农历新年签到&quot;
   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:&quot;day1&quot;}
  11: ${Items.BasicBonus}{BonusSet:&quot;day2&quot;}
  12: ${Items.BasicBonus}{BonusSet:&quot;day3&quot;}
  13: ${Items.BasicBonus}{BonusSet:&quot;day4&quot;}
  14: ${Items.BasicBonus}{BonusSet:&quot;day5&quot;}
  15: ${Items.BasicBonus}{BonusSet:&quot;day6&quot;}
  16: ${Items.BasicBonus}{BonusSet:&quot;day7&quot;}
  17: ${Items.GlassPaneBlack}
   }
    }
}
}
# 用于给显示的物品引用
Items: {
GlassPaneWhite: {
    # 类型 fixed 固定的装饰内容
    Type: &quot;Fixed&quot;
    # 物品 至少需要设定 `ItemType` `UnsafeDamage` `Count`
    Item: {
   ItemType: &quot;minecraft:stained_glass_pane&quot;
   UnsafeDamage: 0
   Count: 1
   # NBT tag
   UnsafeData: {
  display: {
    #设置物品显示名
    Name: &quot;&quot;
  }
   }
    }
}
GlassPaneBlack: {
    Type: &quot;Fixed&quot;
    Item: {
   ItemType: &quot;minecraft:stained_glass_pane&quot;
   UnsafeDamage: 15
   Count: 1
   UnsafeData: {
  display: {
    Name: &quot;&quot;
  }
   }
    }
}
BasicBonus: {
    # 类型bonus 这个格子代表一个bonus
    Type: &quot;Bonus&quot;
    # 所对应的 bonus set
    BonusSet: null
    # 已经领取
    ItemReceived: {
   ItemType: &quot;minecraft:air&quot;
   Count: 1
   UnsafeDamage: 0
    }
    # 可以领取
    ItemUsable: {
   ItemType: &quot;minecraft:grass&quot;
   Count: 1
   UnsafeDamage: 0
   UnsafeData: {
  display: {
    Name: &quot;%bonus_display%&quot;
    Lore: [&quot;Lore&quot;]
  }
   }
    }
    # 不可领取
    ItemUnusable: {
   ItemType: &quot;minecraft:stone&quot;
   Count: 1
   UnsafeDamage: 0
   UnsafeData: {
  display: {
    Name: &quot;%player_name%&quot;
    Lore: [&quot;&quot;]
  }
   }
    }
}
}
```


源代码




附件





更新日志

0.1.0   2021-02-15    第一版快照
0.1.1   2021-02-21    修复重载可能丢失未保存的玩家数据的问题, 修复配置文件Text加载问题
0.1.2   2021-03-05    调整箱子界面物品使用的占位符
本插件所用所有代码均为原创,不存在借用/抄袭等行为



胡闹0519
支持一下。

王骚年
66666666666666

蟹蒙老鸽
MCBBS有你更精彩~!

KururuCZ
请问是否支持mysql

Satou
好用的插件
支持一下

蔡某人SA
你好,1.12.2 catserver用不了,生成不了配置文件,插件看起来还是不错的,加油

GiNYAi
蔡某人SA 发表于 2021-3-10 22:10
你好,1.12.2 catserver用不了,生成不了配置文件,插件看起来还是不错的,加油 ...
适用服务端:         |Sponge|


                              


蔡某人SA

好吧没看见

Naive4901
咱就支持下1.16.5呗

白露烧酒
        MCBBS有你更精彩~

aswsa
感谢楼主分享

琉乐艺
很实用的一个插件!感谢作者与团队我拿走了

nemo.
这个插件啥时候更新1.16版呀 好东西

zhujiahe1701
感谢楼主

鸭嘴丶兽
牛蛙!!!!

吴富霖
感谢楼主分享,很实用的插件

w1465744635
MCBBS有你更精彩~

nemo.
啥时候能更新1.16呀 太需要了!

沃德世界
希望支持1.16.x

黑猫君413
我一个新腐竹 好像加这些插件呀 但是不会呀!好烦!

w1465744635
MCBBS有你更精彩~

kwsc
真不错ing

LiuChangKing
大佬可否留个qq之类的?

2082359109
正好需要,谢谢楼主,拿走了~

w728644051
刚好需要66666

z2019cyq

感谢楼主!

FW-CornWorld
qwq
啥时候支持1.16啊

luck8023
感谢分享,是个好插件

暴龙战士铠
666,支持一下

shouyoukefu
很不错的DailyBonus插件
支持原创

枫雨聆心
感谢楼主,很nice

不要过来呀ya
感谢楼主分享

DestinyReturn
这个可以让服务器经常保持人数在线

zws1314520
很不错的DailyBonus插件
感谢楼主
支持原创

94776417559
感谢大佬的插件 期待大佬的更新

94776417559
感谢大佬的插件 神乎其技 期待大佬的更新

LegentMan
神乎其技!6的飞起

xiaojingjingjin
好用的插件
支持一下

万嘉
ppai变量能用么?

kinvinced
已下载,萌新开服,多谢大佬

az小枫
6666666666

az小枫
6666666666

Lyaoo
很棒的插件,支持一下

Toney233
233333333333333333

Honey_peach
        MCBBS有你更精彩~

xiaoxiaoyuqi
可以可以6666

牛奶2
牛逼!!Great job!

DKCJ丶_fEe7Y
哇,不错啊,原创插件辛苦了!

wdfkc
感谢楼主的原创插件 加油

第一页 上一页 下一页 最后一页