questline-1.0.9.jar
Curse Maven Snippet
What's new
🇬🇧 English
Near-instant skin loading
🧑🎨 Skins
- Immediate server send: the skin is sent to the client as soon as the
NPC enters the player's range (join, spawn, approach). No more waiting
several seconds on the vanilla appearance. - Client-side disk cache: every downloaded skin is kept in
config/questline/skin_cache/. On reconnect or game restart, skins appear
instantly, with no download at all. - Shared textures: several NPCs using the same skin URL download it only
once (a single download for the whole server). - Parallel downloads: up to 4 skins downloaded simultaneously, connection
timeout reduced to 4 s. - Automatic resend every 30 seconds if a download failed (self-recovery).
Invulnerable NPCs are ignored by mobs
🧟 Mob behavior
- An invulnerable NPC is now completely ignored by mobs: they never
target it and drop aggro if they were already attacking it (even if you
enable invulnerability mid-fight). - A non-invulnerable NPC can still be attacked by mobs as usual.
- Players still cannot damage an invulnerable NPC.
- New design lever: toggle "Invulnerable" in the admin panel to choose whether
an NPC should be untouchable or threatened.
Security fixes, network stability and improvements (recommended update)
🛡️ Security — critical exploits fixed
- God mode fixed: a modified client could send a forged packet and make
any entity (including themselves) invulnerable and frozen. The mod no
longer attaches an NPC configuration to entities that don't already have
one, and the default configuration is no longer invulnerable. - Reward duplication fixed: a modified client could accept and complete
any quest in a loop to duplicate rewards, including reward commands
executed with OP permission. The server now verifies that a dialog was
actually opened with the NPC, that the NPC is nearby (≤ 16 blocks) and
offers the quest, and that cooldown / repeatable rules are respected. - Reward commands logged: every executed command is now traced in the
server log (audit). - Hardened skin downloads: HTTPS only, local/private addresses blocked,
size limited (1 MB), dimensions checked.
🔌 Network stability — "Connection reset" crash fixed
- The codec for large JSON payloads (quest list, dialogs, journal) was capped
at 32,767 characters: on large servers the packet failed and kicked
players when opening the admin panel or creating a quest. New limit:
2 MB. - Client-side dialog parsing can no longer crash the game: invalid JSON shows
a neutral window instead of throwing an exception. - All network handlers (client → server) are guarded: an error is logged
server-side instead of killing the player's connection.
⚡ Performance
- NPC name/marker packets (
NpcNames,NpcMarkers) are no longer sent in a
loop (previously up to 4 packets/second/player), but only when their content
changes. - Skins are no longer resent periodically when unchanged.
✨ Improvements & content
- Item textures added: admin wand, quest journal and NPC eggs are now
colored and recognizable in the inventory. - 3 example quests shipped with the mod (welcome / exploration / hunt) —
ready-to-adapt templates, visible in the admin panel. - Translated admin commands (FR/EN): no more hardcoded text.
- The "collect" objective now also counts the offhand.
- Reward failure messages are now shown to the player.
🇫🇷 Français
Chargement des skins quasi instantané
🧑🎨 Skins
- Envoi immédiat côté serveur : le skin est transmis au client dès que le
PNJ entre à portée du joueur (connexion, apparition, approche). Fini
l'attente de plusieurs secondes sur l'apparence vanilla. - Cache disque côté client : chaque skin téléchargé est conservé dans
config/questline/skin_cache/. À la reconnexion ou au relancement du jeu,
les skins s'affichent instantanément, sans téléchargement. - Textures partagées : plusieurs PNJ utilisant la même URL de skin ne la
téléchargent qu'une seule fois (un seul téléchargement pour tout le
serveur). - Téléchargements en parallèle : jusqu'à 4 skins téléchargés simultanément,
délai de connexion réduit à 4 s. - Renvoi automatique toutes les 30 s en cas d'échec de téléchargement
(reprise sans action).
Les PNJ invulnérables sont ignorés par les mobs
🧟 Comportement des mobs
- Un PNJ invulnérable est désormais totalement ignoré par les mobs :
ils ne le prennent jamais pour cible et abandonnent l'aggro s'ils
l'attaquaient déjà (y compris si vous activez l'invulnérabilité en plein
combat). - Un PNJ non invulnérable reste attaquable normalement par les mobs.
- Les joueurs ne peuvent toujours pas blesser un PNJ invulnérable.
- Nouveau levier de design : activez/désactivez « Invulnérable » dans le
panneau admin pour choisir si un PNJ doit être intouchable ou menacé.
Correctifs de sécurité, stabilité réseau et améliorations (mise à jour recommandée)
🛡️ Sécurité — failles critiques corrigées
- God mode corrigé : un client modifié pouvait envoyer un paquet falsifié
et rendre n'importe quelle entité (y compris lui-même) invulnérable et
figée. Le mod n'attache plus jamais de configuration de PNJ à une entité
qui n'en possède pas déjà une, et la configuration par défaut n'est plus
invulnérable. - Duplication de récompenses corrigée : un client modifié pouvait accepter
et terminer n'importe quelle quête en boucle pour dupliquer les récompenses,
y compris les commandes-récompenses exécutées en permission OP. Le
serveur vérifie désormais qu'un dialogue a réellement été ouvert avec le
PNJ, que le PNJ est proche (≤ 16 blocs) et propose bien la quête, et que le
cooldown / caractère répétable est respecté. - Commandes-récompenses journalisées : chaque commande exécutée est
désormais tracée dans le log serveur (audit). - Téléchargement des skins durci : HTTPS uniquement, adresses
locales/privées bloquées, taille limitée (1 Mo), dimensions vérifiées.
🔌 Stabilité réseau — crash « Connection reset » corrigé
- Le codec réseau des payloads JSON volumineux (liste de quêtes, dialogues,
journal) était plafonné à 32 767 caractères : sur les gros serveurs, le
paquet échouait et déconnectait les joueurs au moment d'ouvrir le
panneau admin ou de créer une quête. Nouveau plafond : 2 Mo. - Le parsing des dialogues côté client ne peut plus faire planter le jeu : un
JSON invalide affiche une fenêtre neutre au lieu de lever une exception. - Tous les handlers réseau (client → serveur) sont protégés : une erreur est
journalisée dans le log serveur au lieu de tuer la connexion du joueur.
⚡ Performances
- Les paquets de noms/marqueurs des PNJ (
NpcNames,NpcMarkers) ne sont
plus envoyés en boucle (jusqu'à 4 paquets/seconde/joueur), mais uniquement
quand leur contenu change. - Les skins ne sont plus renvoyés périodiquement s'ils n'ont pas changé.
✨ Améliorations et contenu
- Textures d'objets ajoutées : baguette admin, journal de quêtes et œufs
de PNJ désormais colorés et reconnaissables dans l'inventaire. - 3 quêtes d'exemple livrées avec le mod (bienvenue / exploration /
chasse) — des gabarits prêts à adapter, visibles dans le panneau admin. - Commandes admin traduites (FR/EN) : plus aucun texte codé en dur.
- L'objectif « collect » compte désormais aussi la main secondaire.
- Les messages d'erreur d'échec de récompense sont affichés au joueur.
This mod has no additional files
