PluginBugs / Issues-ItemsAdder

Repository used to keep track of issues of my plugin ItemsAdder
https://itemsadder.devs.beer
55 stars 21 forks source link

Use `item_display` to make custom entities instead of armorstands #3082

Closed dinobossytnew closed 6 months ago

dinobossytnew commented 1 year ago

Terms

Discord tag (optional)

DinoBoss

Describe the solution you'd like

Block Display block_display entity.minecraft.block_display Item Display item_display entity.minecraft.item_display Text Display text_display entity.minecraft.text_display

I come here with a more serious suggestion, almost a demand or a very significant statement. The problem we are facing is with the furniture and other items. We humbly request that displays be added to optimize our players' server and finally put an end to the armor stand, item frame, and tripwire issues. We can now optimize all aspects of the server better with the release of MEG4 items adder. It advertised a feature related to entities, but it fell short in that functionality. We are at a point where we need to expedite some things, focusing on what is truly necessary, such as the display function.

Is your feature request related to a problem?

We already know the issue with objects that are not displays. Depending on the angle from which you view them, they may or may not be visible. With displays, this problem does not occur, as it is a complete entity that we would see, not parts of armor stands or other objects with a small hitbox. I should note that this is a limitation of Minecraft itself. That's why when displays were added in MEG4, the entire community was thrilled. We are still amazed at all the work put into displays and the many creative possibilities they offer, such as creating scales and various other incredible things.

I emphasize that performance is the most concerning issue for me when it comes to furniture that is not of the display type. Using armor stands, the performance decreases by 0.1 TPS, with item frames it's 0.001 TPS, and with a tripwire, it's 0.1 TPS. We're facing the same problem. It's better to address this issue at its core and start afresh with furniture and other items.

Describe alternatives you've considered

Using Oraxen is not an alternative; it's out of the question for any reason. It's not because it's bad but because each update of the plugin breaks another mechanism within it. So, it's better to stick with ItemsAdder. However, it's also better if you open your eyes and say, "Okay, I'll add it in the next update." I'm taking advantage of the fact that we're in beta; if there are a few errors, few will complain, and they will report to me because, after all, that's what a beta is for.

Additional context

With much love, this complaint is not meant to make you angry or anything, but rather a formal statement, as I always express my opinions as a respectful critique of the current state of ItemsAdder.

github-actions[bot] commented 1 year ago

Hello, your report will be looked into as soon as possible. Please do not bump this thread and don't post it on multiple platforms.

Thanks a lot for your patience.

paulreob commented 1 year ago

This suggestion is required to be implemented, it is essential for external plugins like ToolTips to better detect the custom-hitbox that can be created with item_display, since the current hitbox detection system is not accurate.

ShizuArt commented 1 year ago

Any news on when this feature will be added ?

dinobossytnew commented 1 year ago

Any news on when this feature will be added ?

2024

LoneDev6 commented 1 year ago

Probably next year as it requires 1.19.4+ clients and not every server is updated to that version + some people will complain that Geyser is not compatible with display entities. I'm still trying to understand if this is a very requested and important change or not.

dinobossytnew commented 1 year ago

Probably next year as it requires 1.19.4+ clients and not every server is updated to that version + some people will complain that Geyser is not compatible with display entities. I'm still trying to understand if this is a very requested and important change or not.

Do you even know what the problem is? Because of these things, you leave behind the performance that affects Java more than Bedrock. To be honest, for Geyser in Bedrock, it's better to use Oraxen because it interacts more with the .json files, and you have simpler ways to convert them. Moreover, they added support for displayers without breaking Bedrock ones. Also, Meg4 has been released, which renders animated models and scales them. All the previous errors no longer exist in Meg4. Imagine Meg3; before, we rendered a model that disappeared if you looked at it upside down. Without mentioning other plugins that aren't AI, we are currently very behind. We need a Display for furnitures that are item frames and armor stands, which consumes too much. Furthermore, the display will work for all types of furnitures or blocks, so it's not just one improvement; it's a significant change. Since when do you care about Geyser, which always bugs with IA where IA has no way of providing so much support to Geyser? It's impossible. Geyser works by giving crossplay to achieve compatibility; creating an IA for Bedrock, knowing that it has Bedrock, and from Nukki for Bedrock only because in Bedrock and Java, the way to support it is to provide the Resource Pack outside of IA and convert it with some converter and/or manually.

dinobossytnew commented 1 year ago

If the problem is due to old versions of Minecraft that use IA, I recommend creating one bstats to collect information about the versions that use IA

LoneDev6 commented 1 year ago

it's better to use Oraxen because it interacts more with the .json files, and you have simpler ways to convert them.

No idea what you mean, ItemsAdder is a more complete and complex solution to handle resourcepacks compared to Oraxen which is a less feature rich and incline to break (based on the feedback I got from multiple customers migrating from Oraxen to ItemsAdder. I never used Oraxen in my life.).

Also, Meg4 has been released, which renders animated models and scales them.

ItemsAdder also has this feature, but doesn't use display entities.

All the previous errors no longer exist in Meg4. Imagine Meg3; before, we rendered a model that disappeared if you looked at it upside down

Known limitation of armorstands.

We need a Display for furnitures that are item frames and armor stands, which consumes too much.

Planned: #2458

Since when do you care about Geyser, which always bugs with IA where IA has no way of providing so much support to Geyser?

You are right, I should start again to ignore Geyser suggestions. Recently I got bombarded with people asking me to add Geyser compactivity, but I don't see much good stuff from that idea. Display entities are a better thing compared to Geyser compatibility.

the way to support it is to provide the Resource Pack outside of IA and convert it with some converter and/or manually.

Display entities don't exist on Geyser so people might bet pissed off. Armorstands exist.

If the problem is due to old versions of Minecraft that use IA, I recommend creating one bstats to collect information about the versions that use IA

People starting using 1.19.4+ extensively only in the recent months, so this is why this idea wasn't worked on.


I plan to work on that as soon as I find the time and I will try to maintain backwards compatibility with old armorstand entities, to support Geyser and support older clients connecting with ViaVersion.

dinobossytnew commented 1 year ago

Regarding Oraxen, let me explain. This plugin is more suitable for Bedrock, 100% literally. If you are running a server for both Bedrock and Java, it's better to use Oraxen, even if it hurts me ;( and I dislike Oraxen. This solution is feasible for both Bedrock and Java when using Geyser, About the other thing, you can try adding bStats and we'll see how. AI performs and in which versions the plugin currently runs in the latest beta version, Partly about what you said regarding how you're bombarded, we can't overlook that, but we understand that you have your complications too. We also understand that Geyser wants support, but if Geyser doesn't contribute, there's little we can do. Those of us who work only with Java are ultimately the most affected. Those of us using AI in Java are more affected than Geyser users. It's one or the other; we can't say we agree or disagree with Geyser, but in their multitude of developers. Geyser isn't doing their part. I tried talking to some of them to request an update of their libraries so they could create a texture plugin only for Geyser with Java and Bedrock models. However, they ignored it and said Geyser doesn't have that goal, so they settle for the minimum. It's time to take a firm stance with Geyser. If they don't want to contribute to supporting the custom community, why should we in Java have to endure plugins like AI losing some functions because of them? If they don't put in a little effort to improve, it's frustrating.

Our opinion of AI isn't dissatisfied with you, Lone, but rather with how you currently view ItemsAdder. We are dealing with functions that I understand Java MC doesn't support, like armor stands in versions earlier than 1.20.x. To reach a consensus, I can ask you to conduct a poll to see where we stand as a community. Remember, we are not just your customers; we are your community.

dinobossytnew commented 1 year ago

We request this update for version 3.6.3 or 3.6.4 because, seriously, we are very behind in this version. Our competitors, like Oraxen, despite what they may say, have support for displayers, and we don't even have that. We don't have display entities; we literally have nothing. Lone, you are chaining us down. I know you care about Geyser, but if Geyser doesn't contribute, we can't either. Additionally, it's not Geyser's fault. When you add Display, it will be obvious that Bedrock will be left without support. This decision is obvious; it's a tough one, but we can't wait for Mojang to dedicate themselves to adding it in a future update. It's been months since version 1.20 was released, and I asked you for the Display update. You replied that you wanted to work on something related to plants. Three months have passed, and now we are here on GitHub, pleading for you to listen and add Display, something that the competition has already done. It's no surprise. it was obvious that Display would be the best way for Minecraft servers. Almost no one uses Meg3 anymore because it's not practical. The same is happening with ItemsAdder; we are running out of options, and I can't replace IA with any competitor. One, because it's not profitable to change so many models, as you know. Two, because it would be an unnecessary change, knowing that you always implement functions that are profitable for Java. We can't just sit around waiting with our fingers crossed to see whether Display will be added or not. That's why we ask that in this or the next update, which will be 3.6.3 and 3.6.4, at least the groundwork for Display is added so that you can fully implement it in version 3.6.5. We understand that it will be challenging coding.

dinobossytnew commented 1 year ago

And I repeat, if you want to wait for Geyser users, that would be a mistake we don't want to consider. However, when it comes to those still using ItemsAdder in 1.19.x or 1.18.x, which I highly doubt is the majority, then we can wait for Displays until version 3.6.8. It would be too long to wait, but we are willing to endure this time without Display because, I swear. Lone, you have me tied hands. We can't do anything extravagant; item frames are a hassle, and armor stands are the same.

ShizuArt commented 1 year ago

I haven't had time to participate in the conversation since my previous message but here I am : I'm currently working on a project and I couldn't agree more with what dino says. All the models which are a little large, I divide them into several parts to avoid as much as possible the textures from being unloaded depending on the vision. It takes a lot of time to do for nothing and as a bonus these are models which will never be accessible to players because they become downright puzzles and above all it multiplies the number of armor stands just for a single model Also who says several parts means several files instead of one and therefore more weight in the resource pack

Currently I'm super jealous that Oraxen offers them but not IA, but having used Oraxen more than a year and a half before IA, I will never use it again since over a long period it's impossible to deal with it, each update breaks something else, enough to drive you crazy.

I don't understand why it should be a choice between armor stand and display entities, why not leave both and give us the choice to choose what we prefer for display our models?

LoneDev6 commented 1 year ago

I think I could just ignore Geyser compatibility like I did since 2019 since I don't really see the advantage of having a partially working experience and bugged gameplay just to have crossplatform. So, as I said, I will work on display entities in the next months, but please do not rush it otherwise you would get a bad update. Good things take time.

Also seems the poll is winning, no one cares about Geyser, luckily. image

LoneDev6 commented 1 year ago

I don't understand why it should be a choice between armor stand and display entities, why not leave both and give us the choice to choose what we prefer for display our models?

I have to decide if it's easier to integrate the display entities directly or to maintain both implementations. I'm referring to custom entities, furniture will still allow for armorstands and itemframes.

dinobossytnew commented 1 year ago

As I said, there is no problem as long as you gradually get into it. For example, in version 3.6.3, you already have code to implement. In version 3.6.4, you finish the class from 3.6.3 that you implemented something in, and by version 3.6.6, you would already have the plugin in displayers. This is mainly to get the needle out of the chest of the Oraxen show-offs ;(

LoneDev6 commented 1 year ago

As first step I will introduce furniture https://github.com/PluginBugs/Issues-ItemsAdder/issues/2458 , after furnitures I'll work on emotes and custom entities support.

Ridz-design commented 10 months ago

Please dont remove the old methods in that case since i do own a geyser server

LoneDev6 commented 10 months ago

I will try to maintain both compatibility but I cannot guarantee that custom entities and emotes will work fine. I might will have to get rid of the armor stands implementation to get a better experience for both me and the customer using display entities.

Note that this issue report is not about furniture, it's about custom entities and emotes. Custom furniture will still support armor stands and won't be replaced with display entities for sure.

ciliomine commented 8 months ago

2c41ef0de5afe034edf037a7fe3e0551 Please add this function, I have a roleplay server and my current tps consumption problem is for the Armor Stands, I cannot remove them either since it would leave them without furnitures, if you would add this function, it would be incredible.

MrStreeet commented 8 months ago

Any news on this?

bkgktp commented 8 months ago

Why don't we add this feature and make it something that users can edit according to their needs? I mean, just like in oraxen, those who want to use it as ArmorStand can set it as display_entity without configuring it, and those who want to change the settings accordingly can set it as display_entity, so we leave the end of alternatives open for servers using gayser. it's been almost 5 versions since this feature was added and it seems to be quite late, a professional project like itemsadder is making a mistake not to add it. this is not a feature need, it is a feature addition obligation. and also interaction hitbox support for furniture. This was my favorite feature when I was working with Oraxen and it would be a very good decision to see it as an itemsadder feature. @LoneDev6

LoneDev6 commented 7 months ago

@bkgktp implementing item displays for custom entities is not as straight forward as changing the entity type used to show the bones. It requires restructuring of the calculations because these entities have different hardcoded location/pivots values. So I will probably have to get rid of armorstands and directly use item displays instead.

LoneDev6 commented 7 months ago

@ciliomine

Please add this function, I have a roleplay server and my current tps consumption problem is for the Armor Stands, I cannot remove them either since it would leave them without furnitures, if you would add this function, it would be incredible.

This is impossible as armorstands are packet based, so the screenshot you sent is related to real armorstands spawned by other plugins, not ItemsAdder.

ciliomine commented 7 months ago

@ciliomine

Please add this function, I have a roleplay server and my current tps consumption problem is for the Armor Stands, I cannot remove them either since it would leave them without furnitures, if you would add this function, it would be incredible.

This is impossible as armorstands are packet based, so the screenshot you sent is related to real armorstands spawned by other plugins, not ItemsAdder.

007cd399bd08867c29031d5b23f83664 2024-04-04_19 24 04 2024-04-04_19 40 49

I was reviewing the chunks that they have the most and they are fornitures of itemsadder, also to make the test more effective, I changed all the street lamps for real blocks and now I have 2 thousand fewer entities

LoneDev6 commented 6 months ago

Duplicate of #2458