JDynmapGriefPrevention 2.5.1

GriefPrevention Addon with Dynmap Support (if available)

  1. jahangir13
    Contributors:
    jahangir13 (modified version) , mikeprimm (original version)


    What it is:


    A modification of the original Dynmap-Griefprevention plugin by mikeprimm with unique features I initially wrote for my server.
    The plugin shows GriefPrevention claim information on the dynmap in different style/colors (admin,user, used,unused claims) based on the absence time of the players and shows relevant info on the claim popups.

    Everything configurable via config file and reloadable. Have a look at the features below!
    (Original plugin: http://dev.bukkit.org/bukkit-plugins/dynmap-griefprevention/)

    The plugin is one reason that I've never needed to reset my first server map for over 3 years now. I just always cleanup what is not needed anymore. This is especially important for modded servers where e.g. endlessly running machines (which players just living nearby load and activate) kill your tps.


    Important Note (2015.05.31):
    v2.5 does not require the availability of Dynmap plugin anymore.
    Some functions can be executed without (export of claims to csv file with all the information / teleporting to claims via command / claim statistics via command)


    Important Note (2015.04.16):

    Version 2.4+ AGAIN SUPPORTS BOTH uuid and name based servers.
    Information about versions can be found at begin of the config file.

    Both UUID and NAME based servers can use v2.4+


    Important Note (2015.02.18):

    From version 2.0 the plugin has been completely reworked with respect to performance and the decision has been taken not to support older server versions (no uuid support) and new server versions (uuid support) at the same time anymore.
    The goal was to get a cleaner and more performant plugin which is easier to maintain.

    For UUID-based servers (CraftBukkit/MineCraft >= 1.7.5 / Griefprevention >= 8.1) use version 2.0+
    For Name-based servers (CraftBukkit/MineCraft < 1.7.5 / Griefprevention < 8.1) use version 1.0




    I've successfully tested v2.5.1 with (I guess it's working with any versions):
    GriefPrevention v10.5.7 / Dynmap v2.3-SNAPSHOT-1131 / git-Spigot-7d15d07-c194444 (MC: 1.9)
    GriefPrevention v10.5.7 / Dynmap v2.1-SNAPSHOT-1091 / git-Spigot-8a983f9-e81edfc (MC: 1.8)
    GriefPrevention v9.1 / Dynmap 2.0.0-61 / git-Cauldron-MCPC-Plus-1.7.10-1.1240.06.213 (MC: 1.7.10)
    GriefPrevention 7.6.2 / Dynmap 1.6 / MC 1.4.7 (Tekkit Lite)


    Open Spoiler to see some degug output about example times/numbers of 2 subsequent executions:
    [​IMG]


    Required plugins:
    • [ Dynmap - no hard requirement for v2.5+ anymore. Obviously, it's needed to show claims (what the plugin is about). However, without dynmap plugin limited functionality is possible (like the export of claim information to csv-file) ]
    • GriefPrevention
    • [ Essentials - only v0.75. Not needed in 0.85+ anymore ]
    If you use the forge version of Dynmap you may need the Dynmap CB Bridge plugin suitable for your dynmap version for this plugin to work. Just drop it into your plugins folder.
    (http://minecraft.curseforge.com/mc-mods/60743-dynmapcbbridge/files)


    Plugin can now be used without Dynmap plugin (with limited functionality...see Changelog v2.5)

    Changelog v2.5.1:

    Changelog v2.5
    • Dynmap plugin not needed anymore as hard requirement. However without it claims can not be shown (clear ;) ) Will be automatically checked at plugin start. Dynmap relevant commands do not work (and will not be shown in command help) if switched off. So people not using Dynmap can use the plugin to e.g. export claims to CSV file (see below), to show claim statistics or to teleport to claims.
    • NEW config option 'useDynmap' to switch off showing claims in Dynmap even if the Dynmap plugin is available. Can be changed and reloaded while server is running as everything else. Useful if people just sometimes want to show claims (due to too many claims and lagging map) but still want to use the other plugin features.
    • NEW command '/jdgp tp <id>' to teleport to the middle of the claim of a given claim id. Claim borders will be highlighted after teleporting (2-3sec after tp).
    • NEW command 'jdgp tp <x> <z>' to teleport to given coordinates. y coordinate is the highest available block at this location. If there is a claim at these coordinates the claim borders will be highlighted (2-3sec after tp). Change teleport command in configs infowindows if you want to use these teleport commands.
    • NEW command 'jdgp export' to export all claim and statistics information to CSV files within the main plugin folder (export_claims.csv / export_stats.csv). Delimiter between values is '|'.
    • ADD: coordinates of claims do now have their own variables to be replaced in the claims popup (%coordx%, %coordy%, %coordz% can now be used there).
    • Small adaptions for plugin metrics values showing on Hidendra's mcstats page.
    Changelog v2.4:
    • AGAIN SUPPORTS BOTH uuid and name based servers. So older servers can also benefit from the newer features. (Information about versions at begin of the config.)
    • NEW command '/jdgp claims' to show claims of the player (owned/trusted) and '/jdgp claims <name>' to show claims for another player
    • Added a News Window which can be used to show whatever text. A circle marker shows the position (default yellow). Text is displayed in the popup.
    • Added %owneruuid% variable which can be used in the infowindows / new config option getOwnerUuid (default: false)
    • Added individual permissions for each command (admin/player)
    • New config options for the Player Map (/jdgp claims command)
    • New config options for the News Window
    • Fixed: all files now in UTF-8 (language files were saved in local default windows Lokale before)
    • Deleted syncTask debug code and config option again
    Changelog v2.3:
    • UpdateChecker for new versions (+config option updateCheck to enable/disable - only sends a message to console)
    • Localization - added language translation support (en/de example files included). That's not really needed as players do not see commands/console output...but I wanted to know how that works ;) If anybody translates texts for whatever language, you can send the files to me and I will include these in future versions and add links below!
    • Plugin Metrics graph for number of total builders, containers, accessors, managers
    • Plugin Metrics graph for Locale used
    • Added example infowindow code to config for showing player skin in the popup ( see screenshot below how this looks like)
    • Some minor code optimizations
    Config file changed a bit: new option updateCheck and I've corrected some texts and tried to make explanations a bit more clear.
    Changelog v2.2:
    • Added command '/jdgp stats' to get some statistical information
    • New config option: 'consolelog' to enable/disable logging when claim update task ends
    • Added some custom data graphs for plugin metrics
    • Some minor code improvements and cleanup
    • Fixed: plugin not sending data to mcstats.org
    Changelog v2.1:
    • Fixed a typing error so claims where added to the wrong dynmap layer and regression tested
    Changelog v2.0:
    • Complete rework of the previous version. Only supports uuid-based servers anymore
    • All features available from previous versions
    • Async task to process all costly operations and only non-thread-safe operations executed in a Sync task (If there is any error like ConcurrentModificationException, please let me know, as I have no MC1.8 server with players to test this)
    • Analysis and measurements carried out for all loop processing / data structure accesses to find the most suitable way
    • New config options to switch off possibly unneeded functionality
    • (2 new dev/test config options to get some measured debug output and to switch from async to sync tasks (if issues may occur)
    • New command ‘/jdgp disable’ to disable plugin at runtime for whatever reason (and ‘/jdgp cancel’ to cancel this in the confirm step)
    • Fixed: scheduling of an additional task when '/jdgp reload' has been used
    Some changes to the config file (additional options/ more comments) have been made. Make sure to use the one which comes with this version.

    Changelog and Features for all previous versions on the ‘Updates’ tab.


    Main Features:
    • Shows user claims (default red) and admin claims (default blue) on dynmap and shows claims where owners are absent/offline (default green)
    • Works with and without Dynmap plugin, for name and uuid based servers. (Without Dynmap, claims cannot be shown.)
    • Calculates claim owner absence time and based on a limit (defined in config) shows claim as expired (default green).
    • If builders (trusted players) are still active and absence time of these is < limit, show border in different color (default black) - means: claim still used, even if owner is absent.
    • Builders absence time only calculated if owner passes the absence limit - for performance reasons.
    • Show used and unused (completely green) claims on 2 different dynmap layers (showing number of claims in brackets).
    • Shows claim id, width, height, size, and coordinates (with /tppos command to this claim) on the popup.
    • Players can view a Dynmap layer with all claims they own or they are trusted on via command (Admins also for other players)
    • Possible to ‘trust’ words in brackets, e.g. [xyz] so (if switched on) claims do not expire completely.
    • Claims where ‘all’ or ‘public’ is container-trusted shows up in different fill color (default purple). e.g. so others know they are allowed to do something there.
    • Export of all the claims information and statistics to CSV file via command.
    • 2 Teleport commands available to teleport to the claim id or to coordinates
    • All texts can be localized/translated and color-changed.
    • Optimized for performance, even with a high number of claims (usage of custom plugin-metrics graphs to see where more optimization may make sense)
    • Everything configurable and well-documented and ALL config / messages changes can be reloaded immediately via /reload command at runtime.

    Screenshots of plugin in Action:

    [​IMG]
    [​IMG]

    Video:

    Have a look how it works on Youtube (v0.75 – initial version):



    Installation:
    1. Extract the zip file. Copy the plugins .jar file into your servers plugins folder
    2. Start the server. A config file will be created in JDynmapGriefprevention folder inside the plugins folder
    3. OR: Copy the example 'JDynmapGriefPrevention' directory with example config file into your servers plugin directory
    4. After editing the config options to your needs, start the server and claims should show up on your dynmap
    5. Config changes can also be reloaded via '/jdgp reload' command at runtime

    Variables:

    The following variables can be used in both html-infowindows in the config file:
    • %owneruuid% - UUID of the claim owner (does not work for admin claims or in name based servers)
    • %owner% - Name of the claim owner
    • %ownerdays% - Days owner is absent
    • %cwidth% - Width of the claim
    • %cheight% - Height of the claim
    • %csize% - Size of the claim (width*height)
    • %claimid% - ID of the claim
    • %coords% - Coordinates of one claim corner
    • %coordx% - x coordinate
    • %coordy% - y coordinate
    • %coordz% - z coordinate
    • %managers% - Comma separated list of claim sub-owners
    • %builders% - Comma separated list of people trusted on the claim
    • %containers% - Comma separated list of people having container trust
    • %accessors% - Comma separated list of people having access trust

    Commands:

    The following commands can be used both ingame and in console (except tp):
    • /jdgp - shows version information and help screen
    • /jdgp reload - reloads config file changes and performs claim updates immediately (The scheduled update task is cancelled and the next one will execute in 'period' seconds as defined in the config).
    • /jdgp claims - shows player claims (owned/trusted)
      add <name> to show for other player (admin permission)
    • /jdgp tp <id> - teleport to claim with id <id>
    • <x> <z> - to teleport to coordinates (to be used instead of <id> above)
    • /jdgp disable - disables plugin at runtime (needs to be entered twice to confirm)
    • /jdgp cancel - cancels disable command in confirmation step
    • /jdgp stats - output statistical info about claims (Explanation in spoiler)
    • /jdgp export - export claim info and statistics into .csv file within the plugin directory
    Infos on how to read the statistics screen:
    [​IMG]
    • Claims / Owners: total number of claims (and number of owners to be read)
    • Bui: total number of build trusted players (/trust)
    • Con: total number of container trusted players (/ct)
    • Acc: total number of access trusted players (/at)
    • Man: total number of permission trusted players (/pt)
    • Parent claims: number of main claims
    • Subdiv claims: number of subdivision claims
    • Used: total number of used claims
      • A: number of administrator claims (default blue)
      • N: number of user claims where owner is still active (default red)
      • B: number of user claims where owner is absent but builders still active (default black-green)
    • Unused: number of user claims where owner and all builders are not active since > limit days

    Permissions:
    jdynmapgriefprevention.admin contains all permissions (admin and player)
    • jdynmapgriefprevention.admin.reload (/jdgp reload)
    • jdynmapgriefprevention.admin.disable (/jdgp disable)
    • jdynmapgriefprevention.admin.cancel (/jdgp cancel)
    • jdynmapgriefprevention.admin.claims (/jdgp claims <name>)
    • jdynmapgriefprevention.admin.teleport (/jdgp tp ...)
    • jdynmapgriefprevention.admin.export (/jdgp export)
    • jdynmapgriefprevention.player
    jdynmapgriefprevention.player contains only player permissions
    • jdynmapgriefprevention.player.claims (/jdgp claims)
    • jdynmapgriefprevention.player.stats (/jdgp stats)
    Command help line (via /jdgp) only shown if player has permission for that command.


    Localized Language Files (v2.3+):

    Languages en/de already in the plugin and copied to disk after first start. For other languages just download a file, copy into the 'lang' folder within the plugins folder and change Locale setting in config.
    v2.5:
    v2.4:
    v2.3:
    Hints:
    After saving to the disk, make sure that there is no '.txt' or something as file extension available. Filename for whatever reason is saved with a non-capital 'm'...but that should not matter.

    Files are in pure UTF-8 format. On Windows (as standard CMD Codepage is 850) texts might not show up correctly in console. You might need to change the Codepage for your country explicitly in e.g. your start server batch script via 'chcp' command (Change Codepage) before the line starting the server.
    The game itself shows the characters correctly (even if no specific language pack is installed in the system).

    For me (German): 'chcp 65000' works which is an UTF-7 Codepage. 65001 is an UTF-8 Codepage. If these do not work search in e.g. Google for: 'windows codepage <your_country>' to get the right number which should then show characters for your country correctly. Or have a look at the following list:
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx

    In Linux I use an utf-8 language via locale command and have no issues.


    Want to see it in Action?

    http://dynmaptk.crafttekk.de (MC 1.4.7 Tekkit Lite - NAME based)


    Hint:
    With a high number of claims you cannot smoothly move the map or scroll in/out in Firefox browser.
    This does work much better in Internet Explorer.
    In Firefox you can enter about:config in the address bar and change the value for browser.cache.use_new_backend from 0 to 1 which made this much more performant for me.
    You can also uncheck the dynmap claim layers while moving the map around.


    MCStats / PluginMetrics (by Hidendra):

    This plugin utilizes PluginMetrics to gather anonymous, technical usage and statistical information about the servers who use this.
    This is very helpful for plugin authors to decide which way to go in the future.
    JDGP plugin metric page: http://mcstats.org/plugin/JDynmapGriefPrevention

    [​IMG]

    Click the link to learn more to see what is collected (besides this I've added some custom graphs):
    https://forums.bukkit.org/threads/mcstats-plugin-metrics-r7-easy-advanced-plugin-statistics.77352/

    To disable plugin metrics use the config option or to disable for all plugins set opt-out to true in the PluginMetric config file in your plugins folder.

    Note:
    JDynmapGriefPrevention itself does not gather any information nor is it doing any downloads/uploads automatically except PluginMetrics mentioned above.


    Let me know what you think, or maybe you have some other meaningful idea(s) or feature / command requests. I am always happy for getting any meaningful feedback!
    Or if you have any question(s), feel free to ask!


    ----------------------------------------------------------------------------------------------
    Donate:
    If you like the plugin and if you agree that it takes a lot of free time to release and maintain it, you can support my work with a PayPal Donation via the following link:
    https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=58PKL625WCVXW
    ----------------------------------------------------------------------------------------------

    Other Stuff by Me:
    JWebConsole: Colored WebConsole for Minecraft (PHP) - nice, easy, useful
    https://www.spigotmc.org/resources/jwebconsole.8780/


    If you use/like the plugin, please vote for it by clicking on the 'stars' in the information or version panel on the right and leaving a short review message! Should take less than a minute.

    madtomic and PirateCraft like this.

Recent Updates

  1. Version 2.5.1 released
  2. Version 2.5 released
  3. Version 2.4 released

Recent Reviews

  1. Rezz
    Rezz
    3/5,
    Version: 2.5.1
    I appreciate how customizable this plugin is, but there's a severe rendering bug when players resize their claims that's been unaddressed for months. For now, the original version (on DevBukkit) will do.
  2. TNTUP
    TNTUP
    5/5,
    Version: 2.5.1
    The best plugin ever for your viewing pleasure on dynmap! Get it and customize what you want! :DDDDDD
  3. Connierific
    Connierific
    5/5,
    Version: 2.5.1
    This makes two of our favorite plugins, GriefPrevention and Dynmap, work hand-in-hand with each other. Can't imagine running our server without it!
  4. Emaltonator
    Emaltonator
    5/5,
    Version: 2.5.1
    Thanks for the update! It works flawlessly! I hope there are many more updates to come! (This is 100 chrs.)
  5. Braleth
    Braleth
    5/5,
    Version: 2.5
    If you're running Dynmap and GP, you need this plugin! Super useful information for players and staff. Easily cross-reference claim IDs with the GP .yml files. Super helpful developer!
  6. Turbotailz
    Turbotailz
    5/5,
    Version: 2.2
    Had issues with this plugin before, but now it is working 100%! Really appreciate the developer wanting to fix the problem I was having before. I highly recommend this over any other dynmap extension for GP claims :)
  7. LEE3KFC
    LEE3KFC
    5/5,
    Version: 2.2
    its really useful plugin with GP.
    you can find where unused claim is on Dynmap really easily.
  8. mactso
    mactso
    5/5,
    Version: 1.2
    This is a very nice upgrade to the standard dynmap plugin.
    Installed easily.
  9. Turbotailz
    Turbotailz
    3/5,
    Version: 1.2
    Sorry for the low rating, but your plugin was causing horrible lag spikes every 10 minutes (I assume that's when it's scanning for claim updates) and my server has unexpectedly crashed several times and the logs would say this plugin was the main culprit.

    Let me know if you'd like my error logs, happy to send them so you can fix this. In the meantime, it looks as though mikeprimm has just updated the original to be compatible with 1.8 so I'll see how that goes. Thanks for the plugin! :)
    1. jahangir13
      Author's Response
      Yes please The more info the better. I already heard something like this from another user. I am happy for any feedback as in my testing I did not recognize this.
  10. davewolax
    davewolax
    5/5,
    Version: 1.2
    Thanks for this Amazing plugin! it works perfect and it's so much customisable! Thanks!