Jump to content

PadFoot2008

Members
  • Posts

    43
  • Joined

  • Last visited

Everything posted by PadFoot2008

  1. Thanks for replying. It does work except I can't seem to knock them back away from the player, instead they get pulled towards the player and stay at the player's location and when I switch to another item they get thrown away. How do I knock them back away from the player?
  2. Also what I'm trying to do is that holding this particular staff I made would cause Zombies to stay away from the player an eight block radius and any Zombies that're coming towards the player to attack them will quickly go out the radius as soon as the player brings the staff into their main hand. Could you also suggest a way to make that happen?
  3. Thanks for the help. But I tried doing that but it isn't work. In fact, for some reason, none of the event classes or mixins added by me seem to work. Could there be a specific reason for that? Also adding breakpoints doesn't work too. It did use to work, but it suddenly stopped working. I've also been getting java.io.IOException each time I run the mod. Just for extra info, I'm using IntelliJ IDE.
  4. I'm trying to make a potion which when applied to a zombie will cause it to run away from the player till the effect is over, kind of like how skeletons run away from wolves. But I have currently no idea how do make the zombie do that. Is there a way to do that?
  5. Edited - Actually I think I've already done that in the line before the class declaration. @Mod.EventBusSubscriber(modid = ImmersiveSurvival.MOD_ID) And also in the Mod class. MinecraftForge.EVENT_BUS.register(ModEvents.class); But it's still not working, please please help.
  6. I tried to create an event class which shall check if a player is holding a torch and make zombies and skeleton scared of the player an run away, but IntelliJ is telling me that Class 'ModEvents' is never used and Method 'onPlayerTick(net.minecraftforge.event.TickEvent.PlayerTickEvent)' is never used and both the class name and the method name appear grayed out instead of yellow. I don't understand where I went wrong. Please help and do tell me if I need to provide any other pieces of my mod. @Mod.EventBusSubscriber(modid = ImmersiveSurvival.MOD_ID) public class ModEvents { @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent event) { if (event.side == LogicalSide.CLIENT && event.phase == TickEvent.Phase.END) { PlayerEntity player = event.player; if (player.getHeldItemMainhand().getItem() == Items.TORCH) { World world = player.world; AxisAlignedBB box = player.getBoundingBox().grow(8.0); List<MobEntity> mobs = world.getEntitiesWithinAABB(MobEntity.class, box); for (MobEntity mob : mobs) { if (!mob.isPotionActive(FEAR_EFFECT) && (mob instanceof ZombieEntity || mob instanceof SkeletonEntity)) { mob.addPotionEffect(new EffectInstance(FEAR_EFFECT, 20)); mob.setRevengeTarget(player); } } } World world = player.world; AxisAlignedBB box = player.getBoundingBox().grow(128.0); for (Entity entity : world.getLoadedEntitiesWithinAABB(MobEntity.class, box)) { if (entity instanceof LivingEntity) { LivingEntity livingEntity = (LivingEntity) entity; if ((livingEntity instanceof ZombieEntity || livingEntity instanceof SkeletonEntity) && livingEntity.isPotionActive(FEAR_EFFECT)) { if (livingEntity.getActivePotionEffect(FEAR_EFFECT).getDuration() == 0) { livingEntity.setRevengeTarget(null); } } } } } } } Also, I created a Fear_Effect which doesnt really do anything except set a countdown so that I can set the target back to null. Please suggest a better way if you know one.
  7. Thanks a lot, the debugger method worked. It turns out that ItemStack#isEnchantible() returns false if the item already has an enchantment. So I removed it.
  8. Sorry if I sound like a novice, but how do I use debugger here (I'm not sure how to use debugger here)?
  9. In EnchantingPedestralTile.java, in the craft method, I changed ItemStack tool = iRecipe.getRecipeOutput(); to ItemStack tool = iRecipe.getCraftingResult(inv); And it works. It enchants the item and all but here, @Override public ItemStack getCraftingResult(IInventory inv) { ItemStack output = inv.getStackInSlot(0); int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); if (output.isEnchantable() == true) { if (i != j) { output.addEnchantment(enchant, i + 1); } } return output; } It always enchants with level 1 enchantment, instead of getting the current enchantment level and incrementing it by one and then applying it to the item. Why does this happen? What do I do?
  10. Current code: public class EnchantingPedestralRecipe implements IEnchantingPedestralRecipe { public enum Weather { CLEAR, RAIN, THUNDERING; public static Weather getWeatherByString(String s) { return Objects.equals(s, "thundering") ? THUNDERING : Objects.equals(s, "rain") ? RAIN : CLEAR; } } private final ResourceLocation id; private final NonNullList<Ingredient> recipeItems; private final Weather weather; private final Enchantment enchant; public EnchantingPedestralRecipe(ResourceLocation id, NonNullList<Ingredient> recipeItems, Weather weather, Enchantment enchant) { this.id = id; this.recipeItems = recipeItems; this.weather = weather; this.enchant = enchant; } @Override public boolean matches(IInventory inv, World worldIn) { if (recipeItems.get(1).test(inv.getStackInSlot(1))) { return recipeItems.get(1).test(inv.getStackInSlot(1)); } return false; } @Override public NonNullList<Ingredient> getIngredients() { return recipeItems; } @Override public ItemStack getCraftingResult(IInventory inv) { ItemStack output = inv.getStackInSlot(0); int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); int k = i++; if (output.isEnchantable() == true) { if (i<j) { output.addEnchantment(enchant, k); } } return output; } @Override public ItemStack getRecipeOutput() { ItemStack output = ItemStack.EMPTY; return output.copy(); } public Enchantment getEnchant() { return enchant; } public Weather getWeather() { return this.weather; } public ItemStack getIcon() { return new ItemStack(ModBlocks.ENCHANTING_PEDESTRAL.get()); } @Override public ResourceLocation getId() { return id; } @Override public IRecipeSerializer<?> getSerializer() { return ModRecipeTypes.ENCHANTING_SERIALIZER.get(); } public static class EnchantingRecipeType implements IRecipeType<EnchantingPedestralRecipe> { @Override public String toString() { return EnchantingPedestralRecipe.TYPE_ID.toString(); } } public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<EnchantingPedestralRecipe> { @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, JsonObject json) { String enchantraw = JSONUtils.getString(json, "enchantment"); Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantraw)); String weather = JSONUtils.getString(json, "weather"); JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.deserialize(ingredients.get(i))); } return new EnchantingPedestralRecipe(recipeId, inputs, Weather.getWeatherByString(weather), enchant); } @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } Enchantment enchant = buffer.readRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS); return new EnchantingPedestralRecipe(recipeId, inputs, null, enchant); } @Override public void write(PacketBuffer buffer, EnchantingPedestralRecipe recipe) { buffer.writeInt(recipe.getIngredients().size()); for (Ingredient ing : recipe.getIngredients()) { ing.write(buffer); } buffer.writeRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS, recipe.getEnchant()); } } } Please help.
  11. It doesn't work. Both. ItemStack output = ItemStack.EMPTY; //OR ItemStack output = new ItemStack(Items.BELL);
  12. What does something mean? Like anything? A bell like I used earlier?
  13. But this is a syntax error? In read method output's coming as red. public class EnchantingPedestralRecipe implements IEnchantingPedestralRecipe { public enum Weather { CLEAR, RAIN, THUNDERING; public static Weather getWeatherByString(String s) { return Objects.equals(s, "thundering") ? THUNDERING : Objects.equals(s, "rain") ? RAIN : CLEAR; } } private final ResourceLocation id; private final ItemStack output; private final NonNullList<Ingredient> recipeItems; private final Weather weather; private final Enchantment enchant; public EnchantingPedestralRecipe(ResourceLocation id, ItemStack output, NonNullList<Ingredient> recipeItems, Weather weather, Enchantment enchant) { this.id = id; this.output = output; this.recipeItems = recipeItems; this.weather = weather; this.enchant = enchant; } @Override public boolean matches(IInventory inv, World worldIn) { if (recipeItems.get(1).test(inv.getStackInSlot(1))) { return recipeItems.get(1).test(inv.getStackInSlot(1)); } return false; } @Override public NonNullList<Ingredient> getIngredients() { return recipeItems; } @Override public ItemStack getCraftingResult(IInventory inv) { ItemStack output = inv.getStackInSlot(0); int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); int k = i++; if (output.isEnchantable() == true) { if (i<j) { output.addEnchantment(enchant, k); } } return output; } @Override public ItemStack getRecipeOutput() { return output.copy(); } public Enchantment getEnchant() { return enchant; } public Weather getWeather() { return this.weather; } public ItemStack getIcon() { return new ItemStack(ModBlocks.ENCHANTING_PEDESTRAL.get()); } @Override public ResourceLocation getId() { return id; } @Override public IRecipeSerializer<?> getSerializer() { return ModRecipeTypes.ENCHANTING_SERIALIZER.get(); } public static class EnchantingRecipeType implements IRecipeType<EnchantingPedestralRecipe> { @Override public String toString() { return EnchantingPedestralRecipe.TYPE_ID.toString(); } } public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<EnchantingPedestralRecipe> { @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, JsonObject json) { String enchantraw = JSONUtils.getString(json, "enchantment"); Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantraw)); String weather = JSONUtils.getString(json, "weather"); JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.deserialize(ingredients.get(i))); } return new EnchantingPedestralRecipe(recipeId, output, inputs, Weather.getWeatherByString(weather), enchant); } @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } ItemStack output = buffer.readItemStack(); Enchantment enchant = buffer.readRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS); return new EnchantingPedestralRecipe(recipeId, output, inputs, null, enchant); } @Override public void write(PacketBuffer buffer, EnchantingPedestralRecipe recipe) { buffer.writeInt(recipe.getIngredients().size()); for (Ingredient ing : recipe.getIngredients()) { ing.write(buffer); } buffer.writeItemStack(recipe.getRecipeOutput(), false); buffer.writeRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS, recipe.getEnchant()); } } }
  14. It isn't working (see code): public class EnchantingPedestralRecipe implements IEnchantingPedestralRecipe { public enum Weather { CLEAR, RAIN, THUNDERING; public static Weather getWeatherByString(String s) { return Objects.equals(s, "thundering") ? THUNDERING : Objects.equals(s, "rain") ? RAIN : CLEAR; } } private final ResourceLocation id; private final ItemStack output; private final NonNullList<Ingredient> recipeItems; private final Weather weather; private final Enchantment enchant; public EnchantingPedestralRecipe(ResourceLocation id, ItemStack output, NonNullList<Ingredient> recipeItems, Weather weather, Enchantment enchant) { this.id = id; this.output = output; this.recipeItems = recipeItems; this.weather = weather; this.enchant = enchant; } @Override public boolean matches(IInventory inv, World worldIn) { if (recipeItems.get(1).test(inv.getStackInSlot(1))) { return recipeItems.get(1).test(inv.getStackInSlot(1)); } return false; } @Override public NonNullList<Ingredient> getIngredients() { return recipeItems; } @Override public ItemStack getCraftingResult(IInventory inv) { ItemStack output = inv.getStackInSlot(0); int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); int k = i++; if (output.isEnchantable() == true) { if (i<j) { output.addEnchantment(enchant, k); } } return output; } @Override public ItemStack getRecipeOutput() { return output.copy(); } public Enchantment getEnchant() { return enchant; } public Weather getWeather() { return this.weather; } public ItemStack getIcon() { return new ItemStack(ModBlocks.ENCHANTING_PEDESTRAL.get()); } @Override public ResourceLocation getId() { return id; } @Override public IRecipeSerializer<?> getSerializer() { return ModRecipeTypes.ENCHANTING_SERIALIZER.get(); } public static class EnchantingRecipeType implements IRecipeType<EnchantingPedestralRecipe> { @Override public String toString() { return EnchantingPedestralRecipe.TYPE_ID.toString(); } } public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<EnchantingPedestralRecipe> { @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, JsonObject json) { String enchantraw = JSONUtils.getString(json, "enchantment"); Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantraw)); ItemStack output = null; //I know this is incorrect; what do I do? String weather = JSONUtils.getString(json, "weather"); JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.deserialize(ingredients.get(i))); } return new EnchantingPedestralRecipe(recipeId, output, inputs, Weather.getWeatherByString(weather), enchant); } @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } ItemStack output = buffer.readItemStack(); Enchantment enchant = buffer.readRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS); return new EnchantingPedestralRecipe(recipeId, output, inputs, null, enchant); } @Override public void write(PacketBuffer buffer, EnchantingPedestralRecipe recipe) { buffer.writeInt(recipe.getIngredients().size()); for (Ingredient ing : recipe.getIngredients()) { ing.write(buffer); } buffer.writeItemStack(recipe.getRecipeOutput(), false); buffer.writeRegistryIdUnsafe(ForgeRegistries.ENCHANTMENTS, recipe.getEnchant()); } } }
  15. You mean something like this? Enchantment enchant = buffer.readRegistryIdUnsafe(); //And buffer.writeRegistryIdUnsafe(recipe.getEnchant(), false);
  16. Okay, but what do I add here? @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } ItemStack output = buffer.readItemStack(); //What do I add here return new EnchantingPedestralRecipe(recipeId, output, inputs, null, enchant); } The whole code (as of now): package com.padfoot.immersivesurvival.data.recipes; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializer; import com.google.gson.JsonObject; import com.padfoot.immersivesurvival.block.ModBlocks; import com.padfoot.immersivesurvival.container.EnchantingPedestralContainer; import com.padfoot.immersivesurvival.screen.EnchantingPedestralScreen; import com.padfoot.immersivesurvival.tileentity.EnchantingPedestralTile; import net.minecraft.enchantment.*; import net.minecraft.entity.item.minecart.MinecartEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Inventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.IRecipeType; import net.minecraft.item.crafting.Ingredient; import net.minecraft.item.crafting.ShapedRecipe; import net.minecraft.nbt.ListNBT; import net.minecraft.network.PacketBuffer; import net.minecraft.util.JSONUtils; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistryEntry; import javax.annotation.Nullable; import java.util.Arrays; import java.util.Objects; public class EnchantingPedestralRecipe implements IEnchantingPedestralRecipe { public enum Weather { CLEAR, RAIN, THUNDERING; public static Weather getWeatherByString(String s) { return Objects.equals(s, "thundering") ? THUNDERING : Objects.equals(s, "rain") ? RAIN : CLEAR; } } private final ResourceLocation id; private final ItemStack output; private final NonNullList<Ingredient> recipeItems; private final Weather weather; private final Enchantment enchant; public EnchantingPedestralRecipe(ResourceLocation id, ItemStack output, NonNullList<Ingredient> recipeItems, Weather weather, Enchantment enchant) { this.id = id; this.output = output; this.recipeItems = recipeItems; this.weather = weather; this.enchant = enchant; } @Override public boolean matches(IInventory inv, World worldIn) { if (recipeItems.get(1).test(inv.getStackInSlot(1))) { return recipeItems.get(1).test(inv.getStackInSlot(1)); } return false; } @Override public NonNullList<Ingredient> getIngredients() { return recipeItems; } @Override public ItemStack getCraftingResult(IInventory inv) { ItemStack output = inv.getStackInSlot(0); int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); int k = i++; if (output.isEnchantable() == true) { if (i<j) { output.addEnchantment(enchant, k); } } return output; } @Override public ItemStack getRecipeOutput() { return output.copy(); } public Weather getWeather() { return this.weather; } public ItemStack getIcon() { return new ItemStack(ModBlocks.ENCHANTING_PEDESTRAL.get()); } @Override public ResourceLocation getId() { return id; } @Override public IRecipeSerializer<?> getSerializer() { return ModRecipeTypes.ENCHANTING_SERIALIZER.get(); } public static class EnchantingRecipeType implements IRecipeType<EnchantingPedestralRecipe> { @Override public String toString() { return EnchantingPedestralRecipe.TYPE_ID.toString(); } } public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<EnchantingPedestralRecipe> { @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, JsonObject json) { String enchantraw = JSONUtils.getString(json, "enchantment"); Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantraw)); ItemStack output = new ItemStack(Items.BELL); String weather = JSONUtils.getString(json, "weather"); JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.deserialize(ingredients.get(i))); } return new EnchantingPedestralRecipe(recipeId, output, inputs, Weather.getWeatherByString(weather), enchant); } @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } ItemStack output = buffer.readItemStack(); //What do I add here return new EnchantingPedestralRecipe(recipeId, output, inputs, null, enchant); } @Override public void write(PacketBuffer buffer, EnchantingPedestralRecipe recipe) { buffer.writeInt(recipe.getIngredients().size()); for (Ingredient ing : recipe.getIngredients()) { ing.write(buffer); } buffer.writeItemStack(recipe.getRecipeOutput(), false); //Do I add anything here? } } } Also do I need to anything in write method?
  17. How do I get the enchantment from the Json file in getCraftingResult?
  18. It does enchant. So what do I do? You know what I want to do. I have told that earlier in this post itself. Please help.
  19. Hye I want a bit of help. I modified the code to this : public class EnchantingPedestralRecipe implements IEnchantingPedestralRecipe { public enum Weather { CLEAR, RAIN, THUNDERING; public static Weather getWeatherByString(String s) { return Objects.equals(s, "thundering") ? THUNDERING : Objects.equals(s, "rain") ? RAIN : CLEAR; } } private final ResourceLocation id; private final ItemStack output; private final NonNullList<Ingredient> recipeItems; private final Weather weather; public static ItemStack outputin; public EnchantingPedestralRecipe(ResourceLocation id, ItemStack output, NonNullList<Ingredient> recipeItems, Weather weather) { this.id = id; this.output = output; this.recipeItems = recipeItems; this.weather = weather; } @Override public boolean matches(IInventory inv, World worldIn) { ItemStack item = inv.getStackInSlot(0); if(item != null) { if (recipeItems.get(1).test(inv.getStackInSlot(1))) { outputin = item; return recipeItems.get(1).test(inv.getStackInSlot(1)); } } return false; } @Override public NonNullList<Ingredient> getIngredients() { return recipeItems; } @Override public ItemStack getCraftingResult(IInventory inv) { return output; } @Override public ItemStack getRecipeOutput() { return output.copy(); } public Weather getWeather() { return this.weather; } public ItemStack getIcon() { return new ItemStack(ModBlocks.ENCHANTING_PEDESTRAL.get()); } @Override public ResourceLocation getId() { return id; } @Override public IRecipeSerializer<?> getSerializer() { return ModRecipeTypes.ENCHANTING_SERIALIZER.get(); } public static class EnchantingRecipeType implements IRecipeType<EnchantingPedestralRecipe> { @Override public String toString() { return EnchantingPedestralRecipe.TYPE_ID.toString(); } } public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<EnchantingPedestralRecipe> { @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, JsonObject json) { String enchantraw = JSONUtils.getString(json, "enchantment"); Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(new ResourceLocation(enchantraw)); ItemStack output; if (outputin != null) { output = outputin; int i = EnchantmentHelper.getEnchantmentLevel(enchant, output); int j = enchant.getMaxLevel(); int k = i++; if (output.isEnchantable() == true) { if (i<j) { output.addEnchantment(enchant, k); } } } else { output = new ItemStack(Items.BELL); } String weather = JSONUtils.getString(json, "weather"); JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.deserialize(ingredients.get(i))); } return new EnchantingPedestralRecipe(recipeId, output, inputs, Weather.getWeatherByString(weather)); } @Nullable @Override public EnchantingPedestralRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) { inputs.set(i, Ingredient.read(buffer)); } ItemStack output = buffer.readItemStack(); return new EnchantingPedestralRecipe(recipeId, output, inputs, null); } @Override public void write(PacketBuffer buffer, EnchantingPedestralRecipe recipe) { buffer.writeInt(recipe.getIngredients().size()); for (Ingredient ing : recipe.getIngredients()) { ing.write(buffer); } buffer.writeItemStack(recipe.getRecipeOutput(), false); } } } And when I run Minecraft, it always outputs a bell, instead of enchanting the item? What's the mistake I've done? How do I solve it?
  20. PM 02:41:37: Executing 'runClient --stacktrace'... FAILURE: Build failed with an exception. * Where: Build file 'C:\Users\Tejas Bag\Work\ImmersiveSurvival\build.gradle' line: 10 * What went wrong: A problem occurred evaluating root project 'ImmersiveSurvival'. > net/minecraftforge/gradle/common/util/EnvironmentChecks * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'ImmersiveSurvival'. at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133) at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:79) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:136) at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44) at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:366) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:393) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:365) at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:42) at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26) at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35) at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:100) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:366) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:426) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:426) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:407) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:365) at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:91) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:63) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:751) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:151) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.ensureConfigured(DefaultProjectStateRegistry.java:339) at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:41) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:55) at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:48) at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:64) at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40) at org.gradle.initialization.VintageBuildModelController.lambda$prepareProjects$1(VintageBuildModelController.java:93) at org.gradle.internal.build.StateTransitionController.lambda$doTransition$1(StateTransitionController.java:222) at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243) at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:221) at org.gradle.internal.build.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:190) at org.gradle.initialization.VintageBuildModelController.prepareProjects(VintageBuildModelController.java:93) at org.gradle.initialization.VintageBuildModelController.doBuildStages(VintageBuildModelController.java:77) at org.gradle.initialization.VintageBuildModelController.prepareToScheduleTasks(VintageBuildModelController.java:64) at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$prepareToScheduleTasks$0(DefaultBuildLifecycleController.java:105) at org.gradle.internal.build.StateTransitionController.lambda$doTransition$1(StateTransitionController.java:222) at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243) at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:221) at org.gradle.internal.build.StateTransitionController.maybeTransition(StateTransitionController.java:174) at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.java:103) at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:33) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$2(DefaultBuildTreeLifecycleController.java:86) at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewTaskGraph(DefaultIncludedBuildTaskGraph.java:94) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:85) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:103) at org.gradle.internal.build.StateTransitionController.lambda$transition$0(StateTransitionController.java:145) at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243) at org.gradle.internal.build.StateTransitionController.transition(StateTransitionController.java:145) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:100) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:66) at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:53) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69) at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:114) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:155) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40) at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65) at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64) at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88) at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.internal.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) Caused by: java.lang.NoClassDefFoundError: net/minecraftforge/gradle/common/util/EnvironmentChecks at net.minecraftforge.gradle.userdev.UserDevPlugin.apply(UserDevPlugin.java:86) at net.minecraftforge.gradle.userdev.UserDevPlugin.apply(UserDevPlugin.java:80) at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:43) at org.gradle.api.internal.plugins.RuleBasedPluginTarget.applyImperative(RuleBasedPluginTarget.java:51) at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:187) at org.gradle.api.internal.plugins.DefaultPluginManager.access$100(DefaultPluginManager.java:52) at org.gradle.api.internal.plugins.DefaultPluginManager$AddPluginBuildOperation.run(DefaultPluginManager.java:282) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.api.internal.plugins.DefaultPluginManager.lambda$doApply$0(DefaultPluginManager.java:167) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44) at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:166) at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:146) at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:167) at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:43) at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:98) at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:190) at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:49) at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:37) at org.gradle.api.Script$apply$0.callCurrent(Unknown Source) at build_exbxen7qyqxbhx9bwa77gw3ht.run(C:\Users\Tejas Bag\Work\ImmersiveSurvival\build.gradle:10) at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91) ... 149 more * Get more help at https://help.gradle.org BUILD FAILED in 17s PM 02:41:56: Execution finished 'runClient --stacktrace'.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.