Sueta

Koboo's Backpacks

1.0.3

Craftable, colored backpacks for survival usage

·Plugin

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 →