Insights  - Super configurable (region) Limits + Asynchronous Scans [1.19.2] icon

Insights - Super configurable (region) Limits + Asynchronous Scans [1.19.2] -----

Create group limits | Permission based | Extremely fast region scans | Many region addon support!




New:
  • Added support for Paper's new chunk system.
MC1.19.2 will likely be the last compatible version with Spigot for Insights. Insights userbase consists > 98% of Paper users (bStats), so it is not worth it to make features backwards compatible with Spigot anymore. Future Insights releases can be found on modrinth, or github.
----------, Oct 6, 2022

Fixed:
  • Spigot brigadier issues on 1.19.2
----------, Aug 21, 2022

Warning! This version only works on MC1.19.1/2. From now on, MC1.19 will no longer be supported. MC1.18.2 will still receive bugfixes.

New:

  • Updated dependencies for MC1.19.2
----------, Aug 9, 2022

Warning! This version only works on MC1.19. From now on, MC1.18.2 will only receive bugfixes. Builds for MC1.18.1 will no longer receive bugfixes.

New:
  • Update to MC1.19
----------, Jun 15, 2022

Warning! This version only works on MC1.18.2. From now on, MC1.18.1 will only receive bugfixes. Builds for MC1.17 will no longer receive bugfixes.

New:

  • Update to MC1.18.2
  • Fixed a bug where the connecting tripwire would also count all connected strings.
----------, Mar 5, 2022

Warning! This version only works on MC1.18.1. From now on, MC1.18.1 will only receive bugfixes.

New:

  • Fixed a bug where the connecting tripwire would also count all connected strings.
----------, Mar 5, 2022

Warning! This version only works on MC1.17. This will be the last update for 1.17.

New:

  • Fixed a bug where the connecting tripwire would also count all connected strings.
----------, Mar 5, 2022

Warning! This version only works on MC1.18. If you're using 1.17, please stay on Insights v6.8.1 .

New:

  • Added scanning by limit filename, e.g. /scan 5 limit redstone-limit.yml, which will scan everything from that specific limit
  • Added /cancelscan, for the ones who created a way too large scan ;)
  • Added the ability to hide /insights, by negating the permission insights.info
API Changes
  • There have been some minor API changes, such as method signature changes in the ScanTask class. Please carefully test any custom plugins you have which integrate with Insights. InsightsWorldEditExtension does not require an update.
----------, Dec 21, 2021

Warning! This version only works on MC1.18. If you're using 1.17, please use Insights v6.8.1.

New:
  • Fixed actionbar notifications not being displayed in the actionbar :oops:
----------, Dec 8, 2021

Warning! This version only works on MC1.17. If you're using 1.18, please use Insights v6.9.1.

New:

  • Fixed actionbar notifications not being displayed in the actionbar :oops:
----------, Dec 8, 2021

Warning! This version only works on MC1.18. If you're using 1.17.x, please use Insights v6.8.0.

New:

  • Added experimental support for 1.18.
----------, Dec 2, 2021

Warning! This will be the final feature update for MC1.17. The 1.17 branch will only receive bug fixes from now on, until MC1.18 has been stabilised.

New:
  • Added MiniMessage for messaging
  • Insights will now use 64 bit integers for scanning
  • The maximum scan radius has been increased to 256 chunks
  • Radius scans will now occur lazily, spiralling out from center chunk
  • Updated dependencies
NOTE: Your messages.yml will need to be reset to use the new MiniMessage format. You can read more about MiniMessage here.
----------, Dec 1, 2021

New:
  • Fixed unloaded addon plugins erroring. This was for example an issue with HolographicDisplays, which removes all entities on shutdown, and due to unfortunate shutdown scheduling this could trigger region lookups of an unloaded region.
  • Fixed piston limit modifications where the block is immediately broken after a piston push (eg sugarcane, or other plants)
----------, Sep 9, 2021

New:
  • Insights now uses paperweight to work with mojang mappings during development.
  • Jitpack.io has been replaced by a new repo: https://repo.fvdh.dev/
  • Fixed a bug which sometimes prevented results from being displayed after scanning.
  • Paginated messages are now created lazily.
  • Added /tpchunk <world> <x> <z> [--generate], a command which will TP you to the middle of specified chunk, generating it if the --generate flag is present. Permission: insights.teleportchunk
  • Added hover + click to tp functionality to the group by chunk feature.
  • Added a %world% placeholder which can now be used in the scan.finish.chunk-format message.
  • Added a no-results message when no results were found.
API Changes:
  • Removed almost all reflection classes, in favour of paperweight.
----------, Aug 23, 2021

New:
  • Insights now uses paperweight to work with mojang mappings during development.
  • Jitpack.io has been replaced by a new repo: https://repo.fvdh.dev/
  • Fixed a bug which sometimes prevented results from being displayed after scanning.
  • Paginated messages are now created lazily.
  • Added /tpchunk <world> <x> <z> [--generate], a command which will TP you to the middle of specified chunk, generating it if the --generate flag is present. Permission: insights.teleportchunk
  • Added hover + click to tp functionality to the group by chunk feature.
  • Added a %world% placeholder which can now be used in the scan.finish.chunk-format message.
  • Added a no-results message when no results were found.
API Changes:
  • Removed almost all reflection classes, in favour of paperweight.
----------, Aug 23, 2021

New:
  • Added command flag --group-by-chunk (-c) to all scan commands such that it is possible to collect all counts per chunk, and view the chunk with the highest count of the material / entity provided.
  • Added a redstone update limiter. This limits the amount of redstone updates per chunk / area. This feature may change in the future, feedback is appreciated!
  • Added config options to disable area scan messages (or only display if players have a permission): area-scan-started, area-scan-queued and area-scan-completed.
  • Added the ability to override Insights' listener priorities for events which Insights may cancel when a limit has been reached.
  • All config options are now reloadable with /in reload.
----------, Aug 18, 2021

New:
  • Added command flag --group-by-chunk (-c) to all scan commands such that it is possible to collect all counts per chunk, and view the chunk with the highest count of the material / entity provided.
  • Added a redstone update limiter. This limits the amount of redstone updates per chunk / area. This feature may change in the future, feedback is appreciated!
  • Added config options to disable area scan messages (or only display if players have a permission): area-scan-started, area-scan-queued and area-scan-completed.
  • Added the ability to override Insights' listener priorities for events which Insights may cancel when a limit has been reached.
  • All config options are now reloadable with /in reload.
----------, Aug 18, 2021

New:
  • Removed need for extra scan on block break.
----------, Jul 16, 2021

New:
  • Scan results are now paginated with clickable buttons, thanks to the Adventure API! :)
  • Added /in stats, with permission insights.stats, displaying information about the current scan queue size, blocks- and chunks scanned since boot.
  • Tested 1.17.1 :)
----------, Jul 6, 2021

New:
  • Improvement for chunks which haven't been generated yet
  • Add support for 1.17's increased world height (the 1.17 datapack will now work correctly)
----------, Jun 29, 2021

New:
  • Insights does not use the traditional chunk loading system anymore. Instead, it can scan chunks completely asynchronously, without creating memory allocations for chunks which are unloaded a few milliseconds after. Great speed benefits on all servers & forks!
  • Upgraded chunks-per-iteration to 256 in the default config (you can easily cram this value up with v6.5.0!)
  • Added a config option to disallow limited block placement outside regions. This is configurable per limit. Great if you only want to allow players to be able to place limited blocks within their claim/island/land etc.
  • Added a feature for Paper & forks: TNT can now be properly limited.
----------, Jun 28, 2021

New:
  • Insights does not use the traditional chunk loading system anymore. Instead, it can scan chunks completely asynchronously, without creating memory allocations for chunks which are unloaded a few milliseconds after. Great speed benefits on all servers & forks!
  • Upgraded chunks-per-iteration to 256 in the default config (you can easily cram this value up with v6.5.0!)
  • Added a config option to disallow limited block placement outside regions. This is configurable per limit. Great if you only want to allow players to be able to place limited blocks within their claim/island/land etc.
  • Added a feature for Paper & forks: TNT can now be properly limited.
----------, Jun 28, 2021

New:
  • Insights does not use the traditional chunk loading system anymore. Instead, it can scan chunks completely asynchronously, without creating memory allocations for chunks which are unloaded a few milliseconds after. Great speed benefits on all servers & forks!
  • Upgraded chunks-per-iteration to 256 in the default config (you can easily cram this value up with v6.5.0!)
  • Added a config option to disallow limited block placement outside regions. This is configurable per limit. Great if you only want to allow players to be able to place limited blocks within their claim/island/land etc.
  • Added a feature for Paper & forks: TNT can now be properly limited.
----------, Jun 28, 2021

New:
  • Added support for the new 1.17 Glow Item Frames (named GLOW_ITEM_FRAME)
----------, Jun 26, 2021

New:
  • Fixed block error on 1.17
----------, Jun 21, 2021

New:
  • Added support for MC1.17
  • Dropped support for MC1.15-1.16.5. Please stick to v6.3.1 if you are on these Minecraft versions.
----------, Jun 21, 2021

  • Fixes Armor Stand limiting
----------, Mar 27, 2021

  • You are now able to specify in a TILE limit material exclusions, such that you can fully configure which tiles should be limited and which ones should not!
  • Insights' worker threads are now named, so they are easily recognizable in Spark's or Flare's.
  • Fixes a parsing issue with (some) memorysections.
  • Fixes a bug where some tile entities (such as wall banners) were not limited in a tile limit.
  • Fixes a bug where indirect block breaks (ie breaking a block under a redstone wire, such that it pops off) did not cause the cache to be updated.
----------, Mar 25, 2021

  • Finally fixed the weird bug where ALWAYS scan mode would sometimes still result in MODIFICATION mode. Classic copy-paste error gone wrong, which resulted in a 50/50 chance a player was immediately removed from the player tracker after join :rolleyes:
  • Fixed NPE which could occur on some MultiBlockPlaceEvent occasions when checking distributions.
----------, Mar 5, 2021

  • Entity scans are now done through NMS as well, allowing entities to be scanned asynchronously as well.
  • Fixed a bug where entities wouldn't be counted correctly when they were outside a region, but still in the same chunk.
  • Fixed a bug where trying to tab complete a string containing only spaces in the console would lead to ArrayIndexOutOfBounds errors.
  • Updated config defaults! Am very confident in the speeds Insights can offer by default, chunks-per-iteration is now by default 16, and the need for sending bossbars each tick has been lowered to just sending the bossbar each two ticks: info-interval-millis is now set by default to 100. These values won't change if you already set them.
----------, Mar 3, 2021

  • The player tracker task has been reduced in complexity by a lot for scan mode ALWAYS. This mode has proven itself to be so efficient, it will be used as default from now on for Insights. This mode has the great benefit of not cancelling the first block placement when a player places a block down. Insights will only scan loaded chunks around the player with this mode, which is done 100% asynchronously.
  • Added /scancache, a command which allows you to query the cache at your location of a region, or the chunk.
  • Next to the query commands, /scancache clear has been added, allowing you to delete/invalidate any cache at your location. Please see the wiki for the permissions :)
  • Added entities to the scanning commands! Scan mode "all" will include entities as well.
  • Changing chunk-scans.mode does not require a restart anymore, a simple /in reload is sufficient.
Please note: due to the way how the config is refactored (will update automatically), chunk-scans.mode ALWAYS will now be set as default. You can still toggle this setting after the update if you still want the MODIFICATION mode.
----------, Feb 26, 2021

  • Fixed NPE caused by PaperLib when a chunk hasn't been generated yet and Insights is trying to scan it.
  • Fixed NPE when trying to use SimpleMultiCuboidRegion
  • Updated the default locale for 'messages.scan.progress':
    Code (Text):
    "&3Progress: &b&l%count%&3/&b&l%total% &3Chunks (&b&l%percentage%%&3)"
  • Changed the level from SEVERE to INFO when the response body is printed to the console.
----------, Feb 22, 2021

  • Scan mode "ALWAYS" is now improved, and will now also utilise full asynchronous power when used in combination with Paper.
----------, Feb 21, 2021

If you haven’t read the v6 update post, I very much recommend reading it for the major changes v6 brings! https://www.spigotmc.org/resources/56489/update?update=387158

It's release time!
  • Fixed bed behaviour at (region-)boundaries
  • Fixed blanked messages still being sent to player
  • Fixed cuboids not being scanning correctly when they only partially contained a chunk
  • Improved the message for when a scan completes -- it will now show the exact amount of blocks it scanned through instead of the chunk blockcount
The WorldEdit extension has also been updated & requires to be updated for the latest Insights versions: https://www.spigotmc.org/resources/insights-worldedit-extension.88948/
----------, Feb 20, 2021

This update refactors the way Insights scans chunks. Instead of taking a snapshot, Insights will now use raw NMS to lookup block data, which results in much much less work for the main thread (snapshots are very expensive).

Feedback on this update is appreciated! Tested on both Paper 1.16.5 & Spigot 1.16.5.
----------, Feb 19, 2021

  • Fixed limits not being sorted correctly between tile-limits and non-tile limits, this resulted in tile limits always taking higher precedence than other limits.
Thanks for all the bugreports, we're getting very close to the full-release of v6!
----------, Feb 17, 2021

  • Insights will now cancel events on LOWEST priority, and check for changes on MONITOR (instead of just lowest). This maximizes compatibility with other plugins which also cancel events on the LOWEST priority.
  • Insights won't require worlds being loaded when Insights' limits are being loaded, this caused issues with plugins which loaded worlds after Insights loads.
  • Fixed addon loading being incomplete and could cause issues if they had more than one classfile.
New Addons:
----------, Feb 17, 2021

  • Fixed saving of the limits folder of Insights for some instances. If this happened to you, please delete the limits folder before you restart, or delete the folder after you put this version on and execute /in reload to let it regenerate.
----------, Feb 14, 2021

New
  • Scans are now up to 25% faster.
  • Added periodical update checker, which checks by default every 3 hours if there's an update available for Insights. Players with permission insights.update will receive update information. This feature can be modified in the config.
  • Fixed an error which could occur when entities unload.
  • Increased the maximum allowed chunk scan radius from 25 to 50.
  • Added placeholders: check the wiki!
  • Created an addon for Lands
----------, Feb 14, 2021

  • Seems like spigot doesn't implement Entity#isTicking, which caused an error on spigot servers.
----------, Feb 12, 2021

It's finally here! A first release candidate of Insights v6! Everything has been remade from the ground up:
Screen Shot 2021-02-12 at 16.58.04.png

Everything has changed, new libraries, new commands, lots of commands have been removed too... check the homepage for a current highlight!

I heavily considered making Insights a premium resource as of v6. I decided not to, and will keep Insights free. This update cost a lot of time, so please consider donating to help me continue developing this free resource: https://paypal.me/frankheijden

Some of the most important improvements:
  • Insights dropped support for 1.8 - 1.14. We're sorry to let the old versions go, but Insights will now try to maximise performance over supporting legacy versions. Support for these versions may come back in the future, but this is not a guarantee. For now, Insights will only support the (latest) versions 1.15 & 1.16.
  • Revamped the whole command system. Insights now has just 3 (!) commands: /scan, /scanworld and /scanregion.
  • Most entity-limiting has been removed from Insights feature set, Insights will now only support static entities: Armor Stands, Item Frames, Paintings and End Crystals. The reasoning for this is that other plugins can do a far better job at limiting entities than Insights does.
  • Scanning is now Insights core, and it does it efficient as well! Applying the mapreduce design pattern, Insights scans chunks in as many threads your server has. Setting is ofcourse configurable in the config.yml.
  • This means scans can be very very very fast with some config tweaking (example of a tile entity scan of a 25 chunk radius): Screen_Shot_2021-02-06_at_15.34.27-2-2.png
  • WorldEdit functionality has now been moved over to a separate extension plugin (place this plugin in your plugins/ folder!): InsightsWorldEditExtension
Some notes:
  • This is a complete rewrite of Insights, this means nothing is like Insights was before, all configurations have changed as well: rename/remove the old Insights directory before installing this update!
  • Although this is a release candidate and has been tested on a selected subset of servers, this release may still contain errors. Please be careful and test beforehand!
  • Any addons you might have installed, will now be incompatible and will need to be updated.
----------, Feb 12, 2021

Fixed:
  • Invocation of a NBT method on 1.12.2.
v5 will from now on only get small bugfix updates, my full attention goes towards the full rewrite of Insights in v6 :)
----------, Jan 31, 2021

Fixed:
  • Error on 1.8 which occurred while trying to parse tile entity nbt.
----------, Jan 22, 2021

New:
  • Fixed an issue where certain events would be too "early" for the entity to be written to the chunk -- thus resulting in an off by one count for some entities on MC 1.13+.
  • Fixed freezing not working for entities while scanning the area.
Thanks for using Insights! Currently Insights has been a bit of a patch here and there in the latest versions, especially how it grew from a simple plugin which was only meant to do quick chunk/radius scans, to full-on limits per chunk, scancaches, automatic scanning, worldedit integration, and so on.

I have a major rewrite planned for this plugin in the coming weeks -- this time we will get rid of the continuous scanning; caches will be persistent (up to a certain degree); a huge cleanup of the code; and a very nice feature which I will reveal at release ;)
----------, Jan 19, 2021

New:
  • You can now hook into Insights to block Insights from scanning specific entities.
  • Added an option to disable Insights from listening on CreatureSpawnEvent to allow custom entity spawns of plugins to pass through.
  • Fixed bug where armorstands were counted twice when placing them on 1.13+
  • GitHub responses are now cached for 30 minutes to solve rate limit issues.
Please update your config.yml with the new config option from the GitHub diff!
----------, Jan 17, 2021

New:
  • You can now specify multiple values to a nbt tag with the same key (same format):
    Code (YAML):
    - "Tag:100"
    - "Tag:50"
----------, Jan 12, 2021

New:
  • You can now specify specific values for NBT with this update, the format is backwards compatible with the previous update, the format is "key:value", if you don't want to specify a value, you can just use "key".
  • Insights will now show a list of all NBT tags a block has (if any) when executing /in block, please update your messages.yml with the following from GitHub!
----------, Jan 11, 2021

Changes:
  • Fixed an interesting issue with Insights, apparently BlockPlaceEvent is called when someone transforms a block into Farmland, leading to interesting results when Insights tried to cancel this mechanic when the limit was reached.
  • You can now disable Insights for blocks with specific NBT tags, this could be useful if you have other plugins which append specific NBT tags to blocks and want to stop Insights interfering with those.
Please update your config with the new node 'general.ignore-nbt-tags', which can be found on GitHub!
----------, Jan 9, 2021

Changes:
  • Fixed an interesting issue with Insights, apparently BlockPlaceEvent is called when someone transforms a block into Farmland, leading to interesting results when Insights tried to cancel this mechanic when the limit was reached.
  • You can now disable Insights for blocks with specific NBT tags, this could be useful if you have other plugins which append specific NBT tags to blocks and want to stop Insights interfering with those.
Please update your config with the new node 'general. ignore-nbt-tags ', which can be found on GitHub!
----------, Jan 9, 2021

Fixed:
  • SpawnEgg creations on 1.8
  • Shutdown error on 1.8
----------, Dec 28, 2020

New:
  • Added support for addons with non cuboid regions.
  • New addon for PlotSquared: PlotSquaredAddon
This release requires you to update all addons from Insights! There have been some breaking changes to make the above possible, please download the latest versions from GitHub!
----------, Dec 27, 2020

Fixed:
  • Issue with scanning preventing block placements
----------, Dec 25, 2020

Improvement:
  • Improved a way too costly BlockPhysicsEvent
----------, Dec 25, 2020

New:
  • You can now translate material/entity names to your likings in the messages.yml.
----------, Nov 8, 2020

Fixed:
  • A startup error which would occur on spigot servers.
----------, Nov 7, 2020

New:
  • Entities are now supported in addons (great for skyblock worlds!)
  • Insights will now create a fake BlockBreakEvent when removing a block which has been placed -- this will likely support many plugins which also use the BlockPlaceEvent!
Fixed:
  • There were some incorrect comments in the config.yml, they have now been updated (config update is not necessary) :)
----------, Nov 7, 2020

New:
  • Limiting chests caused a visual bug when trying to shift place them next to another chest to create a double chest in the air, this has been resolved.
  • For block placements, reflection has been yeeted on 1.13+
----------, Nov 1, 2020

Fixed:
  • Fixed behaviour of the permission limit section. It appeared this section was not treating the entries in this section individually, this has been solved.
----------, Oct 26, 2020

Fixed:
  • Initially scanning will no longer display "0" when using caching.
Addon Update:
----------, Oct 2, 2020

Fixed:
  • Beds & doors are now properly counted when limited through Insights
  • Fixed an issue where Insights wouldn't remove the other halves of beds & doors on MC 1.13+
----------, Sep 8, 2020

New:
  • Added a way to disallow worldedit changes on specific blocks, configured as per whitelist/blacklist in the config.
  • Fixed a NPE when trying to scan for a limited block if the block was not configured as a limit in the config, or the player had bypass permission. Now if the player has bypass permission, it will just show the count.
  • Fixed an issue where unloading insights would not properly deregister worldedit listeners.
Please take a look at the changes in config.yml!
----------, Aug 11, 2020

New:
  • Fixed worldedit tile bypass permission, insights.worldedit.bypass.
----------, Aug 9, 2020

New:
  • Fixed some nullpointer reported with Purpur server
  • Added option to disable paper recommedation at startup (enabled by default, pls switch to paper)
Please take a look at the config.yml changes (if you want to disable the paper recommendation message)!
----------, Aug 8, 2020

New:
  • Fixed limiting issues when configured multiple (permission-)groups
  • Optimised PlayerMoveEvent to be as minimal as possible.
----------, Jul 23, 2020

New:
  • Fixed actionbar setup on 1.16 instances.
----------, Jul 9, 2020

New:
  • Added Hyperverse, Multiverse and PlayerWorldsPro to the softdepends of Insights. This will ensure you can set the tilefinder location to any of the worlds loaded by these plugins :)
----------, Jun 28, 2020

New:
  • Added Hyperverse and Multiverse to the softdepends of Insights. This will ensure you can set the tilefinder location to any of the worlds loaded by these plugins :)
----------, Jun 28, 2020

Fixed:
  • Fixed an issue on older versions where a method wasn't present.
----------, Jun 25, 2020

Fix:
  • In some very rare occasions, insights would fail to place tile entities and disable when trying to recalculate the tile entities. This has been fixed, and Insights will now spit errors instead of silently filtering the console if something happened during tile placement :)
----------, Jun 23, 2020

Fixed:
  • Fixed an issue regarding async scanning.
----------, Jun 21, 2020

Fixed:
  • The updater could throw in special occasions a 403 Forbidden error when making a request to GitHub, this has been fixed.
----------, Jun 18, 2020

Fixed:
  • Fixed entity limits throwing errors.
----------, Jun 17, 2020

Fixed:
  • On some server versions a method wasn't available, so Insights now implemented its own :)
Previous update:
  • Insights will now dynamically try to "load" all tiles at startup of the server. This will be cached in the file tiles.yml, and will only be updated if the minecraft version changes / the file is deleted.
  • You can configure the location which Insights will use to fetch the tiles in the config, default location is in the first world available (usually overworld called world) at XYZ 1, 1, 1. Insights will restore the block after it has completed scanning, but I decided to make this value configurable anyway.
  • Fixed bug with entitytypes not being counted as a "group"
Please update your config.yml!
----------, Jun 16, 2020

New:
  • Insights will now dynamically try to "load" all tiles at startup of the server. This will be cached in the file tiles.yml, and will only be updated if the minecraft version changes / the file is deleted.
  • You can configure the location which Insights will use to fetch the tiles in the config, default location is in the first world available (usually overworld called world) at XYZ 1, 1, 1. Insights will restore the block after it has completed scanning, but I decided to make this value configurable anyway.
  • Fixed bug with entitytypes not being counted as a "group"
Please update your config.yml!
----------, Jun 16, 2020

New:
  • Fixed issue of not being able to place blocks near a "to be scanned" limited block, even though the scan ended
  • BossBar's will now be removed when Insights disables, so better reload support :)
----------, Jun 11, 2020

New:
  • Apparently FAWE's undo was somehow broken if you did a set operation with only limited blocks, this has been fixed.
----------, Jun 8, 2020

New:
  • Insights can now block all tiles with WorldEdit if you want to, to disable "chunkbanning".
Please update your config.yml!
----------, Jun 7, 2020

New:
  • Insights will now work better on 1.13.2
----------, Jun 5, 2020

New:
  • Insights will now also cleanup aliases after disabling, so reloading using (e.g. /reload or Plugman) will now also work for aliases.
  • Insights will now determine regions better for the disabled blocks in regions section.
----------, Jun 1, 2020

New:
  • Added /deletecache - Deletes all cache at the location you're standing in. Permission: insights.deletecache
  • Insights will now properly cleanup "currently being checked" blocks for cached regions
  • Improve WorldEdit support for cached regions, Insights will now only listen for changes on the "BEFORE_CHANGE" stage
  • Insights will now load all addons after server booted up, to ensure all plugins are loaded before insights tries to check if they're enabled or not
Please update your messages.yml!
----------, May 24, 2020

Fix:
  • Insights will now preserve itemmeta when placed down, handy for stuff like skull limiting :)

Just as a sidenote: I have some cool features planned for insights and these will require a major rewrite of the way Insights handles limits. I have them planned, but cannot work on them as of now because I have some other stuff going on irl which needs some temporary prioritisation. If you have any features you would like to see, open an issue on github or contact me on discord so I can add them for the time when ill also start working on the others!
----------, May 23, 2020

Fix:
  • Insights will now preserve itemmeta when placed down, handy for stuff like skull limiting :)

Just as a sidenote: I have some cool features planned for insights and these will require a major rewrite of the way Insights handles limits. I have them planned, but cannot work on them as of now because I have some other stuff going on irl which needs some temporary prioritisation. If you have any features you would like to see, open an issue on github or contact me on discord so I can add them for the time when ill also start working on the others!
----------, May 23, 2020

New:
  • Now you can safely remove the debug option from the config and Insights won't bother you with an error saying it does not exist :)
----------, May 12, 2020

New:
  • Improvements regarding error display for the update checker: Insights will now give your the full error of the error fetching if something went wrong - and for common errors (no internet) it will display a shorthand version so your console won't be having a big lump of error.
  • API: Added explicit plugin names for CacheAssistant! No update needed for existing addons
  • Improved the credibility of limited blocks in water
----------, May 12, 2020

New:
  • Hotfix regarding the 1.13.x and 1.14.x mc versions which prevented Insights from loading on these.
  • Removed the debug option from the config as it basically was useless anyway. Will implement something nice for this later which does provide some actual useful information.
----------, May 9, 2020

New:
  • Insights will now not disable if an error during addon loading has been encountered :cool:
  • Insights will now reload all addons on /insights reload - Drag and drop supported at runtime!
  • Added /insights addons - Displays all loaded addons with their corresponding version
  • API: The CacheAssistant class now has a version of the addons (might do some version checking / updates for public addons, but idk yet as the addons are very unlikely to change)
Please update your messages.yml!
----------, May 9, 2020

New:
  • Insights will now not disable if an error during addon loading has been encountered :cool:
  • Insights will now reload all addons on /insights reload - Drag and drop supported at runtime!
  • Added /insights addons - Displays all loaded addons with their corresponding version
  • API: The CacheAssistant class now has a version of the addons (might do some version checking / updates for public addons, but idk yet as the addons are very unlikely to change)
Please update your messages.yml!
----------, May 9, 2020

New:
  • Insights now supports arbitrary sized region limiting, with the help of caching!
  • Caching supports WorldEdit changes!
  • Insights has a neat API to register and limit your custom regions, please take a look at the BentoBox example!
How does the caching work?
When a player enters the region, there doesn't exist a cache yet. When the player places down, or tries to break a limited block; Insights will start scanning the area and initialise a cache. While Insights is scanning, the player will be temporarily 'frozen' from block placements. After the caching is done, the player will be able to resume block placements!

Addons:
How to install addons?
  • Insights will generate a new folder called "addons", simply drag and drop your addons in there and restart the server!
Please see GitHub for the changes to messages.yml.
----------, May 8, 2020

New:
  • Insights will now notify you better with invalid configurations on server startup and insights reload. It will output for every missing option what happens precisely :)
  • Insights now supports AWE (and possibly also many other forks of worldedit)
  • Added more bStats metrics (Scans performed and Limits taken into account)
----------, May 3, 2020

New:
  • Added FAWE support. It will not work out of the box unfortunately, to enable FAWE with Insights, you must add Insights to the allowed-plugins list in the FAWE config.yml: Screenshot 2020-04-30 at 00.37.18.png
----------, Apr 29, 2020

New:
  • Insights now caches reflection methods when getting blocks within a ChunkSnapshot, so this should result in some general performance increases.
  • Insights now has a fresh looking config! (Options didn't change, just added more comments, and permissions where necessary)
----------, Apr 28, 2020

New:
  • Added WE6 support for limited blocks. Had to make some workaround here :rolleyes:
  • Improvements for entity limiting on < 1.13
----------, Apr 27, 2020

New:
  • Insights can now filter out limited blocks from WorldEdit! You can even configure a replacement block which Insights should use instead, or you could leave the blocks unchanged - your choice! This is (for now) unfortunately only for servers running 1.13 or higher (WG7). I hope to find an alternative for WG6 in the future.
  • Insights can now be configured to disable asynchronousity on a block level. This could improve support for plugins which transform blocks in special things (e.g. MFHoppers @dinoboss2001)
  • Fixed an issue where it was not possible to leave messages blank. Insights will now respect blank messages - these won't be send to the user.
Please take a look at the config.yml and messages.yml changes!
----------, Apr 27, 2020

New:
  • Fixed bug when scanning with lowercased search terms.
----------, Apr 26, 2020

Hotfix:
  • Cancel even more events for to be limited blocks.
----------, Apr 24, 2020

New:
  • Insights will now also listen for too fast block breaks near a limited block and warn you about in the console.
----------, Apr 22, 2020

New:
  • Insights will now use bStats! While having minimal impact on your server, you can contribute to a fancy graph :)
  • Insights will now also check on startup if we have an update available, you can even let Insights download and reload the plugin at startup so you always have the new version (reloads should work fine for Insights)!
  • Minor fix for being allowed to perform multiple scans while doing /selection scan
  • Minor improvement for scan timings: if a scan lasts 0 seconds, we will now display the amount in milliseconds.
Please take a look at the changes in config.yml!
----------, Apr 22, 2020

New:
  • It is now possible to run Insights in passive mode for certain checks, so Insights will still actively enforce a limit, but won't notify users about it. This feature has to be manually enabled in the config, per check.
Please take a look at the config.yml changes!
----------, Apr 20, 2020

New (4.1.2):
  • Fix for executing plain "/selection" command (without args)
  • Added commands to "/insights help" (messages.yml).

Previous updates (4.1.0 & 4.1.1):
  • Added the /selection command, used for defining a region and scan inside the region.
  • /selection create (perm: "insights.selection.create"): Starts the selection mode. Used to select a region to scan in (Break / Right click on block)
  • /selection stop (same perm as /selection create): Ends the selection mode.
  • /selection scan <tile|entity|custom>: Scan like all the other commands inside this just selected region!
  • Added WorldEdit selection support. You can now also select using the WorldEdit plugin (supports WE6 & WE7) :)
  • Added /selection deselect (perm: same as /selection create) to quickly deselect your selection (Insights will choose it's own selection mechanism over WorldEdit)
4.1.0: Please take a look at the messages.yml changes!
4.1.1: Please take a look at the messages.yml changes!


API:
  • Insights is not limited to chunks anymore within the API!
  • ScanOptions#setChunkLocations has been removed and has been changed into ScanOptions#setPartialChunks. This is due to the new way of scanning. You can however easily convert between ChunkLocations and PartialChunks. You will need to specify the world for this, so Insights knows what the max height is.
  • You can get Partial Chunks from 2 locations (cuboid region, see here), from regular org.bukkit.Chunk chunks and a lot more!
----------, Apr 20, 2020

New:
  • Added WorldEdit selection support. You can now also select using the WorldEdit plugin (supports WE6 & WE7) :)
  • Added /selection deselect (perm: same as /selection create) to quickly deselect your selection (Insights will choose it's own selection mechanism over WorldEdit)
Please take a look at the messages.yml changes!

Previous update:
  • Added the /selection command, used for defining a region and scan inside the region.
  • /selection create (perm: "insights.selection.create"): Starts the selection mode. Used to select a region to scan in (Break / Right click on block)
  • /selection stop (same perm as /selection create): Ends the selection mode.
  • /selection scan <tile|entity|custom>: Scan like all the other commands inside this just selected region!
Please take a look at the messages.yml changes!

API:
  • Insights is not limited to chunks anymore within the API!
  • ScanOptions#setChunkLocations has been removed and has been changed into ScanOptions#setPartialChunks. This is due to the new way of scanning. You can however easily convert between ChunkLocations and PartialChunks. You will need to specify the world for this, so Insights knows what the max height is.
  • You can get Partial Chunks from 2 locations (cuboid region, see here), from regular org.bukkit.Chunk chunks and a lot more!
----------, Apr 20, 2020

Plugin:
  • Added the /selection command, used for defining a region and scan inside the region.
  • /selection create (perm: "insights.selection.create"): Starts the selection mode. Used to select a region to scan in (Break / Right click on block)
  • /selection stop (same perm as /selection create): Ends the selection mode.
  • /selection scan <tile|entity|custom>: Scan like all the other commands inside this just selected region!
Please take a look at the messages.yml changes!

API:
  • Insights is not limited to chunks anymore within the API!
  • ScanOptions#setChunkLocations has been removed and has been changed into ScanOptions#setPartialChunks. This is due to the new way of scanning. You can however easily convert between ChunkLocations and PartialChunks. You will need to specify the world for this, so Insights knows what the max height is.
  • You can get Partial Chunks from 2 locations (cuboid region, see here), from regular org.bukkit.Chunk chunks and a lot more!
----------, Apr 19, 2020

This version has a major rewrite of how things are done in Insights!
  • Added PlayerEntityPlaceEvent - called when a player places down an entity (Boat, Painting, ArmorStands and even using SpawnEggs)
  • Added PlayerEntityDestroyEvent - called when a player destroys an entity in a similar fashion above.
  • Added nice utilities to check if an block is a tile: TileUtils
  • Generally refactored out methods
No config changes!
----------, Apr 17, 2020

  • Resolves an issue on 1.8 where the actionbar would error when it's trying to display.
----------, Apr 16, 2020

  • Fixes an incompatibility issue for when PlaceholderAPI has not been installed on the server.
----------, Apr 14, 2020

  • Added /insights entity to lookup the entity a player is looking at. Permission: "insights.entity"
  • Both /insights entity and /insights block now support a custom range, just do /insights block <range> or /insights entity <range>
Please take a look at the messages.yml changes on GitHub!
----------, Apr 14, 2020

  • Improved startup messages of Insights
  • Insights will now notify you if you are running it on an incompatible version (MC < 1.8)
  • A plugin reload will now also re-check PlaceholderAPI existence
  • Removed "ALL" option from tabcomplete for scanradius/world
  • PAPI %insights_scan_progress% is now 2 decimals as well
----------, Apr 13, 2020

  • It is now possible to match worlds and regions with regex (if you have lots of regions with same format this could be handy)
Please take a look at the changes for config.yml on GitHub (figured this would be better so you can see what actually changed)
----------, Apr 11, 2020

  • Fixes a bug concerning a nullpointerexception.
----------, Apr 10, 2020

  • It's now possible to limit blocks per group, e.g. limit all redstone blocks in a chunk with a maximum of 50. Example is included in the default config.yml
  • AutoScan can also be performed on these groups, just do /autoscan limit <block_in_limit_list>
  • Improved permission group based limiting in the config
  • Added support for entity limiting (entity placements in a chunk by eggs)
  • Removed support for the "BOTH" scantype
  • /insights block has been changed: it will now output the block you're looking at.
  • By default, all "plain" commands without args (/scan, /scanradius <radius>, ...) will perform an "ALL" scan
  • API Changes: InsightsAPI does not support scans anymore. Please use Scanner#create(ScanOptions)
Screenshot Group Scan:
[​IMG]

! Please delete players.db, it is not compatible with v3.0.0!

Please update your config.yml and messages.yml!
Changes in config.yml:
Code (YAML):
 limits :

    # This is a list in which order we should check limits
    # The first in the list will be first checked, last in the list checked at last, etc.
    priorities
:
     - "groups"
      - "permissions"
      - "materials"
      - "entities"

    # Limits a single block in a chunk
    materials
:
      # Format:
      # BLOCK: LIMIT
      DIAMOND_ORE
: 128
      ENCHANTING_TABLE
: 16 # If on < 1.13 use "ENCHANTMENT_TABLE"

    # Limits entities per chunk
    entities
:
      CREEPER
: 4

    # Set a limit to custom blocks in a chunk for certain material groups
    # This group will act as a whole limit. All blocks will count towards the limit.
    # Please note that this will override the global materials limit.
    groups
:

      # Example of such a group, make sure the following line is unique!
      my_redstone_group
:
        name
: "Redstone"
        limit
: 50
        # Bypass permission
        permission
: "insights.materialgroups.bypass.redstone"
        materials
:
        - "REDSTONE_WIRE"
         - "REDSTONE_BLOCK"
         - "HOPPER"
         - "DISPENSER"
         - "DROPPER"
         - "TRIPWIRE_HOOK"
         - "REDSTONE_LAMP"
         - "REDSTONE_LAMP_ON"
         - "REDSTONE_LAMP_OFF"
         - "STICKY_PISTON"
         - "STICKY_PISTON_BASE"
         - "PISTON"
         - "PISTON_BASE"
         - "REDSTONE_TORCH"
         - "TNT"
         - "NOTE_BLOCK"
         - "LEVER"
         - "REPEATER"
         - "DIODE"
         - "REDSTONE_COMPARATOR"
         - "COMPARATOR"

    # Set a limit to custom blocks in a chunk for certain groups
    # Please note that this will override the global materials limit.
    permissions
:

      # Example of such a group, make sure the following line is unique!
      my_permission_group1
:
        name
: "Permission Group"
        # Bypass permission
        permission
: "insights.permissiongroups.group1"
        materials
:
          DIAMOND_BLOCK
: 256
          ENCHANTING_TABLE
: 32
        entities
:
          CREEPER
: 5


Changes in messages.yml:
Code (YAML):
 autoscan :
    # Special placeholders:
    # %material%
    enabled
: "&3Successfully enabled automatic scanning."
    disabled
: "&3Autoscan has been disabled."
    not_enabled
: "&cYou do not have autoscan enabled!"
    # Message send when a user scans for a limit of a block
    # Special placeholders:
    # %key%
    # %count%
    # %limit%
    limit_entry
: "&3%key%: &b%count%&3/&b%limit%"
    # Message send when entering a chunk with one autoscan entry
    # Special placeholders:
    # %key%
    # %count%
    single_entry
: "&3%key%: &b%count%"
    # Message send when autoscanning multiple entries
    multiple_entries
:
      header
: "&8&m--------------=&r&8[&b&l AutoScan Count&r &8]&m=---------------"
      # Special placeholders:
      # %entry%
      # %count%
      format
: "&b %entry%&8: &7&l%count%"
      footer
: "&8&m-------------------------------------------------"
----------, Apr 9, 2020

  • Fixes an issue related to measuring distances between different worlds.
----------, Mar 4, 2020

Reupload, removed debug statements.
----------, Mar 3, 2020

  • This version should fix Insights from not functioning on versions prior to MC 1.13.
  • Fixed live boss/actionbar not displaying correctly on entity placements.
----------, Mar 3, 2020

  • Add support back for asynchronous limiting of custom defined blocks
  • Add config section to toggle async limiting
  • Display a warning in the console when a user places a block too fast nearby a limited block
Please add the following entry to your config.yml:
Code (YAML):
general :
  # Should we scan custom defined block limits asynchronously?
  # Please note: there may be bugs when enabling this feature; test thoroughly!
  # Support is enabled for this feature, if you come across any incompatibility, please report!
  scan_async
: true
----------, Feb 21, 2020

Removed asynchronous limit scanning for now from the plugin, as there seems to be a dupe bug when trying to place poppable items rapidly on top of each other (cacti, sugar canes)

I have some ideas to fix this and still use asynchronous scanning, but this will be implemented later this weekend and more testing is needed.
----------, Feb 19, 2020

  • Added permission to bypass Placeable Entities limits. Please use "insights.bypass.<ENTITY_NAME>".
----------, Feb 16, 2020

  • Added support for Boats, Minecarts, Paintings, Item Frames (Placeable Entities)
    Please note: you need to use the entity name for these! For example: CHEST_MINECART is named MINECART_CHEST as entity. You can use /insights block to get a valid config entry.
  • /insights block now shows seperate message for invalid blocks
  • Implement our own updater, which updates the plugin via GitHub releases (much faster!)
Please update your messages.yml with the appropiate entries:
Code (YAML):
  # Update checker
  update
:
    available
: |-
      &8&m --------------=&r&8 [&b&l Insights Update&r &8 ]&m= ---------------
      &3Current version
: &b%old%
      &3New version
: &b%new%
      &3Release info
: &b%info%
      &8&m -------------------------------------------------
    downloading
: |-
      &8&m --------------=&r&8 [&b&l Insights Update&r &8 ]&m= ---------------
      &3A new version of Insights will be downloaded and installed after a restart!
      &3Current version
: &b%old%
      &3New version
: &b%new%
      &3Release info
: &b%info%
      &8&m -------------------------------------------------
    download_failed
: "&cFailed to download version %new% of Insights. Please update manually."
    download_success
: "&3Insights has been downloaded and will be installed on the next restart."

and:
Code (YAML):
 insights :
    # Message send when a user executed /insights block with an invalid block
    invalid_block
: "&cInsights currently doesn't support the block in your hand, please report this if you think this is in error."
----------, Feb 16, 2020

  • Removed WildStacker hook, as this was not compatible with their new v3.0.0 version and the previous update should resolve the plugin incompatibility.
----------, Feb 3, 2020

This version should fix issues with block duplications on claims / land plugins. The plugin will now behave as a final actor on block placements.
----------, Jan 24, 2020

New stuff
  • Added group limits, permission based limits in chunks
  • Added command /insights block (will give the name of the block as it should appear in the config, permission insights.block )
Improved stuff
  • Fixed bug when you tried to place your last item while the limit was reached.
Misc stuff
  • Materials are now being compared as strings rather than Material Types, so this may provide support for modded servers.
Please update your configs!
Messages:

messages.insights.block:
Code (YAML):
    # Message send when a user executed /insights block
    # Special placeholders:
    # %block%
    block
: "&3The block in your hand is a(n) \" &b %block%&3\"."
Config:
general.groups:
Code (YAML):
  # Set a limit to custom blocks in a chunk for certain groups
  # Please note that this will override the global materials limit.
  groups
:
    # Please replace dots in your permissions with {dot}.
    # The following permission will be parsed as insights.group.1
    "insights{dot}group{dot}1"
:
      ENCHANTING_TABLE
: 32

    "insights{dot}group{dot}2"
:
      DIAMOND_ORE
: 128
----------, Jan 20, 2020

Optimised some code.
----------, Dec 22, 2019

  • Quick bugfix for tile scanning!
  • Implemented 2 decimal precise progress percentage in bossbar/actionbar. No changes required for this.
----------, Dec 22, 2019

  • Added Hook API, determine which "org.bukkit.Block" should be scanned by Insights
    Hook class:
    Code (Java):

    import net.frankheijden.insights.api.entities.Hook ;
    import org.bukkit.Material ;
    import org.bukkit.block.Block ;
    import org.bukkit.plugin.Plugin ;

    public class MyInsightsHook extends Hook {
        public MyInsightsHook ( Plugin plugin ) {
            super ( plugin ) ;
        }

        @Override
        public boolean shouldCancel ( Block block ) {
            return block. getType ( ) == Material. DIRT ;
        }
    }
     
    Plugin class:
    Code (Java):

    import net.frankheijden.insights.api.InsightsAPI ;

    public class MyPlugin extends JavaPlugin {
        @Override
        public void onEnable ( ) {
            super . onEnable ( ) ;

            InsightsAPI insightsAPI = new InsightsAPI ( ) ;
            insightsAPI. getHookManager ( ) . addHook ( new MyInsightsHook ( this ) ) ;
        }
    }
     
  • Added hook for WildStacker
Please look at the following lines in your messages.yml under the "messages" section, they have been changed:

Code (YAML):

  # Messages send when a user executed /insights
  insights
:
    # Messages send when a user executed /insights help
    help
: |-
      &8&m --------------- =&r&8 [ &b&l Insights Help&r &8 ] &m= --------------- -
      &b /insights &f| &7Displays information about this plugin.
      &b /insights help &f| &7Displays this message.
      &b /insights hooks &f| &7Shows plugin hooks.
      &b /insights reload &f| &7Reloads the plugin.
      &b /check &f| &7Displays the amount of entities & tiles in this chunk.
      &b /checkworlds &f| &7Displays the amount of entities & tiles in the server.
      &b /scan [ entity|tile| all ] &f| &7Displays a detailed scan of this chunk.
      &b /scan custom [ entity1 ] [ material2 ] ... &f| &7Scan this chunk.
      &b /scanradius [ entity|tile| all ] &f| &7Displays a detailed scan of chunks.
      &b /scanradius custom [ entity1 ] [ material2 ] ... &f| &7Scan chunks in a radius.
      &b /scanworld <world> [ entity|tile| all ] &f| &7Displays a detailed scan of a world.
      &b /scanworld <world> custom [ entity1 ] [ material2 ] ... &f| &7Scan a world.
      &b /togglecheck &f| &7Toggles realtime info in actionbar.
      &8&m ------------------------------------------------ -

    # Messages send when a user executed /insights hooks
    hooks
:
      header
: "&8&m---------------=&r&8[&b&l Insights Hooks&r &8]&m=---------------"
      # Special placeholders:
      # %plugin%
      format
: "&a&l✔ &r&a%plugin%"
      footer
: "&8&m-------------------------------------------------"
      none
: "&cInsights has no hooks enabled."

    # Message send when the plugin has been successfully reloaded
    reload
: "&3Insights has been successfully reloaded!"

    # Message send when the plugin had an error reloading config
    reload_failed
: "&cInsights failed to reload the config. Please check the console and report this error."
 
----------, Dec 22, 2019

  • This update fixes an error in the console which occurred in the BossBarTask.
----------, Aug 25, 2019

  • This update should fix a bug which occurred when scanning for tiles.
  • Added debug messages (default is off, but it's a not super spammy debug, only prints what the plugin is doing right now in the console)
  • Added a new command, /cancelscan which cancels the current scan. No permissions needed for this command, as only players which are using a scanning function can execute this command.
Please add the following lines to your config.yml under the "general" section:
Code (YAML):
  # Should the plugin output some useful information when scanning for blocks?
  debug
: false
Please add the following lines to your messages.yml under the "messages" section:
Code (YAML):
  # Messages send when a user executes /cancelscan
  cancelscan
:
    success
: "&3Scan has been successfully cancelled."
    not_scanning
: "&cYou don't have a scan running!"
----------, Aug 17, 2019

No updates needed for 1.14.3, previous builds should also work with 1.14.3

API Update:
  • Added ability to specify if you want to save the world after a scan has completed the chunk loading/generating part. InsightsAPI#
    scan(World, List<ChunkLocation>, List<Material>, List<EntityType>, boolean)
----------, Jun 25, 2019

Changes:
  • Fixed an error on 1.14
  • Changed the default of the automatic updater to false
config.yml changes:
  • Changed general.updates.download to false as default
----------, Jun 23, 2019

Changes:
  • Insights will now automatically update if a new update is available (you can disable this feature).
config.yml changes:
  • Added general.updates
messages.yml changes:
  • Added messages.update
----------, Jun 21, 2019

Changes:
  • Only save world when scanning chunks in a radius, as these chunks might not be generated yet.
----------, Jun 20, 2019

Fixed /autoscan disable
----------, Jun 20, 2019

Changes:
  • Implemented /autoscan - this command will automatically scan the chunk you are entering for a specific block or entity. Requires the permission insights.autoscan.<block> or insights.autoscan.<entity> .
  • Implemented a block white/blacklist to regions. This will allow you to specify blocks which may be placed inside a region. Bypass with permission insights.regions.bypass.<block> .
config.yml changes:
  • Added general.region_blocks
messages.yml changes:
  • Added messages.autoscan
  • Added messages.region_disallowed_block
API changes:
  • Added PlayerChunkMoveEvent , an event which is called when a player moves between chunks. This event is cancellable to lock players inside a chunk :)
  • Added InsightsAPI#scan(Chunk, Material) to scan a single chunk for a single material.
  • Added InsightsAPI#scan(Chunk, EntityType) to scan a single chunk for a single entity.
----------, Jun 20, 2019

Hotfix for 1.8; scan commands
----------, Jun 19, 2019

Changes:
  • Fix for 1.8 NoSuchMethodError on scan commands
  • Added support for WorldGuard regions (e.g. define a blacklist or whitelist in the config where insights should listen for live scanning)
  • Added option to choose for a whitelist or blacklist for the worlds specified in config.yml
config.yml changes:
  • Added general.regions
  • Changed general.worlds
----------, Jun 19, 2019

Changes:
  • Fixed bossbar not showing up when live scanning after a scan command has been run, now supports multiple bossbars
  • Fixed worldedit changes not being count in live chunk scanning - now using a new method which supports every plugin.
  • Added a config option to disable the bossbar/notification bar when the general tile limit has been disabled. Please note: the actionbar/bossbar will still show up when having custom defined materials!
config.yml changes:
  • Added general.always_show_notification
messages.yml changes:
  • Added messages.realtime_check_no_limit

Thank you @vikicraft (GitHub) for pointing these out!
----------, Jun 19, 2019

Changes:
  • Implemented an update checker which will fetch updates and notify players with the permission insights.notification.update!
config.yml changes:
  • Added general.check_updates
messages.yml changes:
  • Added messages.update_available
----------, Jun 18, 2019

Changes:
  • Implemented bossbar/actionbar progress for /scan commands
  • Added persistence for scans after a player leaves and rejoins
  • Implemented 'already scanning' message
  • Added PlaceHolderAPI placeholders:
  1. %insights_scan_progress% - returns a percentage
  2. %insights_scan_time% - returns a human friendly string for how long we are running the scan
  • Implemented fixes for tile scan commands
  • Changed /scan custom ALL to /scan ALL
  • Changed /scanradius <...> custom ALL to /scanradius <...> ALL
  • Changed /scanworld <...> custom ALL to /scanworld <...> ALL
[​IMG]

config.yml changes:
  • Added general.scan_notification
messages.yml changes:
  • Changed the scan messages format to a much cleaner one. Please take a look at the new format before you update, or delete your messages.yml and reload with /insights reload after you installed version 2.6.0
  • Added messages.scan_notification
  • Added messages.already_scanning

API changes:
----------, Jun 18, 2019

  • Added the ability to scan hundreds of chunks at the same time using the new API!
Example class:
Code (Java):
package net.frankheijden.insights ;

import net.frankheijden.insights.api.InsightsAPI ;
import net.frankheijden.insights.api.entities.ChunkLocation ;
import org.bukkit.Bukkit ;
import org.bukkit.Chunk ;
import org.bukkit.Material ;
import org.bukkit.World ;
import org.bukkit.entity.EntityType ;
import org.bukkit.plugin.java.JavaPlugin ;

import java.util.* ;
import java.util.concurrent.CompletableFuture ;

public class MyClass extends JavaPlugin {
    InsightsAPI insightsAPI ;

    @Override
    public void onEnable ( ) {
        super. onEnable ( ) ;

        // Create a new InsightsAPI instance
        insightsAPI = new InsightsAPI ( ) ;

        // Get a world to scan in
        World world = Bukkit. getWorld ( "world" ) ;

        // Get some chunklocations together
        List <ChunkLocation > chunkLocations = new ArrayList <> ( ) ;
        for (Chunk chunk : world. getLoadedChunks ( ) ) {
            ChunkLocation chunkLocation = new ChunkLocation (chunk. getX ( ), chunk. getZ ( ) ) ;
            chunkLocations. add (chunkLocation ) ;
        }

        // Lets scan for ores!
        List <Material > materials = Arrays. asList (
                Material. COAL_ORE,
                Material. IRON_ORE,
                Material. LAPIS_ORE,
                Material. REDSTONE_ORE,
                Material. EMERALD_ORE,
                Material. DIAMOND_ORE
        ) ;

        // Lets also scan for Creepers ;-)
        List <EntityType > entityTypes = Collections. singletonList (EntityType. CREEPER ) ;

        // Let the scan begin!
        CompletableFuture <TreeMap < String, Integer >> completableFuture = insightsAPI. scan (world, chunkLocations, materials, entityTypes ) ;

        // When the scan has been completed, execute:
        completableFuture. whenCompleteAsync ( (counts, error ) -> {
            // Print them in the console!
            System. out. println (counts. toString ( ) ) ;
        } ) ;
    }
}
----------, Jun 15, 2019

  • Implemented PaperSpigot's Async chunk loading
  • General chunk loading improvements
  • Implemented a default scanradius tab-complete, closes #2
  • Config checks are done on startup and on reload for performance purposes
  • Implemented bossbar
  • Added .gitignore file
upload_2019-6-14_22-25-58.png

Please note: due to the current amount of buggs on MC 1.14; /scanradius may drop the server's TPS when executed with a large radius. Chunk loading is done with an average of 20 chunks per second. This should be reasonable for each server to handle.
----------, Jun 14, 2019

This update will create a new folder due to plugin renaming.
  • Renamed plugin to Insights
  • Renamed all permissions to 'insights'
  • Renamed 'individual' to 'custom' subcommand
  • Added custom scan to /scanworld
  • Added ability to scan all entities/blocks in a chunk/radius/world
  • Added support for multiple argument commands, e.g. /scanradius 5 custom DIAMOND_ORE CREEPER STONE
  • Added new permissions for tabcompletion; 'insights.scan.tab', 'insights.scanradius.tab', 'insights.scanworld.tab'
----------, May 28, 2019

Fixed: /scanradius would not collect blocks underground
----------, May 27, 2019

Fixed: no_entities & no_tiles %world% placeholder in /scanworld
New: Added feature to scan chunks in a radius for a specific block. Examples:
  • /scanradius 10 individual STONE --> a radius of chunks (permission: blocklimiter.scanradius.individual.STONE )
  • /scan individual STONE --> the current chunk you're in (permission: blocklimiter.scan.individual.STONE )
For individual scanning we're using an asynchronous task which will not lag your server when scanning for a specific block. Please note: this feature is not yet applied to /scanworld!
----------, May 27, 2019

Fixed: 'messages.limit_reached' now has a %limit% placeholder
----------, May 27, 2019

Fixed: /checkworlds is now sorted alphabetically
New: Added tabcomplete for each command. These are permission sensitive.
New: All ['tile'|'entity'] variables are now optional. This means you can execute /scanradius 10 and get both entities and tiles in one list.
New: Added a warning message if a locale is missing from the config.
New: Moved all messages inside a new file called messages.yml

Thank you @SlimeDog for requesting these features!
----------, May 27, 2019

Re-upload, previous version contained small bug

New: Added /scanradius <radius> <entity|tile> - Scans chunks in a radius around you, hard-coded limit is set to a radius of max 25.
New: Added /togglecheck - Toggles the realtime info message in actionbar. Please note: for this to work the player will also need the permission blocklimiter.check.realtime
Breaking: Refactored command names! Switched scan commands to check and switched check commands to scan, for convenience as "scan" refers to something more detailed. Permissions and config also changed - please take a look at the main page or backup & reset your config!

This project has been released on GitHub under the GNUv3 license.
----------, May 26, 2019

New: Added /scanradius <radius> <entity|tile> - Scans chunks in a radius around you, hard-coded limit is set to a radius of max 25.
New: Added /togglecheck - Toggles the realtime info message in actionbar. Please note: for this to work the player will also need the permission blocklimiter.check.realtime
Breaking: Refactored command names! Switched scan commands to check and switched check commands to scan, for convenience as "scan" refers to something more detailed. Permissions and config also changed - please take a look at the main page or backup & reset your config!

This project has been released on GitHub under the GNUv3 license.
----------, May 26, 2019

New: Added configuration section where you can limit any block in a chunk, you can even specify individual tiles, these rules have priority over the global tile limit.

Config changes: Added a new section inside "general":
Code (Text):
# Set a limit to custom blocks in a chunk
materials:
  # Format:
  # MATERIAL: LIMIT
  DIAMOND_ORE: 128
  ENCHANTING_TABLE: 16
 
----------, May 26, 2019

This update has an update to the format of the config. Please delete your old config and change it after it has regenerated, or change it according to the new config before restarting the server with the new version.

New: Added /checkworld <world> <tile|entity> : This will return a list with all tiles/entities in the specified world
New: Added /scanworlds <tile|entity> : This will return a list with all worlds and its tile/entity count.

Config changes: Added 2 new sections inside "messages":

Code (Text):
  # Messages send when a user executes /checkworld <world> <tile|entity>
  checkworld:
    entity:
      header: "&8&m----------------=&r&8[&b&l Entity Count&r &8]&m=----------------"
      # Special placeholders:
      # %entity%
      # %count%
      format: "&b %entity%&8: &7&l%count%"
      # Special placeholders:
      # %world%
      # %total_count%
      total: "&3 World &b%world% &3has a total of &b&l%total_count% &3entities."
      footer: "&8&m-------------------------------------------------"
      # Special placeholders:
      # %world%
      no_entities: "&cWorld %world% has no loaded entities."
    tile:
      header: "&8&m-----------------=&r&8[&b&l Tile Count &8]&m=-----------------"
      # Special placeholders:
      # %tile%
      # %count%
      format: "&b %tile%&8: &7&l%count%"
      # Special placeholders:
      # %world%
      # %total_count%
      total: "&3 World &b%world% &3has a total of &b&l%total_count% &3tile(s)."
      footer: "&8&m-------------------------------------------------"
      # Special placeholders:
      # %world%
      no_tiles: "&cWorld %world% has no loaded tiles."
    invalid_world: "&cThat world does not exist."

  # Messages send when a user executes /scanworlds <tile|entity>
  scanworlds:
    entity:
      header: "&8&m----------------=&r&8[&b&l Entity Count&r &8]&m=----------------"
      # Special placeholders:
      # %world%
      # %count%
      format: "&b %world%&8: &7&l%count%"
      # Special placeholders:
      # %total_count%
      total: "&3 The server has a total of &b&l%total_count% &3entities loaded."
      footer: "&8&m-------------------------------------------------"
      no_entities: "&cThe server has no loaded entities."
    tile:
      header: "&8&m-----------------=&r&8[&b&l Tile Count &8]&m=-----------------"
      # Special placeholders:
      # %world%
      # %count%
      format: "&b %world%&8: &7&l%count%"
      # Special placeholders:
      # %total_count%
      total: "&3 The server has a total of &b&l%total_count% &3tiles loaded."
      footer: "&8&m-------------------------------------------------"
      no_tiles: "&cThe server has no loaded tiles."
----------, May 25, 2019

Added support for all versions between 1.8 - 1.14.
----------, May 25, 2019

This version has been tested and works on 1.13/1.14 and should still work on 1.12.2.
  • Fixed '/blocklimiter entity' when there is no entity in the chunk.
----------, May 22, 2019

Minor entity name fixes and code-cleanup :)
----------, May 21, 2019

Resource Information
Author:
----------
Total Downloads: 39,795
First Release: May 6, 2018
Last Update: Oct 6, 2022
Category: ---------------
All-Time Rating:
53 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings