Skip to content
This repository has been archived by the owner on Apr 14, 2020. It is now read-only.

Expand the custom entity configurations to allow more granular control #279

Open
bardicknowledge opened this issue Dec 11, 2019 · 2 comments

Comments

@bardicknowledge
Copy link

bardicknowledge commented Dec 11, 2019

Is your feature request related to a problem? Please describe.
I play on a multi-world server where this plugin is used. The world consists of both Skyblock and SMP worlds. To improve performance from the massive number of entities on SMP, the mods turned on mob stacking for Villagers on all worlds, which means that trading has become challenging if not impossible.

Describe the solution you'd like
The custom entity configuration can be enhanced to provide additional checks before stacking, beyond simply tagging and setting custom maximum stack sizing. The key enhancement would be adding support for stack-worlds and no-stack-worlds, so that, for example, villagers stack on SMP, but don't stack on Skyblock, where other mods already define entity limits.

Describe alternatives you've considered
Two other considerations were made from the client side to prevent mob stacking for villagers. Nametagging did not work, since nametag behavior prior to 1.14 (the server runs 1.12 for Skyblock) was inconsistent for villagers. The other option was to stagger villagers outside of the area for mob stacking, but that solution has space implications that make the solution less desirable either in situations where a villager spawner is collecting villagers for sorting, or when building a trading hall.

Additional context
I've already created a fork of the code that introduces a new class, ConfigHelper, which performs the custom entity check behind the scenes for configurations that appeared to make sense. In testing the no-stack-worlds configuration, the change didn't appear to have any significant impact on server TPS. Other configuration options that were made customizable were:
wait-to-stack.wait-time
wait-to-stack.spawn-reasons
no-ai.enabled
no-ai.use-whitelist
no-ai.type-whitelist
tag.always-visible
tag.format
tag.remove-at
stack-max
dont-stack-until

I can provide a link to the forked code, or create a branch and issue a pull request if you want to review it.

@ploppyperson
Copy link
Owner

This is pretty much the reason for StackMob 5 https://github.com/Nathat23/StackMob-5 . It allows for most options to be customised per entity type.

@bardicknowledge
Copy link
Author

That's great, but not all servers out there have upgraded to 1.14, especially multiverse servers.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants