Koboo's Backpacks
A simple backpack plugin, which is highly customizable.
This plugin is still in development but works like a charm.

- Change the crafting recipe of the backpack
- Change the default backpack name
- Change crafting book category
- Change default size of backpacks
- Disable/Enable automatic discovering of backpack recipes
- Disable/Enable crafting at all
- Disable/Enable crafting colored backpacks
- Change crafting permissions
- Disable/Enable sounds of opening/closing backpacks
- Change the sounds of opening/closing backpacks
- Disallow/Allow backpacks in backpacks
- Disallow/Allow backpacks in shulker boxes
- Disallow/Allow shulker boxes in backpacks
- Limit the amount of backpacks in player inventory
- Disable backpacks in specific worlds
- Change restriction permission
- Disallow/Allow opening of backpack in inventory through double-click
- Disable/Enable automatic closing of backpack on damage
- Disable/Enable automatic closing of backpack on vehicle ejection
- Change every permission
- Change every message
- And much more..

This is the default crafting recipe, but you can always change the crafting recipe or disable it completely.
Default crafting recipe

You can craft a colored backpack with ANY minecraft-native dye or you can disable crafting of colored backpacks completely.
Colored crafting recipes
Lime:

Red:

Light blue:


The plugin is highly customizable through the configuration and enables you to change whatever you want! From the crafting recipes to the opening sounds, everything is configurable!
config.yml
# !! Do not touch this or it will break your config file !!
config-version: 1
update-check:
# Notify the users with the permissions if an update is available.
notify-on-update: true
crafting:
# Enable or disable the creation of crafting recipes of backpacks.
create-recipes: true
# This option decides if the player should
# discover all backpack crafting recipes at once, after he joined the server.
discover-all-recipes: true
# This option sets the default size of all backpacks.
# The value describes the amount of columns like in chests.
# Values:
# ONE, TWO, THREE, FOUR, FIVE, SIX
default-backpack-size: THREE
# Set the category of the crafting recipes
# in the recipe-book on the right side of the inventory.
# See this list:
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/recipe/CraftingBookCategory.html
crafting-book-category: EQUIPMENT
# Define the crafting pattern for a backpack.
# Use the 3 lines like in a crafting-table and assign items in the list below.
recipe-pattern:
- LLL
- SDS
- LLL
# Define the required item for the backpack crafting-recipe.
# Set a Material for every letter from the list above
# See list of items/materials:
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
recipe-items:
- "L:LEATHER"
- "S:LEAD"
- "D:DIAMOND"
appearance:
# Enabling this option allows the player
# to craft different backpack-colors by combining
# any default dye with a backpack in the crafting table.
allow-backpack-coloring: true
# Change the default name of a fresh crafted backpack.
default-backpack-name: Backpack
# In this section you can change the sounds of the backpacks.
# You can also use the "/playsound" command to test the sound you want.
# See the list of available sounds:
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
sounds:
# Choose if it should a play the configured sound on opening or closing a backpack.
# "false" to disable it
sounds-enabled: true
# true = only the player opening will hear the sound
# false = every nearby player will here the sound
only-player-sounds: true
# The sound, that should play if the player OPENS a backpack.
open-sound:
sound: BLOCK_CHEST_OPEN
volume: 0.5
pitch: 0.5
# The sound, that should play if the player CLOSES a backpack.
close-sound:
sound: BLOCK_CHEST_CLOSE
volume: 0.5
pitch: 0.5
restrictions:
# Use this option to limit the amount of backpacks
# in a player inventory.
#
# -1 = no limit of backpacks / disabled
limit-amount-in-player-inventory: 2
# Use this option to choose if a player
# can put a backpack in a backpack in a backpack and so on..
allow-backpack-in-backpack: false
# Use this option to choose if a player
# can put a shulker box in a backpack.
allow-shulker-box-in-backpack: false
# Use this option to choose if a player
# can put a backpack in a shulker box.
allow-backpack-in-shulker-box: false
# Use this option to decide if only the owner
# of the backpack can open it.
only-owner-can-open: true
handling:
# Set this to true, so players can open backpacks through
# double-click on the item in their own inventory.
# It doesn't work if they click them e.g. in chests, hoppers, barrels, etc.
# They have to use it in their own inventory.
open-backpack-through-inventory: true
# Set this to true, so players automatically
# close the currently open backpack after they get damaged.
close-backpack-on-damage: true
# Set this to true, so players automatically
# close the currently open backpack after they get eject from any vehicle or rideable animal.
close-backpack-on-eject: true
# Set the cooldown of the player opening backpacks.
# The value is given in seconds.
open-backpack-cooldown: 1
permissions.yml
# !! Do not touch this or it will break your permission file !!
permission-version: 1
# Enable or disable permission checks.
use-permissions: false
# This permission is used to check if the player will get notifications if an update is available.
update-notification: backpacks.update.notify
# This permission is used to check if the player can open the backpack.
# !! Only takes action, if only owners can open their backpacks !!
ignore-owner-restriction: backpacks.ignore.owner.restriction
# This permission is used to check if the player can craft the default backpack.
craft-default-backpack: backpacks.craft.default
# This permission is used to check if the player can craft any colored backpacks.
craft-colored-backpacks: backpacks.craft.colored
# This permission is used to check if the player can ignore the disabled worlds when opening backpacks.
# !! Only takes action, if player is in disabled world !!
ignore-world-restriction: backpacks.ignore.world.restriction
# This permission is used to check if the player can execute any command.
command-usage: backpacks.command
# This permission is used to check if the player can execute the config reload command.
command-reload: backpacks.command.reload
# This permission is used to check if the player can execute the give command.
command-give: backpacks.command.give
messages.yml
# !! Do not touch this or it will break your message file !!
message-version: 1
# Player is not permitted to open the current backpack.
not-allowed-to-open: "§cYou're not allowed to open that backpack."
# Player exceeds the maximum limit of backpacks in his inventory.
exceeds-limit-amount: "§cYou're exceeding the maximum amount of %limit_amount% backpacks in your inventory."
# Player is not permitted to craft the default backpack.
not-allowed-to-craft-default: "§cYou're not allowed to craft the default backpack."
# Player is not permitted to craft the colored backpack.
not-allowed-to-craft-colored: "§cYou're not allowed to craft the colored backpack."
# Player is not permitted to open the backpack in the current world.
not-allowed-in-world: "§cYou're not allowed to open the backpack in the world %world_name%."
# Player is opening backpacks too fast.
open-cooldown: "§cYou're opening your backpack too fast. Please wait a little bit."
# Player is not permitted to use the specific command.
command-no-permissions: "§cYou're not allowed to execute that command."
# Player has successfully reloaded the plugin config.
command-reload-success: "§aYou've reloaded the backpack config!"
# The given color could not be found.
command-color-not-found: "§cCouldn't find the given color %color%!"
# The given player is not online.
command-player-not-online: §cThe player %name% is not online!
# The player got a new backpack!
command-give-success:
# The sender message if a player got a new backpack!
other: §aYou gave %name% a new backpack.
Maven
<repository>
<id>koboo-reposilite</id>
<name>Koboo's Reposilite</name>
<url>https://reposilite.koboo.eu/<repository></url>
</repository><dependency>
<groupId>eu.koboo</groupId>
<artifactId>backpacks</artifactId>
<version>{latestVersion}</version>
</dependency>Gradle
maven {
name "kobooReposilite"
url "https://reposilite.koboo.eu/<repository>"
}implementation "eu.koboo:backpacks:{latestVersion}"Usage
import eu.koboo.backpacks.BackpackPlugin;
import eu.koboo.backpacks.events.BackpackCloseEvent;
import eu.koboo.backpacks.events.BackpackOpenEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
public class Example implements Listener {
@EventHandler
public void onBackpackOpen(BackpackOpenEvent event) {
Player player = event.getPlayer();
ItemStack backpackItem = event.getBackpackItem();
event.setCancelled(false);
// Do something with event
BackpackPlugin plugin = BackpackPlugin.getPlugin();
// Do something with plugin api
}
@EventHandler
public void onBackpackClose(BackpackCloseEvent event) {
Player player = event.getPlayer();
ItemStack backpackItem = event.getBackpackItem();
event.setCancelled(false);
// Do something with event
BackpackPlugin plugin = BackpackPlugin.getPlugin();
// Do something with plugin api
}
}
- Blacklisted items
- Different backpack-size configurations
- More displaying features for item lore/description
- Automatic insertion into chests, barrels, etc..
- Backpack command
- backpack recipe
- Extended Developer API

Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta