Better Bags
Plugin that adds bags, thats works like sacks, but with upgrades.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Better Bags
ENGLISH
BetterBags is a plugin that allows players to have a bag that adds features such as item auto-picking, upgradable levels, configurable restricted actions, supportable MiniMessage, player data saving, fully customizable items&messages, and more.
Features
> * Items auto-picking; can or cannot pick up only sellable items > * Upgradable levels for the bag > * Possible to restrict players in their actions (disable/enable the ability to manipulate items from the bag) > * Player's data in the `data/<uuid>.yml` files > * Fully customizable items, messages, levels, sellable items > * Items in the bag can be sold by the only one button > * Includes selling multiplier which can be set by the permission (`betterbags.multiplier.<number>`) or by the command (`/bags multiplier`) > * Fully supports MiniMessage
Commands
> * `/bags reload` - Reloads the plugin's configuration > * `/bags save` - Saves player data > * `/bags clear <target/selector>` - Clears a player's (or multiple players) bag > * `/bags level <target/selector> <level>` - Sets a player's (or multiple players) bag level > * `/bags give <target/selector>` - Gives a player (or multiple players) a bag > * `/bags multiplier <target/selector> <multiplier>` - Sets a player's (or multiple players) bag multiplier > * `/bags open <target/selector>` - Opens a player's (or multiple players) bag > * `/bags sell-all <target/selector> <ignore-item-value>` - Sells all items in a player's (or multiple players) bag > * `/bags help` - Shows this message
Permissions
> * `betterbags.usage` - Permission to use the `/bags` command > * `betterbags.reload` - Permission to the `/bags reload` command > * `betterbags.save` - Permission to the `/bags save` command > * `betterbags.clear` - Permission to the `/bags clear` command > * `betterbags.setlevel` - Permission to the `/bags level` command > * `betterbags.give` - Permission to the `/bags give` command > * `betterbags.multiplier` - Permission to the `/bags multiplier` command > * `betterbags.multiplier.<number>` - Adds a `<number>` multiplier for the player > * `betterbags.open` - Permission to the `/bags open` command > * `betterbags.sell-all` - Permission to the `/bags sell-all` command
Placeholders
> > * `%uuid%` - player's uuid > * `%player%` - player's name > * `%items-sum%` - sum of items in the bag > * `%current-level%` - current bag level > * `%current-capacity%` - current bag capacity > * `%current-slots%` - current bag slots > * `%current-cost%` - current bag cost > * `%next-level%` - next bag level > * `%next-capacity%` - next bag capacity > * `%next-slots%` - next bag slots > * `%next-cost%` - next bag cost
English config files:
Configs
config.yml
```
Should the bag automatically pick up all items that the player raises?
auto-picking: true # boolean
If auto-picking is enabled, should the bag only pick up the items specified in items.yml?
pickup-only-sellable: false # boolean
Do players have the ability to manually place items in the bag?
player-put-ability: true # boolean
Do players have the ability to take items out of the bag?
player-get-ability: true # boolean
Do players have the ability to move the bag in the inventory?
* false = ability to open the bag by clicking on it in the inventory
bag-move-ability: false # boolean
Default slot for the bag (If the player cannot move it, it will stay in this position all the time)
bag-slot: 4 # 0-8 - slots in the hotbar /
9-35 - slots in the inventory
Will the bags have a button to sell all items?
sell-all: true # boolean
Interval between data saves (in seconds)
save-interval: 600 # integer / -1 to disable
Interval between checking for the bag presence for players (in seconds)
update-interval: -1 # integer / -1 to disable
Should the bag be given after the player's respawn (death)?
should-give-bag-on-respawn: true # boolean
Should the bag be given after the player joins the server?
should-give-bag-on-join: true # boolean
Inventory label of the bag
bag-inventory-label: "Player's bag %player% - Level %current-level%" ```
bags.yml
``` items: bag: name: "<!italic>Bag <red>%current-level%</red> level." # item name description: # item description - "<!italic>Items in the bag: %items-sum%" - "<!italic>Capacity: %current-capacity% items." - "<!italic>Number of slots: %current-slots%" material: PLAYER_HEAD # bag item/icon
If the material is a head, you can set a texture for it (base64):
head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxYzdiZDA0MTZmNjhkNmU5YjU4NmU3ODE4Mjg2M2E0ZmQwNGY5MDI5YzgwNWY5MjFhMTdjNzAzZDUyZWRlMSJ9fX0="
If the item has a custom texture (custom model data)
custom-model-data: 0
upgrade: name: "<!italic>Upgrade <red>from %current-level% to %next-level%</red> level." description: - "<!italic>The next level includes:" - "<!italic>Capacity: %current-capacity% >> %next-capacity% items" - "<!italic>Number of slots: %current-slots% >> %next-slots%" - "" - "<!italic>Upgrade cost: %next-cost%$" material: MOSS_BLOCK
head-texture and custom-model-data are optional parameters
sell-all: name: "<!italic>Sell all items" material: BARRIER glowing: true # can set a glowing effect to the item
description is also optional
next-page: name: "<!italic>Next page" material: PLAYER_HEAD head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWM5YzY3YTlmMTY4NWNkMWRhNDNlODQxZmU3ZWJiMTdmNmFmNmVhMTJhN2UxZjI3MjJmNWU3ZjA4OThkYjlmMyJ9fX0="
previous-page: name: "<!italic>Previous page" material: PLAYER_HEAD head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWExZWYzOThhMTdmMWFmNzQ3NzAxNDUxN2Y3ZjE0MWQ4ODZkZjQxYTMyYzczOGNjOGE4M2ZiNTAyOTdiZDkyMSJ9fX0="
ignore-item-value-true: name: "<!italic>Sell everything without exceptions" material: RED_CANDLE description: - "<!italic>All items will be sold regardless of their value" glowing: true
ignore-item-value-false: name: "<!italic>Sell everything with exceptions" material: GREEN_CANDLE description: - "<!italic>When selling, items without value will be ignored"
filler: name: "<reset>" material: RED_STAINED_GLASS_PANE
levels: 1: # level (1 - by default) capacity: 20 # bag capacity AKA maximum number of items slots: 5 # available storage slots cost: 0 # cost to upgrade to this level 2: capacity: 40 slots: 8 cost: 1000 commands: # commands after purchasing the upgrade - "xp add %player% 10 levels" 3: capacity: 60 slots: 16 cost: 5000
...
```
messages.yml
``` no-economy-plugin-found: "<red>Economy plugin not found. Disabling..." bag-clear-result: single: "<green>The bag of player <gold>%target%</gold> has been successfully cleared." multiple: "<green>The bags for <gold>%target% players</gold> have been successfully cleared." bag-level-result: single: "<green>The bag of player <gold>%target%</gold> has been successfully set to <gold>%level% level</gold>." multiple: "<green>The bags for <gold>%target% players</gold> have been successfully set to <gold>%level% level</gold>." give-bag-result: single: "<green>The bag has been successfully given to player <gold>%target%</gold>." multiple: "<green>The bags have been successfully given to <gold>%target% players</gold>." config-reloaded: "<green>Configurations have been successfully reloaded." data-saved: "<green>Data has been successfully saved." multiplier-set-result: single: "<green>The sales multiplier for player <gold>%target%</gold> has been successfully set to <gold>%multiplier%</gold>." multiple: "<green>The sales multipliers for <gold>%target% players</gold> have been successfully set to <gold>%multiplier%</gold>." sell-all: something: "<gold>%amount%</gold> <green>items have been sold for <gold>%cost%</gold>$" nothing: "<red>Nothing was sold.</red>" sell-all-command-result: single: "<gold>%amount%</gold> <green>items from <gold>%target%</gold> have been sold for <gold>%cost%</gold>$" multiple: "<gold>%amount%</gold> <green>items from <gold>%target% players</gold> have been sold for <gold>%cost%</gold>$" help-message: - "<gold>Commands:</gold>" - "<green>/bags reload</green> - <gold>Reload configuration</gold>" - "<green>/bags save</green> - <gold>Save player data</gold>" - "<green>/bags clear <target></green> - <gold>Clear players' bags</gold>" - "<green>/bags level <target> <level></green> - <gold>Set bag levels for players</gold>" - "<green>/bags give <target></green> - <gold>Give bags to players</gold>" - "<green>/bags sell-all <target> <ignore-item-value></green> - <gold>Sell all items of players</gold>" - "<green>/bags multiplier <target> <multiplier></green> - <gold>Set sales multiplier for players</gold>" - "<green>/bags open <target></green> - <gold>Open the bag of the specified player</gold>" - "<green>/bags help</green> - <gold>Show help</gold>" bag-upgrade: success: "<green>Bag successfully upgraded from <gold>%old%</gold> to <gold>%new% level</gold> for <gold>%cost%</gold>$." fail: "<red>Not enough money to upgrade the bag to <gold>%new% level</gold>. Requires <gold>%cost%</gold>$</red>" ```
items.yml
```
list of items costs
items: DIRT: 1 # sells for 1 COBBLESTONE: 25 DIAMOND_SWORD: 500 SAND: 1
...
```
РУССКИЙ
BetterBags — это плагин, который позволяет игрокам иметь сумку с такими функциями, как автоматический сбор предметов, улучшаемые уровни, настраиваемые ограниченные действия, поддержка MiniMessage, сохранение данных игроков, полностью настраиваемые предметы и сообщения и многое другое.
Особенности
> * Автоматический сбор предметов; возможность или невозможность подбирать только продаваемые предметы > * Улучшаемые уровни для сумки > * Возможность ограничивать действия игроков (отключение/включение возможности манипулировать предметами из сумки) > * Данные игрока в файлах `data/<uuid>.yml` > * Полностью настраиваемые предметы, сообщения, уровни, продаваемые предметы > * Предметы в сумке можно продавать нажатием одной кнопки > * Включает множитель продажи, который можно установить с помощью разрешения (`betterbags.multiplier.<number>`) или команды (`/bags multiplier`) > * Полная поддержка MiniMessage
Команды
> * `/bags reload` - Перезагружает конфигурацию плагина > * `/bags save` - Сохраняет данные игрока > * `/bags clear <target/selector>` - Очищает сумку игрока (или нескольких игроков) > * `/bags level <target/selector> <level>` - Устанавливает уровень сумки игрока (или нескольких игроков) > * `/bags give <target/selector>` - Выдает игроку (или нескольким игрокам) сумку > * `/bags multiplier <target/selector> <multiplier>` - Устанавливает множитель сумки игрока (или нескольких игроков) > * `/bags open <target/selector>` - Открывает сумку игрока (или нескольких игроков) > * `/bags sell-all <target/selector> <ignore-item-value>` - Продает все предметы в сумке игрока (или нескольких игроков) > * `/bags help` - Показывает это сообщение
Разрешения
> * `betterbags.usage` - Разрешение на использование команды `/bags` > * `betterbags.reload` - Разрешение на команду `/bags reload` > * `betterbags.save` - Разрешение на команду `/bags save` > * `betterbags.clear` - Разрешение на команду `/bags clear` > * `betterbags.setlevel` - Разрешение на команду `/bags level` > * `betterbags.give` - Разрешение на команду `/bags give` > * `betterbags.multiplier` - Разрешение на команду `/bags multiplier` > * `betterbags.multiplier.<number>` - Добавляет множитель `<number>` для игрока > * `betterbags.open` - Разрешение на команду `/bags open` > * `betterbags.sell-all` - Разрешение на команду `/bags sell-all`
Плейсхолдеры
> * `%uuid%` - uuid игрока > * `%player%` - имя игрока > * `%items-sum%` - сумма предметов в сумке > * `%current-level%` - текущий уровень сумки > * `%current-capacity%` - текущая вместимость сумки > * `%current-slots%` - текущие слоты сумки > * `%current-cost%` - текущая стоимость сумки > * `%next-level%` - следующий уровень сумки > * `%next-capacity%` - следующая вместимость сумки > * `%next-slots%` - следующие слоты сумки > * `%next-cost%` - следующая стоимость сумки
P.S. Конфиг изначально на Русском Языке)