[1.8-1.14] ChestSort (+ API) 5.0.3

Automatically sorts your chests! Supports WorldGuard etc. (100 % customizable + auto config update)

  1. mfnalex
    Native Minecraft Version:
    1.13
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    Source Code:
    https://github.com/JEFF-Media-GbR/Spigot-ChestSort
    Languages Supported:
    English, Chinese, Chinese (Traditional), Dutch, French, German, Italian, Japanese, Portuguese, Russian, Spanish
    Please post feature requests and bug reports in the discussion or at GitHub.

    Tired of sorting your chests?
    o_O
    Let's spend less time on organizing, and more on playing!
    :cool:


    See ChestSort in Action!
    > Join one of our demo servers! <
    See below for server details
    ChestSort will automatically sort every chest after you have used it. Every player can enable or disable this feature if desired with the simple command /chestsort. Players can also sort their own inventory using the command /invsort.

    The chest contents are sorted by category and/or alphabetically and stackable things will be stacked. By default, items will be put before blocks. Sorting will work with chests, enderchests, shulker boxes and barrels. Wool, Terracotta and other dyeable blocks will also be sorted by color. The sorting algorithm can be changed. There is absolutely no chance of item loss / duplication or metadata corruption! Guaranteed! :)

    By default, sorting is disabled. Players need the "chestsort.use" permission to use this plugin. If a player uses a chest for the first time after logging in, they will be shown a text on how to enable automatic chest sorting if they have the permission to use ChestSort. Sorting can be disabled for certain worlds.

    (see below for more screenshots and videos)
    chestsort-screen1.jpg

    All messages are customizable. Includes English, Chinese, Chinese (Traditional), French, German, Italian, Japanese, Portuguese, Russian and Spanish language.

    This plugin works with 1.13 and 1.14! It should also work on any 1.8+ version.

    Commands
    /chestsort or /sort
    Toggle automatic chest sorting.

    /invsort or /isort
    Sort the player's inventory.

    /invsort hotbar or /isort hotbar
    Sort the player's hotbar.

    /invsort all or /isort all
    Sort the player's inventory and hotbar.

    Permissions
    chestsort.use
    Allows usage of automatic chest sorting and the /chestsort command.

    chestsort.use.inventory
    Allows usage of the /invsort command to sort the player's inventory

    Video & Screenshots


    chestsort-screen2.jpg

    Demo Servers
    Join one of our demo servers. You will be in creative mode. Take a chest and lots of random stuff. Then toggle automatic chest sorting with /chestsort. Place the chest anywhere and fill it. It will be magically sorted when you close it. You can disable sorting by using /chestsort again.
    > 1.14.2: demo14.chestsort.de
    > 1.13.2: demo13.chestsort.de <

    > 1.12.2: demo12.chestsort.de <
    WorldGuard and other protection plugins
    ChestSort will only sort chests that the player has access to. In other words: when some other plugin like WorldGuard prevents access to the chest, then ChestSort will not sort this chest.
    This applies to all plugins that cancel the InventoryOpenEvent, as ChestSort will only sort when the InventoryCloseEvent is called.
    Furthermore, chests will not be sorted if the player is a spectator or in adventure mode.

    Notes
    To view the source code, please visit https://github.com/JEFF-Media-GbR/Spigot-ChestSort

    Please contact us here or at github when you encounter any bugs or have any ideas for improvements.

    If your language is not yet supported, just change the messages in the config file yourself. We will be happy to include the language in the next update if you send us your translation.

    ChestSort uses bStats to gather Metrics. You can disable this by editing the plugins/bstats/config.yml file. View the statistics at https://bstats.org/plugin/bukkit/ChestSort

    Please note that sorting in versions before 1.13 can be a bit random sometimes, because some item names were inconsistent (e.g. acacia stairs in 1.8 are named "acacia_stairs", while oak planks are just called "planks".) The sorting algorithm has been optimized for 1.13+ only.

    The sorting algorithm is extremely fast. It takes less than half a millisecond to sort a chest.

    API for plugin developers
    ChestSort provides a method to sort any Inventory instance, using the advanced grouping features that ChestSort provides! Read more about the API here.

    If your plugin uses the ChestSort API, feel free to message me and I will be happy to list it here.

    Default configuration
    The configuration file is automatically generated if it does not exist. On every new ChestSort release, the config file will be updated to include the newest options. Your changes will be kept.

    Code (YAML):
    #########################
    #####   ChestSort   #####
    #########################
    #
    #   www.jeff-media.de
    #

    #
    # This config file will be updated automatically with every new release of ChestSort.
    # Don't worry! Your changes will be kept after every update.
    #

    #
    # Please note that players will need the chestsort.use permission
    # or have to be OP to be able to use automatic chest sorting.
    # To use /invsort, the permission chestsort.use.inventory is required.
    #

    # when set to false, new players will have to run /chestsort
    # once to enable automatic chest sorting.
    sorting-enabled-by-default
    : false

    # when set to true, players with sorting DISABLED will be
    # shown a message on how to enable automatic chest sorting
    # when they use a chest for the first time.
    # consider setting this to true when you disable sorting by default.
    # see also -> message-when-using-chest
    show-message-when-using-chest
    : true

    # when set to true, players with sorting ENABLED will be
    # shown a message on how to disable automatic chest sorting
    # when they use a chest for the first time.
    # consider setting this to true when you enable sorting by default.
    # see also -> message-when-using-chest2
    show-message-when-using-chest-and-sorting-is-enabled
    : false

    # when set to true, the messages are shown again when a player
    # logs out and back in and then uses a chest again.
    show-message-again-after-logout
    : true

    # to sort by category, we need category files. ChestSort comes
    # with a number of pregenerated category files, named
    # 900-valuables.txt, 910-tools.txt, 920-combat.txt, ...
    # If you wish to edit those, you can disable the generation of these
    # files, because otherwise all your changes in the pregenerated
    # files will be overwritten on each server startup.
    # However, a much smarter option is to copy the default files
    # and rename them to from 900... to 800... and edit those instead.
    auto-generate-category-files
    : true

    # you can choose when ChestSort should sort chests.
    # The default option is to sort when an inventory is closed.
    # This is useful, because the onInventoryClose event never gets fired
    # when access to the chest is forbidden by another plugin, e.g. WorldGuard
    # You can also sort whenenver a chest is opened. ChestSort will then check
    # if the onInventoryOpenEvent gets cancelled. If it does get cancelled,
    # ChestSort will not sort the chest. However, if a plugin uses the
    # MONITOR event priority, ChestSort cannot detect this.
    # If you have problems with unaccessible chests being sorted, set this
    # option to "close". If you want, you can sort twice, however this is not
    # very useful.
    # If you don't know what to put here, just use the default "close"
    # Available options: open, close, both
    sort-time
    : close

    # should we check for updates?
    # when enabled, a message is printed in the console if a new
    # version has been found, and OPs will be notified when they join the server
    # When set to true, we will check for updates on startup and every 24 hours
    # When set to on-startup, we will only check on startup
    # When set to false, don't check for updates
    check-for-updates
    : true

    # when set to true, show some verbose information on startup
    verbose
    : true

    #########################
    #### disabled worlds ####
    #########################

    # You can disable ChestSort for certain worlds. Each world's name has to
    # be on a separate line, starting with a hyphen and followed by a space.
    # You can also use the YAML array notation: [world1, world2, world3]

    # Example:
    #
    # disabled-worlds:
    # - world_nether
    # - world_the_end

    disabled-worlds
    :

    ##########################
    ##### Sorting Method #####
    ##########################

    # Advanced: how to sort things! See below for examples.
    # Only change this if you know what you are doing.
    #
    # Available variables:
    # {category}          order stuff by category as defined in plugins/ChestSort/categories/<category>.txt
    # {keepCategoryOrder} orders stuff in the same category according to their line numbers in the category file
    # {itemsFirst}        put items before blocks
    # {blocksFirst}       put blocks before items
    # {name}              returns the name (e.g. DIRT, GRASS_BLOCK, BIRCH_LOG, DIAMOND_SWORD, ...)
    # {color}             returns the color, e.g. light_blue for wool. Empty if block/item is not dyeable
    # {customName}        returns the display name if set (e.g. with an anvil)
    # {lore}              returns the lore if set
    #
    # Warning: You must not use spaces and fields have to be separated by commas.
    #
    # Examples:
    #   sort by name and color:
    #     '{name},{color}'
    #
    #   sort by name and color, but put items before blocks:
    #     '{itemsFirst},{name},{color}'
    #
    #   sort by name and color, but put blocks before items:
    #     '{blocksFirst},{name},{color}'
    #
    #   sort by category, then put items before blocks and sort by name and color
    #      '{category},{itemsFirst},{name},{color}'
    #
    #   sort by category, but keep exactly the same order as defined in each category file, then sort any undefined items by name and color
    #      '{category},{keepCategoryOrder},{name},{color}
    #
    sorting-method
    : '{category},{itemsFirst},{name},{color}'

    #########################
    ##### localization ######
    #########################

    # Available color codes:
    # &0 Black        &6 Gold       &c Red
    # &1 Dark Blue    &7 Gray       &d Light Purple
    # &2 Dark Green   &8 Dark Gray  &e Yellow
    # &3 Dark Aqua    &9 Blue       &f White
    # &4 Dark Red     &a Green
    # &5 Dark Purple  &b Aqua

    # Available formatting codes:
    # &k Obfuscated   &m Strikethrough
    # &l Bold         &o Italic
    # &n Underline    &r Reset

    # IMPORTANT NOTE:
    # Some messages contain placeholders (%s). You must not remove those, or you will get exceptions in the console

    ##### You can edit these messages yourself or uncomment the existing translations (see below)
    message-when-using-chest
    : "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting."
    message-when-using-chest2
    : "&7Hint: Type &6/chestsort&7 to disable automatic chest sorting."
    message-sorting-disabled
    : "&7Automatic chest sorting has been &cdisabled&7."
    message-sorting-enabled
    : "&7Automatic chest sorting has been &aenabled&7."
    message-error-players-only
    : "&cError: This command can only be run by players."
    message-player-inventory-sorted
    : "&7Your inventory has been sorted."
    message-error-invalid-options
    : "&cError: Unknown option %s. Valid options are %s."

    ##### English
    #message-when-using-chest: "&7Hint: Type &6/chestsort&7 to enable automatic chest sorting."
    #message-when-using-chest2: "&7Hint: Type &6/chestsort&7 to disable automatic chest sorting."
    #message-sorting-disabled: "&7Automatic chest sorting has been &cdisabled&7."
    #message-sorting-enabled: "&7Automatic chest sorting has been &aenabled&7."
    #message-error-players-only: "&cError: This command can only be run by players."
    #message-player-inventory-sorted: "&7Your inventory has been sorted."
    #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."

    ##### Chinese - Thanks to qsefthuopq for translating! -> https://www.spigotmc.org/members/qsefthuopq.339953/
    #message-when-using-chest: "&7提示: 输入 &6/chestsort&7 来启用自动整理箱子."
    #message-when-using-chest2: "&7提示: 输入 &6/chestsort&7 来关闭自动整理箱子."
    #message-sorting-disabled: "&7自动整理箱子已 &c关闭&7."
    #message-sorting-enabled: "&7自动整理箱子已 &a启用&7."
    #message-error-players-only: "&c错误: 指令只能由玩家运行."
    #message-player-inventory-sorted: "&7已成功整理你的背包."
    #message-error-invalid-options: "&c错误: 位置选项 %s. 有效选项为 %s."

    ##### Chinese (Traditional) 繁體中文
    ##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC
    #message-when-using-chest: "&7小提醒: 輸入 &6/chestsort&7 來開啟自動整理箱子"
    #message-when-using-chest2: "&7小提醒: 輸入 &6/chestsort&7 來關閉自動整理箱子"
    #message-sorting-disabled: "&7自動整理箱子已 &c關閉&7"
    #message-sorting-enabled: "&7自動整理箱子已 &a開啟&7"
    #message-error-players-only: "&c錯誤: 這個指令只能由玩家使用"
    #message-player-inventory-sorted: "&7Your inventory has been sorted."
    #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."

    ##### Dutch - Thanks to Xeyame for translating! -> https://github.com/Xeyame
    #message-when-using-chest: "&7Hint: Gebruik &6/chestsort&7 om automatische kist sortering aan te zetten."
    #message-when-using-chest2: "&7Hint: Gebruik &6/chestsort&7 om automatische kist sortering uit te zetten."
    #message-sorting-disabled: "&7Automatische kist sortering is &cuitgeschakeld&7."
    #message-sorting-enabled: "&7Automatische kist sortering is &aingeschakeld&7."
    #message-error-players-only: "&cFout: Dit commando kan alleen door spelers worden gebruikt."
    #message-player-inventory-sorted: "&7Je inventaris is gesorteerd."
    #message-error-invalid-options: "&cFout: Onbekende optie %s. Mogelijke opties zijn %s."

    ##### French - Thanks to automatizer for translating! -> https://www.spigotmc.org/members/automatizer.26188/
    ##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC
    #message-when-using-chest: "&7Astuce: Écris &6/chestsort&7 pour activer le classement automatique."
    #message-when-using-chest2: "&7Astuce: Écris &6/chestsort&7 pour désactiver le classement automatique."
    #message-sorting-disabled: "&7Le classement automatique a été &cdésactivé&7."
    #message-sorting-enabled: "&7Le classement automatique a été &aactivé&7."
    #message-error-players-only: "&cErreur: Cette commande ne peut être utilisée que par des joueurs."
    #message-player-inventory-sorted: "&7Your inventory has been sorted."
    #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."

    ##### German
    #message-when-using-chest: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu aktivieren."
    #message-when-using-chest2: "&7Hinweis: Benutze &6/chestsort&7 um die automatische Kistensortierung zu deaktivieren."
    #message-sorting-disabled: "&7Automatische Kistensortierung &cdeaktiviert&7."
    #message-sorting-enabled: "&7Automatische Kistensortierung &aaktiviert&7."
    #message-error-players-only: "&cFehler: Dieser Befehl ist nur für Spieler verfügbar."
    #message-player-inventory-sorted: "&7Dein Inventar wurde sortiert."
    #message-error-invalid-options: "&cFehler: Unbekannte Option %s. Gültige Optionen sind %s."

    ##### Italian - Translated with Google. Please tell me if something is wrong :)
    #message-when-using-chest: "&7Nota: inserire &6/chestsort&7 per abilitare l'ordinamento automatico dei bauli."
    #message-when-using-chest2: "&7Nota: inserire &6/chestsort&7 per disabilitare l'ordinamento automatico dei bauli."
    #message-sorting-disabled: "&7L'ordinamento automatico dei bauli è stato &cdisattivato&7."
    #message-sorting-enabled: "&7L'ordinamento automatico dei bauli è stato &aattivato&7."
    #message-error-players-only: "&cErrore: questo comando è disponibile solo per i giocatori."
    #message-player-inventory-sorted: "&7Il tuo inventario è stato ordinato."
    #message-error-invalid-options: "&cErrore: Parametro sconosciuto %s. I parametri validi sono %s."

    ##### Japanese
    ##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC
    #message-when-using-chest: "&7ヒント: &6/chestsort&7 と入力して自動チェスト整理を有効にできます。"
    #message-when-using-chest2: "&7ヒント: &6/chestsort&7 と入力すると自動チェスト整理を無効にできます。"
    #message-sorting-disabled: "&7自動チェスト整理は現在 &cOFF&7です。"
    #message-sorting-enabled: "&7自動チェスト整理は現在 &aON&7です。"
    #message-error-players-only: "&cエラー: このコマンドはプレイヤーのみ実行できます。"
    #message-player-inventory-sorted: "&7Your inventory has been sorted."
    #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."

    ##### Portuguese - Thanks to wildastral for translating! -> https://www.spigotmc.org/members/wildastral.673147/
    ##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC
    #message-when-using-chest: "&7Dica: Digite &6/chestsort&7 para habilitar a organização automática."
    #message-when-using-chest2: "&7Dica: Digite &6/chestsort&7 para desabilitar a organização automática."
    #message-sorting-disabled: "&7A Organização automática de baús foi &cdesabilitada&7."
    #message-sorting-enabled: "&7A Organização automática de baús foi &ahabilitada&7."
    #message-error-players-only: "&cErro: Esse comando não pode ser executado por jogadores."
    #message-player-inventory-sorted: "&7Seu inventário foi organizado."
    #message-error-invalid-options: "&cError: Unknown option %s. Valid options are %s."

    ##### Russian - Thanks to Gandon for translating! -> https://www.spigotmc.org/members/gandon.443887/
    ##### Note: the last two messages are still untranslated. Please send me your translation at SpigotMC
    #message-when-using-chest: "&7Подсказка: введите &6/chestsort&7, чтобы включить автоматическую сортировку вещей в сундуках."
    #message-when-using-chest2: "&7Подсказка: введите &6/chestsort&7, чтобы отключить автоматическую сортировку вещей в сундуках."
    #message-sorting-disabled: "&7Автоматическая сортировка вещей в сундуках была &cотключена&7."
    #message-sorting-enabled: "&7Автоматическая сортировка вещей в сундуках была &aвключена&7."
    #message-error-players-only: "&cОшибка: эта команда может быть использована только игроками."
    #message-player-inventory-sorted: "&7Ваш инвентарь был отсортирован."
    #message-error-invalid-options: "&cОшибка: Неизвестная опция %s. Допустимые опции: %s."

    ##### Spanish - Thanks to Bers_ for translating! ->  https://www.spigotmc.org/members/bers_.146126/
    #message-when-using-chest: "&7Pista: Usa &6/chestsort&7 para activar el orden automático de los cofres."
    #message-when-using-chest2: "&7Pista: Usa &6/chestsort&7 para desactivar el orden automático de los cofres."
    #message-sorting-disabled: "&7Orden automático de los cofres &cdesactivado&7."
    #message-sorting-enabled: "&7Orden automático de los cofres &aactivado&7."
    #message-error-players-only: "&cError: Este comando solo puede ser ejecutado por jugadores."
    #message-player-inventory-sorted: "&7Tu inventario ha sido ordenado."
    #message-error-invalid-options: "&cError: %s es una opción inválida. Las opciones válidas son: %s."

    #########################
    #####     Done!     #####
    #########################

    # please do not change the following line manually!
    config-version
    : 10

    Other Plugins by me
    No time for putting your stuff into the right chests? Try out InvUnload:
    [1.13] InvUnload: Automatically puts your stuff in the right chests!

    Tired of climbing trees like a monkey?
    [1.13] LumberJack: Enable tree gravity for easy woodcutting.

    May the odds be ever in your favor! Have an angel protect your loot when you die.
    [1.13] AngelChest: Stores your inventory in a protected chest when you die!

    Don't want to collect all drops manually? Use Drop2Inventory. Also reduces lag.
    [1.13] Drop2Inventory: Nore more need to collect drops!
    Choco70, griimnak, YuBao and 4 others like this.

Recent Reviews

  1. TheFallender
    TheFallender
    5/5,
    Version: 5.0.3
    Awesome plugin, does everything one would need. Also the author would help me with no problem asap. More plugins and authors should be like this.
    1. mfnalex
      Author's Response
      Thank you so much :) I hope you have fun with ChestSort!
  2. Tallcraft
    Tallcraft
    5/5,
    Version: 5.0.2
    Works really well and is simple to setup. Requires a permission plugin because the sort permission defaults to false.
    1. mfnalex
      Author's Response
      Thank you for the review :)
  3. xorgone
    xorgone
    5/5,
    Version: 5.0.2
    Absolutely fantastic! Intuitive, easy, and necessary for any serious server admin! Highly recommend
    1. mfnalex
      Author's Response
      Thanks! :)
  4. Strudenjaden
    Strudenjaden
    5/5,
    Version: 5.0.2
    Works fine.
    The developer help me so much and answer me so quickly. Now it works like I want.
    1. mfnalex
      Author's Response
      Thank you very much :)
  5. LucidusMC
    LucidusMC
    5/5,
    Version: 4.1.2
    Love this plugin, my players appreciate it as well. The ability to toggle it is also great! Dev helps out when needed. Thank you for the great plugin.
    1. mfnalex
      Author's Response
      Thanks for the review:)
  6. Gandon
    Gandon
    5/5,
    Version: 3.7.1
    For the first time I see a developer who has all released plugins really relevant to use on the server.
    Slightly reworked Russian translation:
    https://pastebin.com/Qfs8WdWx
    1. mfnalex
      Author's Response
      Thank you :) I will correct the translation later
  7. Asgard
    Asgard
    5/5,
    Version: 3.7.1
    Very good plugin, no configuration required.
    Supporting 1.14.
    Really good support from author
    1. mfnalex
      Author's Response
      Thanks :)
  8. ProjectSky
    ProjectSky
    5/5,
    Version: 3.4
    Great plugin, maybe add support sort player inventory..................................
    1. mfnalex
      Author's Response
      Player inventory sorting has been added as of version 4.0 :)
  9. impmallet
    impmallet
    5/5,
    Version: 3.4
    Great plugin, my members really like it. My only complaint is the the chestsort nag message after each login. I wish this was configurable to display once ever for a user and then never again, instead my only options are disable entirely or have it remind the player on each login.

    Small complaint of an otherwise great plugin. Thank you for your hard work.
    1. mfnalex
      Author's Response
      You can set „show-message-again-after-logout“ to false
  10. kinoob
    kinoob
    5/5,
    Version: 3.2
    Great timesaver plugin! Works flawlessly on spigot 1.13.2. Will never go without again.
    1. mfnalex
      Author's Response
      Thank you :)