[1.15 - 1.16.5] Insights

Insights
Insights is a plugin which scans arbitrary regions asynchronously and (optionally) applying block limitations on them for your users. Insights can also be used passively without limits. Insights’ limits are super configurable, allowing for block-group limits, individual-block (permission-based) limits, and tile limits.

Each limit is able to be bypassed through permissions, which you can fully customize in each limit’s configuration.

Apart from all placeable materials, Insights also supports the limitation of the following static entities:

  • Item Frames
  • Armor Stands
  • Paintings
  • End Crystals

Insights applies a mapreduce design pattern to perform scans asynchronously, thus keeping the main thread free from counting materials or entities. Insights also provides an extensive developer API to create your own custom defined region addons (ie to limit within a claim, island, or any other area), or to perform arbitrary scans and process those.

Commands & Permissions
Insights features the following in-game commands:

  • /insights
    • reload [ insights.reload ] - Reloads the configurations & limits​
  • /scan <radius>
    • all [ insights.scan.all ] - Scans everything for the defined chunk radius and reports the results.
    • custom <materials…> [ insights.scan.custom ] - Scans the defined chunk radius for a custom materials query.
    • entity [ insights.scan.entity ] - Scans the defined chunk radius for entities.
    • tile [ insights.scan.tile ] - Scans the defined chunk radius for tiles.​
  • /scanworld
    • all [ insights.scanworld.all ] - Scans all loaded chunks in the world and reports all block distributions.
    • custom <materials…> [ insights.scanworld.custom ] - Scans all loaded chunks in the world for a custom materials query.
    • entity [ insights.scanworld.entity ] - Scans all loaded chunks in the world for entities.
    • tile [ insights.scanworld.tile ] - Scans all loaded chunks in the world for tiles.​
  • /scanregion
    • all [ insights.scanregion.all ] - Scans the region at your current location and reports all block distributions.
    • custom <materials…> [ insights.scanregion.custom ] - Scans the region at your current location for a custom materials query.
    • entity [ insights.scanregion.entity ] - Scans the region at your current location for entities.
    • tile [ insights.scanregion.tile ] - Scans the region at your current location for tiles.​
  • /scancache
    • all [ insights.scancache.all ] - Scans the cached region/chunk at your current location and reports all block distributions.
    • clear [ insights.scancache.custom ] - Clears the cache at your current location.
    • custom <materials…> [ insights.scancache.custom ] - Scans the cached region/chunk at your current location for a custom materials query.
    • entity [ insights.scancache.entity ] - Scans the cached region/chunk at your current location for entities.
    • tile [ insights.scancache.tile ] - Scans the cached region/chunk at your current location for tiles.​

Next to the command and limit permissions (can be configured per limit in their yaml file), Insights has the following permissions:

  • insights.update - Allows the player to see updates from Insights for future versions on login
  • insights.notifications - Allows the player to see the live actionbar/bossbar when placing down blocks/entities

Command Examples
Scan a 50 chunk radius for tiles & display them in chat (keep in mind that this scans 101 * 101 = 10.201 chunks, and will result in a few expensive GC calls in between (un)loading chunks):

scan 50 tile

Scan all chunks in the current loaded world for specific blocks:

scanworld custom hopper redstone_wire piston

Links