Na tej stronie

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

  1. /register character zgłasza postać z Tibii i daje kod. Wklej go w polu „Comment" na tibia.com.
  2. /register verify sprawdza kod przez TibiaData i nadaje rangę. Nick na Discordzie musi zgadzać się z nazwą postaci.
  3. /booking add from:21:00 to:23:30 w kanale spota rezerwuje przedział (godziny w czasie serwera Tibii, Europe/Berlin). Opcje spot i day pozwalają wskazać inny spot lub dzień.

Komendy dla każdego

KomendaCo robi
/register characterzgłasza postać i daje kod do wklejenia na tibia.com
/register verifysprawdza kod i nadaje rangę
/settings languagejęzyk odpowiedzi bota dla Ciebie (pl lub en)

Rezerwacje

Dostępne dla zweryfikowanych graczy.

KomendaCo robi
/booking addrezerwuje spot na przedział czasu
/booking updatezmienia albo skraca własną rezerwację
/booking cancelanuluje własną rezerwację
/booking listpokazuje Twoje trwające i przyszłe rezerwacje
/booking show-freepokazuje 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.

KomendaCo robi
/booking daily addustawia stałą rezerwację: codziennie albo w wybrane dni tygodnia
/booking daily listpokazuje Twoje daily i dni pominięte z powodu kolizji
/booking daily cancelusuwa daily razem z jego przyszłymi rezerwacjami

Dla administratora

Komendy zarządzające

KomendaKtoCo robi
/admin cancelrola zarządzającaanuluje dowolną rezerwację
/admin verifyrola zarządzającaręczna weryfikacja, gdy TibiaData nie działa
/config …rola konfigurującawszystkie ustawienia bota (poniżej)

/admin i /config są domyślnie ukryte dla osób bez uprawnień administratora. Bot i tak sprawdza uprawnienia.

Ustawienia /config

PodkomendaZnaczenie
categories add|removekategorie, których kanały są spotami (może być kilka)
verified-roleranga po weryfikacji (z rolą ustawia, bez roli zdejmuje)
manage-rolerola zarządzająca rezerwacjami
config-rolerola, która może konfigurować bota
daily allowed:truewłącza daily (domyślnie wyłączone)
booking-windowjak daleko do przodu można rezerwować (poniżej)
daily-limitlimit czasu gracza na spot na dobę (domyślnie 3,5 godz.)
multiple-blocksczy gracz może mieć kilka rezerwacji na spot i dobę
conflictsczy dopuścić nakładanie się rezerwacji różnych graczy
show, resetpodglą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:false zostawia graczowi jedną rezerwację na spot i dobę.
  • /config conflicts allowed:true dopuszcza 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. W portalu ustaw „Interactions Endpoint URL" na adres Workera z końcówką /interactions.
  6. Na serwerze jako administrator: /config categories add, /config verified-role, opcjonalnie role zarządzająca i konfigurująca oraz język postów.
Token bota jest sekretem: trzymaj go wyłącznie jako sekret Cloudflare i w lokalnym pliku, którego nie wrzucasz do repozytorium.