Supports 1.20.4. We now require ProtocolLib.
Also there is now a timeout for check-location to hopefully prevent situations where entities can stack but can't because they are stuck.
(yes it took a while for this update, I am very good at procrastination)
Sorry for being a bit late with this one. Hopefully you guys have a good holiday season!
Support 1.19.3
Add ability to add a custom offset for entity fake armour stands. This might give you an error like this on first install of this update:
Code (Text):
[23:25:28 INFO]: [StackMob] The value at config path display-name.nearby.armorstand.enabled is null. Make sure your config is correctly formatted at this path.
Which if you just restart the server will be fixed.
Unfortunately the jar size has increased substantially, due to the use of the adventure API which is not included in spigot. Adventure API is needed for the fake armour stands.
Tag visibility NEARBY improvements:
Use fake armour stands to display stack sizes.
Only send packets to player if the visibility state changes
Improve command handling
Performance improvements
Give command feedback when sub command arguments are incorrect
Configuration handling changes.
We now determine whether a section has been overridden when the plugin loads, rather than each time the config is accessed. This should improve performance
Copy comments when updating config
Commands additions
Add ability to spawn multiple stacks with '/sm spawn'
Add modes for '/sm stats'
Remove warning for console messages (made redundant from the use of armour stands)
Change lore (not item name) when tool mode is changed
This update introduces 1.19 support. As 1.19 is the native version, ProtocolLib will be required if the display-name.visibility 'NEARBY' is used on 1.18.2 and older.
A frog variant trait and frog breeding support has been added. A two year old stacking bug has also been fixed...
Versions 1.16.5 and newer are still supported.
StackMob turned 5 last month. Thanks for your continued support!
Add support for Minecraft 1.18 (for now I am still supporting 1.16 and 1.17, since there are no breaking changes in 1.18. Although you will need ProtocolLib if not using 1.18)
This update introduces 1.17 support. As 1.17 is the native version, ProtocolLib will be required if the display-name.visibility 'NEARBY' is used. 1.15 support has been dropped, as at this point there's little reason to not use 1.16.5.
The plugin is also now compiled using Java 16, so you will need to be using Java 16 to use this plugin.
Fixes stack data not being loaded (when using 5.5.1 or 5.5.2) on paper servers. No data has been lost if you have previously updated these versions, unless the mob was killed.
Potion effect merging. When an entity with a potion effect is merged into a bigger stack, the stack also gains the same effect. The duration is multiplied by the old stack stack size divided by the combined stack size.
You should consider joining the
StackMob discord! At the moment there isn't much there, but you get to ping me!
This update is compatible with both 1.15 and 1.16 servers, but with the caveat that 1.15 servers will have to use ProtocolLib if they wish to use the 'NEARBY' visibility option for display tags.
New config options have been added and these will be automatically added to your config file. However as a side effect you will loose your comments. You can find a version with comments
here.
1.16.1 support, traits for hoglin and zoglin baby and support for hoglin breeding.
Various optimisations regarding config value reading and the tag task.
Bee stacking is now supported, when entering a hive the bee will be sliced (one removed from stack) while the rest remain outside.
Make sure that the newly spawned entity has the same spawn reason as the one that was killed (requires Paper) (fixes #105)
Partial fix for the java.lang.IllegalArgumentException exception that many have been facing, if the increased health was because it was a leader zombie (#26)
Remove stack data when animal gets tamed (fixes #99)
Temporary fix for IllegalArgumentException on mob death for MythicMobs users. (#26) If you experience this error without MythicMobs and can provide detailed reproduction steps it would be very helpful!
Fix NullPointerException caused by MythicMobs VanillaMobs when display name is updated (#72)
Fix for too many slimes being spawned when not using kill-all (#31)
Sorry for the lack of updates. I had been busy with school preparing for my exams in May/June. Except they have now been cancelled. So it looks like I'm going to have a lot more free time to work on things.
Changes: There also more fixes by kyle1elyk and Aurelien30000 that I may not have listed. Thanks for your contributions!
Fix IllegalArgumentException when feeding an entity a single food item (#13)
Fix IIlegalArguementException when the MergeTask is ran.
Fix NullPointerException when the drop blacklists are used (#11)
Change stacking tool material to a bone to avoid interference with other plugins (#9)
Fix NullPointerException when right clicking entities with no item in hand, caused by stacking tool metadata checks (#10)
I am aware that some people are facing issues with stacking of spawned entities - this is under investigation at the moment so hopefully an update will be released soon.
Well, it's finally here I guess. Some has been changed (since the plugin has been completely rewritten, once again) so I will detail this below.
Stack data is now stored using NBT rather than YAML files or a database. This means performance and ram usage is much improved.
New year, new config. You will have to reconfigure everything. Except this time like 90% of the config can be customised for each entity type, so hopefully it pays of.
Stack entity names are now updated when the stack value changes rather than with a task. So performance is much improved again.
Did I mention performance is improved?
As a result, support for 1.13 and 1.14 has now been dropped. 1.14 support could perhaps be re-added but that would mean project restructuring and I don't have the time for that at the moment. If you need a version for either of these versions ask nicely and I may compile a new version with the improvements from recent pull requests.
If the stack-existing-entities option is enabled in the config, then entities that don't meet stacking criteria will now have a stack size of -2. They will not stack.
The translation files have also been changed. These will be regenerated when the plugin is updated.
Added:
'wait-to-stack' feature. When entities are spawned they have to wait before the first stack. Useful for mob grinders where damaged entities and fresh entities merge together making them inefficient.
New drops multiplication mechanics, 'multiply-drops.calculate-per-entity', which uses the loot table rather than just multiplying and hoping it is realistic.
Ability to use custom material for the stack stick.
Stack stick 'SPLIT_ONE' mode. Basically the same as when you feed an entity and it splits.
StackMob 3.0 has now landed on SpigotMC, including many code improvements, performance enhancements and some (but big) features.
Added:
MySQL support for caching entity data.
Multiply-drops drops blacklist
Player statistics support.
Config auto-updater (finally) but it removes the comments - which is just how YAML is supposed to work.
New API additions, the EntityStackEvent and a custom 'traits' system.
Fixed:
After a zombie drowns, the drowned spawned does not have a stack value. (fixed for PaperSpigot users, a pull request is waiting for spigot.)
TagTask and StackTask being CPU intensive. The StackTask has been split into tasks for every world. The TagTask has been split into another task for the 'show-player-nearby' feature.
'multiply-drops.whitelist' has been removed. it was pointless and the problem it tried to fix wasn't even fixed properly.
It's been a long time coming, but here it is! StackMob 2.4 for Spigot 1.13 exclusively.
Added:
1.13 support! (support for older versions has been removed)
Stacking stick, which can be obtained with the command '/sm stick.' and has several modes to modify entities.
New death mode, 'kill-step-damage', which decreases the stack by the amount that the damage given could kill. Leftover damage is then taken from the new mob.
Caching autosave every 2 mins.
noAI option for spawned mobs.
Permissions for each of the death modes.
WorldGuard 7.0 support (WorldGuard 6.0 is no longer supported.)
MythicMobs 'ALL' option for the blacklist to prevent all stacking.
Guardian loot not added to multiply-drops whitelist (#91)
Updater not working.
An issue in spigot has been found with villagers careers so it is recommended that you update spigot if you haven't done so recently.
Add the following to config.yml:
Code (YAML):
# Enables the requirement for a permission for use of 'kill-all' or 'kill-step'. death-type-permission: false
# Add the leftover damage from the death of one entity onto another, and if the leftover damage could kill another entity the stack will decrease. kill-step-damage:
enabled: false
# DeathEvent reasons that shouldn't trigger kill-step-damage. # List of bukkit names for death reasons can be found at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html reason-blacklist: - ''
# Entity types that shouldn't trigger kill-step-damage. type-blacklist: - ''
# Disables the ai on entities. no-ai:
enabled: false
use-whitelist: false
types-whitelist: - ''
Add the following to lang.yml:
Code (YAML):
# The display information for the 'stick of stacking' which can be obtained with the command '/sm stick'. stack-stick:
name: '&6The Stick Of Stacking'
lore: - '&eRight-click an entity to perform selected mode.'
- '&eShift + right-click an entity to change current mode.'
- '&bAvailable modes:'
- '&dSTACK_ONE &7-&a Stack one entity.'
- '&dSTACK_NEARBY &7-&a Stack
all entities in the chunk.'
- '&dUNSTACK_ONE &7-&a Removes the stack meta from one entity'
- '&dUNSTACK_NEARBY &7-&a Removes the stack meta from
all entities in the chunk.'
It would be best to however delete both configs so that they regenerate as several changes have been made.
This will be the last release that supports 1.8-1.12. Spigot 1.13 has many changes that would end up making the source more messy than it already is to support these versions! Forgot to remove the food required with "multiply.breed"
This will be the last release that supports 1.8-1.12. Spigot 1.13 has many changes that would end up making the source more messy than it already is to support these versions!
Zombie'ish entities glitching through walls on kill. #53
The multiply-exp options have been completely changed, remove the current ones and add the following:
Code (YAML):
# Multiplies the experience dropped on kill-all/kill-step. multiply-exp:
enabled: true
# Algorithms that should be used for multiplying experience. # LEGACY - algorithm used in StackMob v2.2.9 and older # MINIMAL - only add a small amount of extra experience. # NORMAL - the default amount of extra experience. # GENEROUS - adds a significant amount of extra expierence. # CUSTOM - use a custom multiplier for the extra experience. # CUSTOM_RANDOM - same as CUSTOM but makes multiplier a bit random. algorithm: NORMAL
# Used when the CUSTOM or CUSTOM_RANDOM mode is used above. custom-multiplier: 1.0
Auto-save task for caching regardless of what type used.
Fixed:
Error thrown when using out of date WorldGuard.
Add the following to the config:
Code (YAML):
# When the server is restarted, all the stack sizes are saved to disk. caching: # Stack data can be saved to disk every x minutes. # This is useful so that in the event of a server crash, not all stack data will be lost. autosave:
enabled: true
# The amount of time between saves, in seconds. interval: 150
# Instead of using flat files for storage, a mysql server can be used. mysql:
enabled: false
# Server details should be entered below, if enabled above. server-ip: localhost
server-port: 3306
username: root
password:
WorldGuard support. You can disable the stacking of entities in regions by adding the 'entity-stacking' flag with the value 'DENY'.
'show-player-nearby' option in the config so the name tag above entities only appear when in the range of the entity (requires ProtocolLib)
'multiply.small-slimes' option to enable the multiplication of the small slimes when a big slime is killed.
Breed-all for animals.
Fixed:
Some bugs, please retest if you were experiencing them before.
Under 'multiply' add:
Code (Text):
# Multiply the amount of small slimes spawned when a big slime is killed.
small-slimes: true
# When an entity is fed it's food, spawn a new stack with the correct number of children.
breed: false
Add to the end:
Code (Text):
# If WorldGuard is installed, enable support for it.
worldguard-support: true
Add under 'tag':
Code (Text):
# Only show the name tag if the player is near the entity.
show-player-nearby:
enabled: true
# Only display the tag to the player if the player is in this area of the entity.
x: 10
y: 3
z: 10
Feature so entities only stack if there are more than a certain number of the same type in the stack check area set in the config.
Entity name translations file.
Fixed:
Some errors, tell me if you experience any more.
Make sure to add the below to use features in this update!
Code (YAML):
# Don't stack until there are more than the number specified of entities of the same type in the check area set above. Set to 0 to disable this feature. dont-stack-until: 5
StackMob is also now 1 year old, thanks for all the support!
A long due update, which while doesn't add many new features, it makes the plugin easier to understand and use, like a coating of fresh paint.
NOTICE: (if this is not a new installation.) StackMob 2.0 is not an in-place update, it requires you to move your existing configuration file to a safe place, so a new config can be generated, so you can reconfigure using the new format. You will also need to install the conversion tool so you don't loose your stack amounts! (
https://www.spigotmc.org/resources/stackmob-2-conversion-tool.45495/)
Changes:
Better configuration.
Support for miniaturepets (when the API is fixed.)