Konfiguracja
Wszystkie ustawienia są w plugins/CoreStatus/config.yml, z komentarzami po angielsku i po polsku. Po każdej zmianie
wpisz /corestatus reload: wczytuje wszystko, także język i interwały.
Kolory zapisuj w cudzysłowie jako "#rrggbb". Bez cudzysłowu YAML uznaje # za komentarz.
Wartość, której nie da się użyć, zostaje zastąpiona domyślną, a konsola (i /corestatus reload) mówi jednym zdaniem,
który klucz i co poprawić. Zdania te są po angielsku. Plik, który nie jest poprawnym YAML-em, daje ustawienia domyślne
dla wszystkiego. Żaden z tych błędów nie zatrzymuje pluginu, a komunikaty nigdy nie cytują pliku, więc token webhooka nie
trafia do konsoli.
Na proxy pierwsze uruchomienie zapisuje inny plik, zobacz Tryb sieci.
Poziom główny
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
language |
en |
en, pl |
Język wiadomości na Discordzie i odpowiedzi komend. Inna wartość daje en. |
footer |
true |
true, false |
Dopisek „Status by Corestone • corestone.dev” pod każdą wiadomością. false go ukrywa. |
Wiadomość ze statusem: status
Jedna wiadomość, wysyłana za pierwszym razem, potem edytowana w miejscu. Po restarcie nadal edytowana jest ta sama wiadomość. Jeśli wiadomość usunięto na Discordzie, plugin wysyła nową.
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
status.enabled |
true |
true, false |
Włącza lub wyłącza wiadomość ze statusem. Pozostałe funkcje nadal działają. |
status.webhook |
puste | adres webhooka Discorda | Dokąd trafia status. Puste: nic nie jest wysyłane, a konsola przypomni o uzupełnieniu. Wartość, która nie jest adresem webhooka Discorda (zaczyna się od https://discord.com/api/webhooks/), jest pomijana z ostrzeżeniem. |
status.interval-seconds |
60 |
liczba całkowita, co najmniej 30 | Jak często wiadomość jest odświeżana. Poniżej 30 zostaje podniesione do 30, bo Discord ogranicza szybsze edycje. |
status.title |
puste | tekst | Tytuł wiadomości. Puste: „📊 Status serwera” lub „📊 Server status”, z pliku messages. |
status.description |
puste | tekst, do 1000 znaków | Własna linia pod tytułem, np. powitanie albo informacja, jak dołączyć. Puste: bez linii. Dłuższy tekst jest przycinany, z ostrzeżeniem w konsoli. |
status.color-online |
"#57F287" |
"#rrggbb" |
Kolor wiadomości, gdy serwer jest online. |
status.color-offline |
"#ED4245" |
"#rrggbb" |
Kolor, gdy serwer jest offline. |
status.icon |
puste | adres https:// obrazka |
Mały obrazek w rogu wiadomości. Puste: brak. Każda inna wartość jest pomijana, z ostrzeżeniem w konsoli. |
status.show.online |
true |
true, false |
Linia „Online” (z czasem działania, jeśli jest włączony). Wiadomość o serwerze offline zawsze mówi „Offline”. |
status.show.players |
true |
true, false |
Liczba graczy online jako {players}/{max}. |
status.show.player-list |
10 |
liczba całkowita, 0 lub więcej | Wypisz do tylu nicków, potem „+N więcej”. 0: bez listy. Nicki trafiają na Discorda zawsze, gdy wartość jest większa niż 0, czyli także przy wartości domyślnej. Bardzo długa lista jest skracana, aby wiadomość zawsze mieściła się w limicie Discorda; „+N więcej” liczy wtedy wszystkie pominięte nicki. |
status.show.tps |
true |
true, false |
TPS z jednym miejscem po przecinku, za kolorowym kółkiem. |
status.show.mspt |
true |
true, false |
Milisekundy na tick. Mierzą je tylko Paper i Purpur; na Folii i Spigocie linii nie ma. |
status.show.uptime |
true |
true, false |
Jak długo działa serwer, w linii online: „Online od 2 d 3 h 14 min”. Wymaga status.show.online. |
status.show.version |
true |
true, false |
Oprogramowanie i wersja serwera, np. Paper 1.21.4. |
status.show.address |
puste | tekst lub false |
Adres do skopiowania przez graczy, np. play.example.com. Puste lub false: nie jest pokazywany. |
Linie są pogrupowane pod trzema nagłówkami: Gracze (liczba i lista), Wydajność (TPS i MSPT) oraz Serwer
(wersja i adres). Nagłówek, którego linie są wszystkie wyłączone w status.show albo których serwer nie potrafi podać
(Spigot nie ma MSPT, wersja bywa nieznana), znika razem z nimi. Każda wiadomość ze statusem kończy się linią „Ostatnia
aktualizacja” z czasem, który Discord pokazuje w strefie czasowej czytającego. Wartości są pokazywane jako kod, nagłówki
pogrubione.
Wiadomość z wszystkim włączonym (i ustawionym status.description) wygląda tak:
📊 Status serwera
Wpadaj! Status odświeża się co minutę.
🟢 Online od 4 h 12 min
👥 Gracze
» Online: 12/100
» Steve, Alex, Notch, Jeb, Dinnerbone +7 więcej
⚙️ Wydajność
» TPS: 🟢 20.0
» MSPT: 1.6 ms
🖥️ Serwer
» Wersja: Paper 1.21.4
» Adres: play.example.com
Ostatnia aktualizacja: minutę temu
Gdy serwer się zatrzymuje, wiadomość robi się czerwona i podaje, od kiedy serwer nie działa, w godzinie widocznej w strefie czasowej czytającego:
📊 Status serwera
🔴 Offline od 14:32
Serwer jest wyłączony. Wiadomość zmieni się sama, gdy wróci.
🖥️ Serwer
» Adres: play.example.com
Ostatnia aktualizacja: 3 minuty temu
Część „Serwer” pojawia się tylko wtedy, gdy ustawiono status.show.address.
Kolory TPS
TPS to średnia z ostatniej minuty, najwyżej 20. Kółko zależy od wartości w takiej postaci, jaka jest pokazana (jedno miejsce po przecinku):
| Kółko | TPS |
|---|---|
| zielone | 18 lub więcej |
| żółte | 15 lub więcej, ale poniżej 18 |
| czerwone | poniżej 15 |
Na Paperze i Purpurze TPS podaje serwer. Na Spigocie i na Folii (jej globalny region) CoreStatus sam liczy ticki.
Start i stop: start-stop
Krótka wiadomość przy starcie i przy zatrzymaniu serwera. Przy zatrzymaniu najpierw status zmienia się na „Offline”, potem wysyłana jest wiadomość „Serwer zatrzymany”. CoreStatus czeka na Discorda najwyżej 5 sekund, więc wolny Discord nigdy nie zatrzyma wyłączania serwera.
Po awarii CoreStatus nie zdąży się pożegnać. Przy następnym starcie wysyła „Serwer był offline od” z czasem ostatniego śladu życia, jeszcze przed „Serwer uruchomiony”. Dzieje się tak, gdy ostatni ślad życia jest starszy niż dwa interwały statusu. Zwykłe zatrzymanie tego nie wywołuje.
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
start-stop.enabled |
true |
true, false |
Włącza lub wyłącza. |
start-stop.webhook |
puste | adres webhooka Discorda | Własny webhook dla tych wiadomości. Puste: ten ze status.webhook. |
start-stop.color |
"#5865F2" |
"#rrggbb" |
Kolor wiadomości. |
Wejścia i wyjścia: join-leave
Wiadomość, gdy gracz wchodzi lub wychodzi. Domyślnie wyłączona, bo wysyła nicki graczy na Discorda. Gracze w vanish nie są ogłaszani.
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
join-leave.enabled |
false |
true, false |
Włącza lub wyłącza. |
join-leave.webhook |
puste | adres webhooka Discorda | Własny webhook dla tych wiadomości. Puste: ten ze status.webhook. |
join-leave.max-per-minute |
20 |
liczba całkowita, 1 lub więcej | Najwyżej tyle wiadomości na minutę. Reszta jest liczona i wysyłana w jednym podsumowaniu („Pozostałe osoby: N”) na koniec minuty. |
join-leave.color-join |
"#57F287" |
"#rrggbb" |
Kolor wiadomości o wejściu. |
join-leave.color-leave |
"#99AAB5" |
"#rrggbb" |
Kolor wiadomości o wyjściu i podsumowania. |
Niski TPS: low-tps
Jedno ostrzeżenie, gdy TPS przez kilka minut jest poniżej ustawionej wartości. Następne dopiero wtedy, gdy TPS wróci do tej wartości lub powyżej i znów spadnie. Przy ustawieniach domyślnych: poniżej 15 przez 5 minut.
TPS jest sprawdzany przy każdym odświeżeniu statusu, więc ostrzeżenie przychodzi po pierwszym niskim odczycie plus
ustawione minuty. Sprawdzanie działa także wtedy, gdy status.enabled ma wartość false.
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
low-tps.enabled |
true |
true, false |
Włącza lub wyłącza. |
low-tps.webhook |
puste | adres webhooka Discorda | Własny webhook dla ostrzeżenia. Puste: ten ze status.webhook. |
low-tps.threshold |
15 |
liczba większa niż 0 | Ostrzegaj, gdy TPS jest poniżej tej wartości... |
low-tps.minutes |
5 |
liczba całkowita, 1 lub więcej | ...przez tyle minut z rzędu. |
low-tps.color |
"#FEE75C" |
"#rrggbb" |
Kolor ostrzeżenia. |
Więcej niż jeden webhook
Każda funkcja może pisać na własny kanał przez własny webhook. Pusty webhook oznacza ten ze status.webhook. Jeśli i
on jest pusty, funkcja nic nie wysyła.
Kanał publiczny i kanał dla administracji. Status oraz wiadomości o starcie i zatrzymaniu są pisane z myślą o graczach,
więc pasuje do nich kanał publiczny. Ostrzeżenie o niskim TPS, a także wejścia i wyjścia, jeśli zostaną włączone, są
dla administracji: warto utworzyć drugi webhook na kanale dla administracji i wpisać go w low-tps.webhook (oraz
join-leave.webhook). Dopóki te klucze są puste, wiadomości trafiają na kanał statusu, czyli do publiczności. /corestatus test i /corestatus status wypisują każdy ustawiony adres, po
jednym razie, niezależnie od tego, czy jego funkcja jest włączona.
Po zmianie adresu statusu CoreStatus wysyła tam nową wiadomość ze statusem. Stara zostaje, gdzie była: trzeba ją usunąć na Discordzie.
Tryb sieci: Velocity i BungeeCord
Na proxy pierwsze uruchomienie zapisuje plugins/CoreStatus/config.yml dla wiadomości o sieci. Są w nim language,
status, network i footer. Sekcji start-stop, join-leave i low-tps tam nie ma: każdy serwer za proxy ogłasza
własne zdarzenia własnym CoreStatus.
Na proxy działa tylko pięć kluczy status; stylizują one wiadomość o sieci:
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
status.title |
puste | tekst | Tytuł. Puste: „🌐 Status sieci” lub „🌐 Network status”. |
status.description |
puste | tekst, do 1000 znaków | Własna linia pod tytułem. Puste: bez linii. |
status.color-online |
"#57F287" |
"#rrggbb" |
Kolor, gdy każdy wypisany serwer jest online. |
status.color-offline |
"#ED4245" |
"#rrggbb" |
Kolor, gdy choć jeden jest offline. |
status.icon |
puste | adres https:// obrazka |
Mały obrazek w rogu. |
Sama wiadomość o sieci:
| Klucz | Domyślnie | Dozwolone | Co robi |
|---|---|---|---|
network.enabled |
false |
true, false |
Włącza wiadomość o sieci. Domyślnie wyłączona: najpierw ustaw webhook. |
network.webhook |
puste | adres webhooka Discorda | Dokąd trafia wiadomość. Puste: nic nie jest wysyłane, a konsola przypomni o uzupełnieniu. |
network.interval-seconds |
60 |
liczba całkowita, co najmniej 30 | Jak często wiadomość jest odświeżana. Poniżej 30 zostaje podniesione do 30. |
network.total |
true |
true, false |
Pokaż liczbę graczy na wypisanych serwerach, które są online. |
network.servers |
dwa przykłady: lobby i survival |
lista z id i label |
Serwery do pokazania, w tej kolejności. |
network:
enabled: true
webhook: "https://discord.com/api/webhooks/123/abc…"
servers:
- id: lobby
label: "Lobby"
- id: survival
label: "Survival"
idmusi być nazwą serwera z configu proxy: nazwą pod[servers]wvelocity.tomlVelocity albo podserverswconfig.ymlBungeeCord. Należy ją zapisać dokładnie tak jak tam. Nazwa, której proxy nie zna, jest pomijana w wiadomości, a konsola raz o tym informuje.labelto nazwa widoczna na Discordzie. Puste:id.- Stan online lub offline wynika z pingu proxy do serwera (proxy czeka najwyżej 10 sekund). Liczba graczy to liczba graczy, których proxy ma połączonych z tym serwerem.
Wiadomość o sieci wygląda tak:
🌐 Status sieci
👥 Gracze w sieci: 19
🟢 Lobby » 12 graczy • TPS 🟢 20.0
🟢 Survival » 7 graczy • TPS —
🔴 Creative » offline
Ostatnia aktualizacja: minutę temu
Serwery offline zostają na swoim miejscu na liście, w kolejności z network.servers.
TPS w sieci
Proxy nie potrafi zmierzyć TPS. Podaje go każdy serwer docelowy:
- CoreStatus musi być zainstalowany na serwerze docelowym, ten sam jar. Do tego nie potrzebuje webhooka.
- Serwer wysyła swój TPS raz na
status.interval-seconds(własny interwał serwera, domyślnie 60) przez gracza połączonego z tym serwerem. Dlatego na tym serwerze musi być online co najmniej jeden gracz. Bez gracza nic nie może zostać wysłane. - Proxy pokazuje TPS dopóki ostatni raport nie jest starszy niż dwa interwały
network.interval-seconds. Potem, i dla serwera, który nigdy nic nie zgłosił, pokazuje kreskę (—). Aby kreska nie migała między raportami, interwał serwera docelowego powinien być co najwyżej dwa razy dłuższy niż interwał proxy.
Gdy proxy się zatrzymuje, wiadomość zmienia się tak, że każdy serwer jest offline.
Zmiana tekstów
Każdy tekst, który pisze CoreStatus, pochodzi z messages_en.yml lub messages_pl.yml, zależnie od language. Pliki są
w jarze. Aby zmienić tekst:
- Utwórz
plugins/CoreStatus/messages_pl.yml(albomessages_en.yml). - Wpisz do niego tylko klucze, które mają się zmienić. Pozostałe zachowują wbudowany tekst.
- Wpisz
/corestatus reload.
status:
title: "Nasz serwer survival"
event:
joined: "{player} jest już online"
Zmienne w {nawiasach klamrowych} zostaw bez zmian: wstawia je plugin. Klucz, którego plugin nie zna, jest pomijany.
| Klucze | Zmienne |
|---|---|
status.online-for |
{uptime} |
status.offline-since |
{time}, znacznik czasu Discorda (godzina) widoczny w strefie czasowej czytającego |
status.players |
{players}, {max} |
status.player-list |
{names}, czyli nicki, zakończone tekstem status.more, gdy graczy jest więcej, niż mieści lista |
status.more |
{count} |
status.tps |
{tps}, wartość z kolorowym kółkiem, już w kodzie |
status.mspt |
{mspt} |
status.version |
{version} |
status.address |
{address} |
status.updated |
{time}, znacznik czasu Discorda widoczny w strefie czytającego |
event.joined, event.left |
{player} |
event.was-offline |
{time} |
event.and-more |
{count} |
event.low-tps |
{tps}, {threshold}, {minutes} |
network.total |
{players} |
network.server-online |
{server}, {players} (liczba z rzeczownikiem, z network.players), {tps} (z kółkiem, już w kodzie) |
network.players.one, .few, .many (angielski: .one, .other) |
{count} |
network.server-offline |
{server} |
command.test-ok |
{name} |
command.test-failed |
{name}, {reason} |
command.status-header |
{version} |
command.status-line |
{name}, {time}, {state} |
console.config-warning |
{warning} |
Pozostałe klucze (na przykład footer, status.title, status.online, status.offline, status.offline-note,
status.section-players, status.section-performance, status.section-server, event.started, event.stopped,
event.test, network.title, network.unknown-tps, command.usage, command.reloaded, command.admincontrol i
console.no-webhook) nie mają zmiennych. Raporty o nieudanej wysyłce w konsoli są zawsze po angielsku.
Emoji, znaczniki pogrubienia i grawisy wokół wartości są częścią tekstów, więc można je zmienić lub usunąć. Wartość między grawisami Discord pokazuje jako kod.