Giter VIP home page Giter VIP logo

unidentified-enchantments's People

Contributors

ferriarnus avatar pixvoxel avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

pixvoxel

unidentified-enchantments's Issues

Incompatibility of Horse Armor

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?

[Feature Request] Enchantment Analysis Table

Introduction

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.

Enchantment Analysis Table

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:

  • You put the item with hidden enchantment in one slot and in the other slot you put the item as payment. (It's something very similar to the vanilla enchantment table)
  • The table has a scroll to scroll if you have multiple enchantments
  • You can see the hidden and non-hidden enchantments on the table.
  • You choose the rank of enchantments to unlock (I will explain below)
  • To choose the rank you need the item used as payment (I will use lapis lazuli as an example) and also a certain amount of EXP levels
  • The item used as payment would be defined by the config file, so the user could define any item as payment method. mod:id
    It would be something like this: payItem = ["minecraft:lapis_lazuli"]
  • If the item had more than 4 enchantments, the scroll would scroll down 1 to 1. As in Enchanting Infuser.
  • When hovering the mouse over the empty slots, a text would appear informing the usefulness of the slot.

See below how I imagined the table.
image
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.)

Rank Function

This function would be to classify the enchantments and curses.
Everything would be done through the config file.

The system would work as follows:

  • When first starting the game with the mod, the mod would set the default rank of vanilla enchantments automatically in the config file. (Through a tier list within the mod.)
  • After that, any enchantments or curses outside the config file would be randomly ranked and saved in the file.
    (With that, any custom enchantment or curse would automatically rank and the user wouldn't need to edit files, but it would all be random.)
  • The configuration shape was inspired by the Rereskillable Rereforked configuration.
    It would be something like this:
    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:

  • Each RANK would have its cost defined by the levelCostRank
  • The user places the enchanted item and the pay item on the table.
    Now he chooses the rank he will use.
    If he uses Rank V, all hidden enchantments and curses will be revealed.
    But if he uses Rank III, only enchantments and curses from Rank III and below will be revealed. (With that, higher rank enchantments and curses would remain hidden)
    So, to reveal the rest, he needs to use a higher rank, spending more EXP levels.

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.

Information

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

Initialization error

Information

Forge version: 41.0.87
Minecraft: 1.19

Logs

-- 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) ~[?:?] {}

Game crashes when trying to use quivers from Parry This!

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!

Sometimes the Descriptions persists on tools

Hello! I can't seem to nail down exactly how to reproduce this bug, but I'll keep trying after posting this.

Sometimes the looted items' enchants appear hidden, sometimes not. I initially thought It was an incompatibility with Darkhax's Tool Stats mod, but removing it didn't help.
2022-04-14_19 29 32
2022-04-14_19 38 02
2022-04-14_19 32 55

[BUG/SUGGESTION] Scroll of identification and some bugs

I have three arguments:

  1. Scroll of identification have some bugs. when I used it, it stores experiences, but it lost all experiences sometimes when i dragged it.

  2. Could you make scroll xp adjustable?

  3. 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!

Feature Suggestion

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.