feat(hytale): add new Hytale plugins and localization support

- Introduced two new plugins: Async and ChainLightning, with detailed metadata including images, technologies, and links to Modtale, CurseForge, and GitHub.
- Updated localization files to include new entries for both plugins in English and French, enhancing user accessibility.
- Added images for the new plugins to the public directory.

This commit expands the Hytale plugin offerings and improves the site's multilingual support.
This commit is contained in:
2026-04-28 18:50:55 +02:00
parent d5dbbb6dff
commit 4d19835f5d
6 changed files with 120 additions and 0 deletions
+18
View File
@@ -31,4 +31,22 @@ export const hytaleDemos: HytaleDemo[] = [
tech: ['Java 25', 'Gradle Shadow', 'Hytale API'], tech: ['Java 25', 'Gradle Shadow', 'Hytale API'],
status: 'live', status: 'live',
}, },
{
id: 'async',
image: '/images/projects/async.png',
modtale: 'https://modtale.net/mod/async',
curseforge: 'https://www.curseforge.com/hytale/mods/async',
github: 'https://github.com/Mr-KayJayDee/async',
tech: ['Kotlin 2.2', 'Coroutines', 'JDK 25', 'Hytale API'],
status: 'live',
featured: true,
},
{
id: 'chain-lightning',
image: '/images/projects/chain-lightning.png',
modtale: 'https://modtale.net/mod/chain-lightning-sceptre',
curseforge: 'https://www.curseforge.com/hytale/mods/chain-lightning-sceptre',
tech: ['Java 25', 'JUnit 5', 'Hytale API'],
status: 'live',
},
] ]
+44
View File
@@ -47,6 +47,50 @@ export const projects: Omit<Project, 'title' | 'description' | 'longDescription'
}, },
], ],
}, },
{
id: 'async',
image: '/images/projects/async.png',
technologies: ['Kotlin 2.2', 'Coroutines', 'JDK 25', 'Hytale Plugin API', 'Gradle Shadow', 'JUnit 5'],
category: 'Hytale Library',
date: '2026',
featured: true,
buttons: [
{
title: 'Modtale',
link: 'https://modtale.net/mod/async',
},
{
title: 'CurseForge',
link: 'https://www.curseforge.com/hytale/mods/async',
},
{
title: 'GitHub',
link: 'https://github.com/Mr-KayJayDee/async',
},
{
title: 'Gitea',
link: 'https://gitea.kamisama.ovh/kayjaydee/async',
},
],
},
{
id: 'chain-lightning',
image: '/images/projects/chain-lightning.png',
technologies: ['Java 25', 'Hytale Plugin API', 'Gradle Shadow', 'JUnit 5'],
category: 'Hytale Plugin',
date: '2026',
featured: true,
buttons: [
{
title: 'Modtale',
link: 'https://modtale.net/mod/chain-lightning-sceptre',
},
{
title: 'CurseForge',
link: 'https://www.curseforge.com/hytale/mods/chain-lightning-sceptre',
},
],
},
{ {
id: 'playhours', id: 'playhours',
image: '/images/projects/playhours.png', image: '/images/projects/playhours.png',
+29
View File
@@ -114,6 +114,7 @@
"categories": { "categories": {
"all": "All Projects", "all": "All Projects",
"hytaleplugin": "Hytale Plugin", "hytaleplugin": "Hytale Plugin",
"hytalelibrary": "Hytale Library",
"minecraftmod": "Minecraft Mod", "minecraftmod": "Minecraft Mod",
"webdevelopment": "Web Development", "webdevelopment": "Web Development",
"botdevelopment": "Bot Development", "botdevelopment": "Bot Development",
@@ -272,6 +273,26 @@
"curseforge": "CurseForge" "curseforge": "CurseForge"
} }
}, },
"async": {
"title": "Async — Coroutines for Hytale's per-world ECS",
"description": "Kotlin coroutine library that replaces the noisy CompletableFuture + world.execute pattern with one suspending call. Player/world/plugin scopes, three dispatchers, suspending ECS DSL.",
"longDescription": "Async solves Hytale's per-world thread model: each world runs on its own thread, touching components from elsewhere throws, and blocking I/O on the world thread freezes players. The library ships dispatchers (World, HytaleIO, Scheduled), scope registries (PlayerScopes, WorldScopes, PluginScopes) with automatic cancellation on disconnect, and a suspending read/modify DSL. Built in Kotlin 2.2, target JVM 24, modular split (core / ecs / binding / dist) so business logic stays testable without a Hytale server.",
"buttons": {
"modtale": "Modtale",
"curseforge": "CurseForge",
"github": "GitHub",
"gitea": "Gitea"
}
},
"chain-lightning": {
"title": "ChainLightning Sceptre — Hytale Magic Wand",
"description": "Hytale plugin that fires chain lightning on right-click — bolt jumps to up to 5 nearby enemies within 8 blocks, with damage falloff per hop and a 4-second cooldown.",
"longDescription": "Magical sceptre for Hytale servers. Pure-Java chain resolver decoupled from Hytale via small interfaces (RayCaster, EntitySource, ChainEntity), JUnit 5 tested without a running server. Built on Hytale Plugin API + Java 25 + Gradle Shadow.",
"buttons": {
"modtale": "Modtale",
"curseforge": "CurseForge"
}
},
"playhours": { "playhours": {
"title": "PlayHours — Forge Server Hours Enforcement", "title": "PlayHours — Forge Server Hours Enforcement",
"description": "Forge 1.20.1 mod that enforces per-day open windows, blocks logins outside hours, warns at 15/10/5/1 min, auto-kicks at close, handles holidays, whitelist/blacklist, force modes, LuckPerms integration.", "description": "Forge 1.20.1 mod that enforces per-day open windows, blocks logins outside hours, warns at 15/10/5/1 min, auto-kicks at close, handles holidays, whitelist/blacklist, force modes, LuckPerms integration.",
@@ -517,6 +538,14 @@
"gravity-flip": { "gravity-flip": {
"title": "GravityFlip Region", "title": "GravityFlip Region",
"tagline": "Drop a wand, set 2 corners, gravity flips inside the zone. Ceiling-walking and floating items live in 5 minutes of setup." "tagline": "Drop a wand, set 2 corners, gravity flips inside the zone. Ceiling-walking and floating items live in 5 minutes of setup."
},
"chain-lightning": {
"title": "ChainLightning Sceptre",
"tagline": "Right-click a mob and the bolt jumps to up to 5 nearby enemies within 8 blocks. Damage falls off per hop, JUnit-tested chain resolver."
},
"async": {
"title": "Async — Kotlin coroutines for Hytale ECS",
"tagline": "One suspending call replaces CompletableFuture + world.execute boilerplate. Player/world/plugin scopes, three dispatchers, automatic cancellation on disconnect."
} }
}, },
"recentArticles": { "recentArticles": {
+29
View File
@@ -114,6 +114,7 @@
"categories": { "categories": {
"all": "Tous les Projets", "all": "Tous les Projets",
"hytaleplugin": "Plugin Hytale", "hytaleplugin": "Plugin Hytale",
"hytalelibrary": "Librairie Hytale",
"minecraftmod": "Mod Minecraft", "minecraftmod": "Mod Minecraft",
"webdevelopment": "Développement Web", "webdevelopment": "Développement Web",
"botdevelopment": "Développement de Bot", "botdevelopment": "Développement de Bot",
@@ -272,6 +273,26 @@
"curseforge": "CurseForge" "curseforge": "CurseForge"
} }
}, },
"async": {
"title": "Async — Coroutines pour l'ECS per-world de Hytale",
"description": "Bibliothèque Kotlin qui remplace le pattern CompletableFuture + world.execute par un seul appel suspending. Scopes player/world/plugin, trois dispatchers, DSL ECS suspending.",
"longDescription": "Async résout le modèle thread per-world de Hytale : chaque monde tourne sur son thread, toucher un composant ailleurs throw, et un I/O bloquant sur le thread world freeze tous les joueurs. La lib expose des dispatchers (World, HytaleIO, Scheduled), des registres de scopes (PlayerScopes, WorldScopes, PluginScopes) avec annulation automatique au disconnect, et un DSL read/modify suspending. Construit en Kotlin 2.2, cible JVM 24, split modulaire (core / ecs / binding / dist) pour garder la logique testable sans serveur Hytale.",
"buttons": {
"modtale": "Modtale",
"curseforge": "CurseForge",
"github": "GitHub",
"gitea": "Gitea"
}
},
"chain-lightning": {
"title": "ChainLightning Sceptre — Wand Magique Hytale",
"description": "Plugin Hytale qui lance un éclair en chaîne au clic droit — le bolt rebondit sur jusqu'à 5 ennemis proches dans un rayon de 8 blocs, avec damage falloff par hop et un cooldown de 4 secondes.",
"longDescription": "Sceptre magique pour serveurs Hytale. Chain resolver pur Java découplé de Hytale via petites interfaces (RayCaster, EntitySource, ChainEntity), testé en JUnit 5 sans serveur. Construit sur Hytale Plugin API + Java 25 + Gradle Shadow.",
"buttons": {
"modtale": "Modtale",
"curseforge": "CurseForge"
}
},
"playhours": { "playhours": {
"title": "PlayHours — Forge Server Hours Enforcement", "title": "PlayHours — Forge Server Hours Enforcement",
"description": "Mod Forge 1.20.1 qui force des horaires d'ouverture par jour, blocage de connexion hors heures, warns 15/10/5/1 min, auto-kick à la fermeture, gestion des jours fériés, whitelist/blacklist, force modes, intégration LuckPerms.", "description": "Mod Forge 1.20.1 qui force des horaires d'ouverture par jour, blocage de connexion hors heures, warns 15/10/5/1 min, auto-kick à la fermeture, gestion des jours fériés, whitelist/blacklist, force modes, intégration LuckPerms.",
@@ -517,6 +538,14 @@
"gravity-flip": { "gravity-flip": {
"title": "GravityFlip Region", "title": "GravityFlip Region",
"tagline": "Pose un wand, définis 2 corners, gravité inversée dans la zone. Marche-au-plafond et items qui flottent en 5 minutes de setup." "tagline": "Pose un wand, définis 2 corners, gravité inversée dans la zone. Marche-au-plafond et items qui flottent en 5 minutes de setup."
},
"chain-lightning": {
"title": "ChainLightning Sceptre",
"tagline": "Clic droit sur un mob et l'éclair rebondit sur jusqu'à 5 ennemis dans un rayon de 8 blocs. Damage falloff par hop, chain resolver JUnit-testé."
},
"async": {
"title": "Async — Coroutines Kotlin pour l'ECS Hytale",
"tagline": "Un seul appel suspending remplace le boilerplate CompletableFuture + world.execute. Scopes player/world/plugin, trois dispatchers, annulation auto au disconnect."
} }
}, },
"recentArticles": { "recentArticles": {
Binary file not shown.

After

Width:  |  Height:  |  Size: 915 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB