Configuration

Après toute modification : /tcg reload. Si la nouvelle configuration est invalide, le rechargement est refusé, les erreurs sont affichées et l'ancienne configuration reste active.

Langue

config.yml > language : en (défaut d'une nouvelle installation), fr, es ou de. Les fichiers livrés (config, messages, collections, cartes, boosters, objectifs, modèle ItemsAdder) existent dans les quatre langues. Pour changer de langue, il suffit de mettre language: fr (ou es, de) dans config.yml, puis de redémarrer ou de faire /tcg reload : les fichiers sont basculés automatiquement, avec la même sauvegarde que la commande ci-dessous.

/tcg language <en|fr|es|de> (permission tcg.admin) change de langue en une commande :

  1. les fichiers actuels config.yml, messages.yml, groups.yml, cards.yml, boosters.yml, objectives.yml et itemsadder/tcg_items.yml sont sauvegardés dans plugins/TCG/backups/language-<date>/ ;
  2. les fichiers de la langue choisie sont installés ;
  3. le plugin se recharge.

Les collections des joueurs, la base de données et les items déjà distribués ne sont pas touchés : les IDs (cartes, paquets, collections) sont les mêmes dans toutes les langues. Faites-le avant de personnaliser vos fichiers : vos modifications ne sont pas reportées, mais restent disponibles dans le dossier de sauvegarde.

Un serveur mis à jour depuis la 1.2 ou plus ancienne (config.yml sans clé language) reste en français automatiquement.

Les messages de validation de la console et des admins sont en anglais.

Modifier les chances

Rareté à l'ouverture d'un paquet (config.yml, somme obligatoire de 100, précision 0,01 %) :

rarities:
  COMMON:    { display: "<gray>Commun",  color: "#AAAAAA", chance: 70 }
  RARE:      { display: "<aqua>Rare",    color: "#55FFFF", chance: 22 }
  EPIC:      { display: "<light_purple>Épique", color: "#FF55FF", chance: 7 }
  LEGENDARY: { display: "<gold>Légendaire", color: "#FFAA00", chance: 1 }

Drop du paquet (groups.yml, par collection, entier « 1 chance sur X ») :

groups:
  nature:
    package_drop_chance: 20000   # 1 / 20 000 ; 0 = désactivé ; 1 = à chaque kill

Ajouter une carte

Dans cards.yml :

cards:
  nature_sniffer:
    number: 35                 # unique dans la collection
    name: "Renifleur"
    group: nature
    entity: SNIFFER            # mob vanilla (doit aussi être dans groups.yml > nature.mobs pour dropper le paquet)
    rarity: LEGENDARY
    itemsadder_item: "tcg:nature_sniffer"   # optionnel, défaut tcg:<id>
    description:               # optionnel
      - "Une créature d'un autre âge"
    secret: false              # optionnel

Règles vérifiées au démarrage : ID en a-z 0-9 _ unique (et différent des pack_id, pour que /tcg give reste sans ambiguïté), numéro unique par collection, collection existante, rareté valide, ID ItemsAdder au format namespace:id et non partagé. Tout mob listé dans une collection doit avoir une carte dans cette collection.

Ne renommez pas l'ID d'une carte déjà distribuée : c'est lui qui est stocké sur les items et en base.

Ajouter une collection

Dans groups.yml :

groups:
  ocean:
    display_name: "<blue>🌊 Océans"
    description: ["<gray>Les créatures marines"]
    icon: HEART_OF_THE_SEA
    gui_slot: 16               # emplacement dans le menu principal (gui.main.rows * 9 slots)
    pack_id: ocean_pack        # identifiant du paquet, unique
    pack_name: "<blue>Paquet Océans"
    pack_itemsadder: "tcg:ocean_pack"
    pack_fallback_material: BOOK
    package_drop_chance: 15000
    environments: []           # [] = toutes les dimensions
    mobs: [DOLPHIN, SQUID, GLOW_SQUID]
    completion:
      broadcast: true
      commands: ["give %player% heart_of_the_sea 1"]

Puis ajouter une carte par mob avec group: ocean. Un mob peut appartenir à plusieurs collections, avec une carte dans chacune.

Autres réglages utiles (config.yml)

CléRôle
drops.require_direct_player_damagecoup fatal du joueur obligatoire (sinon : crédit vanilla de 5 s)
drops.deliveryINVENTORY ou GROUND
drops.disabled_worlds / ignored_gamemodes / ignored_spawn_reasonsexclusions (mondes, modes de jeu, mobs de spawner...)
drops.broadcastannoncer chaque paquet trouvé
packs.open_cooldown_msdélai entre deux ouvertures
packs.animation.*animation d'ouverture : style SCREEN (images plein écran) ou TEXT, step_ticks, card_ticks, skip_on_sneak
items.*items de repli, placeholder, lore
gui.*taille, emplacements et matériaux des menus
gui.collection.modeGRID (grille pleine), BINDER (une grande carte 3x3) ou DOUBLE (deux grandes cartes 3x3, flèches de chaque côté)
gui.main.itemsadder_texture / gui.collection.itemsadder_texturefond ItemsAdder des menus (tcg:binder_cover, tcg:binder_page), vanilla automatique sans ItemsAdder
gui.collection.undiscovered_displaycartes non découvertes : HIDDEN (???) ou INFO (nom et infos, sans l'image)
holo.*cartes brillantes : chance, suffixe ItemsAdder
dust.* / shop.*valeurs de recyclage, prix de la boutique
trade.*durée d'une demande, distance maximale, compte à rebours, paquets échangeables
milestones / titlespaliers de progression et titres
leaderboards.*rafraîchissement et taille des classements
sounds.*sons (clé [volume] [pitch], vide = aucun)

Tous les textes sont dans messages.yml, au format MiniMessage.