Dokumentacja
Dla graczy: jak rezerwować. Dla administratorów: jak skonfigurować zasady. Nazwy i opisy komend w Discordzie są po angielsku, odpowiedzi bota domyślnie po polsku (/settings language zmienia język).
Dla gracza
/register characterzgłasza postać z Tibii i daje kod. Wklej go w polu „Comment" na tibia.com./register verifysprawdza kod przez TibiaData i nadaje rangę. Nick na Discordzie musi zgadzać się z nazwą postaci./booking add from:21:00 to:23:30w kanale spota rezerwuje przedział (godziny w czasie serwera Tibii, Europe/Berlin). Opcjespotidaypozwalają wskazać inny spot lub dzień.
Komendy dla każdego
| Komenda | Co robi |
|---|---|
/register character | zgłasza postać i daje kod do wklejenia na tibia.com |
/register verify | sprawdza kod i nadaje rangę |
/settings language | język odpowiedzi bota dla Ciebie (pl lub en) |
Rezerwacje
Dostępne dla zweryfikowanych graczy.
| Komenda | Co robi |
|---|---|
/booking add | rezerwuje spot na przedział czasu |
/booking update | zmienia albo skraca własną rezerwację |
/booking cancel | anuluje własną rezerwację |
/booking list | pokazuje Twoje trwające i przyszłe rezerwacje |
/booking show-free | pokazuje spoty wolne w całym podanym przedziale |
Daily, stałe rezerwacje
Dostępne po włączeniu przez administratora. Daily nie blokuje spotu na stałe i nie ma pierwszeństwa: bot składa zwykłą rezerwację na dany dzień, gdy ten dzień wchodzi w okno rezerwacji. Jeśli ktoś zdążył wcześniej, ten dzień przepada, a Ty widzisz to na liście. Anulowanie jednej wygenerowanej rezerwacji (/booking cancel) usuwa tylko ten dzień, a daily zostaje.
| Komenda | Co robi |
|---|---|
/booking daily add | ustawia stałą rezerwację: codziennie albo w wybrane dni tygodnia |
/booking daily list | pokazuje Twoje daily i dni pominięte z powodu kolizji |
/booking daily cancel | usuwa daily razem z jego przyszłymi rezerwacjami |
Dla administratora
Komendy zarządzające
| Komenda | Kto | Co robi |
|---|---|---|
/admin cancel | rola zarządzająca | anuluje dowolną rezerwację |
/admin verify | rola zarządzająca | ręczna weryfikacja, gdy TibiaData nie działa |
/config … | rola konfigurująca | wszystkie ustawienia bota (poniżej) |
/admin i /config są domyślnie ukryte dla osób bez uprawnień administratora. Bot i tak sprawdza uprawnienia.
Ustawienia /config
| Podkomenda | Znaczenie |
|---|---|
categories add|remove | kategorie, których kanały są spotami (może być kilka) |
verified-role | ranga po weryfikacji (z rolą ustawia, bez roli zdejmuje) |
manage-role | rola zarządzająca rezerwacjami |
config-role | rola, która może konfigurować bota |
daily allowed:true | włącza daily (domyślnie wyłączone) |
booking-window | jak daleko do przodu można rezerwować (poniżej) |
daily-limit | limit czasu gracza na spot na dobę (domyślnie 3,5 godz.) |
multiple-blocks | czy gracz może mieć kilka rezerwacji na spot i dobę |
conflicts | czy dopuścić nakładanie się rezerwacji różnych graczy |
show, reset | podgląd ustawień i powrót do domyślnych |
Zmiana ustawień dotyczy kolejnych rezerwacji, istniejące zostają. Do czasu skonfigurowania bota działa tylko /config.
Okno rezerwacji
/config booking-window rolling [hours](domyślnie 24): rezerwacja musi się zmieścić w wybranej liczbie godzin do przodu (1 do 48)./config booking-window server-save: okno kończy się o najbliższym server save (10:00 czasu serwera). Rezerwacja musi skończyć się najpóźniej o nim, więc o 9:00 można zarezerwować najwyżej do 10:00, a po 10:00 do 10:00 następnego dnia. W tym trybie limit dobowy i „jeden blok na dobę" liczą dobę od server save do server save, a daily przechodzące przez 10:00 nie jest przyjmowane.
Odmowa z powodu okna podaje, do której godziny można rezerwować.
Limity i konflikty
- Gracz nie może mieć dwóch rezerwacji w pokrywającym się czasie, na żadnych spotach. Ta reguła jest stała i dotyczy też daily.
- Na jednym spocie gracz może mieć w ciągu doby najwyżej tyle czasu, ile wynosi limit (
/config daily-limit hours:3.5). /config multiple-blocks allowed:falsezostawia graczowi jedną rezerwację na spot i dobę./config conflicts allowed:truedopuszcza nakładanie się rezerwacji różnych graczy. Post pokazuje wtedy numer kolejności złożenia[n]i ⚔️ między wpisami. Bot nie wybiera zwycięzcy, ustalają to gracze.
Uruchomienie własnej instancji
Bot działa na Cloudflare Workers z bazą D1.
- W portalu deweloperskim Discorda utwórz aplikację i bota. Włącz „Server Members Intent": bot co 15 minut porównuje graczy z listą członków serwera.
- Dodaj bota na serwer z uprawnieniami: zarządzanie rolami, czytanie kanałów, wysyłanie i edycja wiadomości. Rola bota musi być wyżej niż ranga po weryfikacji.
- Zainstaluj zależności (
npm install), utwórz bazę (npx wrangler d1 create utevolux) i uzupełnij konfigurację Workera: id bazy, id aplikacji, klucz publiczny i id serwera. - Ustaw sekret tokenu (
npx wrangler secret put DISCORD_BOT_TOKEN), zastosuj migracje (npx wrangler d1 migrations apply utevolux --remote), zarejestruj komendy (npm run register-commands) i wdróż (npx wrangler deploy). - W portalu ustaw „Interactions Endpoint URL" na adres Workera z końcówką
/interactions. - Na serwerze jako administrator:
/config categories add,/config verified-role, opcjonalnie role zarządzająca i konfigurująca oraz język postów.