
PadFoot2008
Members-
Posts
43 -
Joined
-
Last visited
Everything posted by PadFoot2008
-
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?
-
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.
-
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.
-
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.
-
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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. -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
Sorry if I sound like a novice, but how do I use debugger here (I'm not sure how to use debugger here)? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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. -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
It doesn't work. Both. ItemStack output = ItemStack.EMPTY; //OR ItemStack output = new ItemStack(Items.BELL); -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
What does something mean? Like anything? A bell like I used earlier? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
What about getRecipeOutput. -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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()); } } } -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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()); } } } -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
What parameters do I pass? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
You mean something like this? Enchantment enchant = buffer.readRegistryIdUnsafe(); //And buffer.writeRegistryIdUnsafe(recipe.getEnchant(), false); -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
How do I get the enchantment from the Json file in getCraftingResult? -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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. -
How do I get what's there in a slot in a tile entity
PadFoot2008 replied to PadFoot2008's topic in Modder Support
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? -
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'.