ferriarnus / unidentified-enchantments Goto Github PK
View Code? Open in Web Editor NEWHides the Enchantments on loot items
License: GNU Lesser General Public License v3.0
Hides the Enchantments on loot items
License: GNU Lesser General Public License v3.0
Due to the Allurement mod, horse armor can be attached to any enchantment that belongs to armor, so enchanted horse armors appear in the treasure chest.
However, I noticed that the enchantments added to horse armor are not in the Global Loot Modifiers list, so the enchantments cannot be hidden, except for the curses added by the Unidentified Enchantments mod, can this be fixed?
This is an idea I had with my friend.
What I'm going to say here is not to replace how your mod was made.
It's yours, you made it and you're the developer!
But as you said you are open to suggestions, I will show you how we would do it in our mod.
I will use the word "enchantments" to refer to enchantments and curses most of the time.
Unlike how you did it, our idea was for enchantments to be revealed through an analysis table.
This table would work in the same way as the vanilla enchantment table.
But instead of 15 bookshelves, it would need 26 bookshelves to operate at full strength.
Rank I: 6 bookshelf
Rank II: 14 bookshelf
Rank III: 18 bookshelf
Rank IV: 22 bookshelf
Rank V: 26 bookshelf
Table functions:
mod:id
payItem = ["minecraft:lapis_lazuli"]
See below how I imagined the table.
All textures and fonts were used from minecraft itself and enchantment table. Nothing has been used from mods or other sources.
Analysis Table - GIMP Project
(I used the name of the curse present in your mod as an example in the image.)
This function would be to classify the enchantments and curses.
Everything would be done through the config file.
The system would work as follows:
mod:id rankNumber
enchantmentRank = ["minecraft:silk_touch 4","minecraft:fortune 5","minecraft:mending 5", "unidentifiedenchatments:hungercurse 1"]
levelCostRank1 = 1
levelCostRank2 = 3
levelCostRank3 = 5
levelCostRank4 = 7
levelCostRank5 = 9
The rank buttons on the table would work as follows:
levelCostRank
With this system, the user can try his luck to spend less levels of exp using Rank III for example, and if his item has only Rank III enchantments and curses, he spends less. But he could also be unlucky that the item has higher rank enchantments and curses, so he would have to spend more levels to reveal the rest.
We decided not to use items as a way to reveal enchantments because we haven't found a practical way to do so.
And anyway the table would bring all the functionality to the fore.
But your parchment was smart, we wouldn't think about that hahaha
crash-2022-02-24_11.15.07-server.txt
I dunno what actually happened...
JEI show enchantment information and anvil recipes of origin enchantments.
Forge version: 41.0.87
Minecraft: 1.19
-- MOD unidentifiedenchantments --
Details:
Caused by 0: java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?] {}
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.87.jar%23170!/:?] {}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.87.jar%23169!/:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {}
Caused by 1: java.lang.NoClassDefFoundError: net/minecraftforge/common/loot/GlobalLootModifierSerializer
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}
at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:119) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?] {}
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
at com.ferri.arnus.unidentifiedenchantments.loot.LootRegistry.<clinit>(LootRegistry.java:19) ~[unidentifiedenchantments-1.0.11.jar%23159!/:1.0.11] {re:classloading}
at com.ferri.arnus.unidentifiedenchantments.UnidentifiedEnchantments.<init>(UnidentifiedEnchantments.java:36) ~[unidentifiedenchantments-1.0.11.jar%23159!/:1.0.11] {re:classloading}
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?] {}
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.87.jar%23170!/:?] {}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.87.jar%23169!/:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {}
Mod File: unidentifiedenchantments-1.0.11.jar
Failure message: Unidentified Enchantments (unidentifiedenchantments) has failed to load correctly
java.lang.reflect.InvocationTargetException: null
Mod Version: 1.0.11
Mod Issue URL: NOT PROVIDED
Exception message: java.lang.ClassNotFoundException: net.minecraftforge.common.loot.GlobalLootModifierSerializer
Stacktrace:
at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:141) ~[securejarhandler-2.1.4.jar:?] {}
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}
at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:119) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?] {}
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
at com.ferri.arnus.unidentifiedenchantments.loot.LootRegistry.<clinit>(LootRegistry.java:19) ~[unidentifiedenchantments-1.0.11.jar%23159!/:1.0.11] {re:classloading}
at com.ferri.arnus.unidentifiedenchantments.UnidentifiedEnchantments.<init>(UnidentifiedEnchantments.java:36) ~[unidentifiedenchantments-1.0.11.jar%23159!/:1.0.11] {re:classloading}
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?] {}
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.19-41.0.87.jar%23170!/:?] {}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:121) ~[fmlcore-1.19-41.0.87.jar%23169!/:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {}
Minecraft version: 1.18.2
Parry this! version: 2.5
Forge Version: 40.1.54
Unidentified Enchantments Version: 1.0.9
Crash Report: https://gist.github.com/NJL5390/0aacf80a53aff0a354c3525ed7795968
Hi,
I have just noticed when testing this mod with a mod called Parry this! (https://www.curseforge.com/minecraft/mc-mods/parrying) that the game crashes whenever I try to use some items from their mod such as the quiver. This crash seems to be in relation to unidentified enchantments as with just one of these mods installed then the game works fine.
I'm not sure if compatibility between these mods would need to be added due to how this mod works but either way it would be great to see this issue addressed between these two mods.
Here is the issue report on the parrying github: theishiopian/Parrying#30
Thanks for the great mod! I have never seen a mod like this before and I love the unique mechanics that it adds and I love how it adds some mystery to enchanted loot!
Newest UE crashes with Quark again
I have three arguments:
Scroll of identification have some bugs. when I used it, it stores experiences, but it lost all experiences sometimes when i dragged it.
Could you make scroll xp adjustable?
why this log on server?
[14:45:42] [Netty Epoll Server IO #3/ERROR] [minecraft/ArgumentTypes]: Could not serialize com.ferri.arnus.unidentifiedenchantments.command.GlobalLootTableCommand$GlobalLootArgument@61814d11 (class com.ferri.arnus.unidentifiedenchantments.command.GlobalLootTableCommand$GlobalLootArgument) - will not be sent to client!
Do you accept suggestions for the mod?
I have a big and good suggestion.
In fact, a few days ago my friend and I were talking about what this mod does!
We were going to develop a mod that does exactly what your mod does!
But you were faster and developed first hahahaha
So, I decided to share one of our ideas we had for the project!
If you want to hear it, just tell me, and I'll show you!
https://gist.github.com/CalamitousEnd/4120cdfaeb939669a736d33002588848
Exception message: java.lang.NoSuchFieldError: LOOT_MODIFIER_SERIALIZERS
Forge: 40.1.73
Mod version: 1.0.9
game loads to title screen fine, but loading a world causes a crash. not sure which mod its conflicting with.
crash-2022-08-14_00.11.59-client.txt
latest.log
If enchanted book one enchantment, It can be identified on JEI.
When there is only one type of enchantment, it will show the introduction content
in 1.18.2
https://i.imgur.com/g7lbSPA.png
https://i.imgur.com/Afd6qwe.png
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.