Bỏ qua nội dung

🎁 Giveaway

Vấn đề

Bạn muốn tạo một Giveaway có thể custom được mọi phần trong tin nhắn Giveaway, cũng như có các yêu cầu/hạn chế phức tạp dành cho từng Giveaway (Chẳng hạn như yêu cầu phải tham gia server được 3 ngày, hoặc phải có role @Server Booster thì mới được tham gia Giveaway).

Giải pháp

Tính năng Giveaway giúp bạn tạo một Giveaway hoàn toàn không có giới hạn, giúp bạn chỉnh sửa mọi thứ của Giveaway, cũng như thêm các yêu cầu/hạn chế. Các tính năng chính của Giveaway:

  • Cho phép chỉnh sửa toàn bộ các phần trong tin nhắn Giveaway,
  • Chỉnh sửa Giveaway đang chạy,
  • Giveaway Template giúp bạn lưu các mẫu Giveaway có độ phức tạp cao đề về sau tạo chúng một cách dễ dàng!

Tùy chỉnh nội dung tin nhắn Giveaway

Giveaway Messages là tính năng cho phép bạn tùy chỉnh hoàn toàn nội dung các tin nhắn xuất hiện trong quá trình diễn ra Giveaway. Thay vì sử dụng các tin nhắn mặc định của bot, bạn có thể thiết kế riêng các embed và nội dung phản hồi phù hợp với phong cách và thương hiệu của server.

Để setup Custom Message cho giveaway, sử dụng /giveaway messages, sau đó bot sẽ gửi 1 bảng tương tác giúp để custom các tin nhắn như ảnh bên trên.

Trước khi chỉnh sửa, ta cần phân biệt hai thành phần chính trong một tin nhắn Giveaway, bao gồm Tin nhắnEmbed:

Để chỉnh sửa phần Tin nhắn, chọn Chỉnh sửa tin nhắn; để chỉnh sửa phần Embed, chọn Chỉnh sửa Embed.


Các thành phần có thể custom

Giveaway có tổng cộng 6 loại tin nhắn có thể custom, mỗi loại tương ứng với một giai đoạn khác nhau của Giveaway:

  • Embed khi giveaway đang diễn ra,
  • Embed khi giveaway kết thúc có người thắng,
  • Embed khi giveaway kết thúc không có người thắng,
  • Tin nhắn phản hồi công bố kết quả,
  • Tin nhắn khi reroll người thắng,
  • Tin nhắn phản hồi khi không có ai thắng.
running
Embed khi Giveaway đang diễn ra
finished
Embed khi Giveaway kết thúc có người thắng
no winner
Embed khi Giveaway kết thúc không có người thắng
no winner reply
Tin nhắn khi không có ai chiến thắng
rolled
Tin nhắn công bố người chiến thắng
rerolled
Tin nhắn khi reroll người chiến thắng

Giveaway Placeholder

Trong quá trình thiết kế tin nhắn, bạn có thể sử dụng các placeholder để hiển thị thông tin động. Các placeholder này sẽ được tự động thay thế bằng giá trị thực khi tin nhắn được gửi.

PlaceholderThông tinVí dụ trả về
{giveaway_prize}
{giveaway_reward}
Phần thưởng của giveawayDiscord Nitro
{giveaway_host}Đề cập người tổ chức giveaway<@906844267870314577>
{giveaway_host_id}ID người tổ chức giveaway906844267870314577
{giveaway_duration}Thời lượng giveaway đã được format theo ngôn ngữ của server1 ngày 2 giờ
{giveaway_remaining}Thời gian còn lại của giveaway (Discord timestamp)<t:1709500000:R>
{giveaway_timestamp}
{giveaway_end_timestamp}
Thời gian kết thúc giveaway (Unix timestamp)1709500000
{giveaway_start_timestamp}Thời gian bắt đầu giveaway (Unix timestamp)1709413600
{giveaway_entrants}Số người đã tham gia giveaway42
{giveaway_winners}
{giveaway_winners_count}
Số lượng người chiến thắng được đặt3
{giveaway_winners_list}
{giveaway_winner_list}
Danh sách người chiến thắng (chỉ khả dụng sau khi kết thúc)<@123>, <@456>, <@789>

Tính năng Giveaway Template

Giveaway Template là công cụ giúp bạn lưu trữ các cấu hình giveaway phức tạp để tái sử dụng nhiều lần mà không cần thiết lập lại từ đầu. Đây là giải pháp lý tưởng cho các server thường xuyên tổ chức giveaway với các yêu cầu và cài đặt tương tự nhau.

Khi tạo một template, bạn có thể thiết lập sẵn các thông số như requirements, blacklists, bypasses, bonus entrants, màu embed, kiểu nút, và emoji. Mỗi server có thể lưu tối đa 10 template khác nhau. Bot sẽ tự động lưu mọi thay đổi bạn thực hiện trên template mà không cần thao tác lưu thủ công, giúp quá trình chỉnh sửa trở nên thuận tiện hơn.

Để sử dụng template khi tạo giveaway mới, bạn có thể chọn template trong menu của lệnh /giveaway setup hoặc truyền trực tiếp vào tham số template của lệnh /giveaway create. Khi áp dụng template, tất cả cài đặt đã lưu sẽ được áp dụng ngay lập tức cho giveaway mới, bao gồm cả requirements, multipliers, và các tùy chọn giao diện.


Cơ chế Bonus Entrants (Multiplier)

Bonus Entrants hay còn gọi là Multiplier là cơ chế cho phép một số thành viên có thêm lượt tham gia giveaway dựa trên các vai trò họ sở hữu. Điều này có nghĩa là người có vai trò được cấu hình bonus sẽ có cơ hội chiến thắng cao hơn so với người tham gia thông thường.

Khi thiết lập bonus entrants, bạn sẽ chỉ định vai trò và số lượt bonus tương ứng. Ví dụ, nếu vai trò Server Booster được cấu hình với 5 bonus entries, một thành viên có vai trò này sẽ có tổng cộng 6 lượt tham gia (1 lượt mặc định cộng 5 lượt bonus). Trong trường hợp thành viên có nhiều vai trò được cấu hình bonus, tất cả các bonus sẽ được cộng dồn với nhau.

Khi hệ thống xác định người chiến thắng, thuật toán sẽ tạo một danh sách chứa ID của tất cả người tham gia hợp lệ. Mỗi người sẽ xuất hiện trong danh sách với số lần tương ứng với tổng số lượt tham gia của họ. Sau đó, danh sách được xáo trộn ngẫu nhiên và hệ thống sẽ chọn người thắng theo thứ tự cho đến khi đủ số lượng người chiến thắng cần thiết. Người đã được chọn sẽ bị loại khỏi các lần chọn tiếp theo để đảm bảo không có người thắng trùng lặp.

Để cấu hình bonus entrants thông qua lệnh /giveaway create, bạn sử dụng tham số multipliers với định dạng role1:bonus1|role2:bonus2. Ví dụ: multipliers:@Booster:5|@VIP:3 sẽ cấp 5 bonus entries cho Booster và 3 bonus entries cho VIP. Nếu sử dụng /giveaway setup hoặc template, bạn có thể cấu hình thông qua giao diện đồ họa trong mục Bonus Entrants.


Các lệnh cài đặt & tạo giveaway

/giveaway setup

Lệnh này sẽ thiết lập một giveaway mới, 1 cách đơn giản và chi tiết

Tham số lệnh (Parameters)

Không có tham số

Ví dụ sử dụng lệnh

Lệnh này sẽ bắt đầu hỏi các thông tin về giveaway. Một menu sẽ hiện ra và bạn sẽ thực hiện chỉnh sửa trên đó.

command
/giveaway setup

/giveaway end

Kết thúc một giveaway hiện có

Tham số lệnh (Parameters)

Bắt buộc:

  • giveaway: Chọn một giveaway đang chạy

Ví dụ sử dụng lệnh

Lệnh này sẽ kết thúc một Giveaway có ID là 1245195068156149786

command
/giveaway end giveaway:1245195068156149786

/giveaway reroll

Reroll một giveaway đã kết thúc

Tham số lệnh (Parameters)

Bắt buộc:

  • giveaway: Chọn một giveaway đã kết thúc

Ví dụ sử dụng lệnh

Lệnh này sẽ reroll một Giveaway có ID là 1245195068156149786

command
/giveaway reroll giveaway:1245195068156149786

/giveaway edit

Chỉnh sửa một giveaway đang chạy

Tham số lệnh (Parameters)

Bắt buộc:

  • giveaway: Chọn một giveaway đang chạy

Ví dụ sử dụng lệnh

Lệnh này sẽ chỉnh sửa một Giveaway có ID là 1245195068156149786

command
/giveaway edit giveaway:1245195068156149786

/giveaway create

Tạo một giveaway nhanh chóng

Tham số lệnh (Parameters)

Bắt buộc:

  • reward: Chỉ định phần thưởng
  • duration: Chỉ định thời lượng theo định dạng ngày ngắn (ví dụ: 10m25s), hoặc số giây (ví dụ: 86400)
  • winners: Chỉ định người chiến thắng

Không bắt buộc:

  • channel: Chỉ định kênh để bắt đầu
  • template: Chọn một template
  • requirements: Chỉ định requirements theo định dạng: role1|role2|...|role(n). Tối đa 15 vai trò
  • blacklists: Chỉ định blacklists theo định dạng: role1|role2|...|role(n). Tối đa 10 vai trò
  • bypasses: Chỉ định bypass requirements dạng: role1|role2|...|role(n). Tối đa 15 vai trò
  • multipliers: Chỉ định số lượt tham gia bonus theo định dạng: role1:bonus1|role2:bonus2|... Tối đa 10 phần thưởng
  • color: Chỉ định màu theo định dạng: #<hex>, hoặc rgb(<số>, <số>, <số>)
  • button_color: Chọn màu nút
  • button_emoji: Chỉ định biểu tượng cảm xúc tùy chỉnh của máy chủ hoặc mã Unicode biểu tượng cảm xúc
  • requires_join_before: Chỉ định thời lượng theo định dạng ngày ngắn (ví dụ: 10m25s), hoặc số giây (ví dụ: 86400)
  • image: Chỉ định URL hình ảnh

Ví dụ sử dụng lệnh

Đơn giản nhất: Tạo 1 Giveaway về Nitro với 1 Người chiến thắng, với thời gian là 10 phút

command
/giveaway create reward:nitro duration:10m winners:1

Phức tạp hơn: Tạo 1 Giveaway về Nitro với 2 Người chiến thắng, với thời gian là 1 ngày, tại kênh #giveaway. Kèm theo đó là áp dụng sẵn template Giveaway Nitro.

command
/giveaway create reward:nitro duration:10m winners:1 channel:#giveaway template:Giveaway Nitro

/giveaway template edit

Chỉnh sửa một template

Tham số lệnh (Parameters)

Bắt buộc:

  • template: Chọn một template

Ví dụ sử dụng lệnh

Lệnh này sẽ tạo một template có tên là Giveaway Nitro. Một menu sẽ hiện ra và bạn sẽ thực hiện chỉnh sửa trên đó.

command
/giveaway template edit template:Giveaway Nitro

/giveaway template create

Tạo một template

Tham số lệnh (Parameters)

Bắt buộc:

  • name: Chỉ định tên template

Không bắt buộc:

  • description: Chỉ định mô tả template

Ví dụ sử dụng lệnh

Lệnh này sẽ tạo một template có tên là Giveaway Nitro với miêu tả là Giveaway Nitro dành cho Booster. Một menu sẽ hiện ra và bạn sẽ thực hiện chỉnh sửa trên đó.

command
/giveaway template create name:Giveaway Nitro description:iveaway Nitro dành cho Booster

/giveaway template delete

Xóa một template

Tham số lệnh (Parameters)

Bắt buộc:

  • template: Chọn một template

Ví dụ sử dụng lệnh

Lệnh này sẽ xóa template có tên là Giveaway Nitro

command
/giveaway template delete template:Giveaway Nitro

/giveaway messages

Tùy chỉnh các tin nhắn hiển thị trong Giveaway

Tham số lệnh (Parameters)

Không có tham số

Ví dụ sử dụng lệnh

command
/giveaway messages