Better Bags
Plugin that adds bags, thats works like sacks, but with upgrades.
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
<details> <summary>config.yml</summary>
```
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
...
```
</details>
РУССКИЙ
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. Конфиг изначально на Русском Языке)