Prism

  1. Where's Prism for Spigot 1.8?

    We're not planning any releases for Spigot 1.8 at this time - but we are hopeful that as Sponge matures we can do a great job of porting Prism to it. Prism should work fine for 1.8, it simply won't track new things like banners and armor stands.

    Prism is primarily the work of a single individual. While I've had some code contributions (nasonfish, Dykam, blood, etc), I've probably donated thousands of hours over two years to the project. I'm very pleased that it's been so popular, and that Prism 2 is so much faster and more efficient than 1, but that comes with a price as well - the burden to support the plugin, fix issues, address problem areas, etc. I'm very appreciative of users on IRC who try their best to help new users, that really helps me out.

    The fiasco of the bukkit/Mojang/DMCA hurt a lot of people. With a few weeks, the entire platform Prism was built on vanished and not only was I stuck as a server owner, but as a developer.

    I'm sure you can imagine my reaction to learn that I spent thousands of hours refining a plugin on a foundation that had such serious legal issues exposed nearly overnight.

    Originally, I donated my time because I needed the plugin myself, I wanted to give back to the community, I was pleased with everyone's reaction to Prism, and was optimistic about Minecraft's future.

    I use the term "donated" because there's never any benefit to me other than having use of the plugin and the thanks I hear from users. There's absolutely no financial gain and because this takes time that I could have spent on my commercial projects, it costs me money.

    I'm not confident that Spigot has cleared all of these legal issues. They're distributing the project differently and they feel that's enough to avoid the legal problems, but those on the other side of the issue aren't satisfied. We're really just a bunch of a developers blindly shooting in the dark hoping there's no more legal hurtles. Sponge is a full restart with a clear mindset over not distributing non-open-source code, having a proper CLA in place, etc.

    I feel that there are too many variables that could bring Spigot down overnight all over again and that's no longer anything I want to be involved with. I'm also no longer sure that the community has its best interest in mind anymore and I'm pretty dissatisfied with the direction Minecraft/Mojang themselves are taking.

    So, if Sponge winds up where it's shooting to go, I hope to be there too.

    By viveleroi — 12/22 at 5:10pm
  2. Prism v2.0.4

    IMPORTANT: For those unaware, we are only supporting urgent bugs in Prism for bukkit/spigot.

    We have announced plans to port Prism to sponge. Click here to follow progress/news

    • Vanilla xray alert wasn't checking ignore/disabled settings
    • Insert/remove appliers properly set item frame contents

    By viveleroi — 09/16 at 5:21pm
  3. Prism v2.0.3

    • Rewrites that allow us to fully avoid using BlockPhysicsEvent. The last big offender in timings reports
    • Help screen update for report command
    • Update for a minor bukkit API change
    • No longer using git-describe for versioning/builds, dev builds now on jenkins
    • Minor code cleanup
    • Shading elixr in a way that won't conflict with our other plugins also using elixr

    By viveleroi — 08/11 at 6:57pm
  4. Prism v2.0.2

    • Fixed: Lower-halves of double chests were not logging item actions
    • Added: Follow chain of tnt for the original primer
    • Added: Tracking tamed status of cats
    • Improved display of horse/cat variant names
    • Removed HeroChat support.

    By viveleroi — 06/24 at 12:25am
  5. Prism v2.0.1

    • Added: Logging/restoring max health for horses
    • Fixed: Preview queries were not properly being run async
    • Fixed: Parameter permissions error prevented auto purge system from running properly
    • Fixed: Restored older API methods for better backwards-compatibility

    By viveleroi — 05/28 at 4:26pm
  6. Prism-v2.0

    • Added permission nodes for each parameter (used in lookups/rollbacks/etc) prism.parameters.* includes them all.
    • Added mysql table prefix support. Use prism.mysql.prefix in the configuration.
    • Added new namespaced-variants of commands to the illegal command list: e.g. /bukkit:op. You need to manually add this to your config if you use this feature

    • Changed factory method names for creating new action instances.

    • Fixed NPE caused by recent change block event changes.

    • Fixed enderman place/remove tracking.
    • Fixed player name exclusion not working properly (broken in recent betas)
    • Fixed NPE on tab completion of certain parameters
    • Fixed two items missing from the items alias list (in elixr)
    • Fixed color code stripping missing dual ampersands (in elixr)

    By viveleroi — 05/22 at 12:05am
  7. Prism-v2.0-Beta8

    IMPORTANT: This update adds support for UUIDs. Prism2 doesn't yet have an auto-updater for our database (it's coming, we have bigger db work to announce soon) so you need to run the following query before installing:

    ALTER TABLE prism_players ADD player_uuid BINARY( 16 ) NOT NULL;

    Changes:

    • New: Converting internal player tracking for the new UUID format for 1.7.6+ (see below)
    • New: Pass ore, command, use alerts to other plugins via commands. Add the commands to prism.alerts.ores.log-commands
    • New: Early work adding tab completion of commands

    • Fixed: Extra data table join was missing for purges

    • Fixed: Mods using villagers with empty professions were throwing NPE errors
    • Fixed: Ore alerts skip is player/gamemode is null (for fakeplayers)
    • Fixed: Standardized/fixed logic for determining if recorder is running
    • Fixed: Missing code that launches internal affairs
    • Fixed: Exclusion logic (ie a:!playername) moved so we can't have both exclusions/inclusions

    • Code/repo cleanup and formatting fixes

    About UUIDs

    Mojang is now tracking all players by a unique ID - so Mojang can eventually allow you to change your actual in-game name.

    Prism 2 (Beta 8) is the first logging plugin with UUID support.

    Here's how it works:

    • When players join we'll automatically insert their UUID into the database as well as their current username.
    • If we know their pre-UUID username already, we'll update our records with their UUID.
    • If a user with a known UUID joins with a different username, we'll change their username in the database.
    • Fake players like "environment" (and those for FTB servers) will get a fake UUID.
    • Lookups and in-game display will NOT change.

    This way, you'll interact with their "last known username" when using prism.

    By viveleroi — 04/14 at 8:40pm
  8. Prism-v2.0-Beta7

    PSTE.me Support

    You can now export a page of lookup results to the PSTE.me paste bin/snippet site. If you don't already have a free account, signup and then click your account to generate your API key.

    Add your pste.me username and API key to the Prism config under prism.paste, and mark prism.paste.enabled to true to enable support.

    Use the -paste flag to export the results. Example: /pr l p:viveleroi r:5 -paste. Your results will be posted as a public paste expiring in thirty days and the URL will be presented to you in-game.

    Please contact us in IRC (irc.esper.net #prism) if you have any difficulty.

    Additions

    • New system named "InternalAffairs" - responsible for checking on the state of the queue and data recorders. Currently, it will check the health of the recorder and if it's stopped due to database errors, and the database connection is now available, it will restart the recorder.
    • Block/Action summary reports now accept parameters! For example you can contain the report to a location: /pr rp sum blocks p:viveleroi r:30
    • Added recorder schedule status to /pr rp db
    • Added: /pr recorder cancel Stops recorder from writing queue data to the database. Use with caution.
    • Added: /pr recorder start Verifies we have a valid database connection and starts recorder again.
    • Added: New permission node prism.recorder for the above commands. Defaults to OP.
    • Added: /pr purge queue to clear the live queue of data. Use with caution.
    • Added: config prism.alerts.alert-player-about-self which is enabled by default. Will allow staff to see alerts they generate.
    • Added: config prism.database.force-write-queue-on-shutdown to disable force writing the queue on server stop.

    Fixes

    • Fixed: Natural mob deaths were missing an ignore check for entity-kill
    • Fixed: Checking entity instanceof instead of type, to avoid issues with plugins that set the wrong type for custom entities
    • Fixed: Recorder task will not try to reschedule itself if server is already shutting down
    • Fixed: Recently added report and new commands now properly listed in /pr ?
    • Fixed: Min and max vector would be overridden if the player location wasn't set in the query
    • Fixed: Reloading the config would not clear previous alerted ores.
    • Fixed: Re-caching certain settings after config reloaded
    • Fixed: Updated elixr to latest bukkit, fixing incorrect sign_post/whitestainedglasspane alias ids
    • Fixed: We ignore grow actions that have no valid TreeSpecies (some mcpc mods cause spammy errors)
    • Fixed: Player cache insert queries were not printing sql errors to console
    • Fixed: Player cache lookup query had an sql error when no players were on

    Internal Stuff

    • Additional parameter handler code cleanup
    • Various code cleanup across plugin
    • We now build against the official tomcat jdbc pool library maven repo, not SpringSource's copy. Upgraded to 7.0.52.
    • Removing log message when queue is empty. This should never happen anymore anyway with recorders not overlapping
    • Modified how we force write queue actions on shutdown due to recent insert scheduler changes

    By viveleroi — 03/14 at 6:27pm
  9. Prism-v2.0-Beta6

    Important: We spent a lot of time profiling the remaining Prism 1.0 database indexes and have come up with a new set that performs extremely well for prism 2. You do not have to apply these changes but they're recommended for database performance.

    All new Prism 2 database installs will use them automatically. Otherwise you may find the changes here:

    http://pste.me/prism-2.0-beta-6-sql-index-migration

    Additional Database Improvements

    • Changed SQL for world name join/matching so that mysql can optimize it properly. This gives us a major performance improvement especially for massive tables.
    • Eliminating unnecessary table joins: Lookup queries no longer join world and action tables. We read the names from the cache prism already uses.
    • Better db connection handling by the insert recorder... removed outdated code so we pull a new connection each cycle.
    • Adding null/closed connection checks to a few more delete/prism process queries
    • Checking if resultset closed before logging ID of record throwing an error.

    New Commands

    • Added pr report db for current (basic) database status information
    • Added pr (delete|purge) cancel to cancel running purge tasks

    Bug Fixes

    • Fixed: Multiple flags would override each other, using only the last (broke in Beta 4 dev)
    • Fixed: Entity conditions were not being used properly (broke in Beta 4 dev)
    • Fixed: Radius parameter properly supports negative coordinates (broke in Beta 4 dev)
    • Fixed: Purge system chunking no longer exists early if first cycle had no deletions. Note: purge.records-per-batch now refers to how many rows we check for records that match purge conditions. You'll likely wish to increase this value. Please read here for more information: http://discover-prism.com/wiki/view/purging/
    • Fixed: Purge system scheduler was incorrectly creating simultaneous threads for differen purge rules (was another likely cause of db lock errors)
    • Fixed: Join/Quit events no longer show an extra space in the lookup messages

    Other

    • Added: Certain servers have unique plugins/projects that fire BlockPhysicsEvents at extreme rates. Even if block-fall is turned off, Prism still listens to the event to detect blocks detaching from others (i.e. torches). If you wish to override this and tell Prism to never listen to the event for TPS reasons, you may set prism.bukkit.listeners.blockphysicsevent to false.
    • Prism will only register a listener for the InventoryMoveItem event if track-hopper-item-events is true and item-insert tracking is enabled.

    By viveleroi — 02/20 at 2:58am
  10. Prism-v2.0-Beta5

    • IMPORTANT: Adding configuration node prism.ignore.enable-perm-nodes which is false by default. The permission nodes that allow you to ignore players will NOT be used unless this is set to true. Too many people are using prism.* and accidentally granting themselves ignore perms.

    • Fixed: Book content was not being tracked for unsigned books

    • Fixed: Logic for detecting chests will now include trapped chests
    • Fixed: Critical bug that could purge the entire database if r:world w:worldnName was used in pr delete command from console
    • Fixed: World edit regions used as radius will not continue if it exceeds max allowed radius
    • Fixed: World edit region will check if user has radius override permissions

    • Updates for bukkit API change determining potion shooter

    • Internal rewrite of how we register/handle our default parameters

    • Register custom parameters via API: http://discover-prism.com/wiki/view/api/#custom-parameters
    • Lookup/recorder queries will check for closed database connections inside query-building loops
    • Force write of remaining queue items on shutdown, unless there's a known db connection failure

    Purge system overhaul

    • Queries are now "chunked" using primary keys instead of a LIMIT clause. Up to 30% performance improvments and helps address locking errors for some users.
    • Added /pr purge which is an alias for /pr delete
    • Queries run every 12 hours after server start
    • Query no longer uses joins for action name matching, but rather the existing ID cache since it's always loaded.

    By viveleroi — 02/11 at 6:27pm
  11. Prism-v2.0-Beta4

    Celebrating one year of Prism! The first commit was made December 31, 2012.

    • ItemStack lore text is now tracked and will rollback/restore properly.
    • Allowing use of action family names in parameters - i.e. 'a:block' will match all block-* actions
    • Added item-rotate to track players turning items inside item frames (was waiting for BUKKIT-3402)
    • Added tracking for players placing/removing items directly into item frames (was waiting for BUKKIT-3402)
    • Using a wand on an item frame with an item inside will no longer remove the item
    • Using a wand on a hanging entity (item frame, painting) will no longer break the hanging item.
    • Fixed item-removes from broken item frames recording the wrong location
    • Fixed container-open/close missing from ignore perm list.
    • Fixing how we set the top half of double-tall plants
    • Catching/skipping invalid data coming from the DB
    • New db setup code adding cascade delete to extra data table

    Note: these release notes were from January 2014 and are being added here late

    By viveleroi — 02/11 at 6:22pm
  12. Prism-2.0Beta3

    • Rollbacks/restores properly handle 1.7 double-tall flowers (works for existing data)
    • Updated elixr - Prism now has aliases for all 1.7 items
    • Action recorder now reschedules itself. Prevents inserts from overlapping. Reduces db connection spamming.
    • Fixed how we handle checking and waiting for dead db connections. Several changes should make this much less annoying, more useful
    • The above fixes plus some code improvements avoid extra data table inserts rarely having the wrong foreign key - causing JSON errors on lookup/rollback
    • Code improvements resolve preview index error, that stalled and crashed some previews
    • Fixed worlds loaded after server reboot being re-registered in the db
    • Adding some basic validation that an inventory slot exists before we use it

    By viveleroi — 12/21 at 11:32pm
  13. Prism-v2.0Beta2

    Prism 2

    On the surface, Prism 2 is just as feature-rich and easy to use as Prism 1.

    Under the hood, Prism 2 offers a massive database rewrite that addresses all of the problems Prism 1 has endured.

    Please note: This is a beta release. Prism itself is very stable and has been trusted by thousands of servers in our first ten months. However, this database overhaul needs to be well tested by the community before we consider that portion production-ready.

    Database Overhaul

    We've revamped the underlying database, which is why we bumped the version number so much. If you want to convert all Prism 1 data, please use the script linked in the following section.

    This work has the following benefits:

    • Dramatically faster query performance (up tp 77% faster based on 18 million record test db)
    • 25%+ reduction in database file size (based on 18 million record test db)
    • Prism doesn't rely on MySQL server for timestamps. Never deal with time differences again
    • Proper tracking for enchantment plugins that overload items
    • We can finally track and rollback book content (by the way, we now track and rollback book content)
    • Longer player names (from modded servers) won't cause database errors

    Migration Script

    During beta we recommend you wait before migration a production server unless you're comfortable wiping prism data if 2.0 final has any database changes

    If you're ready to convert from Prism 1 to Prism 2, please follow these steps:

    • Copy migration script (or run each query by itself): http://pste.me/#/fbFfZ
    • Shut down your minecraft server. Prism should not be writing/reading from the database.
    • We highly recommend you backup your current database
    • Execute the SQL in MySQL (directly is best, control panels like phpMyAdmin may time out for longer queries)
    • Install Prism 2 jar.
    • Start the server

    or, you can keep it simple and wipe your existing data and start over - if that's your cup of tea.

    Web UI 2

    We also fixed up the web UI to work with prism 2. Not only that but we rewrote parts of it so that it's easier to manage, faster, and we fixed a few bugs.

    http://botsko.s3.amazonaws.com/Prism/Prism-WebUI-v2.0.zip

    Only minor config changes, you may keep your existing config.php

    You can find all future builds of the Web UI here:

    http://discover-prism.com/dev/builds/

    Modded Server (FTB,etc) Container/Inventory/TileEntity Support via MCPC+

    We've been working with the MCPC+ team to bring a new level of tracking to modded servers. Thanks to bloodmc, MCPC+ and MCPC+-Legacy have been updated to allow Prism to track and rollback the contents of modded container blocks.

    Be sure to grab the latest builds of MCPC+ or MCPC+-Legacy for your FTB (or other) server.

    NOTE: Please look for custom Prism JAR files with "MCPC" in the filename. If you're on FTB Unleashed, which is currently Minecraft 1.5-based, please use the Prism MCPC MC1.5-Compat jars.

    In-Game Reports

    Now that we sport a brand new database schema, we can finally implement some helpful reports (a frequent request from former LogBlock users).

    There's already a report subcommand which we intended to expand for this purpose. The first two new reports are:

    • /pr rp sum blocks (player) - Gives a count of placed/broken blocks (sorted by total, descending) for a specific player.
    • /pr rp sum actions (player) - See the actions this player has caused the most of. If you see lighter in the list, it's worth looking into!

    We'll expand with new reports and improve functionality over time. If you're using a resource pack with a non-monospace font, the columns won't look amazing. Oh well.

    Other Changes

    • Renaming container-access to container-open
    • Adding new event container-close that tracks when the player closes the container.
    • Adding new event block-dispense for when a dispenser/droppers drop or place items. Cannot currently be rolled back.
    • Previews now show all block changes, rather than only the first 1000.
    • Fixed internal debug timing class to properly flush timings after each query, was leading to highly inaccurate timings and timer events piling up.

    sqlite Support & Future DBs

    We didn't want to delay 2.0, so once 2.0 is stable and out there we're going to continue work with replacing our query generation with a real database abstraction layer. We've spent time trying/reviewing jOOQ and a few others but we're not decided yet. jOOQ would be perfect and solves a few problems we have, but adds 1.2MB of weight to Prism even when stripped-down. Despite that not being a big deal, I don't want Prism to seem bloated.

    Once this query work is done, we'll be able to support sqlite, Postgres, and a few others. However, sqlite support has officially been removed until this work is complete. sqlite itself is not at all a high-performance database that we need. I'm happy to have inspired others to move to it.

    My time is limited so I'd rather spend it supporting the 92% of you using MySQL, 100% of the time.

    Anyway, look for dev work on the DBA coming soon. Hopefully for 2.1. Input and PR work always accepted.

    Maven Repo

    We've finally moved Prism to our nexus server so that you include it in your projects. We're no longer serving development builds from our S3 servers, so be sure to look in the nexus repo for them.

    <repository>
       <id>dhmc-repo</id>
       <url>http://dhmc.us:8081/nexus/content/repositories/public/</url>
    </repository>
    
    
    <dependency>
      <groupId>me.botsko</groupId>
      <artifactId>prism</artifactId>
      <version>2.0-Beta2</version>
    </dependency>
    

    Prism API

    FYI, the API is A-OK.

    No changes from v1 to v2.

    Oracle

    Many have asked about detailed playtime tracking. I want to remind everyone that another plugin of ours, Oracle offers extremely detailed playtime tracking, plus cross-server bans, warnings, guide books, and much more. Despite being a beta, it's stable. We've used it without issue for months (and its predecessor for a year before that).

    Feedback

    Docs and help at http://discover-prism.com

    As always, hit us up on IRC or our bugtracker.

    Feel free to use http://pste.me to paste-bin prism errors to us. Shameless self-promotion.

    By viveleroi — 11/11 at 4:21pm
  14. Prism-v1.6.8

    • Fixed bug that caused inventory click (insert/remove) logs to have slightly incorrect coordinates for double chests
    • Inventory drag events now set their location properly, it was also slightly off, or missing.
    • Code cleanup of the inventory click tracking to ensure each method is properly setting the data it's supposed to.

    By viveleroi — 11/05 at 10:46pm
  15. Prism-v1.6.7-1

    • Fixed configuration bug that caused item-insert/remove rollbacks to skip without reason for some users
    • Adding block id/subid to chat display when -extended is used
    • Removed internal update notification to comply with newer bukkitdev policy

    By viveleroi — 10/28 at 6:52pm
  16. Prism-v1.6.6

    • Added entity-leash and entity-unleash events to track when players leash/unleash animals.
    • Added support for tracking item-insert when the item stack is dragged across an inv
    • Fixed trapped chest item inserts/removes not being tracked properly
    • Rewrote inventory click tracking code, is no longer container-specific and will support modded inventories (Requires mcpc+)
    • Added debug data to ignore-config system to help track down config/perm issues
    • Adding check for max radius configs being lower than one, which effectively prevented radius parameters from working

    By viveleroi — 09/28 at 5:35pm
  17. Prism-v1.6.5

    • Fixed horse variant not being applied on rollback
    • Properly tracking and restoring the owner of a horse/variant
    • Added support for tracking item insert/removes from horse (donkey/mule) chests
    • Added support for tracking item drops from horse/variants on death *Note: you cannot yet rollback inventory transactions for horse variants)
    • Adding a new permission node: prism.lookup.paginate - Allows pagination of results for those without prism.lookup permission.
    • Changed config option "allow-rollback-items-removed-from-container" to use hyphens instead of underscores. Same default value.
    • Fixing NPE on restoration of horse color value
    • Fixing wand query error if actions type parameter used
    • Updated to latest elixr, updates alias file for 1.6 items

    By viveleroi — 08/08 at 6:07am
  18. Prism-v1.6.4

    • Support for the new horse API
    • Grouped actions are now excluded if from a different day
    • Minor fix to purge rules type casting
    • Fix for material names having underscore in wands
    • Code cleanup
    • Built against bukkit for 1.6

    By viveleroi — 07/30 at 12:38am
  19. Prism 1.6.3

    • Moved the rollback/restore queries to async - the last queries needing this change. Larger databases that have been causing server lag on rollback will no longer do so, and we still handle the rollback safely on the main thread.
    • Added support for block data values for block placement/break alert configs. Use 'id:subid' or the standard format of just the id
    • Added support for block data values for ore alert configs. Use 'id:subid': '(color code)' or the standard format of just the id
    • Fixed ore alerts not working if block-break tracking turned off.
    • Attempting to better handle NPE errors for entity change block events on modded servers. Certain mod entities like Hydra throw errors.
    • Corrected minimum insert-per-batch logic, also removed hard-coded max of 5k.
    • Skipping adding firework effects when the color list is empty. Plugins may alter fireworks to give effects without colors, and bukkit throws an error when the color list is empty.
    • Attempting to avoid rollbacks for entities that do not properly conform to the bukkit api (thus throwing NPEs in prism).
    • Showing error message when invalid /pr view (subcommand) is used.
    • Fixed pagination index count error (by glguy)

    By viveleroi — 06/08 at 3:48pm
  20. Prism-v1.6.2 & Prism-v1.6.2 for Minecraft 1.4

    • Fixed an extremely minor typo that introduced a critical bug with the radius not always being used properly
    • Changed how we ignore canceled player click events to correct compatibility with VanishNoPacket and wand use.

    By viveleroi — 05/15 at 11:55pm
  21. Prism 1.6.1

    • Fixed bug that allowed default parameters to apply when using wands.
    • Fixed wands on double chests not checking both sides
    • Corrected config setting that kept overwriting ore alerts on reboot/reload
    • Fixing id parameter condition not being used properly in query (mainly affected teleporting to an id)
    • Adding missing return on invalid pagination number
    • Fixed bug that lost player's location for radius-based lookups

    By viveleroi — 05/15 at 11:55pm
  22. Prism-v1.6

    I spent a lot of time working through a wide variety of stability improvements to the 1.5 release, namely with database handling. 1.5.8.2 represents an extremely stable version. Meanwhile, I continued work on a more new features, improvements, and fixes. Some of you have been bug testing the dev builds over the past few weeks and that feedback has been invaluable. With over 100 commits since 1.5.8.2,

    I present Prism 1.6. Please be patient while we update our wiki

    IMPORTANT: There are some minor configuration changes described below. Be sure to review them.

    NOTE: A Minecraft 1.4 compatible version is also available.

    Additions / New Features

    Small Additions
    • Setting your wand mode in-game now accepts item names as well as the ids.
    • Moved blacklist of entities we should never spawn to the config (default creeper).
    • Moved blacklist of blocks we should never roll back to the config (tnt, fire, lava).
    • Added support for properly tracking and restoring command blocks
    • Added tracking for item-insert/removes for jukeboxes
    • Added tracking for item-insert/removes for Minecart Hoppers
    • Tracking Hoppers/Hopper Minecarts picking up item drops
    • Tracking hoppers inserting items into a chest
    • Note: Hopper events are incredibly spammy because Hoppers only handle one item per event, which leads to like 100 million events recorded in a week for a server with 250 players a day. You must enable prism.track-hopper-item-events before any hopper pickups/inserts are recorded.
    • Tracking items that fall out of item frames as item-remove
    • Added support for properly tracking and restoring discs inside jukeboxes on break
    • Added pagination next/prev links, use /pr pg next, /pr pg prev.
    • We now track players eating cake. Use cake-eat
    • Added dragon-eat to detect blocks destroyed by an enderdragon.
    • Added message about /pr ? to /pr command
    • Added missing pagination command to pr help.
    Bind Parameters to Wands

    You can now bind parameters to any of the three query-based wands. These parameters currently last only as long as the wand is active and they support nearly every single parameter Prism offers.

    For example, activate a wand with parameters as if it was a lookup command:

    /pr i a:break.

    Max Radius Override Overhaul

    Rather than allow you to enable radius overrides via the config, it's now a smarter system that works through permissions, for both lookups and appliers. It's much easier to limit these abilities to user groups instead of a simple on/off toggle.

    • Configuration max-radius-unless-overridden renamed to max-lookup-radius
    • Added configuration max-applier-radius - The max radius for rollback/restore/preview functions
    • Configuration limit-global-radius-override-to-lookups has been removed
    • Added permission node: prism.override-max-lookup-radius - Allows a user to override the max lookup radius. Defaults to off, so it must explicitly be set.
    • Added permission node: prism.override-max-applier-radius - Allows a user to override the max applier radius. Defaults to off, so it must explicitly be set.
    New Radius Options
    • r:x,y,z:radius - Allow a radius around coordinates x,y,z
    • r:world - No radius, but limited to the current world or the world specificed by the w: parameter.
    • r:c - Limits the radius to the current chunk (x/z of the current chunk, from bedrock to world height)
    Permission-Based Player/Action Ignores

    In addition to being able to ignore worlds/players etc, you can now specify permission nodes for a specific action type (using prism.ignore.tracking.(action-type)). For example, if you want to ignore all admins using world edit, give their user group the following permission:

    - prism.ignore.tracking.world-edit

    Share Lookup Results (Rub Griefer's Noses in it)

    For any lookup, use the -share flag to mirror the results you see to another online player:

    /pr l a:break -share=nasonfish

    You may list multiple people, separated by commas. This would also allow a console user to share with an online player.

    Share Rollback/Restore Previews

    You can also use the share flag to share previews with other online players:

    /pr pv rb a:break -share=nasonfish

    The preview will be shown to the list of players and will be canceled as usual.

    Chunk Boundary View

    I've long needed this anyway, even outside of Prism, so it's a nice companion piece for the chunk radius. To view the edges of the chuck you're standing in, type:

    /prism view chunk (or with aliases: /pr v c)

    It will display a glowstone border around your current chunk. To disable the view, simply re-run the command.

    Redesigned Teleport Command

    Lookup results now show a result index number in the chat - it's a short number you can use to teleport to a record rather than typing out the long IDs.

    /pr tp 1 - Will always teleport you to the first record in the most recent query.

    You can still use the actual record id if you want, using the ID syntax:

    /pr tp id:12345

    You may also use the next/prev commands:

    /pr tp next

    Rollback/Restore of Item-Drop / Item-Pickup

    You may now rollback or restore item-drop/pickup events for online players. The system will add the items back to the player's inventory and will also attempt to remove the item drop.

    An example is to rollback items that a player lost on death:

    /pr rb a:drop p:viveleroi t:5m r:global

    Do keep in mind that the same warnings we give for container rollbacks apply here too. There's no assurance the items still remain in their inv, or as drops, and may not always be removed properly.

    You must have the allow_rollback_items_removed_from_container configuration set to true.

    Ore Alert Config Change

    Instead of using a configuration node for each vanilla ore, we now use a configurable list of ore IDs and colors. This will allow users of modded servers to customize the list of non-vanilla blocks and the color of the alert messages.

    Fixes

    • Multiple item alias updates including 1.5 items, skulls, etc.
    • Corrected issues with subsequent purge queries not fully running.
    • Add smarter safety checks to applier+action combos that remove a block, so unexpected blocks will not be removed unless the overwrite flag is used.
    • Fixed NPE for wands activated without any wand name
    • Fixed piston base block not showing as broken when a player breaks the extension
    • Fixed bug with null player when block destroyed by enderdragon/ghast
    • Moving lookup/near/wand/ore monitor queries to async so the main thread won't wait for longer lookups
    • Always forcing inventory update after canceling a wand event so the item always re-appears properly
    • Skipping rollback applier extras if the player is null
    • Attempting to handle a null cause for an entity travel action
    • Removed initial delay on in-game delete command task

    Elixr

    Elixr is a new library of code for Bukkit plugins. A solid collection of handy utilities including tons of methods for Block, Inventory, Chunk, Player, Entity, and more.

    Each method is static and has no dependencies aside from Elixr itself.

    It's still in a development status at the moment but it's available for use in your projects. It's got a maven repository so you're able to properly include it in your maven projects.

    Currently, we're shading elixr into Prism, Craftys, InventoryToolkit, DarkMythos, dhmcDeath, and more.

    Project Home

    By viveleroi — 04/22 at 11:50pm
  23. Prism-v1.5.8.2

    • Corrected an elusive bug that deleted the current item when using the wands.
    • Updated items database (has been updated in Prism 1.6 dev builds for some time)
    • Add snow/long-grass to the list of blocks we override by default
    • Catching any causes for hanging item spawns to be rejected, so the r/r/p task won't spin out of control
    • Adding a system to catch all exceptions raised during an applier process, so we properly mark it as skipped and remove from the queue.

    By viveleroi — 04/10 at 2:54pm
  24. Prism-WebUI-v1.0.1

    • Adding a config option SORT_TIME_DESC to sort the results in most-recent-first. This can really hurt extremely large data sets so those of you who like paginating a million rows can turn this off for faster queries.
    • Adding a very basic result count caching system that won't re-query for the total results unless the conditions have changed, so non-time based pagination actions are much faster.
    • Adding support for Prism 1.5
    • Adding support for both block names, and block IDs
    • Splitting timeframe field into a before/after for date ranges
    • Adding WEBUIDEBUG config option to return the generated query for ajax calls. Don't use unless asked.
    • Round-up of changes/fixed available in builds available from our website but not uploaded to bukkitdev

    By viveleroi — 04/04 at 1:02am
  25. Prism-v1.5.8.1

    • Adding an automatic reconnect attempt if the db server driver reports the connection was closed
    • Adding a connection validation process so we ignore stale connections returned by the pool

    By viveleroi — 04/02 at 9:20pm