Jak skonfigurować whitelistę Discord dla swojego serwera FiveM (…

Jak skonfigurować whitelistę Discord dla swojego serwera FiveM (…

Publiczność: FiveM właściciele serwerów i deweloperzy
Trudność: Łatwy → Średniozaawansowany
Wynik: Lista dozwolonych oparta na rolach korzystająca z ról Discord (z opcjonalną czarną listą), minimalna konserwacja, jasne informacje zwrotne dla graczy.

Uwaga dotycząca wersji: Otwarte repozytorium FAXES/DiscordWhitelist jest utrzymywane przez społeczność i ostatnio aktualizowane w 2022 roku. Nadal działa na wielu serwerach. Istnieje utrzymywana wersja komercyjna; jeśli potrzebujesz wsparcia\/SLA, rozważ ją. Ten przewodnik dotyczy darmowej wersji GitHub.


TL;DR

  1. Utwórz Discord Bot → włącz Server Members Intent → zaproś go na swój Discord.
  2. Skopiuj swoje ID Gildii (Serwera) I Role ID(s).
  3. Pobierz: FAXES\/DiscordWhitelist on GitHub → umieść go w resources/ → skonfiguruj server.js.
  4. Dodaj ensure DiscordWhitelist do server.cfg (lub uruchom w txAdmin).
  5. Test: dołącz bez roli (zablokowany) → dodaj rolę → dołącz ponownie (dozwolony).

Powiązane poradniki:
FiveM Whitelist — Kompletny przewodnik (txAdmin, Scripts, DB)
Jak utworzyć poziomy darowizn Discord


Dlaczego whitelistowanie oparte na Discord?

  • Dynamiczny: Udzielaj\/odmawiaj dostępu poprzez dodawanie\/usuwanie roli Discord — bez edycji ACE ani DB.
  • Skalowalny: Mods mogą zarządzać dostępem z Discord na urządzeniach mobilnych.
  • Audytowalne: Historia ról + logi moderacji pokazują, kto komu udzielił dostępu.

Wymagania wstępne

  • Serwer Discord (jesteś Adminem/Właścicielem).
  • Serwer FiveM z txAdmin lub ręczną kontrolą.
  • Gracze muszą mieć uruchomioną aplikację desktopową Discord podczas łączenia (aby FiveM ujawniła discord: identyfikator).

Krok 1 — Utwórz bota Discord i włącz intencje

  1. Przejdź do folderu Portalu Dewelopera DiscordNowa Aplikacja → nazwij go (np., FiveMX Whitelist Bot).
  2. Dodaj bota (zakładka Bot) → Resetuj token → skopiuj Token bota (przechowuj bezpiecznie).
  3. W Uprzywilejowane intencje bramy, włącz Server Members Intent. (Intencja obecności nie jest wymagana.)
  4. Zaproś bota do swojego Discord: OAuth2 → Generator URL → Zakresy: bot; Uprawnienia: minimalne (mogą być żadne poza dołączeniem). Użyj wygenerowanego URL i dodaj go do swojej gildii.

Bezpieczeństwo: Traktuj token bota jak hasło. Nie nie zatwierdzaj go w Git ani nie udostępniaj na zrzutach ekranu. Obracaj, jeśli wycieknie.


Krok 2 — Uzyskaj swoje identyfikatory (serwer i role)

  • Na Discordzie → Ustawienia użytkownika → Zaawansowane → Tryb deweloperski: WŁĄCZONY.
  • Kliknij prawym przyciskiem myszy nazwa serweraKopiuj ID serwera.
  • Ustawienia serwera → Role → kliknij prawym przyciskiem myszy rolę, której użyjesz jako białą listę (np., Whitelisted) → Kopiuj ID roli.
  • (Opcjonalnie) Skopiuj identyfikatory dla wszystkich ról, które chcesz czarna lista (np., Banned).

Miej to pod ręką:

  • GUILD_ID = 123456789012345678
  • WHITELIST_ROLE_IDS = ["111111111111111111", "222222222222222222"]
  • BLACKLIST_ROLE_IDS = ["333333333333333333"]

Krok 3 — Pobierz i zainstaluj zasób

  1. Pobierz ZIP z FAXES/DiscordLista dozwolonych (GitHub).
  2. Wyodrębnij na swój serwer w:
    resources/[discord]/DiscordWhitelist
  3. Sprawdź, czy folder zawiera co najmniej:
    • fxmanifest.lua
    • server.js
    • package.json

server.cfg (lub txAdmin Przepis / Startup):

# Start after your identifier providers and before join‑logic that depends on it
ensure DiscordWhitelist

W txAdmin → Zasoby, zaznacz DiscordWhitelist aby uruchomić przy starcie (jeśli zarządzasz zasobami przez UI).

Planujesz swoją strategię dostępu? Przeczytaj nasz obszerniejszy przewodnik: FiveM Whitelist — Kompletny przewodnik (txAdmin, Scripts, DB) po alternatywy (ACE, DB, hybrydowe) i kiedy użyć każdego z nich.


Krok 4 — Skonfiguruj server.js

Otwórz resources/[discord]/DiscordWhitelist/server.js i ustaw blok konfiguracyjny. Plik może już udostępniać prosty obiekt konfiguracyjny — dostosuj wartości odpowiednio. Typowa konfiguracja wygląda następująco:

// DiscordWhitelist configuration — example
const config = {
 botToken: "PASTE_YOUR_DISCORD_BOT_TOKEN_HERE",
 guildId: "123456789012345678", // Your server (guild) ID

 // Players must have at least ONE of these role IDs to join
 whitelistRoles: [
 "111111111111111111", // Whitelisted
 // "222222222222222222", // Staff (optional)
 ],

 // If a player has ANY of these roles, reject the connection
 blacklistRoles: [
 // "333333333333333333", // Banned
 ],

 // Cache fetched role data to reduce Discord API calls (seconds)
 cacheMaxTime: 90,

 // Deferral messages
 messages: {
 noDiscord: "Open Discord and rejoin. Your Discord app must be running.",
 notWhitelisted: "You are not whitelisted. Join our Discord: discord.gg/yourinvite",
 blacklisted: "Access denied. Please contact staff.",
 welcome: "Welcome — you are verified. Loading…"
 },
};

Wskazówka dotyczącą monetyzacji: Jeśli twój serwer używa przywilejów, połącz to z Discord Donation Tiers aby zautomatyzować korzyści oparte na rolach dla supporterów/darczyńców.

Zapisz plik.


Krok 5 — Restart i test

  1. Zrestartuj tylko zasób lub cały serwer: txAdmin → Restart resource lub konsola refresh następnie restart DiscordWhitelist.
  2. Test negatywny: Spróbuj połączyć się bez rola białej listy → powinieneś zobaczyć komunikat o odroczeniu i zostać wyrzucony.
  3. Test pozytywny: Nadaj sobie rolę whitelist → rozłącz się → powinieneś zostać wpuszczony.

Opcjonalnie: Wiele ról i pominięcie personelu

  • Dodaj kilka ról białej listy aby umożliwić wiele lejów sprzedażowych (np., Donator, Police, EMS).
  • Dodaj role na czarnej liście for hard blocks regardless of whitelist (e.g., Banned).
  • Możesz uwzględnić rola administratora w whitelistRoles aby zweryfikować dostęp dla administratorów.

Wskazówki operacyjne

  • Automatyzacja: Przypisz rolę Discord do swojego formularze zgłoszeniowe Lub ticket approvals (np. za pomocą bota, Formularze Google → webhook → dodanie roli).
  • Doświadczenie gracza: Przypnij #how-to-whitelist post z ✅ wymaganiami roli i zaproszeniem na serwer.
  • Moderacja: Zapisuj zmiany ról w prywatnym #mod-logs kanał.

Rozwiązywanie problemów

“Bot offline” lub nigdy nie aktualizuje ról

  • Token nieprawidłowy lub bot nie został zaproszony do poprawnej gildii.
  • Server Members Intent nie włączono.
  • Firewall blokuje wychodzące połączenia HTTPS z hosta gry (zezwalaj na Discord API).

“Nie znaleziono identyfikatora Discord” / wszyscy zablokowani

  • Gracze muszą uruchomić Discord desktop app przed uruchomieniem FiveM. Poproś ich o ponowne uruchomienie Discord, a następnie FiveM.

Zmiany ról obowiązują dopiero po restarcie

  • Zmniejsz cacheMaxTime do 30–60 sekund.
  • Jeśli ustawisz go bardzo nisko i nadal widzisz opóźnienia, sprawdź limity żądań i unikaj częstego restartowania.

Błąd 403/Uprawnienia podczas pobierania członków gildii

  • Upewnij się, że bot znajduje się w docelowej gildii I Server Members Intent is enabled.
  • Bot robi nie potrzebne uprawnienia administratora do odczytu ról członków.

Wysokie użycie API / ograniczanie szybkości

  • Zwiększ cacheMaxTime. Unikaj masowego wyrzucania/restartów, które spamują wywołania API.

Najlepsze praktyki bezpieczeństwa

  • Przechowuj Token bota poza kontrolą wersji. Jeśli hostujesz konfiguracje samodzielnie, rozważ odczytywanie ich ze zmiennej środowiskowej lub konwaru server.cfg, a nie w postaci zwykłego tekstu zatwierdzonego w Git.
  • Rotate token, jeśli zostanie ujawniony.
  • Ogranicz, kto ma dostęp do zapisu zasobu.

Odinstaluj / Wyłącz

  • Usuń ensure DiscordWhitelist z server.cfg (lub wyłącz w txAdmin → Zasoby).
  • Usuń folder z resources/ jeśli go wycofujesz.

Często zadawane pytania

Czy gracze potrzebują uruchomionego Discord?
Yes. Without the discord: identyfikator, skrypt nie może zweryfikować ról.

Jakich intencji potrzebuję?
Tylko Server Members Intent.

Czy mogę używać wielu ról whitelist?
Tak. Dostęp jest przyznawany, jeśli użytkownik ma dowolny z wymienionych ról.

Czy mogę twardo odmówić pewnych ról?
Yes. Add them to blacklistRoles.

Przestało działać po zmianie ról.
Niższy cacheMaxTime, a następnie przetestuj ponownie. Upewnij się, że bot jest online z poprawnym tokenem i serwerem gildii.

Czy istnieje utrzymywana wersja?
Tak. Istnieje komercyjna, aktywnie utrzymywana edycja, jeśli potrzebujesz aktualizacji/wsparcia.


Dodatek — Przykład server.cfg

# Discord whitelist
ensure DiscordWhitelist

# (Optional) put related Discord resources here as a block
# ensure discord_perms
# ensure discordrolesync

Appendix — Example Player Messaging (Deferrals)

Utrzymuj wiadomości krótkie i konkretne:

messages: {
 noDiscord: "Open Discord and rejoin. Your Discord app must be running.",
 notWhitelisted: "Not whitelisted. Apply in #how-to-whitelist → discord.gg/yourinvite",
 blacklisted: "Access denied. Contact staff via ticket.",
 welcome: "Verified — loading city…"
}

Dziennik zmian (widok edytora)

  • v1.1 — Dodano naturalne linki wewnętrzne do Poziomów Darowizn, FiveM Kompletny Przewodnik po Whitelist i GitHub pobierania.
  • v1.0 — Przewodnik początkowy: tworzenie bota, intencje, identyfikatory, instalacja, konfiguracja, testowanie, FAQ.