Migration des scripts vers CraftTweaker 7.1
Link to migration-des-scripts-vers-crafttweaker-71
La version 7.1 de CraftTweaker comporte quelques modifications qui brisent la rétrocompatibilité.
Ces modifications majeures concernent l'API utilisée par les modules complémentaires ainsi que les types utilisés par les scripts.
Ce document devrait donner un aperçu des modifications les plus importantes et de la manière dont les développeurs peuvent faire fonctionner à nouveau leurs scripts.
MCTag devient MCTag<T>
Link to mctag-devient-mctagt
Nous avons remplacé les Tags par un système générique plus extensible et qui fonctionnera mieux avec les futures mises à jour.
Ce changement cassera les scripts existants de deux manières :
- Les méthodes d'ajout et de suppression spécialisées ont été supprimées.
Vous utilisez maintenantadd
etremove
au lieu deaddItems
,addFluids
et autres. 2) La syntaxe du Bracket handlers requiert désormais le type de balise comme paramètre supplémentaire.
Alors<tag:forge:gems>
devient<tag:items:forge:gems>
Les commandes /ct dump tags
et /ct hand
ont été mises à jour pour refléter ce changement.
Si vous devez utiliser l'une des méthodes d'expansion de I'ingredient à partir d'une balise d'élément, vous devez d'abord écrire .asIIngredient()
.
Exemple de mgration
ZenScript Copyimport crafttweaker.api.tag.MCTag;
import crafttweaker.api.item.MCItemDefinition;
import crafttweaker.api.fluid.MCFluid;
var fluidTagOld = <tag:minecraft:water> as MCTag;
var itemTagOld = <tag:forge:gems> as MCTag;
var fluidTagNew = <tag:fluids:minecraft:water> as MCTag<MCFluid>;
var itemTagNew = <tag:items:forge:gems> as MCTag<MCItemDefinition>;
//Comment intéragir
var myGemTagOld = <tag:forge:gems>;
myGemTagOld.addItems(<item:minecraft:bedrock>);
myGemTagOld.removeItems(<item:minecraft:diamond>);
var myGemTagNew = <tag:items:forge:gems>;
myGemTagNew.add(<item:minecraft:bedrock>);
myGemTagNew.remove(<item:minecraft:diamond>);
//Expansions d'ingrédients
var reuseOld = <tag:forge:gems>.reuse();
var reuseNew = <tag:items:forge:gems>.asIIngredient().reuse();
Les types de conteneur deviennent des types vanilla
Link to les-types-de-conteneur-deviennent-des-types-vanilla
Nous avons changé certains travaux internes de CraftTweaker pour utiliser directement les types de minecraft.
Ce changement ne doit pas affecter directement vos scripts existants, mais va casser certaines des intégrations ajoutées par d'autres mods.
Les classes cassées seront enregistrées dans les logs de crafttweaker Si vous trouvez que certains de vos scripts sont cassés, vérifiez s'ils utilisent une des classes cassées.
Méthode pour enregister le changement de signature pour EventHandlers
Link to méthode-pour-enregister-le-changement-de-signature-pour-eventhandlers
Event listeners no longer have the consumer in a custom constructor.
Instead, the registitration method was changed to be generic.
Exemple de migration :
ZenScript Copyimport crafttweaker.api.events.CTEventManager;
import crafttweaker.api.event.entity.player.MCAnvilRepairEvent;
//Ancienne façon :
CTEventManager. egister(new MCAnvilRepairEvent((event) => {
var player = event. layer;
var result = event.itemResult;
println("Joueur '" + player.name + "' crafted " + result.commandString);
}));
//Nouvelle façon :
CTEventManager. egister<MCAnvilRepairEvent>((événement) => {
var player = event. layer;
var result = event.itemResult;
println("Joueur '" + player.name + "' crafted " + result.commandString);
});
ZenCode : Les balises de stockage ont disparu
Link to zencode--les-balises-de-stockage-ont-disparu
We removed Storage tags from the ZenCode language Specifications for now.
They are not required for CraftTweaker and made debugging harder.
Most people did not need to use storage tags so we don't expect you to need to pursue this migration step.
Exemple de migration :
ZenScript Copyvar before = {} as string`static[string`static]`unique
var after = {} as string[string];
function funcBefore(argument as string`borrow) as string`unique {
return argument + "!";
}
function funcAfter(argument as string) as string {
return argument + "!";
}