Thời gian cooldown gốc (seconds)
Ví dụ: 5 = 5 giây
Optionalmessagemessage
Hàm custom message khi user đang trong cooldown.
Parameters: ms → thời gian còn lại (seconds) ctx → context của command (interaction/message) commandName → tên command đang chạy
Return: string hiển thị cho user
Ví dụ:
message: (ms, ctx, name) =>
Command ${name} còn ${Math.ceil(ms/1000)}s
OptionalpermissionpermissionBypass
Nếu member có quyền tương ứng → bỏ qua hoàn toàn cooldown
Ví dụ: permissionBypass: PermissionLevel.ADMIN
OptionalroleroleWeights
Cho phép giảm cooldown dựa trên role.
Key: roleId Value: multiplier (0 < number ≤ 1)
Ví dụ: VIP = 0.5 → giảm 50%
Nếu user có nhiều role được cấu hình: → Lấy weight nhỏ nhất (cooldown ngắn nhất)
Phạm vi áp dụng cooldown
Có thể:
Nếu dùng nhiều scope: → Chỉ cần 1 scope còn hiệu lực là bị block
CooldownConfig
Cấu hình cooldown cho từng command.
Ví dụ: cooldown: { duration: 10, scope: "user+role", roleWeights: { VIP_ID: 0.5 }, permissionBypass: PermissionLevel.ADMIN }