Bonjour, je me tourne vers vous car vous êtes la communauté la plus active, et je ne connais pas d'autre endroit où l'on peut m'aider. Je débute en développement avec JavaScript (JSVA) et surtout sur les mods Minecraft. Je ne comprends pas comment faire fonctionner le code suivant : normalement, le code devrait permettre, à chaque tick du jeu, de savoir quel est l'objet dans la main du joueur. Cependant, je n'arrive pas à le faire fonctionner; il plante avant de se lancer, et je ne sais pas pourquoi. Merci à vous en tout cas. Si vous connaissez un forum pour les développeurs de mods Minecraft, je suis preneur. Merci encore.
package net.nekogrile.mending_auto_repair.mixin;
import net.fabricmc.fabric.api.event.player.UseItemCallback;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.TypedActionResult;
public class ItemStackHandler {
private ItemStack lastLeftHandItem = ItemStack.EMPTY;
public ItemStackHandler() {
// Utilisez le callback de tick pour détecter chaque tick
UseItemCallback.EVENT.register((player, world, hand) -> {
return onPlayerTick(player);
});
}
private TypedActionResult<ItemStack> onPlayerTick(PlayerEntity player) {
ItemStack mainHandItem = player.getMainHandStack();
// Vérifiez si l'item dans la main gauche a changé
if (!areItemsEqualIgnoreTags(mainHandItem, lastLeftHandItem)) {
// Mettez à jour l'inventaire et faites d'autres actions nécessaires
updateLeftHandItem(mainHandItem);
// Mettez à jour l'item dans la main gauche pour le prochain tick
lastLeftHandItem = mainHandItem.copy();
}
return TypedActionResult.pass(mainHandItem);
}
private boolean areItemsEqualIgnoreTags(ItemStack stack1, ItemStack stack2) {
// Comparez les types d'items
if (stack1.getItem() != stack2.getItem()) {
return false;
}
// Vous pouvez ajouter d'autres comparaisons ici selon vos besoins
return true;
}
private void updateLeftHandItem(ItemStack leftHandItem) {
// Mettez ici le code pour gérer l'item dans la main gauche
// Vous pouvez effectuer des actions spécifiques en fonction de l'item détecté
// (par exemple, vérifier s'il a l'enchantement "Mending", etc.)
System.out.println("Item dans la main gauche : " + leftHandItem.getItem().getTranslationKey());
}
}
minecraft mod recuperer l item dans la main
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.