emilyploszaj / emi Goto Github PK
View Code? Open in Web Editor NEWA featureful and accessible item and recipe viewer
License: MIT License
A featureful and accessible item and recipe viewer
License: MIT License
It would be nice to have mod menu compatibility. I'm creating a modpack and I would like to disable this mod by default but allow experienced modded players to just enable it via mod menu's config button.
You can have the button show your current mod config screen, most mods I see with compatibility just add a few lines in a separate file.
I'm a modpack dev. I've been studying the wiki and I really have found no way to simply add a recipe. I haven't made a modpack since 1.8 so I'm used to JEI and Crafttweaker and don't really know how to edit data packs or resource packs.
For example, I want to test it out by adding a world interaction recipe for basalt. How would I go about doing that?
Opening EMI while on a page that has a lot of animated items (enchanted books, potions, etc.) results in a heavy FPS loss. REI has an option to use static textures that it calls cached. Using that option in REI disables all the animations of items and gives a massive FPS boost. Something similar to that would be great in REI
Allow custom recipe specification, like Just Enough Calculation. Would allow for recipes of multiblock structures, and could fill in gaps with unsupported mods.
When using the search bar, I stay locked in its focus and may never leave my inventory. I'm just stuck searching. Note that I can enter interact with everything within my current screen along with access the config view, just never exit.
As stated, it'd be nice to have a feature for EMI similar to the one for REI which allows one to set items not to be delayed. This would be valuable for mods like Chisels & Bits, which add a lot of similar items which don't have crafting recipes and are obtained in similar/identical ways
Click on the search box at the bottom then press escape key.
Siphalor/nbt-crafting provides the ability for datapacks to create recipes that require or modify item NBT. This includes adding new smithing/brewing/anvil recipes, or just through the crafting table.
These recipes don't show up in EMI. For whichever reason.
I'm unclear on the logical conclusion of "who writes the integration / sets the standard for who" here, but we figured we'd start here.
When Search bar is set to side, and columns of index is small, search bar will be partly overlapped by the two buttons. However, although the buttons are visually on top, they cannot be clicked on, unless clicking on the very edge of them.
Tried it with left and right button, shift + those, and ctrl + those, as well as various keyboard keys.
When EMI attempts to display the block_bit from chisels and bits in the list, the game crashes. It displays it fine in recipes
Emi conflicts with figura on specific platforms, issue fixes itself upon world relog. Issue discussed and figured out in the discord.
While inventories like Probably Chests or Toms Simple Storage are open you cannot type in the EMI search bar or use any keybinds from EMI.
Probably Chests uses LibGui for generating the chest UIs which may be causing the issue, may not be. idk if TSS uses it.
A user of our Mod suggested to integrate EMI (quiqueck/BetterEnd#51). Since I really like your concept, I would like to do so. However we also have support for REI (and planed Support for JEI), which of course conflict with EMI.
That is why we like to integrate it as an optional Dependency. As far as I tested this appears to work fine. However, when developing I am can not disable EMI, which makes updating our other Integrations a bit cumbersome (have to disable all EMI related code, reconfigure the project to exclude EMI do my changes and then re-enable EMI).
It would be great, if we could integrate your Mod using modCompileOnly
and modRuntimeOnly
(similar to the way REI and JEI deliver their Mod).
If I try integrating EMI using modCompileOnly
, the runtime will crash:
Caused by: java.lang.ClassNotFoundException: dev.emi.emi.api.stack.EmiStackConvertible
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
However, our code does not call any EMI-related code that could trigger this.
As the topic stated, in receipe tree, when batch size is 1, it cannot be changed by scrolling, but shift + scrolling still works. When it is greater than 1 normal scrolling functions normally.
To improve display performance and visual noise, it'd be great if there was a configurable limit value for the number of columns on both panes.
Sorry if this is just me being a terrible programmer but when making a tool/armour unbreakable I tend to give it a max damage of 0, but when EMI tries to render the anvil screen that causes issues with the random.nextInt() since the bound must be positive.
I almost forgot this thing existed too, but it is a way of making bonemeal!
When in the creative inventory search menu (the compass in top right), EMI keybinds are still active, so if you're searching for something and you type "r" or "u", and you happen to be hovering over an item, you'll be thrown out of the search and the recipe view opens up.
Please add the search highlighting function of the items in the container.
When clicking the c:chees
Tag Group (which might be empty), EMI crashes with the following:
16:49:05] [Render thread/ERROR]: Reported exception thrown!
net.minecraft.class_148: mouseClicked event handler
at net.minecraft.class_437.method_25412(class_437.java:496) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_1601(class_312.java:94) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_22686(class_312.java:165) ~[client-intermediary.jar:?]
at net.minecraft.class_1255.execute(class_1255.java:103) ~[client-intermediary.jar:?]
at net.minecraft.class_312.method_22684(class_312.java:165) ~[client-intermediary.jar:?]
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar:?]
at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar:?]
at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar:?]
at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:197) ~[client-intermediary.jar:?]
at net.minecraft.class_1041.method_15998(class_1041.java:310) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1523(class_310.java:1171) ~[client-intermediary.jar:?]
at net.minecraft.class_310.method_1514(class_310.java:734) [client-intermediary.jar:?]
at net.minecraft.client.main.Main.main(Main.java:237) [client-intermediary.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:461) [fabric-loader-0.14.8.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.8.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.8.jar:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "java.util.Map.get(Object)" is null
at dev.emi.emi.api.EmiApi.displayRecipes(EmiApi.java:105) ~[emi-0.3.0+1.19.jar:?]
at dev.emi.emi.screen.EmiScreenManager.stackInteraction(EmiScreenManager.java:769) ~[emi-0.3.0+1.19.jar:?]
at dev.emi.emi.api.widget.SlotWidget.mouseClicked(SlotWidget.java:224) ~[emi-0.3.0+1.19.jar:?]
at dev.emi.emi.screen.RecipeScreen.method_25402(RecipeScreen.java:398) ~[emi-0.3.0+1.19.jar:?]
at net.minecraft.class_312.method_1611(class_312.java:94) ~[client-intermediary.jar:?]
at net.minecraft.class_437.method_25412(class_437.java:491) ~[client-intermediary.jar:?]
... 15 more
Before that there is also an error while loading the world (not sure if it is related):
[16:10:58] [Thread-14/INFO]: [STDERR]: [emi] [emi] Exception loading plugin provided by emi
[16:10:58] [Thread-14/INFO]: [STDERR]: java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1856.method_8103()" because the return value of "net.minecraft.class_1741.method_7695()" is null
[16:10:58] [Thread-14/INFO]: [STDERR]: at dev.emi.emi.VanillaPlugin.register(VanillaPlugin.java:288)
[16:10:58] [Thread-14/INFO]: [STDERR]: at dev.emi.emi.EmiReloadManager$ReloadWorker.run(EmiReloadManager.java:99)
[16:10:58] [Thread-14/INFO]: [STDERR]: at java.base/java.lang.Thread.run(Thread.java:833)
[16:10:58] [Thread-14/INFO]: [STDERR]: [emi] java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1856.method_8103()" because the return value of "net.minecraft.class_1741.method_7695()" is null
at dev.emi.emi.VanillaPlugin.register(VanillaPlugin.java:288)
at dev.emi.emi.EmiReloadManager$ReloadWorker.run(EmiReloadManager.java:99)
at java.base
[16:10:58] [Thread-14/INFO]: [STDERR]: [emi] java.lang.Thread.run(Thread.java:833)
Bookmarking items has a variety of uses. Having common items quickly ready to craft, items you frequently forget the recipe for, or even as a sort of checklist. I suggest adding a feature such that you can change pages of the bookmark pane even into empty pages, similar to writing a book in Minecraft. Then, when you bookmark an item, the item gets bookmarked to whatever specific page you have your bookmarks pane set to.
This way you could use the bookmarks for multiple things, have multiple separate item checklists, even with repeated items between pages. As an additional quality of life feature, it would be great to be able to rename the bookmark pages, so you can remember which page is for which set of bookmarks.
I think the maven upload broke.
A problem occurred configuring root project 'apoli'.
> Could not resolve all dependencies for configuration ':modImplementation'.
> Could not find null:unspecified:null.
Searched in the following locations:
- file:/C:/Users/Pug/Desktop/Programs/mcmods/apoli/.gradle/loom-cache/remapped_mods/null/unspecified/null/unspecified-null.pom
- https://maven.fabricmc.net/null/unspecified/null/unspecified-null.pom
- https://libraries.minecraft.net/null/unspecified/null/unspecified-null.pom
- https://libraries.minecraft.net/null/unspecified/null/unspecified-null.jar
- https://repo.maven.apache.org/maven2/null/unspecified/null/unspecified-null.pom
- file:/C:/Users/Pug/.gradle/caches/fabric-loom/null/unspecified.jar
- file:/C:/Users/Pug/Desktop/Programs/mcmods/apoli/.gradle/loom-cache/null/unspecified.jar
- https://ladysnake.jfrog.io/artifactory/mods/null/unspecified/null/unspecified-null.pom
- https://jitpack.io/null/unspecified/null/unspecified-null.pom
- https://maven.shedaniel.me/null/unspecified/null/unspecified-null.pom
- https://maven.terraformersmc.com/null/unspecified/null/unspecified-null.pom
- file:/C:/Users/Pug/.m2/repository/null/unspecified/null/unspecified-null.pom
Required by:
project : > dev.emi:emi:0.2.0+1.19
Possible solution:
- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
When installed with Roughly Enough Items
(REI) mod overlaps search bar and right pane.
IMHO mod may detect if REI is present and warn user about this with suggestion to uninstall one of these mods.
Another option would be adding REI to a breaks
section of fabric.mod.json
like this:
...
"breaks": {
"roughlyenoughitems": "*"
},
...
When a crafting block has a handler for auto-moving ingredients and you shift-click the [+] button, EMI will move items into slots beyond the slots stated maximum count via getMaxItemCount
. As an example, I am integrating EMI into my mod, and the Imbuing Table crafting grid has a central slot with a maximum allowable item count of 1:
But when I use the shift click, EMI transfers 8x melon slices into the middle slot in the below example:
With this behavior, if the user were to press the craft button for "4x Imbued Quartz", 7 of the melon slices are going to be overwritten, as the middle slot is both an input and an output (because it is an enhanced enchanting table), like so:
(I'm in creative mode, so the other 12 ingredients didn't decrement on purpose)
Possible Solution:
If EMI is using setStack
in the Slot
, instead using insertStack
may resolve this. insertStack
automatically splits the inserted stack based on the allowable count, and returns the remainder that couldn't fit.
I thought of a feature that I think could be cool; basically a filter similar to "only show craftable," but items that are partially craftable are shown as well. A visual indication would also be nice, for example:
If I'm able to craft an item, EMI shows it as normal. If I only have half the materials required, EMI still shows it but with a faded color/opacity.
I think this would be a nice middle-ground between showing every item in the game, and only ones that are currently relevant to you.
When hidden (with default keybind Ctrl-O
, trying to view uses (U
or Right Button
) or recipes (R
or Left Button
) do not work.
I'd like to be able to use those shortcuts to view that information without having EMI's controls visible in inventory screens.
Firework Star has no recipe in EMI and Firework Rocket only has the simplest version of the recipe.
List of what each of the missing recipes can contain:
Firework Rocket:
Firework Star:
Firework Star (Faded Color):
Hi, when I open my inventory I crash instantly. The strange thing is that when I open a chest or other thing with gui that is not the inventory, the screen become blur (because of my mod blur) and there is no screen
Its horrible please help me.
Thanks.
Could you please add REI plugin compatibility? It should greatly improve compatibility with most of the mods available.
However, it can be seen that it would be a hard work to finish. I don't know much about such mod compatibility, but I think the JEI compatibility layer of REI is a good example.
i been adding better support for searching in vanilla minecraft and was thinking of mixin to this mod also but saw that you just use a contains for searching items.
A suffix array is much faster in searching because you just need to do 2 binary searches for finding all items with the substring you input
I'm not sure if this should be suggested here or on their issue tracker.
I would like to request support for Tech Reborn machines. https://github.com/TechReborn/TechReborn
Switch Game Mode
Switch Time
Switch Weather
Thank you!
Any crafting/synthetic favorites are able to be moved and favorited. The favorited item shows the craftable outline, and remains even when crafting view is disabled. It also saves the recipe. Expected behavior is that you either can't move/favorite or favoriting saves it as an actual favorite.
I am running a dedicated server and have included EMI on both the server and client. I still can't fill any recipes as the button is grayed out with the "Cannot Fill Recipe without EMI on server".
REI has a handy button that gives you a performance analysis in ms for each REI function such as entry registration and displaying.
It's useful as you can easily find what mod is causing REI to stutter.
If EMI also provided these numbers modpack creators could easily compare the performance of the 2 mods and choose the one that fits best to the modpack.
Please add chest item retrieval function
I had six jungle slabs and 3 oak slabs, but the recipe for a Composter wouldn't fill. Other recipes, such as Hay Bale, filled fine.
When opening the fullscreen map after loading an existing single player world the map is centered on spawn instead of player's position.
Add a dark mode for EMI to work with dark mode resourcepacks.
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.