HyCodeYourTale

Plugin Manifest

Plugin Manifest

Dokumentace k manifest.json souboru pluginu.

Obsah

| Soubor | Popis |
|--------|-------|
| MANIFEST_STRUCTURE.md | PluginManifest, PluginIdentifier, AuthorInfo, SubPlugins, CoreBuilder |
| DEPENDENCIES.md | Semver, SemverRange, Dependencies, OptionalDependencies, LoadBefore |

---

Struktura Pluginu

my-plugin/
├── manifest.json # Povinný - metadata pluginu
├── src/
│ └── main/
│ ├── java/
│ │ └── com/myplugin/
│ │ └── MyPlugin.java
│ └── resources/
│ └── manifest.json # Kopie pro JAR
└── build.gradle # Build konfigurace

---

manifest.json

Minimální Manifest

{
"Id": "MyPlugin",
"Version": "1.0.0",
"Name": "My Plugin",
"Description": "Popis mého pluginu",
"EntryPoint": "com.myplugin.MyPlugin"
}

Kompletní Manifest

{
"Id": "MyPlugin",
"Version": "1.0.0",
"Name": "My Plugin",
"Description": "Detailní popis pluginu a jeho funkcí",
"Author": "Jméno Autora",
"Website": "https://example.com",
"EntryPoint": "com.myplugin.MyPlugin",
"Dependencies": {
"Hytale:DamageModule": "*",
"Hytale:TeleportPlugin": ">=1.0.0"
},
"SoftDependencies": {
"OtherPlugin": "*"
},
"LoadBefore": [
"SomeOtherPlugin"
],
"LoadAfter": [
"RequiredPlugin"
]
}

---

Pole Manifestu

Povinná Pole

| Pole | Typ | Popis |
|------|-----|-------|
| Id | String | Unikátní identifikátor pluginu |
| Version | String | Verze pluginu (semver) |
| Name | String | Zobrazovaný název |
| EntryPoint | String | Plně kvalifikovaná třída pluginu |

Volitelná Pole

| Pole | Typ | Popis |
|------|-----|-------|
| Description | String | Popis pluginu |
| Author | String | Autor pluginu |
| Website | String | URL webu/repozitáře |
| Dependencies | Object | Povinné závislosti |
| SoftDependencies | Object | Volitelné závislosti |
| LoadBefore | Array | Načíst před těmito pluginy |
| LoadAfter | Array | Načíst po těchto pluginech |

---

Dependencies (Závislosti)

Povinné Závislosti

Plugin se nenačte pokud závislost chybí:

{
"Dependencies": {
"Hytale:DamageModule": "*",
"Hytale:TeleportPlugin": ">=1.0.0"
}
}

Verze Syntaxe

| Syntaxe | Význam |
|---------|--------|
| "*" | Jakákoliv verze |
| "1.0.0" | Přesně verze 1.0.0 |
| ">=1.0.0" | Verze 1.0.0 nebo vyšší |
| ">1.0.0" | Vyšší než 1.0.0 |
| "<=2.0.0" | Verze 2.0.0 nebo nižší |
| "<2.0.0" | Nižší než 2.0.0 |

Soft Dependencies

Plugin se načte i bez těchto závislostí:

{
"SoftDependencies": {
"OptionalPlugin": "*"
}
}

V kódu pak kontroluješ:

@Override
protected void setup() {
// Kontrola soft dependency
if (isPluginLoaded("OptionalPlugin")) {
// Integrace s OptionalPlugin
setupOptionalFeatures();
}
}

---

Vestavěné Moduly

Hytale:DamageModule

Vyžadováno pro:

  • DamageEvent

  • DeathEvent
  • {
    "Dependencies": {
    "Hytale:DamageModule": "*"
    }
    }

    Hytale:TeleportPlugin

    Poskytuje:

  • /spawn, /tp, /warp příkazy

  • TeleportHistory komponenta

  • Warp systém
  • {
    "Dependencies": {
    "Hytale:TeleportPlugin": "*"
    }
    }

    Hytale:BedsPlugin

    Poskytuje:

  • Sleep systém

  • Bed interakce
  • ---

    Load Order (Pořadí Načítání)

    LoadAfter

    Plugin se načte až po specifikovaných pluginech:

    {
    "LoadAfter": [
    "DatabasePlugin",
    "CorePlugin"
    ]
    }

    LoadBefore

    Plugin se načte před specifikovanými pluginy:

    {
    "LoadBefore": [
    "UIPlugin"
    ]
    }

    Kombinace

    {
    "Dependencies": {
    "CorePlugin": "*"
    },
    "LoadAfter": [
    "CorePlugin"
    ],
    "LoadBefore": [
    "UIPlugin"
    ]
    }

    ---

    Příklady z Dekompilovaného Kódu

    TeleportPlugin

    {
    "Id": "Hytale:TeleportPlugin",
    "Version": "1.0.0",
    "Name": "Teleport Plugin",
    "Description": "Provides teleportation commands and warp system",
    "EntryPoint": "com.hypixel.hytale.builtin.teleport.TeleportPlugin"
    }

    BedsPlugin

    {
    "Id": "Hytale:BedsPlugin",
    "Version": "1.0.0",
    "Name": "Beds Plugin",
    "Description": "Sleep and bed mechanics",
    "EntryPoint": "com.hypixel.hytale.builtin.beds.BedsPlugin"
    }

    ---

    Verzování

    Semantic Versioning

    MAJOR.MINOR.PATCH

    1.0.0 - První stabilní verze
    1.1.0 - Nové funkce, zpětně kompatibilní
    1.1.1 - Bug fixy
    2.0.0 - Breaking changes

    Příklad Vývoje

    // Vývoj
    { "Version": "0.1.0" }

    // Alpha
    { "Version": "0.5.0-alpha" }

    // Beta
    { "Version": "0.9.0-beta" }

    // Release
    { "Version": "1.0.0" }

    // Patch
    { "Version": "1.0.1" }

    ---

    Validace Manifestu

    Časté Chyby

    | Chyba | Příčina |
    |-------|---------|
    | Plugin se nenačte | Chybí povinné pole |
    | ClassNotFoundException | Špatný EntryPoint |
    | Dependency not found | Chybí závislost |
    | Circular dependency | Cyklická závislost |

    Checklist

  • [ ] Id je unikátní

  • [ ] Version je validní semver

  • [ ] EntryPoint odpovídá skutečné třídě

  • [ ] Všechny Dependencies jsou dostupné

  • [ ] Žádné cyklické závislosti

---

Build Konfigurace

Gradle - Kopírování Manifestu

processResources {
from('manifest.json') {
into '/'
}
}

jar {
from('manifest.json')
}

Maven - Kopírování Manifestu




.

manifest.json




---

Shrnutí

| Pole | Povinné | Popis |
|------|---------|-------|
| Id | Ano | Unikátní ID |
| Version | Ano | Verze (semver) |
| Name | Ano | Zobrazovaný název |
| EntryPoint | Ano | Hlavní třída |
| Description | Ne | Popis |
| Dependencies | Ne | Povinné závislosti |
| SoftDependencies | Ne | Volitelné závislosti |
| LoadAfter | Ne | Načíst po |
| LoadBefore | Ne | Načíst před |

Last updated: 20. ledna 2026