Przejdź do głównej zawartości

Webhook

Webhooki w Goxy umożliwiają wysyłanie informacji o dołączaniu graczy do Twojej sieci serwerów oraz dynamiczne kierowanie ich na odpowiednie podserwery. Poniżej znajdziesz instrukcje, jak skonfigurować niestandardowy webhook, przykłady implementacji w Java i Node.js, oraz szczegóły dotyczące formatu żądania i odpowiedzi.

🔗Dynamiczne kierowanie graczy

Użyj webhooków, aby zautomatyzować logikę kierowania graczy na podstawie ich danych!

Przed rozpoczęciem

⚠️Opcja dla zaawansowanych

Webhooki to zaawansowana funkcja dla użytkowników znających programowanie i API. Jeśli nie jesteś pewien, jak to działa, skontaktuj się z nami na Discordzie lub rozważ użycie domyślnych opcji Goxy (np. domyślny folder lub warunki).

Konfiguracja Webhooka

  1. Podaj adres URL webhooka
    W panelu administracyjnym Goxy (dashboard.goxy.io) przejdź do ustawień sieci i wpisz adres URL Twojego webhooka (np. https://mc.goxy.io/webhook/join).
    Uwaga: Po włączeniu niestandardowego webhooka, Goxy ignoruje domyślne opcje (np. domyślny folder lub warunki).

  2. Zaimplementuj logikę webhooka
    Twój webhook powinien odbierać żądania typu POST z danymi w formacie JSON (GoxyJoinRequest) i zwracać odpowiedź (GoxyJoinResponse) z ID serwera, na który gracz powinien zostać przekierowany.

GoxyJoinRequest – Pola zapytania

PoleTypOpis
idstringIdentyfikator sesji lub kontenera proxy
networkIdstringIdentyfikator sieci Goxy
protocolnumberWersja protokołu Minecraft (np. 761 = 1.20.1)
hostnamestringAdres domeny, z której gracz się łączy
realIdstringIdentyfikator użytkownika w systemie Goxy (UUID)
premiumbooleanCzy gracz ma konto premium (oryginalne Mojang/Microsoft)

Przykładowy request

{
"id": "82b39bee-fd2c-4e60-b877-22fe7b148c36",
"networkId": "869fad81-b57a-43dc-a7e8-d46aa3340fa4",
"protocol": 761,
"hostname": "join.gxy.pl",
"realId": "99a379bd-b019-4581-8a14-48569f90afd2",
"premium": false
}

GoxyJoinResponse – Pola odpowiedzi

PoleTypOpis
idstringID serwera (podserwera/ sektora), na który gracz powinien trafić

Przykładowa odpowiedź

{
"id": "d959157b-c22a-47c7-9968-33862db52681"
}

Przykłady implementacji

Java

Poniżej przykład kontrolera, który odbiera GoxyJoinRequest i zwraca GoxyJoinResponse na podstawie ostatniego sektora gracza.

WebhookController.java
@RestController
@RequestMapping("/webhook")
public class WebhookController {

private final PlayerSectorService playerSectorService;

public WebhookController(PlayerSectorService playerSectorService) {
this.playerSectorService = playerSectorService;
}

@PostMapping
public GoxyJoinResponse handleWebhook(@RequestBody GoxyJoinRequest request) {
// Pobierz ostatni sektor gracza
final Sector lastSector = playerSectorService.getLastSector(request.getRealId());
// Zwróć odpowiedź zawierającą id serwera
return new GoxyJoinResponse(lastSector.getServerId());
}
}

Node.js

Poniżej przykład endpointu, który przetwarza żądanie i zwraca odpowiedź z ID serwera.

webhookRouter.js
import express, { Request, Response } from "express";
import { PlayerSectorService } from "./playerSectorService";
import { GoxyJoinRequest, GoxyJoinResponse } from "./types";

const router = express.Router();
const playerSectorService = new PlayerSectorService();

router.post("/", (req: Request, res: Response) => {
const body = req.body as GoxyJoinRequest;

// pobierz ostatni sektor gracza
const lastSector = playerSectorService.getLastSector(body.realId);

// przygotuj odpowiedź
const response: GoxyJoinResponse = {
id: lastSector.serverId,
};

res.json(response);
});

export default router;

Ważne uwagi

⚠️Ignorowanie domyślnych opcji

Po włączeniu niestandardowego webhooka, Goxy nie uwzględnia domyślnego folderu ani warunków kierowania graczy. Cała logika kierowania zależy od Twojego webhooka.

ℹ️Testowanie webhooka

Przed wdrożeniem przetestuj swój webhook, np. za pomocą narzędzi takich jak Postman, aby upewnić się, że poprawnie przetwarza żądania i zwraca odpowiedzi w formacie JSON.

⚡ Automatyzacja

Kieruj graczy dynamicznie za pomocą webhooków.

🔧 Elastyczność

Zintegruj webhook z własną logiką serwerową.

🎮 Kontrola

Pełna kontrola nad przekierowaniami graczy.

📎 Linki i Zasoby

🔗Szybki dostęp do wszystkiego

Oto kluczowe linki do naszych zasobów – wszystko w jednym miejscu!

ZasóbLink
Strona główna Goxygoxy.io
Panel administracyjnydashboard.goxy.io
Strona statusustatus.goxy.io
Discord CommunityDołącz na Discord
Awesome Goxy ListSprawdź listę
Dokumentacja APIAPI Docs
📢Potrzebujesz pomocy?

Skontaktuj się z nami!
Odpowiadamy na wszystkie wiadomości w ciągu 24h na Discordzie.


🎉 Wykorzystaj webhooki i zautomatyzuj swoją sieć!

Dołącz do Goxy i odkryj więcej możliwości!

ZAREJESTRUJ SIĘ ZA DARMO