Wielofunkcyjny bot Discord napisany w Javie, stworzony na potrzeby zarządzania serwerem społecznościowym i deweloperskim. Aplikacja opiera się na bibliotece JDA (Java Discord API) i wykorzystuje bazę danych MySQL do trwałego przechowywania logów oraz informacji o zgłoszeniach użytkowników.
- Rozbudowany system Ticketów (Zgłoszeń): Interaktywne panele tworzone za pomocą przycisków (Buttons) i menu wyboru (Select Menus). Obsługa różnych kategorii: problemy ogólne, zapytania sklepowe oraz system rekrutacji (aplikacje na Administratora/Developera).
- Zarządzanie użytkownikami (Welcome System): Automatyczne przypisywanie ról nowym użytkownikom oraz generowanie wiadomości powitalnych typu Embed.
- Slash Commands: Pełne wsparcie dla interakcji
/, w tym komendy administracyjne (/purge,/setup), informacyjne (/status,/invite) oraz deweloperskie (/databaseoperations). - Dynamiczne Wiadomości Embed: Konfigurowalne szablony dla regulaminu, cenników, statusów rekrutacji i ogłoszeń (Changelog).
- Logowanie zdarzeń (MySQL): Zapisywanie informacji o otwarciu i zamknięciu ticketów z przypisaniem do konkretnych ID użytkowników i kanałów.
- Moduł Socket Server: Wbudowany prosty serwer TCP pozwalający na dwukierunkową komunikację z zewnętrznymi usługami/klientami.
- Java 18
- JDA (Java Discord API) 5.0.0-beta.13
- MySQL Connector (8.0.33)
- Jackson Databind (do parsowania konfiguracji JSON)
- SLF4J (do logowania działania aplikacji)
- Maven (zarządzanie zależnościami)
-
Klonowanie repozytorium
git clone https://github.com/Darsonn/discordbot-dd.git cd discordbot-dd -
Konfiguracja Bazy Danych Bot wymaga aktywnego serwera MySQL.
- Stwórz bazę danych o nazwie
darsonndevelopmentna domyślnym porcie3306. - Zaimplementuj strukturę tabel, ze szczególnym uwzględnieniem tabeli
tickets.
- Stwórz bazę danych o nazwie
-
Plik konfiguracyjny W katalogu
src/main/resources/upewnij się, że posiadasz poprawnie uzupełniony plikconfig.json. Schemat pliku:{ "serverName": "Twoja Nazwa Serwera", "welcomeChannelID": "ID_KANALU", "defaultMemberRoleID": "ID_ROLI", "ticketSystemCategoryID": "ID_KATEGORII", "ticketChannelID": "ID_KANALU_TICKET", "changelogRoleID": "ID_ROLI", "changelogChannelID": "ID_KANALU", "devTeamRoleID": "ID_ROLI" } -
Konfiguracja Discord Developer Portal Zanim uruchomisz bota, upewnij się, że w portalu deweloperskim Discorda włączyłeś wymagane intencje (Privileged Gateway Intents):
GUILD_MEMBERSMESSAGE_CONTENT
Aby skompilować i uruchomić bota, użyj narzędzia Maven.
Uwaga: Token bota musi zostać przekazany jako pierwszy argument startowy (args[0]) podczas uruchamiania aplikacji w klasie Main.java.
mvn clean install
java -jar target/darsonndevelopmentbot-1.0-SNAPSHOT.jar <TWOJ_TOKEN_BOTA>/setup <opcja>- Generuje wiadomości Embed dla konkretnych modułów (Rules, Tickets, Shop Info, Status roles, Price list, itd.). Wyłącznie dla uprawnionych./purge <ilość>- Usuwa wskazaną liczbę wiadomości z kanału (wymaga potwierdzenia interaktywnym przyciskiem)./changelog- Pobiera ostatnią wiadomość i formatuje ją jako oficjalne ogłoszenie zmian na kanale changelog./databaseoperations- Pozwala na zarządzanie bazą z poziomu Discorda (np. czyszczenie bazy ze starych ticketów, sprawdzanie połączenia)./status- Zwraca PING bramki sieciowej bota (Gateway) oraz weryfikuje połączenie z bazą MySQL.