Shoppu

A shop plugin

minecraft_title

Shoppu is a shop plugin for PocketMine-MP 5 that lets you create custom item shops with categories, buy/sell prices, category icons, and full language support.

โœจ Features

  • ๐Ÿ“‚ Category-based shops โ€” Organize items into categories with custom names and icons
  • ๐Ÿ’ฐ Buy & Sell โ€” Configure items as buy-only, sell-only, or both
  • ๐Ÿ–ผ๏ธ Category Icons โ€” Each category shows a Minecraft item texture as its button icon
  • ๐ŸŒ 15 languages โ€” Fully translatable UI and messages (English, Italian, French, German, Spanish, Portuguese, Dutch, Swedish, Polish, Turkish, Russian, Ukrainian, Japanese, Korean, Chinese)
  • ๐Ÿฆ Economy support โ€” Built-in BedrockEconomy integration, extensible via interface
  • ๐Ÿ’พ Dual storage โ€” YAML (default) or JSON for shop data

๐Ÿ“‹ Requirements

Dependency
PocketMine-MP
BedrockEconomy

๐Ÿ“ฅ Installation

  1. Download the Shoppu.phar
  2. Place it in your server's plugins/ folder
  3. Restart the server
  4. Edit plugin_data/Shoppu/shop.yml to set up your shop

๐ŸŽฎ Commands

CommandDescriptionPermission
/shopOpens the shop UIshoppu.command

โš™๏ธ Configuration

config.yml

lang: eng                          # Language code
prefix: "ยง7[ยง6Shoppuยง7] ยงr"       # Chat message prefix
storage: yaml                      # Storage type: yaml or json

economy:
  type: bedrockeconomy             # Economy provider

๐ŸŒ Supported Languages

CodeLanguageCodeLanguage
engEnglishitaItalian
fraFrenchdeuGerman
espSpanishporPortuguese
nldDutchsweSwedish
polPolishturTurkish
rusRussianukrUkrainian
jpnJapanesekorKorean
zhoChinese (Simplified)

Language files are in plugin_data/Shoppu/lang/. Edit them to customize any message.

๐Ÿช Creating a Shop

Shops are defined in plugin_data/Shoppu/shop.yml.

Structure

categories:
  <category_id>:                # Internal ID (lowercase, no spaces)
    name: "Display Name"        # Shown in the UI
    icon: "stone"               # Minecraft item/block for the button icon (optional)
    items:
      <item_id>:                # Minecraft item/block ID (e.g. stone, apple)
        buy: <price>            # Purchase price โ€” remove for sell-only
        sell: <price>           # Sell price โ€” remove for buy-only

Examples

Both buy and sell:

stone:
  buy: 10
  sell: 5

Buy-only (no sell price):

diamond:
  buy: 500

Sell-only (no buy price):

gravel:
  sell: 1

๐Ÿ–ผ๏ธ Category Icons

Each category can have an icon field pointing to a Minecraft item or block ID:

food:
  name: "Food"
  icon: "apple"          # Shows the apple texture on the button
  items:
    apple:
      buy: 20
      sell: 10

The plugin automatically resolves the correct texture path:

  • Blocks โ†’ textures/blocks/<id>
  • Items โ†’ textures/items/<id>

If no icon is set, the button appears without a texture.

๐Ÿ“ฆ Example Shop

Here's a complete shop with 6 categories covering building blocks, farming, food, ores, mob drops, and redstone components:

categories:
  building:
    name: "Building Blocks"
    icon: "stone"
    items:
      stone:
        buy: 10
        sell: 5
      oak_planks:
        buy: 8
        sell: 4
      glass:
        buy: 12
        sell: 6

  farming:
    name: "Farming"
    icon: "wheat"
    items:
      wheat:
        buy: 5
        sell: 2
      carrot:
        buy: 8
        sell: 4
      melon:
        buy: 10
        sell: 5

  food:
    name: "Food"
    icon: "apple"
    items:
      apple:
        buy: 20
        sell: 10
      bread:
        buy: 15
        sell: 7
      cooked_beef:
        buy: 30
        sell: 15
      golden_apple:
        buy: 200
        sell: 100

  ores:
    name: "Ores & Minerals"
    icon: "diamond"
    items:
      iron_ingot:
        buy: 50
        sell: 25
      diamond:
        buy: 500
        sell: 250
      netherite_ingot:
        buy: 2000
        sell: 1000

  mob_drops:
    name: "Mob Drops"
    icon: "bone"
    items:
      ender_pearl:
        buy: 200
        sell: 100
      blaze_rod:
        buy: 150
        sell: 75
      slime_ball:
        buy: 30
        sell: 15

  redstone:
    name: "Redstone & Tech"
    icon: "redstone"
    items:
      piston:
        buy: 40
        sell: 20
      hopper:
        buy: 70
        sell: 35
      rail:
        buy: 15
        sell: 7

Use any valid Minecraft item ID: stone, diamond, cooked_beef, iron_ingot, wheat, bone, etc.

๐Ÿฆ Economy

Supports BedrockEconomy out of the box.

Adding a Custom Economy

Create a class implementing Shoppu\economy\EconomyProvider:

namespace Shoppu\economy;

use pocketmine\player\Player;

interface EconomyProvider{
    public function getMoney(Player $player, callable $callback): void;
    public function addMoney(Player $player, float $amount, callable $callback): void;
    public function subtractMoney(Player $player, float $amount, callable $callback): void;
    public function getCurrencySymbol(): string;
}

Then register it in Main::createEconomyProvider() and set economy.type in config.yml.

๐ŸŒ Translating

Language files are in plugin_data/Shoppu/lang/. To add a new language:

  1. Copy eng.yml and rename it (e.g. ara.yml for Arabic)
  2. Translate the values (keep the keys unchanged)
  3. Set lang: ara in config.yml

Available placeholders: {player}, {item}, {price}, {quantity}, {total}, {name}, {category}.

๐Ÿ’พ Storage

TypeDescription
yamlHuman-readable YAML files (default)
jsonJSON format for shop data

Set storage in config.yml to switch.

โญ Contribute

  • Found a bug? Open an issue
  • Pull requests welcome
  • Star the repo if you like the project!

๐Ÿ“„ License

MIT

Details

Version: 1.0.0

Downloads: 44

Updated: 7/5/2026

Supported API versions: 5.0.0 to 5.36.0

Categories: General, Fun, Economy

License: MIT

Producers

Collaborator