mirror of
https://github.com/carm-outsource/TimeReward.git
synced 2026-06-05 09:11:10 +08:00
feat(time): 尝试支持按日/周/月/总时长判别奖励。
This commit is contained in:
@@ -32,27 +32,6 @@ public class PluginConfig extends ConfigurationRoot {
|
||||
.serializeValue(DayOfWeek::getValue)
|
||||
.defaults(DayOfWeek.MONDAY).build();
|
||||
|
||||
@HeaderComment({"奖励相关设定,包含以下设定:",
|
||||
" [id] 配置键名即奖励ID,支持英文、数字与下划线。",
|
||||
" | 确定后请不要更改,因为该键值用于存储玩家是否领取的数据",
|
||||
" | 如果更改,原先领取过该奖励的玩家将会自动再领取一次!",
|
||||
" [name] 奖励的显示名称,可以是任意字符串",
|
||||
" | 可以在 commands 中使用 %(name) 来获取该奖励的名称",
|
||||
" | 也可以使用变量 %TimeReward_reward_<奖励ID>% 来获取对应奖励的名称",
|
||||
" [permission] 领取奖励时后台执行的指令",
|
||||
" | 支持PlaceholderAPI变量,指令中可以使用 %(name) 来获取该奖励的名称。",
|
||||
" [commands] 该奖励领取权限,可以不设置。",
|
||||
" | 若为空则所有人都可以领取;若不为空,则需要拥有该权限的玩家才能领取。",
|
||||
" [auto] 该奖励是否自动领取,可以不设置,默认为true。",
|
||||
" | 若关闭自动领取,则需要玩家手动输入/tr claim 领取奖励。",
|
||||
})
|
||||
public static final ConfigValue<RewardsConfig.RewardGroup> REWARDS = ConfigValue.builder()
|
||||
.asValue(RewardsConfig.RewardGroup.class).fromSection()
|
||||
.parseValue((v, d) -> RewardsConfig.RewardGroup.parse(v))
|
||||
.serializeValue(RewardsConfig.RewardGroup::serialize)
|
||||
.defaults(RewardsConfig.RewardGroup.defaults())
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -91,15 +91,20 @@ public class PluginMessages extends ConfigurationRoot {
|
||||
).build();
|
||||
|
||||
public static final ConfiguredMessageList<BaseComponent[]> USER_INFO = list().defaults(
|
||||
"&f玩家 &6%(player) &f已在线&e%(time)&f秒,共领取了 &e%(amount)&f 次奖励。",
|
||||
"&7已领取的奖励列表如下:&r%(rewards) &7。"
|
||||
).params("player", "time", "amount", "rewards").build();
|
||||
"&f玩家 &6%(player) &f的在线时间数据:",
|
||||
"&f 本日在线 &e%(daily)&f秒,本周在线 &e%(weekly)&f秒,",
|
||||
"&f 本月在线 &e%(monthly)&f秒,累积在线 &e%(total)&f秒。",
|
||||
"&7已领取了 &f%(amount) &7种奖励,如下所示:"
|
||||
).params("player", "daily", "weekly", "monthly", "total", "amount").build();
|
||||
|
||||
public static final ConfiguredMessageList<BaseComponent[]> USER_RECEIVED = list().defaults(
|
||||
"&7- &e%(reward) &7于 &f%(time) &7领取"
|
||||
).params("reward", "time").build();
|
||||
|
||||
public static final ConfiguredMessageList<BaseComponent[]> COMMAND_LIST = list().defaults(
|
||||
"&f正在执行奖励 %(award) 的指令列表..."
|
||||
).params("award").build();
|
||||
|
||||
|
||||
public static class LIST extends ConfigurationRoot {
|
||||
|
||||
public static final ConfiguredMessageList<BaseComponent[]> HEADER = list().defaults(
|
||||
@@ -109,15 +114,17 @@ public class PluginMessages extends ConfigurationRoot {
|
||||
public static final ConfiguredMessageList<BaseComponent[]> OBJECT = list().defaults(
|
||||
"&8# &f%(id)",
|
||||
"&8- &7奖励名称 &f%(name)",
|
||||
"&8- &7奖励类型 &f%(type)",
|
||||
"&8- &7领取时间 &f&e%(time)&f秒"
|
||||
).params("id", "name", "time").build();
|
||||
).params("id", "name", "type", "time").build();
|
||||
|
||||
public static final ConfiguredMessageList<BaseComponent[]> OBJECT_PERM = list().defaults(
|
||||
"&8# &f%(id)",
|
||||
"&8- &7奖励名称 &f%(name)",
|
||||
"&8- &7奖励类型 &f%(type)",
|
||||
"&8- &7领取时间 &f&e%(time)&f秒",
|
||||
"&8- &7需要权限 &f%(permission)"
|
||||
).params("id", "name", "time", "permission").build();
|
||||
).params("id", "name", "type", "time", "permission").build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ import java.util.Map;
|
||||
" [id] 配置键名即奖励ID,支持英文、数字与下划线。",
|
||||
" | 确定后请不要更改,因为该键值用于存储玩家是否领取的数据",
|
||||
" | 如果更改,原先领取过该奖励的玩家将会自动再领取一次!",
|
||||
" [type] 奖励的类型序号",
|
||||
" | “0”代表总计时间奖励,“1”代表每日在线奖励,",
|
||||
" | “2”代表每周在线奖励,“3”代表每月在线奖励。",
|
||||
" [name] 奖励的显示名称,可以是任意字符串",
|
||||
" | 可以在 commands 中使用 %(name) 来获取该奖励的名称",
|
||||
" | 也可以使用变量 %TimeReward_reward_<奖励ID>% 来获取对应奖励的名称",
|
||||
@@ -26,17 +29,11 @@ import java.util.Map;
|
||||
})
|
||||
public class RewardsConfig extends ConfigurationRoot {
|
||||
|
||||
@HeaderComment("每日在线时长的奖励")
|
||||
public static final ConfigValue<RewardGroup> DAILY = create();
|
||||
public static final ConfigValue<RewardsConfig.RewardGroup> REWARDS = create();
|
||||
|
||||
@HeaderComment("每周在线时长的奖励")
|
||||
public static final ConfigValue<RewardGroup> WEEKLY = create();
|
||||
|
||||
@HeaderComment("每月在线时长的奖励")
|
||||
public static final ConfigValue<RewardGroup> MONTHLY = create();
|
||||
|
||||
@HeaderComment("总在线时长的奖励")
|
||||
public static final ConfigValue<RewardGroup> TOTAL = create();
|
||||
public static Map<String, RewardContents> getContents() {
|
||||
return REWARDS.getNotNull().getContents();
|
||||
}
|
||||
|
||||
private static ConfigValue<RewardGroup> create() {
|
||||
return ConfigValue.builder()
|
||||
|
||||
Reference in New Issue
Block a user