This change involves refactoring many instances of "byte" to "short and altering a few ItemStack calls to use the int,int,short form instead of int,int,0,byte
Significantly it also involves altering the MaterialName system to allow shorts instead of bytes, and altering the rawdata() function to return the durability of an ItemStack rather than the data value of its Material.
One side effect of this is that tool durability is now logged, which will make for more accurate rollbacks.
Make a decison on whether or not to return chest access data based on the
BlockChangeType (ALL or CHESTACCESS) rather than partly on the block parameter
as these are the only two query types that don't enforce type != replaced
This is helpful because the list of blocks to request chest access for was
outdated and is duplicated in 3 different places, whereas the new method
will return whatever results have been logged regardless of type.
In addition, if the query type is CHESTACCESS (but not ALL), we can use
an alternate query that is vastly more efficient. In tests (26 million
row log table, 400,000 row chest table) the query time for all chest results
was reduced from 30 seconds to 3.
Allows the chestaccess parameter to return data from the following inventory types:
- Brewing stand
- Trapped chest (fixes#483)
- Dropper
- Hopper
- Beacon
Note that this only affects lookup of logged items; the logging process has not
been touched, so #433 and similar have not been addressed
Also, update the list of valid container types, which will improve logging of
broken containers.