@H_SerhatY What I suggested may be something you currently don't understand, but it isn't hard to learn. And once you do it you can reapply it later.
First in your Items class in the constructor call setHasSubtypes(true) this allows getSubItems to be called in your Items Class Which is the next this to do.
So Override getSubItems(CreativeTab NonNullList<ItemStack) and create a new ItemStack of your Item and call addEnchantment(Enchantment, int) on the ItemStack that you created. Finally check if the first parameter is the CreativeTab you wish to add it to, then add your ItemStack to the second parameter.
This is the more complicated part, but still not that complicated. You need a new class that implements IRecipeFactory. This will provide you one method. This wants you to return an IRecipe and gives you a JsonContext and a JsonObject. These parameters come from a json file, which is the new way to add recipes to the game. This means you can create your own custom format for a recipe. For further understanding on how to read the data from the JsonObject search for tutorials on GSon, though it is relatively similar to nbt.
Once you have your custom format which can derive from the already existing formats, you can create a new ShapedRecipe or a new ShapelessRecipe and that will be what you return in the method, but you will need to create a new ItemStack and add the Enchantment the same way you did earlier, and then pass it into the new ShapedRecipe or new ShapelessRecipe as the result.