v1.84

Details

  • Filename
    Shopkeepers.jar
  • Uploaded by
  • Uploaded
    Jan 8, 2018
  • Size
    336.63 KB
  • Downloads
    2,248
  • MD5
    6b300722d025be61dc0b150f47f859cb

Supported Bukkit Versions

  • 1.12
  • 1.11
  • 1.10
  • 1.9
  • 1.8.1
  • 1.8
  • 1.8.3

Changelog

v1.84 for MC 1.12, 1.11, 1.10, 1.9, 1.8

  • Improvements to saving and loading: Saving first writes to a temporary save file before replacing the old save file. This update improves on that by considering this temporary save file during saving and loading, if no actual save file is found. Previously any existing temporary save file would simple have been ignored and removed during saving and loading, possibly deleting the last valid backup of shop data, if a previous saving attempt already deleted the save.yml file but wasn't then able to rename the temporary save file for some reason.
  • Added: An error message being printed to online admins (throttled to at most 1 message every 4 minutes) when saving failed. So that these severe issues do hopefully get noticed and looked into quicker when they occur.
  • Minor change: Warning instead of debug message in case a shopkeeper cannot be spawned after creation or loading.
  • Improved: Catching any type of issue during shopkeeper loading, and logging them with severe instead of warning priority.
  • Minor changes to multi-line warning log messages.
  • Various improvements related to async tasks, saving, reloads, disabling:
  • Improved: Catching a rare race-condition when trying to register a task with the bukkit scheduler from within an async task while the plugin is currently getting disabled.
  • Improved: Waiting (up to 10 seconds) for all currently running async tasks to finish, before continuing to disable.
  • Improved: Using synchronization to make sure that only one thread at once attempts to write the save files. Previously this might have caused issues, if an async and a sync save were going on at the same time (due to the plugin being disabled).
  • API / Internal: Added a method for requesting a delayed save. Refactored (replaced) the chunkLoadSave task to use this instead now.
  • Improved: If saving fails, it will now attempt another save after a short delay.
  • Improved: The saving debug output is now slightly more detailed.
  • Fixed: Invalid saving debug timings were logged in case a sync save gets triggered (ex. during plugin disable) while an async save is already going on.
  • Improved: A bunch of variables now get properly reset on reloads. Not sure though if this might have been an issue previously.
  • Improved / Fixed hiring behavior:
  • Changed: The hiring window can now always be open, regardless of if the player has the permission to hire this type of shopkeeper.
  • Added: Message 'msg-missing-hire-perm' if the player doesn't have the permission to hire shopkeepers at all.
  • Added: Message 'msg-cant-hire-shop-type' if the player cannot hire a certain type of shopkeeper (because he is missing the corresponding creation permissions).
  • Changed: Message 'msg-cant-hire' now uses a different color.
  • Added: Config setting 'hire-require-creation-permission' (default: true) to allow enabling of hiring of shops the player would usually not be able to create himself.
  • Added some warning and debug messages when noticing something wrong with the config.
  • Removed 'name-item-name' setting: It makes no sense to have a setting for a required display name for the naming item. Especially as the naming button item uses the corresponding translation message text instead.
  • Formatted and added documentation comments (including a link to the wiki) to the default config. Those comments will however not be persisted (yet) if the config gets updated (if settings are missing and need to be added).
  • Internal: Renamed ChunkData -> ChunkCoords and removed an unneeded API function (for which an alternative is available).
  • Internal: Some refactoring related to utility functions.
  • Fixed: During chunk unloads the plugin now checks and removes entities belonging to living entity shopkeepers located in other chunks. This fixes an entity duplication issue (#488).
  • Improved: The findOldEntity routine was slightly improved to also find entities in neighboring (and loaded) chunks. (This is only useful for situations in which chunk-unload events are not properly called, or world-save events were not properly called and the server crashes. However, it only improves the handling of those cases, it doesn't fully solve them..)

Known potential issues: See here.

Donations

If you like this plugin, consider making a donation.

Thanks!