# Quickstart Source: https://tehoclient.dev/quickstart SDK: 1.0.0 This page takes a Paper server from nothing to a toast, a waypoint and a HUD timer on a Teho player's screen. If you run a network, do this on one backend first, then read [Networks & proxies](https://tehoclient.dev/install/networks). ### Install the plugin Download [`TehoAPI.jar`](https://repo.tehoclient.dev/releases/dev/tehoclient/teho-api-bukkit/1.0.0/teho-api-bukkit-1.0.0-plugin.jar), put it in your server's `plugins/` folder and start the server once. It writes `plugins/TehoAPI/config.yml` with every feature switched on. Give the server a name players will see on everything it sends: ```yaml server-name: "Skyline" welcome: enabled: true title: "&bWelcome, {player}" body: "This server supports Teho" death-waypoint: true ``` Run `/tehoapi reload`. Join with Teho and you will get the welcome toast. Die, and a waypoint marks the spot. ### Check that the client is detected Run `/tehoapi list` (permission `tehoapi.admin`). Each Teho player is listed with their client version, Minecraft version and the capabilities they negotiated. If you are missing, see [troubleshooting](#troubleshooting) below. ### Depend on the API from your plugin Teho hosts its own Maven repository at `repo.tehoclient.dev`. Add it, then depend on the artifact for your platform as `compileOnly`, since TehoAPI is already installed on the server: ### Gradle (Kotlin) ```kotlin repositories { maven("https://repo.tehoclient.dev/releases") } dependencies { compileOnly("dev.tehoclient:teho-api-bukkit:1.0.0") } ``` ### Gradle (Groovy) ```groovy repositories { maven { url = 'https://repo.tehoclient.dev/releases' } } dependencies { compileOnly 'dev.tehoclient:teho-api-bukkit:1.0.0' } ``` ### Maven ```xml teho https://repo.tehoclient.dev/releases dev.tehoclient teho-api-bukkit 1.0.0 provided ``` `teho-api-bukkit` brings in `teho-api` and the protocol with it. On other platforms swap the suffix: `-velocity`, `-bungee`, `-sponge`, `-fabric`, `-neoforge` or `-minestom`. Then make sure TehoAPI loads before you: ```yaml depend: [TehoAPI] ``` ### Send something when the player is ready `TehoPlayerReadyEvent` fires once the handshake is done, which is the earliest moment a send can succeed. ```java public final class SkylinePlugin extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onReady(TehoPlayerReadyEvent event) { Player player = event.getPlayer(); TehoPlayer teho = event.getTehoPlayer(); teho.notify(Notification.builder("welcome") .title("Welcome, " + player.getName()) .body("Ranked queue is open") .accent(0x4DA9FF) .duration(6000) .build()); teho.waypoints().set(BukkitTeho.waypoint("spawn", player.getWorld().getSpawnLocation()) .name("Spawn") .color(0x7CDB8A) .focus(true) .build()); teho.hud().timer(Timer.stopwatch("session", "Session", 0).color(0xFFC24D)); } } ``` ### Reach players from anywhere else Outside the ready event, look the player up. The `Optional` is empty for players who are not on Teho, or who turned the API off for your server. ```java BukkitTeho.player(player).ifPresent(teho -> teho.hud().cooldown( Cooldown.builder("ender_pearl", 15_000) .label("Ender Pearl") .item("ender_pearl") .build())); ``` ## Troubleshooting - **Nobody shows in `/tehoapi list`.** The client only speaks the API after it reaches the play state. Make sure nothing on the server blocks custom payloads, and that the player has not set your server to *Off* in Settings -> Servers. - **Sends return `false`.** The player did not negotiate that capability. `teho.supports("hud:1")` tells you up front. Also check that the feature is not switched off under `features:` in `config.yml`. - **It works on the backend but not through the proxy.** Either install nothing on the proxy, or install the proxy plugin and set the same `proxy.secret` on both sides. See [Networks & proxies](https://tehoclient.dev/install/networks). - [Core concepts](https://tehoclient.dev/concepts) — What a capability is and what the player controls. - [All modules](https://tehoclient.dev/modules) — Pick the next feature to add.