HomeJavaModsBackpack - including sorting, filtering and recipes!
Backpack - including sorting, filtering and recipes!
ModsJava

Backpack - including sorting, filtering and recipes!

backpack, sorting, filter, config, recipes, 5 types, bag, portable, customizable, recipe, nbt, json. Free Minecraft Java mod for 1.8.

⬇ Download on Spigot
banner.png

Backpacks
provides 5 different Backpacks where you can store your items while mining, exploring etc.! There are also 4 different sorting methods :
  • Sort by Amount ascending (0-9)
  • Sort by Amount descending (9-0)
  • Sort by Name ascending (A-Z)
  • Sort by Name descending (Z-A)
and you can even search for a specific name !

If an item with an amount which is less than 1 is detected, it will be logged in an file called 'cheat.log' and set the item's amount to 1. A log may look like this:
Code (Text):
[2019-07-12 17:38:54] Player: [UUID: 2e9a8168-cae8-301b-bc12-27fcbb0438a3 ; Name: TheKoopaCrafter] ; Method: DECODE ; Material: stone ; Amount: -512 ; Full JSON: {"amount":-512,"material":"stone","meta":{"lore":[],"itemflags":[],"enchantments":[],"type":"default","submeta":{}},"durability":1,"enchantments":[]}
The Method-Parameter has two states: ENCODE (when the backpack gets closed) and DECODE (when the backpack gets opened).
The log shows the Players' UUID and Name as well as the Item-Material and Amount.
The 'Full JSON'-Parameter gives you a JSON-String where you can find all of the data stored on the item.
This function is implemented to prevent duplicating and to show the server administrator which player had items with an invalid amount.

The items will not be stored in any file, they are stored as NBT-Data directly in the item! If the backpack gets lost, the items cannot be recovered!
You cannot put backpacks in a backpack!
PLEASE report duplication bugs, item disappearing bugs etc. to help me improve this plugin!

gui.png
Each GUI has a similar layout:
layout.JPG
The only difference between each backpack is the slot count:
  • Tiny: 9 Slots / 1 Row
  • Small: 18 Slots / 2 Rows
  • Medium: 27 Slots / 3 Rows
  • Big: 36 Slots / 4 Rows
  • Large: 45 Slots / 5 Rows
In the last row of each backpack, you can select the filter, which will be highlighted:
layout_selection.JPG

recipes.png
The recipes can be fully customized and disabled in the recipes.json file! But here are the default recipes:​
bprecipes.png

commands.png
Here is a list of all the currently available commands:
  • /backpack <tiny|small|medium|big|large> - Gives you a backpack (if you are to lazy to craft)
  • /backpack config <save|reload|reset> - Either saves, reloads or resets the config.json-file. If 'reset' is chosen, an backup of your current config.json-file will be saved in the backups-folder.
  • /backpack set <path> <value> - Changes a config value
  • /backpack get [path] - Retreives a config value. If no path is given, it will show all the config values.
  • /backpack recipe <tiny|small|medium|big|large> - Shows you the recipe for the backpack
All of these commands require the following permission:
Spoiler: Permission
backpacks.command
config.png
Spoiler: config.json
skull-parameter explaination:
The skull-parameter can either be a playername (eg. "TheKoopaCrafter") or a base64 encoded string.
Spoiler: Get the base64 encoded string
You can get the base64 encoded string by visiting either https://minecraft-heads.com/custom-heads/heads-generator or https://freshcoal.com/, enter the username you want the skin from and you should get a command like this:
Code (Text):
/give @p skull 1 3 {display:{Name:"TheKoopaCrafter"},SkullOwner:{Id:"4f00e843-56d5-41f3-b9e3-61cfb9aff867",Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjYxMjY2MDZhNmVmNzE4M2M5YWEyMGIwZGY3NGY1MTZhMjMxNjE4YmNkMzM1MTNiYmIxOGYzNTliNTUyZmI4MCJ9fX0="}]}}}
And the "random" characters after the " Value"-keyword and between the quotation marks is your base64 encoded string!
Code (Text):
{
    "item": {
        "small": {
            "lore": [
                "&eHolds up to &b18 Item Stacks&e!"
            ],
            "displayname": "&2Small &6Backpack",
            "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZThlNTU0NGFmN2Y1NDg5Y2MyNzQ5MWNhNjhmYTkyMzg0YjhlYTVjZjIwYjVjODE5OGFkYjdiZmQxMmJjMmJjMiJ9fX0="
        },
        "big": {
            "lore": [
                "&eHolds up to &b36 Item Stacks&e!"
            ],
            "displayname": "&9Big &6Backpack",
            "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2FkYmNmYjI4ODIxNWE4ZDE1M2RkZmRkYjM2YmQyZWQ3YTM3YWRkMzU2NjJmODYzM2Y3MTFkMmRmY2ViNDE3YyJ9fX0="
        },
        "large": {
            "lore": [
                "&eHolds up to &b45 Item Stacks&e!"
            ],
            "displayname": "&4Large &6Backpack",
            "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTZjYzQ4NmMyYmUxY2I5ZGZjYjJlNTNkZDlhM2U5YTg4M2JmYWRiMjdjYjk1NmYxODk2ZDYwMmI0MDY3In19fQ=="
        },
        "tiny": {
            "lore": [
                "&eHolds up to &b9 Item Stacks&e!"
            ],
            "displayname": "&aTiny &6Backpack",
            "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmY2OGQ1MDliNWQxNjY5Yjk3MWRkMWQ0ZGYyZTQ3ZTE5YmNiMWIzM2JmMWE3ZmYxZGRhMjliZmM2ZjllYmYifX19"
        },
        "medium": {
            "lore": [
                "&eHolds up to &b27 Item Stacks&e!"
            ],
            "displayname": "&eMedium &6Backpack",
            "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDUyY2VlZDA2NDgzNWVhMjMyZTY1NmE3M2Y4MmVkNzYxODI3ODU5YzkxMzQ0OTMxNGI4ZmQyMWIzZDExZDYifX19"
        }
    },
    "gui": {
        "small": {
            "title": "&2Small &6Backpack"
        },
        "general": {
            "background": {
                "damage": 7,
                "material": "stained_glass_pane"
            },
            "filters": {
                "name_ascending": {
                    "damage": 0,
                    "material": "skull_item",
                    "lore": [
                        "&bascending&7: &9A-Z"
                    ],
                    "displayname": "&eSort by Name",
                    "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTY3ZDgxM2FlN2ZmZTViZTk1MWE0ZjQxZjJhYTYxOWE1ZTM4OTRlODVlYTVkNDk4NmY4NDk0OWM2M2Q3NjcyZSJ9fX0=",
                    "selected": {
                        "damage": 0,
                        "material": "skull_item",
                        "lore": [
                            "&bascending&7: &9A-Z"
                        ],
                        "displayname": "&eSort by Name",
                        "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmFjNThiMWEzYjUzYjk0ODFlMzE3YTFlYTRmYzVlZWQ2YmFmY2E3YTI1ZTc0MWEzMmU0ZTNjMjg0MTI3OGMifX19"
                    }
                },
                "amount_descending": {
                    "damage": 0,
                    "material": "skull_item",
                    "lore": [
                        "&bdescending&7: &99-0"
                    ],
                    "displayname": "&eSort by Amount",
                    "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTY3Y2FmNzU5MWIzOGUxMjVhODAxN2Q1OGNmYzY0MzNiZmFmODRjZDQ5OWQ3OTRmNDFkMTBiZmYyZTViODQwIn19fQ==",
                    "selected": {
                        "damage": 0,
                        "material": "skull_item",
                        "lore": [
                            "&bdescending&7: &99-0"
                        ],
                        "displayname": "&eSort by Amount",
                        "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTE5MjhlMWJmZDg2YTliNzkzOTdjNGNiNGI2NWVmOTlhZjQ5YjdkNWY3OTU3YWQ2MmMwYzY5OWE2MjJjZmJlIn19fQ=="
                    }
                },
                "amount_ascending": {
                    "damage": 0,
                    "material": "skull_item",
                    "lore": [
                        "&bascending&7: &90-9"
                    ],
                    "displayname": "&eSort by Amount",
                    "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMGViZTdlNTIxNTE2OWE2OTlhY2M2Y2VmYTdiNzNmZGIxMDhkYjg3YmI2ZGFlMjg0OWZiZTI0NzE0YjI3In19fQ==",
                    "selected": {
                        "damage": 0,
                        "material": "skull_item",
                        "lore": [
                            "&bascending&7: &90-9"
                        ],
                        "displayname": "&eSort by Amount",
                        "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTVhMjI0ODA3NjkzOTc4ZWQ4MzQzNTVmOWU1MTQ1ZjljNTZlZjY4Y2Y2ZjJjOWUxNzM0YTQ2ZTI0NmFhZTEifX19"
                    }
                },
                "name_descending": {
                    "damage": 0,
                    "material": "skull_item",
                    "lore": [
                        "&bdescending&7: &9Z-A"
                    ],
                    "displayname": "&eSort by Name",
                    "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTA1ODJiOWI1ZDk3OTc0YjExNDYxZDYzZWNlZDg1ZjQzOGEzZWVmNWRjMzI3OWY5YzQ3ZTFlMzhlYTU0YWU4ZCJ9fX0=",
                    "selected": {
                        "damage": 0,
                        "material": "skull_item",
                        "lore": [
                            "&bdescending&7: &9Z-A"
                        ],
                        "displayname": "&eSort by Name",
                        "skull": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGU5MTIwMGRmMWNhZTUxYWNjMDcxZjg1YzdmN2Y1Yjg0NDlkMzliYjMyZjM2M2IwYWE1MWRiYzg1ZDEzM2UifX19"
                    }
                },
                "name_input": {
                    "damage": 0,
                    "material": "sign",
                    "lore": [
                        "&eCurrent filter: &f${current_filter}",
                        "&bRight Click to clear",
                        "&bLeft click to edit"
                    ],
                    "displayname": "&aFilter by Name",
                    "skull": "null",
                    "selected": {
                        "damage": 0,
                        "material": "sign",
                        "lore": [
                            "&eCurrent filter: &f${current_filter}",
                            "&bRight Click to clear",
                            "&bLeft click to edit"
                        ],
                        "displayname": "&aFilter by Name",
                        "skull": "null"
                    }
                }
            }
        },
        "big": {
            "title": "&9Big &6Backpack"
        },
        "large": {
            "title": "&4Large &6Backpack"
        },
        "tiny": {
            "title": "&aTiny &6Backpack"
        },
        "medium": {
            "title": "&eMedium &6Backpack"
        }
    },
    "message": {
        "filter": "${prefix} &aPlease enter a filter: &7(up to &c32 characters&7, type '&8cancel&7' to cancel)",
        "expired": "${prefix} &cYour time to type a filter has expired. &7(&e${time_formatted}&e)",
        "prefix": "&8[&6&lBackpack&8] &7» ",
        "success": "${prefix} &aApplied filter &7'&f${filter}&7'&a!",
        "cancelled": "${prefix} &cChanging filter cancelled!",
        "timeformat": {
            "milliseconds": "ms",
            "seconds": "s",
            "hours": "h",
            "minutes": "min"
        },
        "filter_input_deadline": "00:01:00.000"
    }
}
Spoiler: recipes.json
To disable a specific recipe, just replace the true after the " enabled" with a false.
You can also create shapeless recipes:
Spoiler: Shapeless recipe
Code (Text):
{
    "method": "shapeless",
    "ingredients: [
        "leather",
        "leather",
        "leather",
        "chest",
    ]
}
The example above creates a shapeless recipe where you have to put 3 leather and 1 chest in the crafting table to get your backpack!
Warning: the code above won't work, because there is no ' enabled' defined.
Shaped recipe:
Spoiler: Shaped recipe
Code (Text):
{
    "method": "shaped",
    "shape": { # Each character represents an item ; if you want to have a slot empty (without an item in the crafting table), just use a space (' ')
        "0": "aaa", # Line 1 in the crafting table
        "1": "bcb", # Line 2 in the crafting table
        "2": "aaa"  # Line 2 in the crafting table
    },
    "ingredients": {
        "a": "leather", # The item 'leather' will be used in the crafting table where you defined 'a' in the shape-object above
        "b": "iron_ingot", # The item 'iron_ingot' will be used in the crafting table where you defined 'b' in the shape-object above
        "c": "chest" # The item 'chest' will be used in the crafting table where you defined 'c' in the shape-object above
    }
}
Warning: the code above won't work, because JSON doesn't allow comments and there is no ' enabled' defined.
Code (Text):
{
    "small": {
        "shape": {
            "0": "bab",
            "1": "aca",
            "2": "bab"
        },
        "method": "shaped",
        "ingredients": {
            "a": "leather",
            "b": "iron_ingot",
            "c": "chest"
        },
        "enabled": true
    },
    "big": {
        "shape": {
            "0": "aba",
            "1": "cdc",
            "2": "aaa"
        },
        "method": "shaped",
        "ingredients": {
            "a": "diamond",
            "b": "nether_star",
            "c": "leather",
            "d": "chest"
        },
        "enabled": true
    },
    "large": {
        "shape": {
            "0": "aba",
            "1": "cdc",
            "2": "aea"
        },
        "method": "shaped",
        "ingredients": {
            "a": "diamond",
            "b": "eye_of_ender",
            "c": "nether_star",
            "d": "ender_chest",
            "e": "ender_pearl"
        },
        "enabled": true
    },
    "tiny": {
        "shape": {
            "0": "aaa",
            "1": "aba",
            "2": "aaa"
        },
        "method": "shaped",
        "ingredients": {
            "a": "leather",
            "b": "chest"
        },
        "enabled": true
    },
    "medium": {
        "shape": {
            "0": "aaa",
            "1": "bcb",
            "2": "aaa"
        },
        "method": "shaped",
        "ingredients": {
            "a": "gold_ingot",
            "b": "leather",
            "c": "chest"
        },
        "enabled": true
    }
}
If you want to use the German Version of the config, just delete the config.json-file and rename the config_de.json-file to config.json!​
apis.png
This Plugin uses the following APIs:


Thank you for downloading my plugin! ;)

Commands

Plugin details

Read from the plugin's own plugin.yml.

Backpack - including sorting, filtering and recipes! is a free Minecraft Java mod. Compatible with Minecraft 1.8. Downloaded 181 times (via Spigot). Download it and open it directly in the game.

Explore more