Hướng dẫn cài đặt rơle trong discord

# Hướng dẫn sử dụng bot TLE [TLE](https://codeforces.com/blog/entry/68927) là một con bot Discord cho phép thao tác với tài khoản Codeforces. Mọi lệnh (command) để sử dụng bot `TLE` đều bắt đầu bằng `;`. ## Link tài khoản Codeforces Để sử dụng con bot `TLE`, trước tiên bạn cần link tài khoản Codeforces với tài khoản Discord của bạn thông qua bot. Sử dụng command `;handle identify ` để link tài khoản Codeforces. Ví dụ: `;handle identify darkkcyan` Khi nhận được lệnh, `TLE` sẽ hỏi bạn submit một bài tập trên Codeforces **do `TLE` chọn**, và submit cần phải có trạng thái là **Compilation Error** (không dịch được) trong vòng **60 giây**. Nếu sau **60 giây** có một lần nộp **Compilation Error**, tài khoản Codefoces sẽ được link với tài khoản Discord của bạn. Nếu chưa thành công, có thể thử lại command trên. Khi link tài thành công, `TLE` sẽ thêm role cho bạn tương ứng với danh hiệu của bạn trên Codeforces. ## Bỏ link tài khoản Codeforces Hãy liên hệ với admin nếu như bạn có nhu cầu bỏ link tài khoản Codeforces của bạn. Tuy nhiên hãy hạn chế làm điều này. ## Tính năng _thụ động_ của `TLE` Sau mỗi một contest trên Codeforces, tất cả các tài khoản trong server có liên kết với tài khoản Codeforces sẽ được update lại role tương ứng với danh hiệu trên Codeforces. Như vậu role (màu) của bạn lúc nào cũng sẽ gần với màu nick của bạn trên Codeforces. ## Luyện tập với `TLE` `TLE` có tính năng gới ý bài tập với hai command `;gimme` và `;gitgud`. Ngoài ra `TLE` còn có command `;mashup` và `;vc` giúp gợi ý contest trên Codeforces cho việc luyện tập. ### Command `;gimme` Với command `;gimme`, `TLE` sẽ gợi ý bài tập với chủ đề bất kì, và rating của bài sẽ lớn hơn gần với rating của bạn nhất. Để chọn chủ đề cho bài, có thể thêm và bớt tag với cú pháp: `;gimme +tag1 +tag2 ~tag3 ~tag4`. Thêm dấu `+` để thêm tag, và `~` để loại tag. Ví dụ: - `;gimme +dp` - gợi ý một bài với chủ đề `dp` - `;gimme ~trees` - gới ý bài **không** có chủ đề `trees` - `;gimme +strings ~bitmasks` - gới ý bài có chủ đề `strings` nhưng không có chủ đề `bitmasks`. Ngoài ra có thể thêm chỉ số rating của bài tập vào cuối để điều chỉnh rating của bài. Ví dụ: - `;gimme 800` - gới ý một bài có rating là `800` - `;gimme +dp 1000` - gợi ý một bài có chủ đề `dp` với rating là `1000`. ### Command `;gitgud` Đây cũng là command gợi ý bài tập. Tuy nhiên command này khác với `;gimme` là khi bạn giải được bài tập mà `TLE` cho bạn, bạn sẽ **được tính điểm**. Với command `;gitgud`, `TLE` sẽ gợi ý bài tập với chủ đề bất kì, và rating của bài sẽ lớn hơn gần với rating của bạn nhất. Tuy nhiên bạn không thể _bỏ qua_ bài này nếu trong 1 giờ tiếp theo bạn chưa giải được. Khi giải được bài, bạn có thể sử dụng command `;gotgud` để thông bào với `TLE` rằng bạn đã giải được bài. Khi đó `TLE` sẽ cộng điểm cho bạn, và bạn có thể tiếp tục `;gitgud`. Nếu trong 1 giờ tiếp theo, bạn chưa có hướng giải và muốn bỏ qua bài, sử dụng command `;nogud`. Để xem các bài đã giải với `;gitgud`, sử dụng command `;gitlog`. Để xem điểm `gitgud` của top các bạn trong server, sử dụng command `;gudgitter`. Ngoài `;gitgud`, bạn có thể thêm 1 số $delta$ vào sau lệnh thuộc các giá trị `[-300, -200, -100, 0, 100, 200, 300]`. Khi đó thay vì gợi ý bài có rating gần với rating của bạn, `TLE` sẽ gợi ý bài có rating gần với rating của bạn cộng với $delta$. Mặc định khi thiếu số $delta$, $delta$ sẽ là $0$ Ví dụ `;gitgud 200` sẽ gợi ý bài có rating cao hơn rating của bạn khoảng 200. Số $x$ càng cao, điểm của bạn càng lớn. Dưới đây là bảng điểm tương ứng: | delta | -300 | -200 | -100 | 0 | +100 | +200 | +300 | | -- |::| | | - | -- | | | | points | 2 | 3 | 5 | 8 | 12 | 17 | 23 | ### Command `;vc` Với command `;vc`, `TLE` sẽ chọn giúp bạn một vài contest trên Codeforces để các bạn luyện tập (có thể là với hình thức thi ảo). Command `;vc` cũng nhận thêm một hoặc nhiều nick Codeforces để gợi ý contest cho nhiều người. Bạn có thể sử dụng tính năng này để luyện tập cùng các bạn. Ví dụ `;vc darkkcyan ta4p` sẽ gợi ý các contest luyện tập cho tài khoản Codeforces `darkkcyan` và `ta4p`. ### Command `;mashup` Cũng tương tự với `;vc`, `;mashup` cũng gới ý contest cho bạn và bạn của bạn. Tuy nhiên command này sẽ chọn ra những bài ở contest khác nhau với độ khó phù hợp để gộp lại làm một contest luyện tập. ## Command `;duel` - thi đấu với nhau Với command `;duel`, bạn có thể thử thách bạn của bạn với một bài toán trên Codeforces do `TLE` chọn. Cũng giống trên Codeforces, `;duel` cũng có tính rating bởi bot `TLE`. Người chiến thắng (giải được bài nhanh hơn), sẽ được cộng rating, và người thua sẽ bị giảm rating. Để sử dụng tính năng `;duel`, bạn cần thực hiện các bước sau ### Đăng ký tài khoản Hiện tại trong VNOI server, bạn cần hỏi admin đăng kí tài khoản của bạn để sử dụng được tính năng này. ### Thách đấu Để thách đấu một ai đó, sử dụng command sau `;duel challenge @nickDiscord ` Người được thách đấu cần hồi đáp lại thách đấu. Nếu chấp thuận, người được thách đầu cần sử dụng command `;duel accept`, và ngược lại cần sử dụng comamnd `;duel decline`. ### Thi đấu Khi duel được chấp thuận, `TLE` sẽ chọn ra một bài tập ngẫu nhiên mà hai người đều chưa được giải với rating đã được cho. Người nào giải xong đầu tiên cần nhanh tay gõ command `;duel complete`. Lúc đó `TLE` sẽ kiểm tra xem có đúng là đã giải được chưa, và phân thắng bại khi đã xác nhận. ### Bỏ thi đấu Nếu như cả hai người chơi đều không muốn tiếp tục, sau 15 phút kể từ lúc chấp thuận, có thể dùng command `;duel draw`, coi như hai thí sinh _hòa nhau_ và kết thúc trận đầu. ### Lấy thông tin về duel `;duel rating` - lấy rating duel của cá nhân `;duel rating ` - lấy rating duel của ai đó ## `;plot` - vẽ biểu đồ Tính năng `;plot` cho phép vẽ biểu đồ về thông tin của một vài tài khoản Codeforces nào đó. Ví dụ - `;plot rating` - vẽ biểu đồ rating của bạn - `;plot rating a b c` - vẽ biểu đồ rating của các tài khoản Codeforces `a`, `b` và `c` - `;plot distrib` - vẽ biểu đồ phân phối rating của server - `;plot howgud` - vẽ biểu đồ số lượng bài tập các bạn đã giải được với `;gitgud`. ## Các tính năng khác Các tính năng khác có được liệt kê bởi bot `TLE` thông qua command `;help`. `;help ` sẽ hiển thị rõ hơn tính năng của command.