Class StackableCooldown
-
- All Implemented Interfaces:
public class StackableCooldown累计次数冷却状态
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classStackableCooldown.Config冷却配置
public classStackableCooldown.Status当前冷却状态
public classStackableCooldown.ConsumeResult使用结果
-
Field Summary
Fields Modifier and Type Field Description public intamountpublic longnextRecoveryTime
-
Method Summary
Modifier and Type Method Description intgetAmount()voidsetAmount(int amount)设置使用次数 longgetNextRecoveryTime()static longcurrentTimeMillis()这是为了允许 mockito 模拟. longgetRemainingRecoveryTime()StackableCooldown.StatusgetCooldownStatus()StackableCooldown.ConsumeResultconsume()尝试消耗使用次数 StackableCooldown.ConsumeResultconsume(int amount)尝试消耗使用次数 voidaddOrTakeAmount(int amount)增加或减少使用次数(取决于 amount 大于 0 还是小于 0) voidsetCooldown(long cooldown)设置冷却 voidincreaseOrReduceCooldown(long cooldown)延长或缩减冷却(cooldown 大于 0 延长, 反之缩减) 缩减冷却可以增加使用次数, 但延长冷却不会减少使用次数, 且延长冷却不会大于配置的刷新冷却 voidsetMaxAmount(int maxAmount)设置最大累计次数 voidsetConfigCooldown(long cooldown)设置刷新冷却 -
-
Method Detail
-
getAmount
int getAmount()
- Returns:
剩余使用次数
-
setAmount
void setAmount(int amount)
设置使用次数
-
getNextRecoveryTime
long getNextRecoveryTime()
- Returns:
下次刷新时间
-
currentTimeMillis
static long currentTimeMillis()
这是为了允许 mockito 模拟.
-
getRemainingRecoveryTime
long getRemainingRecoveryTime()
- Returns:
距下次刷新还有多久
-
getCooldownStatus
@NonNull() StackableCooldown.Status getCooldownStatus()
- Returns:
当前冷却状态
-
consume
@NonNull() StackableCooldown.ConsumeResult consume()
尝试消耗使用次数
- Returns:
使用结果
-
consume
@NonNull() StackableCooldown.ConsumeResult consume(int amount)
尝试消耗使用次数
- Parameters:
amount- 需要消耗的次数- Returns:
使用结果
-
addOrTakeAmount
void addOrTakeAmount(int amount)
增加或减少使用次数(取决于 amount 大于 0 还是小于 0)
-
setCooldown
void setCooldown(long cooldown)
设置冷却
-
increaseOrReduceCooldown
void increaseOrReduceCooldown(long cooldown)
延长或缩减冷却(cooldown 大于 0 延长, 反之缩减) 缩减冷却可以增加使用次数, 但延长冷却不会减少使用次数, 且延长冷却不会大于配置的刷新冷却
-
setMaxAmount
void setMaxAmount(int maxAmount)
设置最大累计次数
- Parameters:
maxAmount- 最大累计次数
-
setConfigCooldown
void setConfigCooldown(long cooldown)
设置刷新冷却
- Parameters:
cooldown- 刷新冷却
-
-
-
-