# BungeeCord & Waterfall Source: https://tehoclient.dev/install/bungeecord SDK: 1.0.0 **Artifact:** `TehoAPI-Bungee.jar` **Plugin name:** `TehoAPI` **Proxies:** BungeeCord, Waterfall **Java:** 8 or newer The BungeeCord plugin does the same job as the [Velocity plugin](https://tehoclient.dev/install/velocity): the proxy owns the Teho handshake and tells each backend about the player over a signed channel. ## Install 1. Download [`TehoAPI-Bungee.jar`](https://repo.tehoclient.dev/releases/dev/tehoclient/teho-api-bungee/1.0.0/teho-api-bungee-1.0.0-plugin.jar) and put it in the proxy's `plugins/` folder and start it once. It writes `plugins/TehoAPI/config.yml`. 2. Put `TehoAPI.jar` on every backend. 3. Set the same `proxy.secret`, at least 16 characters, on the proxy and on every backend. 4. Turn on `ip_forward: true` in BungeeCord's `config.yml`, so backend UUIDs match the proxy's. 5. Restart everything. ```yaml server-name: "Skyline Network" proxy: secret: "replace-with-a-long-random-string" welcome: enabled: true title: "&bWelcome, {player}" body: "This network supports Teho" ``` The proxy config supports the same keys as on [Velocity](https://tehoclient.dev/install/velocity#proxy-configuration). ## Use it from a Bungee plugin ```kotlin repositories { maven("https://repo.tehoclient.dev/releases") } dependencies { compileOnly("dev.tehoclient:teho-api-bungee:1.0.0") } ``` ```yaml name: LobbyCore main: gg.skyline.LobbyCore version: 1.0.0 depends: [TehoAPI] ``` ```java public final class LobbyCore extends Plugin implements Listener { @Override public void onEnable() { getProxy().getPluginManager().registerListener(this, this); } @EventHandler public void onReady(TehoPlayerReadyEvent event) { event.getTehoPlayer().social().links(Map.of( "Discord", "https://discord.gg/skyline", "Store", "https://store.skyline.gg")); } } ``` Bungee events live in `dev.tehoclient.api.bungee.event` and use `@EventHandler`: `TehoPlayerReadyEvent`, `TehoConsentEvent`, `TehoStaffToolEvent` and `TehoClientEvent`. `BungeeTeho.player(ProxiedPlayer)` and `BungeeTeho.isTeho(ProxiedPlayer)` look players up from anywhere. `Map.of` needs Java 9 or newer. On a Java 8 proxy, build the map with a `LinkedHashMap`; the links appear in insertion order.