MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Craft avec nbt qui reste

    Planifier Épinglé Verrouillé Déplacé Résolu 1.15.x
    1.15.2
    11 Messages 2 Publieurs 766 Vues 3 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • DailyCraftD Hors-ligne
      DailyCraft
      dernière édition par

      Alors ?

      Mes créations :

      Mod en cours de développement : Personal Robot (1.15.2)

      Datapacks : DailyCraft's Craft (beta)

      Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

      1 réponse Dernière réponse Répondre Citer 0
      • DailyCraftD Hors-ligne
        DailyCraft
        dernière édition par DailyCraft

        Les events que j’ai essayer d’utiliser sont RecipesUpdateEvent et PlayerEvent.ItemCraftedEvent et rien, aidez moi svp

        Mes créations :

        Mod en cours de développement : Personal Robot (1.15.2)

        Datapacks : DailyCraft's Craft (beta)

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • DailyCraftD Hors-ligne
          DailyCraft
          dernière édition par

          up ?

          Mes créations :

          Mod en cours de développement : Personal Robot (1.15.2)

          Datapacks : DailyCraft's Craft (beta)

          Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • DailyCraftD Hors-ligne
            DailyCraft
            dernière édition par

            Il n’y a personne qui veux me répondre ? 😢

            Mes créations :

            Mod en cours de développement : Personal Robot (1.15.2)

            Datapacks : DailyCraft's Craft (beta)

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

            1 réponse Dernière réponse Répondre Citer 0
            • En0ri4nE Hors-ligne
              En0ri4n
              dernière édition par

              Je pense que tu devrais regarder du coté des crafts pour les shulkers box car elles gardent leurs items donc leurs nbts la classe s’appelle ShulkerBoxRecipes désolé de ne pas t’aider plus mais j’ai jamais essayé 🙂

              Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

              1 réponse Dernière réponse Répondre Citer 0
              • DailyCraftD Hors-ligne
                DailyCraft
                dernière édition par DailyCraft

                c’est ca le nom ShulkerBoxColoringRecipe, tu m’as menti 😢

                Mes créations :

                Mod en cours de développement : Personal Robot (1.15.2)

                Datapacks : DailyCraft's Craft (beta)

                Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

                1 réponse Dernière réponse Répondre Citer 0
                • DailyCraftD Hors-ligne
                  DailyCraft
                  dernière édition par DailyCraft

                  J’avoue, je suis un peu perdu avec ceux que je dois faire,

                  ShulkerBoxColoringRecipe :

                  public class ShulkerBoxColoringRecipe extends SpecialRecipe {
                     public ShulkerBoxColoringRecipe(ResourceLocation idIn) {
                        super(idIn);
                     }
                  
                     /**
                      * Used to check if a recipe matches current crafting inventory
                      */
                     public boolean matches(CraftingInventory inv, World worldIn) {
                        int i = 0;
                        int j = 0;
                  
                        for(int k = 0; k < inv.getSizeInventory(); ++k) {
                           ItemStack itemstack = inv.getStackInSlot(k);
                           if (!itemstack.isEmpty()) {
                              if (Block.getBlockFromItem(itemstack.getItem()) instanceof ShulkerBoxBlock) {
                                 ++i;
                              } else {
                                 if (!itemstack.getItem().isIn(net.minecraftforge.common.Tags.Items.DYES)) {
                                    return false;
                                 }
                  
                                 ++j;
                              }
                  
                              if (j > 1 || i > 1) {
                                 return false;
                              }
                           }
                        }
                  
                        return i == 1 && j == 1;
                     }
                  
                     /**
                      * Returns an Item that is the result of this recipe
                      */
                     public ItemStack getCraftingResult(CraftingInventory inv) {
                        ItemStack itemstack = ItemStack.EMPTY;
                        net.minecraft.item.DyeColor dyecolor = net.minecraft.item.DyeColor.WHITE;
                  
                        for(int i = 0; i < inv.getSizeInventory(); ++i) {
                           ItemStack itemstack1 = inv.getStackInSlot(i);
                           if (!itemstack1.isEmpty()) {
                              Item item = itemstack1.getItem();
                              if (Block.getBlockFromItem(item) instanceof ShulkerBoxBlock) {
                                 itemstack = itemstack1;
                              } else {
                                 net.minecraft.item.DyeColor tmp = net.minecraft.item.DyeColor.getColor(itemstack1);
                                 if (tmp != null) dyecolor = tmp;
                              }
                           }
                        }
                  
                        ItemStack itemstack2 = ShulkerBoxBlock.getColoredItemStack(dyecolor);
                        if (itemstack.hasTag()) {
                           itemstack2.setTag(itemstack.getTag().copy());
                        }
                  
                        return itemstack2;
                     }
                  
                     /**
                      * Used to determine if this recipe can fit in a grid of the given width/height
                      */
                     public boolean canFit(int width, int height) {
                        return width * height >= 2;
                     }
                  
                     public IRecipeSerializer<?> getSerializer() {
                        return IRecipeSerializer.CRAFTING_SPECIAL_SHULKERBOXCOLORING;
                     }
                  }
                  

                  et la mienne :

                  public class RecipePersonalBlock extends SpecialRecipe
                  {
                      public RecipePersonalBlock()
                      {
                          super(new ResourceLocation(null /* :) */));
                      }
                  
                      @Override
                      public boolean matches(CraftingInventory inv, World worldIn)
                      {
                          return false;
                      }
                  
                      @Override
                      public ItemStack getCraftingResult(CraftingInventory inv)
                      {
                          ItemStack ingredient1 = inv.getStackInSlot(1);
                          ItemStack ingredient2 = inv.getStackInSlot(2);
                          ItemStack ingredient3 = inv.getStackInSlot(3);
                          ItemStack ingredient4 = inv.getStackInSlot(4);
                          ItemStack ingredient5 = inv.getStackInSlot(5);
                          ItemStack ingredient6 = inv.getStackInSlot(6);
                          ItemStack ingredient7 = inv.getStackInSlot(7);
                          ItemStack ingredient8 = inv.getStackInSlot(8);
                          ItemStack ingredient9 = inv.getStackInSlot(9);
                  
                          if (ingredient1.getTag().getString("Owner").equals(ingredient2.getTag().getString("Owner")) && ingredient2.getTag().getString("Owner").equals(ingredient3.getTag().getString("Owner")) && ingredient3.getTag().getString("Owner").equals(ingredient4.getTag().getString("Owner")) && ingredient4.getTag().getString("Owner").equals(ingredient5.getTag().getString("Owner")) && ingredient5.getTag().getString("Owner").equals(ingredient6.getTag().getString("Owner")) && ingredient6.getTag().getString("Owner").equals(ingredient7.getTag().getString("Owner")) && ingredient7.getTag().getString("Owner").equals(ingredient8.getTag().getString("Owner")) && ingredient8.getTag().getString("Owner").equals(ingredient9.getTag().getString("Owner")))
                          {
                              ItemStack item = new ItemStack(Blocks.PERSONAL_BLOCK);
                              item.getTag().putString("Owner", ingredient1.getTag().getString("Owner"));
                  
                              return item;
                          }
                  
                          return ItemStack.EMPTY;
                      }
                  
                      @Override
                      public boolean canFit(int width, int height)
                      {
                          return false;
                  
                          /* EDIT : Je pense que ici c'est  : */ return width * height >= 9;
                      }
                  
                      @Override
                      public IRecipeSerializer<?> getSerializer()
                      {
                          return null;
                  
                          // EDIT : Ici il faudra aller voir comment c'est sur IRecipeSerializer.CRAFTING_SPECIALSHULKERBOXCOLORING donc pas trop difficile
                      }
                  }
                  

                  et si vous savez comment compacter ma vérification, ce serai cool 🙂

                  EDIT : en fait, il y a juste la fonction matches ou je ne sais pas quoi mettre donc ça va en fait

                  Mes créations :

                  Mod en cours de développement : Personal Robot (1.15.2)

                  Datapacks : DailyCraft's Craft (beta)

                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

                  1 réponse Dernière réponse Répondre Citer 0
                  • DailyCraftD Hors-ligne
                    DailyCraft
                    dernière édition par DailyCraft

                    Je pense que je peux compacter en créant la fonction :

                    private String ingredients(CraftingInventory inv, int slot)
                    {
                        return inv.getStackInSlot(slot).getTag().getString("Owner");
                    }
                    

                    Je sais, c’est pas foufou mais c’est deja mieux

                    EDIT : et pour enregistrer la recette j’ai essayer (mais je sais as si c’est correcte) :

                    @EventBusSubscriber(modid = Main.MODID, bus = Bus.MOD)
                    public class Recipes
                    {
                        @SubscribeEvent
                        public static void registerRecipes(Register<IRecipeSerializer<?> /* Je crois que ça s'écrivait comme ça */ > event)
                        {
                            event.getRegistry.register(new SpecialRecipeSerializer/* Toujours pas sur du nom */<IRecipe<?>>(new RecipePersonalBlock() /*mais il y avait une erreur que je n'arrive pas à régler*/).setRegisteryName("personal_block"));

                    Mes créations :

                    Mod en cours de développement : Personal Robot (1.15.2)

                    Datapacks : DailyCraft's Craft (beta)

                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

                    1 réponse Dernière réponse Répondre Citer 0
                    • DailyCraftD Hors-ligne
                      DailyCraft
                      dernière édition par

                      up ?

                      Mes créations :

                      Mod en cours de développement : Personal Robot (1.15.2)

                      Datapacks : DailyCraft's Craft (beta)

                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

                      1 réponse Dernière réponse Répondre Citer 0
                      • DailyCraftD Hors-ligne
                        DailyCraft
                        dernière édition par

                        Bon j’ai décider de faire une machine à part, au moins ça règlera mon problème

                        Mes créations :

                        Mod en cours de développement : Personal Robot (1.15.2)

                        Datapacks : DailyCraft's Craft (beta)

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1 / 1
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB