LoginPlugin
System logowania dla serwera offline.
- Dostępne pliki
- 3
- Obsługiwane wersje
- 0
- Najnowszy plik
- 28.09.2012
OPIS
Minecraft... Co za niesamowita gra... Tylko gdy serwer nie działa i gdy nie możesz już grać... Cóż, ten plugin może być rozwiązaniem!
Gdy gracz dołączy do twojego serwera, nie będzie mógł nic robić, jeśli się nie zaloguje (przy użyciu komendy /login).
Wykorzystuje bazę danych MySQL i spersonalizowany proces szyfrowania. W ten sposób możesz stworzyć stronę internetową, na której użytkownicy będą się logować, i używać tego samego hasła do logowania na twój serwer Minecraft. Możesz także użyć tego pluginu, aby pozwalać graczom grać tylko wtedy, gdy mają konto na twoim serwerze. Dzięki temu możesz skuteczniej filtrować graczy.
STRUKTURA BAZY DANYCH
- Kolumna <ColUsername>
- Kolumna <ColPassword>
- Dowolną inną kolumnę, jaką chcesz, pod warunkiem że opiszesz ją w formule szyfrowania.
Gdzie ColUsername zawiera nazwę użytkownika, a ColPassword zawiera zaszyfrowane hasło.
KWESTIA FORMUŁY
Ponieważ każdy może chcieć użyć innego rodzaju procesu szyfrowania, mój pomysł polega na zapewnieniu wyboru. Oto jak to działa :
Masz obecnie do dyspozycji tylko kilka funkcji:
- MD5, MD2 => wymagają 1 parametru
- SHA1, SHA256, SHA384, SHA512 => wymagają 1 parametru
- CONCAT => wymagają 2 lub więcej parametrów
- DB => wymagają 1 parametru
- PASS => nie wymagają żadnego parametru
Każda funkcja zwróci łańcuch znaków, więc możesz je łączyć ze sobą. Oto kilka przykładów :
- MD5(PASS()) => zwróci skrót MD5 hasła podanego przez gracza.
- MD5(CONCAT("salt",PASS())) => połączy podane hasło z ciągiem "salt" i wygeneruje skrót MD5 z otrzymanego wyniku
- SHA1(CONCAT(PASS(),MD5(DB("username")))) => utworzy skrót MD5 z kolumny "username" z bazy danych, połączy go z podanym hasłem i utworzy skrót SHA1 z wyniku
- A tak dalej...
Wynik tej formuły zostanie porównany z zawartością <ColPassword> w bazie danych. Jeśli będzie ten sam ciąg znaków, gracz będzie mógł grać.
UWAGA : Musisz być ostrożny i nie wstawiać żadnych spacji w formule, z wyjątkiem ciągu znaków.
DO ZROBIENIA
- Dodaj obsługę bazy danych SQLite;
- Utwórz domyślny plik konfiguracyjny poza archiwum.
- Dodaj więcej funkcji do formuły haszującej;
- Powiąż akcję z każdym zdarzeniem (nieudana próba logowania, logowanie zakończone powodzeniem, ...) tak aby baza danych mogła prowadzić zapis tego.
- Dodaj /register dla osób, które nie chcą logować się online (operator powinien móc włączyć/ wyłączyć to);
- Dodaj /valid-request dla operatora, aby zweryfikować prośbę o konto;
- Dodaj komendę /forgot-account;
- Dodaj komendy /login-enable i /login-disable;
- Dodaj komendę /let-play, która pozwala graczowi grać przez określony czas (wymaga uprawnień operatora);
- ... (jakieś sugestie?)
KOMENDA
- /login <password> - Spróbuje zalogować gracza przy użyciu jego pseudo i podanego hasła.
UPRAWNIENIA
- login.login
INSTALACJA
- Pobierz plik "LoginPlugin.jar"
- Edytuj "config.yml" w pliku LoginPlugin.jar który pobrałeś
- Skopiuj archiwum do folderu "plugins/"
- Restartuj swój serwer
WERSJE
- v0.1 - pierwsze wydanie.
- v0.2 - Dodanie algorytmu, procesu szyfrowania. Przebudowa kodu.
NOWOŚCI
Nie będę mógł kontynuować pracy nad tym projektem do końca listopada. Udostępnię kod źródłowy każdemu, kto chciałby go ponownie wykorzystać. Przepraszam za to, ale zapewniam, że go nie zawiodę. Pozdrawiam!
Jeśli masz jakiekolwiek pytania, proszę pytaj mnie! Jeśli masz jakiekolwiek domysły, proszę powiedz mi!
Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.
LoginPlugin.jar 28.09.2012 21 KB
LoginPlugin.jar 25.05.2012 15 KB
LoginPlugin.jar 26.04.2012 757 KB
Jak bezpiecznie sprawdzić ten plugin
Wybierz zgodny plik
Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.
Zachowaj kopię
Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.
Przeczytaj log
Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.