llmdl / cenotaph Goto Github PK
View Code? Open in Web Editor NEWThis project forked from cindyker/cenotaph
Dead Man's Chest plugin for Bukkit
License: GNU General Public License v3.0
This project forked from cindyker/cenotaph
Dead Man's Chest plugin for Bukkit
License: GNU General Public License v3.0
============= Description ============= Cenotaph - A Dead Man's chest plugin for Bukkit Save your players' inventory from disappearing when they die. VERSION for Minecraft 1.14.4 and above only! Forward support only! Source: https://github.com/cindyker/Cenotaph ============= Features ============= If the player is carrying a chest when they die, place that chest and fill it with as much of their inventory as possible If the player is allowed, and is carrying two chests, a large chest will spawn to catch all of their inventory Possible for specific groups/players to be given free chests with no need to carry one with them Any items that won't fit in the chest will still drop to the ground! Supports the Permissions plugin, will default to allowing everyone to use basic tombstone if not available Configurable timeout for destruction of tombstones, works in unloaded chunks as well Configurable security for tombstones to protect from looters. Can have a timeout. Quickloot support, right click the sign on a tombstone to loot all items in it (Your tombstone only!) Place a sign on top of the chest stating the players name and time of death The ability to point your compass at your tombstones! Configurable messages on Cenotaph signs Admin commands for management via console and in-game. ============= Permissions ============= cenotaph.use - Allow the player/group to use the cenotaph mod cenotaph.freechest - Allow the player to get a chest whether they are carrying a chest or not cenotaph.large - Allow the player to spawn a large chest if carrying two chests and if one will fit cenotaph.sign - Whether the player gets a sign on their cenotaph chest cenotaph.freesign - Allow the player to get a free sign whether they are carrying one or not. cenotaph.quickloot - Whether to allow a player/group to quickloot by right clicking the cenotaph sign. cenotaph.nocost - Allow the player to not pay for the chest. cenotaph.cmd.cenotaphlist - Allow this user to use /cenlist cenotaph.cmd.cenotaphfind - Allow this user to use /cenfind cenotaph.cmd.cenotaphinfo - Allow this user to use /ceninfo cenotaph.cmd.cenotaphreset - Allow this user to use /cenreset cenotaph.admin - Allow this user to physically destroy others' cenotaphs. Also a prerequisite for use of the other admin commands cenotaph.admin.list - Allow this user to see all cenotaphs with /cenadmin list cenotaph.admin.find - Allow this user to find any cenotaph with /cenadmin find cenotaph.admin.info - Allow this user to check the time left on any cenotaph with /cenadmin time cenotaph.admin.remove - Allow this user to destroy any cenotaph with /cenadmin remove cenotaph.admin.reload - Allow this user to reload Cenotaph's configuration from config.yml ============= Commands ============= User commands: /cenlist Lists your current cenotaphs with index numbers for the other commands. /cenfind <index> Gives more information about a specific cenotaph and sets your compass to point at it. /ceninfo <index> Description: Tells how much time is left before a specific cenotaph unlocks or breaks /cenreset Sets your compass to point to your spawn again after using /cenfind Admin commands: /cenadmin list Displays all players with cenotaphs. /cenadmin list <player> Displays all cenotaphs for a player with indexes. /cenadmin find <player> <index> Displays additional information about a specific cenotaph (does not set compass like the user version does). /cenadmin info <player> <index> Gives time information about the indicated cenotaph. /cenadmin remove <player> <index> Destroys the indicated cenotaph, dropping its contents on the ground. /cenadmin version Displays the current version of this plugin and checks for a new version ============= Config ============= See default config file for options and instructions. Config will update itself smartly as you update to newer Cenotaph versions, keeping the values you've set in earlier versions and adding new values at their default settings. ============== To Build yourself ============== Convert to Maven Project and right click pom.xml > run as Maven Install. All dependencies should be located at their respective repos. ============= Credits ============= Drakia: Cenotaph was originally Tombstone, by Drakia (TheDgtl). Many thanks to him for his hard work on the original plugin. You can access his Github repository here: https://github.com/TheDgtl/Tombstone Acru: Thanks to Acru, the developer of Lockette, as well. His help getting the Lockette integration working as I stumbled by way though picking up Java was invaluable. :) cindyker: I removed the hard dependency on lockette for being available. Deadbolt and Lockette use the same sign types. So now it will just use the config to decide. LlmDl: I helped with lockette support on earlier versions and did some major changes on versions 5.1->5.3. ============= Changes ============= [Version 5.3] - New database schema. Old databases will auto-convert. - Removed lockette and LWC support and replaced it with built-in security system that requires no signs. - Moved various things over to a new CenotaphUtil. - Moved listeners to their own package. - Cleaned up startup sequence. - Fixed double chests spawning as two separate single chests. (Showed up as a bug in MC 1.13) - Made signs on top of double chests always face the 'foot' of the tomb, enhancing the realism of the blocky tomb-like sign/chest combination. - Fixed dynmap support. - Added protection from pistons/explosions/burning to built-in security. - Replaced TNT/Creeper Protection with generalized explosions protection. - Changed from bukkit to spigot for development. - Added actionbar messages for Denial of access to secured/protected chests, this will lessen some of the chat spam. - Created CenotaphMessaging to handle messages. - Added the ability for /cenadmin to be used by the console. - Added a CenotaphMessaging function that can smartly send to player or console (if the sender is not a player.) - Fix up the findPlace function for finding good spots for chests. - No longer will dying with a full inventory in a 1x1x1 hole cause only one chest to be used while the rest overflows onto the ground. - When double chests are required the oneBlockUpCheck is always tried for (if enabled.) - Remove noReplaceList which wasn't actually doing anything that the OneBlockUpCheck does better. - Update list of blocks that can be replaced in the canReplace(mat) function. - Covers crops via Ageable, use tags for small flowers and saplings. - Remove the noDestroy option from the config, which became redundant after the security became built-in. - Set your config's security to not time-out and you have the exact same effect. [Version 5.2] - Completely replaced the config with dumptruckman's CommentedConfiguration system. - This means you don't have to regenerate your config.yml after updating Cenotaph. - System is used by Towny/TownyChat and many other plugins. - New config options in the future will add themselves with default settings. - Removed the deathmessages section of the config.yml - For now entity names are pulled from the server, meaning new entities are automatically handled. - Environmental deathcauses are hardcoded to English for the time being. - Removed version checker option from config, I don't think this worked. - Cleaned up some of the TODO's that were done. [Version 5.1] - Update to much of the Lockette/Sign code to make it not use deprecated API. - Update to use UUIDs in TombBlocks, allowing us to use less deprecated methods. - Update to pom.xml's sk89q's repos, making them not be required in the lib folder. - Update to economy handler, no longer errors when Vault is not found on a server. - Old databases will have old tombstones which do not have ownerUUID values. These will be null, and means that for those tombstones there will be no message sent to a player when their security runs out/they have their tombstone destroyed, (but these messages wouldn't be shown anyways if this happened while they were offline.) [Version 5.0] - Recompiled for 1.14.4 [Version 4.9] - Fixed block checks for 1.14. (SIGNS are different now behind the scenes as there are now signs for all wood types) - LWC - Moved LWC support to http://ci.dmulloy2.net/job/LWC/. It is actively being developed. - Update Vault to 1.7 - Update WorldGuard support to use new WorldGuard API calls. [Version 4.8] - Fixed block checks for 1.13. - LWC - Moved LWC support to Modern LWC. It has Block Name support, However during my testing, the current released plugin is broken for 1.13. It is being actively developed. So I have left the support in for the eventuality that they will get it updated. - Update Vault to 1.6 - Update WorldGuard support to use new WorldGuard API calls. [Version 4.7] - Adding support for WorldGuard by MegaNarwhal - Adding Monetary support by MegaNarwhal [Version 4.6] - Fixes for lockette/deadbolt by LlmDl - Add locketteSign to saving and loading in tombBlock database, fixes auto-unlocking chests. - Fix explosions destroying chests before lockette/deadbolt signs can be placed. - Fix for lock time-out not showing properly on the message sent to players who just died and made a deathchest. - Fix for explosion-deaths' cenotaphs not being saved to the database. - Disable breaking the sign above chests if the chest is still locked by lockette/deadbolt. - Additions: - Add indicator to /cenlist displaying [Locked] status if locketteSign is still present on cenotaph. - Show remaining locked time on /cenlist command. [Version 4.5] - Fix Cenotaph's being left on the list when destroyed by tnt. - Added the ability prevent tnt from breaking chests. Add tntProtection: true to the config. [Version 4.4] - Fix Lockette blockface check. [Version 4.3] - More Chest checks to be fixed. [Version 4.2] - Fixed Empty Chest check. [Version 4.1] - Updated to support LWC 4.5.0-SNAPSHOT [Version 4.0] - Build against 1.8 Spigot - Changed Lockette dependency, now you can use DeadBolt too - Java Version 1.7 - and MAVEN! :D [Version 3.1] - Build against 1.6.4 Craftbukkit RB - Fix sign code to use new Bukkit metadata system - Build against 1.6 plugin dependencies released as of January 2014 [Version 3.0.2] - Build against 1.5.1 beta CB - Build against plugin dependencies as of April 2013 [Version 3.0.1] - Add option to disable Dynmap - Fix error on shutdown when Dynmap is not loaded/enabled - A few minor improvements in speed/efficiency - When used without an index number, the find and info commands now default to the last (most recent) cenotaph instead of giving an error message - More cleanup in the command handler - Permission update: .cenotaphtime and .admin.time are now .cenotaphinfo and .admin.info. The old permissions will continue to work. [Version 3.0] - Major code refactoring (you can't see it, but trust me, it's awesome) - Total messaging overhaul. Messages are clearer, simpler, and better formatted - centime is now ceninfo (centime will continue to work) - Admin commands now match on partial or similar player names instead of requiring full case-sensitive name - Dynmap integration [Version 2.1.2] - Optimized break override options (keepUntilEmpty and breakWhenEmpty) - Add death messages for beta 1.8 monsters (Finally...yikes. Sorry, everyone.) - Work around an error caused by missing or invalid deathMessage entries (Thanks, ffkhrocks) [Version 2.1.1] - Fix issue loading .db save files from pre-2.1 versions (Thanks, Inscrutable) [Version 2.1] - Added option for level-based time removal - Added requirement for Lockette sign to be carried in inventory (free sign permission available) - Added option to disable in specific worlds by name [Version 2.0] - Updated listeners to new Bukkit API - Updated config to new Bukkit API - Removed support for Nijikokun's old Permissions plugin - Updated to latest LWC API - Added cenadmin reload command [Version 1.6.6] - Fixed NullPointerException when using defaults for deathMessages instead of the values in the config file - Added config check to /cenadmin version - Fixed bug with break messages always displaying at original timeout when quicklooted [Version 1.6.5] - Fixed a few additional bugs - Fixed load error with Spout under CB1060 [Version 1.6.4] - Add Bukkit Superperms - Remove deprecated Bukkit method getFace() - Merging some of Drakia's recent Tombstone fixes - Fix clearing of player's cenotaph list on quickloot - Fix LWC API error [Version 1.6.3] - Customizable death messages for signs - Customizable time and date formats for signs [Version 1.6.2] - Option to remove cenotaphs once they are empty, regardless of other settings - Option to keep cenotaphs UNTIL they are empty, regardless of other settings - Fixed bug allowing players to break into Lockette-protected cenotaphs [Version 1.6.1] - Security config has been generalized (config.yml update) - Lockette signs will now respond to the new securityTimeout (formerly lwcTimeout) config - New command: centime [Version 1.6.0] - Updated for Craftbukkit RB1000 - Fixed customizable signs - Added admin commands [Version 1.5.4] - Customizable signs (Thanks to Drakia for his death cause code) [Version 1.5.3] - Build against Craftbukkit RB953 - Build against LWC 3.3 - Build against Permissions 3 - Re-enable compass integration (Thanks, Zarius!) [Version 1.5.2] - Fix bug causing Cenotaph to throw an error on enable if the folder containing config.yml did not exist - Fix bug where the Void check was only working if the player died in the Void above the world and not below [Version 1.5.1] - Fix bug allowing a free sign if Lockette sign was broken off a chest [Version 1.5.0] - Fix config file handling - no more needless file overwrites - Gracefully handle missing or invalid config files by downloading a fresh commented copy - Create config file versioning system to avoid errors with updates [Version 1.4.4] - Added config version check - Final 1.4 release [Version 1.4.3] - Basic protection against creeper explosions, disabled by default [Version 1.4.2] - Option to disable the void check for servers that have other plugins to handle it - Minor code changes [Version 1.4.1] - Now checks for updates on server startup [Version 1.4.0] - Do not attempt to create chests in the Void [Version 1.3.2] - Config changes - First public release [Version 1.3.1] - Added Lockette support [Version 1.3.0] - Converted from Tombstone to Cenotaph ============= Config file changes ============= 16: Add option to disable Dynmap 15: Removed a couple obsolete messaging options (logEvents and playerMessage) 14: Add b1.8 monsters 13: Add level-based removal options, Lockette sign carry setting, and per-world disabling 12: Add DeathMessages plus dateFormat and timeFormat 11: Add removeWhenEmpty and keepUntilEmpty 10: Security config generalized 9: Customizable signs added 8: <buggy, cancelled release> 7: configVer added 6: creeperProtect added 5: voidCheck added 4: versoinCheck added 3: Convert to a hierarchical YML arrangement for readability 2: Lockette added 1: Converted from Tombstone to Cenotaph ============= Drakia's original Tombstone changelog ============= [Version 1.2.9] - Fixed free double chests - Made freechest/freesign default to isOp() without permissions [Version 1.2.8] - Added logEvent option for debug purposes. - Do a 3x3 check for a block to place chest. [Version 1.2.7] - Check properly if we're placing a big chest for interference [Version 1.2.6] - Fix long username crash [Version 1.2.5] - Option to bail on tombstone creation if it will interfere with another chest. - Check tombstone stuff more often (Every 100 ticks (5 seconds)) [Version 1.2.4] - Fixed sign drop bug when destroying with timeout. [Version 1.2.3] - Fixed a bug in /tombfind with invalid input [Version 1.2.2] - Moved playerInteract to Highest priority since we remove a block. - Added check to make sure the tombstone is a chest before we doing anything. - Other general checks [Version 1.2.1] - Made /tombfind command atleast somewhat useful. [Version 1.2.0] - Added compass commands. [Version 1.1.8] - Right-clicking a chest will quickloot/destroy if you have noDestroy/destroyQuickLoot enabled [Version 1.1.7] - Fixed quicklooting in b670 [Version 1.1.6] - Fixed some owner comparisons. [Version 1.1.5] - Moved setting "plugin" to onEnable - Moved setLine() outside of scheduler [Version 1.1.4] - Small fix to LWC checking [Version 1.1.3] - Added tombstone.admin permission [Version 1.1.2] - Fixed loading tombstone list after server restart - Check if use is online before sending tombstone messages [Version 1.1.1] - Updated to latest RB [Version 1.1.0] - Changed versioning scheme - Changed loading of permissions/LWC [Version 1.09] - Changed how I do sign updating - Split into LWC1/LWC2 versions. [Version 1.08] - Configurable tombstone list storage - Allow LWC to be set to Public instead of disabled - Allow destroy on quickloot - Allow tombstones to be "invincible" besides quickloot [Version 1.07] - Fixed a bug in which protected chests could be destroyed. - Messages to players can be turned off. [Version 1.06] - The change to stop duping screwed up my plugin. Fixed. - Sadly, armor is now no longer retrieved first, and I can't fix it. [Version 1.05] - Recompiled against latest RB to fix ItemStack.equals [Version 1.04] - Small permissions handling update - Inform player if we run into a casting problem. [Version 1.03] - Core GM support removed, depends on FakePermissions if you use GM. [Version 1.02] - Permissions 2.0/2.1 support - GroupManager support [Version 1.01] - Fixed an NPE when destroying chests [Version 1.00] - Added ability to remove chests without needing LWC - LWC and remove thread are now a sync task - Right-click sign to quickloot. Permission added. - Better Permissions handling - LWC protects sign - Only create a large chest if needed - Deactivate LWC protection when sign or chest is destroyed [Version 0.06] - Implemented tombstone signs - Changed message if LWC is enabled to say how long before unprotect/destruction - lwcTime of 0 now indicates that LWC protection never expires [Version 0.05] - Added config file - Implemented chest removal - Configurable timeout - Toggle LWC usage via config [Version 0.04] - Added LWC timeout [Version 0.03] - Added LWC support - Made Permissions optional instead of required. Default without Permissions is allow all to use [Version 0.02] - Initial Public Release
There is a problem, when the player starts to pick the items from the chest, the chest simply breaks for no reason most of the time and the items drop to the ground even when there are still items inside the chest while the option to keep until empty is on, happens with and without quickloot.
I have noticed very high timings costs due syncChunkLoad, could this be added to reduce the load?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.