MarketPlaceDocs

Contents

Configuration

Configuration

Default Configuration
Table
Configuration Node Type Default Help
allowPublish Boolean (true or false) true Disallow players from publish items
commands.skiphelp Boolean (true or false) false If true /marketplace command will skip help message and instead open make the same function as /marketplace search
commands.help String &a/market &c{name} &3{arguments} &6(&7{help}&6) Commands help format
commands.show-default-aliases Boolean (true or false) true If true, help command will display the default subcommands
commands.autoCompleteEnabled Boolean (true or false) true No info!
commands.deepAutoCompleteEnabled Boolean (true or false) true No info!
command.aliases String list This is a list, click on the name to see it You have to restart the server to apply the changes
command.marketall.autoComplete String marketall No info!
command.marketall.aliases String list This is a list, click on the name to see it No info!
command.marketall.permission String none No info!
commands.nopermission String &cYou don’t have permission to use this command No info!
command.my.autoComplete String my No info!
command.my.aliases String list This is a list, click on the name to see it No info!
command.my.description String Check your sold, unsold, history etc No info!
command.my.argumentsHelp String   No info!
command.listings.autoComplete String listings No info!
command.listings.aliases String list This is a list, click on the name to see it No info!
command.listings.description String Open the menu of unbrought items of any player (You can remove listings) No info!
command.listings.argumentsHelp String <player_name|player_uuid> No info!
command.publish.autoComplete String publish No info!
command.publish.aliases String list This is a list, click on the name to see it No info!
command.publish.description String Publish a item in the marketplace No info!
command.publish.argumentsHelp String <price> No info!
command.purge.autoComplete String purge No info!
command.purge.aliases String list This is a list, click on the name to see it No info!
command.purge.description String Before use this command make sure you read this: http://marketplacedocs.readthedocs.io/en/latest/commands/purge.html No info!
command.purge.argumentsHelp String <argument-name> [argument-value] No info!
command.search.autoComplete String search No info!
command.search.aliases String list This is a list, click on the name to see it No info!
command.search.description String Open the search menu No info!
command.search.argumentsHelp String [all|id|categories|name|lore|player] [name|lore|player-name] No info!
command.search.arguments.all String all No info!
command.search.arguments.id String id No info!
command.search.arguments.categories String categories No info!
command.search.arguments.name String name No info!
command.search.arguments.lore String lore No info!
command.search.arguments.player String player No info!
command.select.autoComplete String select No info!
command.select.aliases String list This is a list, click on the name to see it No info!
command.select.description String Same args as purge, but it show the info instead on remove: http://marketplacedocs.readthedocs.io/en/latest/commands/purge.html No info!
command.select.argumentsHelp String <argument-name> [argument-value]… No info!
command.limits.autoComplete String limits No info!
command.limits.aliases String list This is a list, click on the name to see it No info!
command.limits.description String Manage player limits No info!
command.limits.argumentsHelp String [set|get|increment|decrement] [player] [slots] No info!
command.reload.autoComplete String reload No info!
command.reload.aliases String list This is a list, click on the name to see it No info!
command.reload.description String Reload configuration No info!
command.reload.argumentsHelp String   No info!
command.help.autoComplete String help No info!
command.help.aliases String list This is a list, click on the name to see it No info!
command.help.description String Display this menu or help for a specific command No info!
command.help.argumentsHelp String [command] No info!
command.migrate.autoComplete String migrate No info!
command.migrate.aliases String list This is a list, click on the name to see it No info!
command.migrate.description String Migrate from other plugins No info!
command.migrate.argumentsHelp String <database-type> No info!
command.setpin.autoComplete String setpin No info!
command.setpin.aliases String list This is a list, click on the name to see it No info!
command.setpin.description String Set the pin for login through the web client No info!
command.setpin.argumentsHelp String <new-pin> No info!
command.cancel.autoComplete String cancel No info!
command.cancel.aliases String list This is a list, click on the name to see it No info!
command.cancel.description String Cancel all the listings (this is an experimental/migration command) No info!
command.cancel.argumentsHelp String –all No info!
command.wallet.autoComplete String wallet No info!
command.wallet.aliases String list This is a list, click on the name to see it No info!
command.wallet.description String Adds money to your web account, this allows you yo purchase items through the web system No info!
command.wallet.argumentsHelp String <deposit|withdraw|check> [player|amount] [amount] No info!
command.wallet.arguments.deposit String deposit No info!
command.wallet.arguments.withdraw String withdraw No info!
command.wallet.arguments.check String check No info!
database.mysql.hostname String localhost Database hostname
database.mysql.username String root Database username
database.mysql.password String 123 Database password
database.mysql.port String 3306 Database port
database.mysql.database String marketplace Database database name
database.sqlite.file String marketplace.db In case of using SQLite, the name of the file
database.type String sqlite sqlite or mysql (MySQL recommended and needed for webmarket feature)
database.tables.catalog String catalog Name of the table where selling items will be saved
database.tables.limit String limit Name of the table where limits will be saved (If db limits system is enabled)
database.tables.webaccounts String webaccounts Name of the table where web accounts will be saved (If db web market system is enabled)
database.tables.sync_info String syncinfo This table will contain info for the webmarket, protocol number, taxes etc
webmarket.enabled Boolean (true or false) false Purchase, Manage Listings & more through web (Note that you have to enabled mysql db for this to work)
webmarket.pin.empty String &cPlease insert a pin (All web sessions have been closed) Purchase, Manage Listings & more through web (Note that you have to enabled mysql db for this to work)
webmarket.pin.done String &aYour pin has been established Message displayed when a players change pin
webmarket.pin.error String &cUnexpected error while changing your pin, please contact an administrator Message displayed when an error occurs on pin change procedure
webmarket.account.invalid String &cSorry but this account doesn’t exists, please use /mp setpin <pin> to set a pin and create the account Used mainly by administrators, when they search an invalid user, and by users, when they query their money
webmarket.account.money String &7Wallet Money:&6 {money}$ Used mainly by administrators, when they search an invalid user, and by users, when they query their money
webmarket.account.deposit String &aYou just deposited &6${money}&a in your wallet When player deposit money in their wallet
webmarket.account.withdraw String &aYou just withdraw &6${money}&a from your wallet When player withdraw money from their wallet
webmarket.account.error String &cUnexpected error while modifying your account data, please contact an administrator Unexpected error updating the account data
webmarket.account.allow_withdraw Boolean (true or false) false Depending on the context on the server, sometime is not useful to have a simple bank
limits.default Integer -1 That means any player will have access to have 3 (Default) items selling at the same time, util you modify it with /market limits (-1 to unlimited)
limits.reach String &cYou reach the limit of &6{number}&c listings at the same time! When players reach the limit
limits.mode String permissions More info: http://marketplacedocs.readthedocs.io/en/latest/misc/limits.html
limits.multiple String stack More info: http://marketplacedocs.readthedocs.io/en/latest/misc/limits.html
limits.permissions String list This is a list, click on the name to see it No info!
limits.visualize String &7You have &6{used}&7/&6{limit}&7 published listings No info!
limits.visualize_other String &7{player} has &6{used}&7/&6{limit}&7 published listings No info!
logs.console Boolean (true or false) true Log marketplace transactions in console?
logs.file Boolean (true or false) true Log marketplace transactions in plugins/MaketPlace/marketplace.log?
logs.publish Boolean (true or false) true Log /market publish command?
logs.remove_listing Boolean (true or false) true Log /market my > Unbrought items > Remove an item action?
logs.admin_cancel Boolean (true or false) true Log whenever an admin cancels and item?
logs.claim Boolean (true or false) true Log /market my > Waiting for Money Claim > Claim money action?
logs.purchase Boolean (true or false) true Log /market search > Purchase an item action?
publish.publish_menu.enabled Boolean (true or false) true Open the publish menu if no arguments are provided
publish.publish_menu.click String &6Click: &7{delta} No info!
publish.publish_menu.shiftClick String &6Shift-Click: &7{delta} No info!
publish.publish_menu.rightClick String &6Right Click: &7{delta} No info!
publish.publish_menu.shiftRightClick String &6Shift-Right Click: &7{delta} No info!
publish.publish_menu.money_small Decimal/Double 1.0 No info!
publish.publish_menu.money_big Decimal/Double 10.0 No info!
publish.publish_menu.amount_small Decimal/Double 1.0 No info!
publish.publish_menu.amount_big Decimal/Double 10.0 No info!
publish.publish_menu.publish String &aPublish! No info!
publish.publish_menu.amount String &7Item Amount: &6{amount} No info!
publish.publish_menu.tax String list This is a list, click on the name to see it No info!
publish.identical_limit Integer -1 Avoid players from publishing more than X listings of the same item (counting id, name, lore, nbt and ignoring amount), -1 for infinite
publish.identical_message String &cYou have too many identical items published already! Message displayed when the identical limit is passed
publish.price.min Integer 1 Min price (No recommended less than 1)
publish.price.max Integer 2000000000 Max price (It may have problems upper 2,000,000,000)
publish.price.error String &cThat price is out of bounds! When the price is out of min or max
publish.invaliditem String &cInvalid item When the item is air
publish.done String &aYou publish &6{item} &afor &7${price}&a into the marketplace When a item is published
publish.claim String &aYou claim &6${price}&a from &6{item} When claim a sold listing
publish.bulkclaim String &aYou claimed the money of &6{amount}&a sold items and got &6{price}$ When claim all sold listing
publish.bulkclaim_enabled Boolean (true or false) true No info!
publish.error String &cUnexpected error ocurred while publising your item, please contact to server administrator with the current time When internal stuff fails, you should search the error in console with the hour and report it to rodel77
messages.header String &6[&dMarket&bPlace&6]&7 Header of all messages
messages.invalidnumber String &cInvalid number Invalid number
messages.invalidplayer String &cInvalid player Invalid player
messages.dropped String &eSome items have been dropped! When your menu is full and some items got dropped
menu.nextpage String &7Next page No info!
menu.previouspage String &7Previous page No info!
menu.page.title String &7Page: &6{page}/{pages} No info!
menu.page.lore String list This is a list, click on the name to see it No info!
menu.marketplace.title String &9MarketPlace (&6{search}&9) No info!
menu.marketplace.filters.title String &7Filters… No info!
menu.marketplace.item String list This is a list, click on the name to see it No info!
menu.marketplace.back String &bBack No info!
menu.marketplace.loading String &6Loading… No info!
menu.marketplace.gotomy String &6Go to Your Listings No info!
menu.marketplace.reference.ingame String &6In-Game No info!
menu.marketplace.reference.webmarket String &3Web No info!
menu.marketplace.order.price.name String &7Order By: &6Price No info!
menu.marketplace.order.price.asc String &3Cheap to expensive No info!
menu.marketplace.order.price.desc String &3Expensive to cheap No info!
menu.marketplace.order.item_amount.name String &7Order By: &7Amount No info!
menu.marketplace.order.item_amount.asc String &3Less to more No info!
menu.marketplace.order.item_amount.desc String &3More to less No info!
menu.marketplace.order.publish_date.name String &7Order By: &2Time No info!
menu.marketplace.order.publish_date.asc String &3Older to newer No info!
menu.marketplace.order.publish_date.desc String &3Newer to older No info!
menu.marketplace.claimall String &6Claim All No info!
menu.marketplace.asc String &3Ascending No info!
menu.marketplace.desc String &3Descending No info!
menu.main.title String &9MarketPlace No info!
menu.main.idsearch String &eSearch By ID No info!
menu.main.namesearch String &eSearch By Name No info!
menu.main.loresearch String &eSearch By Lore No info!
menu.main.allsearch String &eSearch all MarketPlace No info!
menu.main.categories String &eSearch Categories No info!
menu.categories.title String &eSelect a category No info!
menu.listings.deliveries String &5Deliveries ({amount}) No info!
menu.listings.gotosearch String &7Go to Search Menu No info!
menu.listings.unclaimed String &dWaiting for money claim No info!
menu.listings.unbought String &cUnbought listings No info!
menu.listings.cancelled String &cCancelled/Expired listings No info!
menu.listings.removed String &aYou remove succesfully your listing &6{listing}! No info!
menu.deliveries.claimed String &7You claimed a delivery! No info!
menu.deliveries.lore String list This is a list, click on the name to see it No info!
menu.deliveries.title String &6Your deliveries No info!
menu.listings.history.purchases String &3Purchases History No info!
menu.listings.history.purchasesLore String list This is a list, click on the name to see it No info!
menu.listings.history.sales String &9Sales History No info!
menu.listings.history.salesLore String list This is a list, click on the name to see it No info!
menu.listings.claims.title String &9Claim menu No info!
menu.listings.claims.claimlore String list This is a list, click on the name to see it No info!
menu.confirm.title String &aConfirm Purchase No info!
menu.confirm.cancel String &cCancel No info!
menu.confirm.seller String &7Seller:&6 {seller} No info!
menu.confirm.price String &7Price:&6 ${price} No info!
menu.confirm.confirm.name String &aPurchase No info!
menu.confirm.confirm.lore String list This is a list, click on the name to see it No info!
menu.idsearch.title String &3Search By ID No info!
menu.idsearch.info String list This is a list, click on the name to see it No info!
menu.my.title String &5My Listings No info!
menu.items.background.item String GRAY_STAINED_GLASS_PANE No info!
menu.items.background.subid Integer 7 No info!
menu.items.background.name String &0 No info!
menu.items.changemenu.item String ARROW No info!
menu.items.purchasesHistory.item String ENCHANTED_BOOK No info!
menu.items.unbought.item String NAME_TAG No info!
menu.items.deliveries.item String MINECART No info!
menu.items.cancelled.item String BARRIER This may vary in versions
menu.items.salesHistory.item String BOOK No info!
menu.items.claimNormal.item String GOLDEN_APPLE No info!
menu.items.claimNotification.item String GOLDEN_APPLE No info!
menu.items.claimNotification.subid Integer 1 No info!
menu.items.searchName.item String NAME_TAG No info!
menu.items.searchID.item String APPLE No info!
menu.items.searchCategories.item String BOOKSHELF No info!
menu.items.searchLore.item String BOOK No info!
menu.items.searchAll.item String GOLDEN_APPLE No info!
menu.items.back.item String REDSTONE No info!
menu.items.confirmCancel.item String REDSTONE_BLOCK No info!
menu.items.confirmPurchase.item String LIME_STAINED_GLASS_PANE No info!
menu.items.confirmPurchase.subid Integer 5 No info!
menu.items.page.item String FEATHER No info!
menu.items.pageNext.item String ARROW No info!
menu.items.pageBack.item String ARROW No info!
menu.items.priceOrder.item String ARROW No info!
menu.items.amountOrder.item String COBBLESTONE No info!
menu.items.timeOrder.item String CLOCK No info!
menu.items.claimAll.item String GOLDEN_APPLE No info!
misc.disabled String &cThis feature is currently disabled! No info!
misc.nomoney String &cYou don’t have money to perform this action No info!
misc.moneylimit String &cYou can’t receive more money than your limit! No info!
misc.fetchHeads Boolean (true or false) true If true will try to fetch heads from Mojang’s API, otherwise just use steve head
misc.showOwnItems Boolean (true or false) false If true players will be able to see their own items in the marketplace
inventory.dropItemsOnFull Boolean (true or false) true If false, items will not drop when inventory is full, instead a message will show
inventory.full String &cYour inventory is full If inventory.dropItemsOnFull option is false, this message will be displayed if player inventory is full
inspect.player String &aInspect {player}’s listings No info!
inspect.cancel_listing String &cCancel this listing No info!
inspect.inspecting String &aInspecting {player} No info!
inspect.action1 String &c&lClick to &ncancel No info!
inspect.action2 String &c&lShift-Click to &ndelete No info!
inspect.action3 String &c&lClick to &ndelete No info!
inspect.broadcast Boolean (true or false) false No info!
inspect.broadcast_message String &c{canceller} cancelled {player}’s {item} No info!
inspect.remove_permission String marketplace.inspect.remove No info!
inspect.cancel_permission String marketplace.inspect.cancel No info!
inspect.remove_enabled Boolean (true or false) true No info!
searches.categories Boolean (true or false) true No info!
searches.name Boolean (true or false) true No info!
searches.id Boolean (true or false) true No info!
searches.lore Boolean (true or false) true No info!
categories.tools.name String &bTools No info!
categories.tools.icon String WOOD_PICKAXE No info!
categories.tools.description String &7Axes, Pickxes, Hoes and more tools! No info!
categories.tools.items String list This is a list, click on the name to see it No info!
categories.equipment.name String &5Equipment No info!
categories.equipment.icon String IRON_HELMET No info!
categories.equipment.description String &7Armors of any kind No info!
categories.equipment.items String list This is a list, click on the name to see it No info!
categories.blocks.name String &7Blocks No info!
categories.blocks.icon String DIRT No info!
categories.blocks.description String &bAll the blocks you can imagine No info!
categories.blocks.items String list This is a list, click on the name to see it No info!
categories.weapons.name String &6Weapons No info!
categories.weapons.icon String STONE_SWORD No info!
categories.weapons.description String &7Swords, bows and arrows No info!
categories.weapons.items String list This is a list, click on the name to see it No info!
categories.redstone.name String &cRedstone No info!
categories.redstone.icon String REDSTONE No info!
categories.redstone.description String &7Everything you need ton&7create redstone contraptions No info!
categories.redstone.items String list This is a list, click on the name to see it No info!
chatsearch.lore String &aWrite in chat the lore you want to search (- to cancel): No info!
chatsearch.name String &aWrite in chat the name you want to search (- to cancel): No info!
chatsearch.cancel String
No info!
chatsearch.cancelled String &cSearch cancelled No info!
chatsearch.timeout_seconds Integer 60 No info!
purchase.nomoney String &cYou don’t have money to purchase this item! No info!
purchase.noavailable String &cSorry, this item is no longer available No info!
purchase.purchase String &aYou purchase &6{item}&a successfully No info!
purchase.notification String &6{buyer}&a buy your &6{item}&a claim your money in &7/market my No info!
purchase.notificationJoin String &aYou have &6{listings}&a listings to claim (Use &7/market my&a to claim it)! No info!
shout.permission String market.shout No info!
shout.message String &6{player}&3 published &6{item}&3 in the marketplace No info!
shout.click String &7[Click here to open {player}’s shop] No info!
date.format String dd/MM/yy No info!
date.now String just now No info!
date.seconds String {time} seconds ago No info!
date.minutes String {time} minutes ago No info!
date.never String Never No info!
money.format String #,###.00 This is not the right to replace commas, dots, please check money.formatLocale instead
money.formatLocale String en-US Click on the node name to see more into
tax.sellerTax Decimal/Double 1.35 Tax percent to the seller when the money its claimed (0-100)
tax.buyerTax Integer 0 Extra tax that the buyer have to pay (percentage from the original price, 0-100)
tax.webPurchaseTax Decimal/Double 0.0 The extra percentage of the total price payed on purchasing through web-client
tax.publish.permissions String list This is a list, click on the name to see it No info!
tax.publish.default Decimal/Double 0.0 No info!
tax.publish.confirm String &cBy publishing this item ${money} (A {tax}% of the raw price) will be withdrawn from your account, please type this command again to confirm No info!
tax.publish.confirm_cancel String &cPublish confirm cancelled No info!
tax.publish.confirm_time Integer 5 After this time (in seconds) the confirm option will be canceled
tax.publish.nomoney String &cSorry but you have not enough money to pay publish taxes (${money}) No info!
tax.publish.return_on_cancel Boolean (true or false) false No info!
tax.publish.return_on_cancel_expired Boolean (true or false) false No info!
tax.publish.return_message String &a${amount} has been deposited to your account No info!
timeout.default String 7d No info!
timeout.permissions String list This is a list, click on the name to see it No info!
placeholderapi.latest String &6{item} &c{price}$ &7({seller}) No info!
langutils.default String en_us No info!
blacklist.enabled Boolean (true or false) false No info!
blacklist.message String &cYou cannot publish this item in the market! No info!
blacklist.items String list This is a list, click on the name to see it No info!
blacklist.lore_enabled Boolean (true or false) false No info!
blacklist.lores String list This is a list, click on the name to see it No info!
blacklist.name_enabled Boolean (true or false) false No info!
blacklist.names String list This is a list, click on the name to see it No info!
discordWebhook.enabled Boolean (true or false) false No info!
discordWebhook.debug Boolean (true or false) false No info!
discordWebhook.url String   No info!
discordWebhook.botName String MarketPlace No info!
discordWebhook.botAvatar String https://www.spigotmc.org/data/resource_icons/48/48526.jpg No info!
discordWebhook.notification.publish.enabled Boolean (true or false) true No info!
discordWebhook.notification.publish.title String New Item Published No info!
discordWebhook.notification.publish.description String {player} published {item} for ${price} No info!
discordWebhook.notification.publish.color String #fec601 No info!
discordWebhook.notification.purchase.enabled Boolean (true or false) true No info!
discordWebhook.notification.purchase.title String Item Purchased No info!
discordWebhook.notification.purchase.description String {buyer} purchased {item} for ${price} published by {seller} No info!
discordWebhook.notification.purchase.color String #30e539 No info!

Commands

Commands

Information about the commands

Command Permission Recommended Rank Description
/mp publish/sell <price> market.publish Users Sell the item in your hand.
/mp search market.search Users Open the search menu.
/mp my/self market.my Users Open your “dashboard”.
/mp listings/inspect <playeruuid/playername> market.listings Moderators Open the “dashboard” of another player (You can delete items).
/mp purge <parameters> market.purge Moderators Purge listings with specific parameters.
/mp reload market.reload Admins Reload the plugin configuration.
/mp limits [get|set|increment|decrement] [player] [slots] Check: Limits Admins & Players Manage the limits of players.
/mp select <parameters> market.select Moderators Get a plain chat message of specific listings (Same parameters as purge).
/mp help [command] (No permission required) Users Open the help menu or get help from a specific command.
/mp cancel/borrow <options> market.cancel Moderators Cancel items, for now just –all enabled (Experimental/Migration).
/mp setpin/webpin <new-pin> market.setpin Users Sets the pin of your webclient account. WebMarket should be enabled.
/mp wallet/webmoney <deposit/widthdraw/check> [player/$] market.wallet Users Manage the money in your webclient account. WebMarket should be enabled.
/mp migrate market.migrate Admins Used to migrate from other plugins similar to MP. (Requests Open).
/mp migrate-nbt market.migrate-nbt Admins Used to migrate from SNBT to NBT (Update 3.0.0).
Contents
Purge Command

With purge commands, you can clear unused data, remove all listings of a player or remove all the listings

Command Syntaxis

/market purge <argument-name> [argument-value]

Arguments & Examples (Read all before executing any purge command)

These arguments will remove ANY listing published 1 year ago

/market purge -t 360d

As you can see it says -t “Time” 360 Days you can use d (Days) h (Hours) m (Minutes) s (Seconds) and you can multiple units ex: “23d40h20m18s” or “900m” etc but notice that will make players that has items published in marketplace lose it

Then you can remove only history with this command: (Items that are sold and claimed unused data, its just there to show when players search their old purchasese/sales)

/market purge -h -t 360d

Now you are clearing the history of 1 year ago

Note

Its recommended to purge history data if you have to much players publising items or just a cheap db

As well you can remove the time argument to remove all history data

/market purge -h

You can also remove all the listings in the marketplace (This will truncate the db table)

/market purge -all

Specifyng Users

To remove all data of a specific seller you can use this command:

/market purge -s rodel77

This will search the last name registered in the db but players can change the name then you can use uuid:

/market purge -s 658f236d-5ecc-49d4-b074-4161ebff9117

You can also mix this with the command showed above to delete listings of time ago

/market purge -s 658f236d-5ecc-49d4-b074-4161ebff9117 -t 306d

Or just clear the history of the player

/market purge -s 658f236d-5ecc-49d4-b074-4161ebff9117 -h

Or clear the history of 1 year ago

/market purge -s 658f236d-5ecc-49d4-b074-4161ebff9117 -h -t 306d

As well you can specify the buyer

/market purge -b <uuid or name>

And remove purchases specifyng the buyer and the seller

/market purge -b buyer -s seller

Or the history

/market purge -b buyer -s seller -h

Note

When you perform the command he’s going to tell you what he’s going to do (Any question please join in the discord support chat and ask to rodel before experimenting!)

Misc

Misc

Contents
Discord WebHooks

In MarketPlace you can add notifications into your Discord Server, this will send custom messages about new listings and purchases (You can enable what you want)

Getting Webhook URL
  • Click Edit channel in the channel that you want to put the bot
_images/webhooks1.png
  • Now click on Webhooks and then Create Webhook
_images/webhooks2.png
  • Then it will open this:
_images/webhooks3.png
  • Now copy the WEBHOOK URL this is secret, with this URL any software can send messages to that channel

Note

Is not needed to edit name or avatar image, it will be overrited by the plugin (In the config, see above)

Configuration

Now lets configure the webhook in the plugin!

  • Make sure that you are using at least MarketPlace 1.3.0
  • Open your config.yml and search the discordWebhook key, usually at the bottom
  • By default it is disabled, enabled: false turn it on, enabled: true
  • Now paste the URL you copy before and paste it on the url: key
  • To make the first test or report errors with webhooks you can enable debug:, this will print a lot of information about the hook (If you report errors make sure to remove the webhook url to avoid)
  • Then you can change the botName: and the botAvatar: the avatar by default its this:
_images/webhooksAvatar.png
  • You can modify the messages to, the title, message/description and color
_images/webhooksMessage.png
  • The color format its in hex, so you may wan’t to use a hex color selector, Chrome has one built-in, but its a bit tricky to use it, then you can use this: https://www.webpagefx.com/web-design/color-picker/
  • Awesome, you have setup the webhook! Now just do /mp reload publish an item or buy one to test that your webhook work! (If you have any problem enabled debug and send me all debug logs)
What is a WebHook

This is a bit more techical, for those ones that are curious!

A page gives you an URL, and then you can send stuff to that URL like a RESTAPI, its generally used to send notifications, create builds from git commits… etc

Limits
Command
Command Permission Use
/mp limits market.limits.see Let players see their limits
/mp limits get <uuid|name> market.limits.see_others Let players (moderators) see other people limits
/mp limits set <uuid|name> <amount> market.limits.edit Set the limits of a player (only database limits)
/mp limits increment <uuid|name> <amount> market.limits.edit Increment the limits of a player (only database limits)
/mp limits decrement <uuid|name> <amount> market.limits.edit Decrement the limits of a player (only database limits)
Systems

In marketplace you can add limit of listings, there are 2 system that you can use

Permission-based limits

With this system (Selected by default) you can define permissions in your limits.permissions node in the config file, just like this

limits:
     permissions:
     - marketplace.limits.vip=3
     - marketplace.limits.donor=2

This mean that ANY player that has marketplace.limits.vip permission would have access to publish 3 listings

Note

You can add any permission name you want, not necessarily marketplace.*

Note

Unlike database-based method, you can only use get command, if you want to manipulate the limits you should change the entire permission

What happend if i have multiple permissions?

You can choose between two options on limits.multiple node in config file:

stack (Selected by default) Sum all the permissions you have

priority Find the permission with more limits

Database-based limits

To enabled this mode you have to edit limits.mode node in your config to db instead of permissions

This mode can be used by commands:

/mp limits set <player> <slots> Set the limits of a player (The player should be online!) /mp limits get <player> <slots> Get the limits of a player (The player should be online!) /mp limits increment <player> <slots> Increment the limits of a player (The player should be online!) /mp limits decrement <player> <slots> Decrement the limits of a player (The player should be online!)

What method choose?

This depends on what you wanna do, if you want to grant limits to a player for donating just use the permission-based system though if you want to grant different limits for each player for example buying in ingame store you should use the database-based system since is more practical for this kind of implementations

Default limits & Unlimited

Use limits.default node in config to define the default limit that a player have And also you can use -1 limits to make it unlimited (Works in both systems and default in config)

SNBT -> NBT Migration

MarketPlace was using SNBT (String NBT) to save item data but since 3.0.0 we are going to use Binary NBT, this requires a migration process.

This might seem useless but otherwise, there’s a huge chance that your whole MP catalog will not work in future versions.

Why the migration

Minecraft String NBT system is inconsistent, just look at this test that I did:

  • 1.7.10: {pages:[0:"This is the body part 1",1:"This is the body part 2",],author:"rodel77",title:"This is the titl",}
  • 1.8.8: {pages:[0:"This is the body part 1",1:"This is the body part 2"],author:"rodel77",title:"This is the titl"}
  • 1.9.4: {pages:[0:"{\"text\":\"This is the body part 1\"}",1:"{\"text\":\"This is the body part 2\"}"],author:"rodel77",title:"This is the titl",resolved:1b}
  • 1.10.2: {pages:[0:"{\"text\":\"This is the body part 1\"}",1:"{\"text\":\"This is the body part 2\"}"],author:"rodel77",title:"This is the titl"}
  • 1.11.2: {generation:0,pages:[0:"{\"text\":\"This is the body part 1\"}",1:"{\"text\":\"This is the body part 2\"}"],author:"rodel77",title:"This is the titl",resolved:1b}
  • 1.12.2: {generation:0,pages:["{\"text\":\"This is the body part 1\"}","{\"text\":\"This is the body part 2\"}"],author:"rodel77",title:"This is the titl",resolved:1b}
  • 1.13.2: {generation:0,pages:["{\"text\":\"This is the body part 1\"}","{\"text\":\"This is the body part 2\"}"],author:"rodel77",title:"This is the titl",resolved:1b}
  • 1.14.4: {generation:0,pages:['{"text":"This is the body part 1"}','{"text":"This is the body part 2"}'],author:"rodel77",title:"This is the titl",resolved:1b}
  • 1.15.2: {generation:0,pages:['{"text":"This is the body part 1"}','{"text":"This is the body part 2"}'],author:"rodel77",title:"This is the titl",resolved:1b}

As you can see this doesn’t make any sense because:

  • Imagine you are in 1.8.8, then you can’t update to 1.9.4 for the fact that your SNBT is invalid
  • MarketPlace-WebClient uses regex so reading “pages”, for example, will yield text of 0: depending on the MC server

With these change we cannot guarantee that items will work forever in any given version, NBTS CONTENT can change, but structure didn’t since 2011 and there’s no chance of doing so.

After doing tests with GZIP-Compressed Binary NBTS (parsing the binary in each version and again) I can tell that they are all the same; deterministic.

How to do it?

If you just downloaded the plugin and made a few tests just delete the tables, that would be the best, new tables will generate with new NBTS.

Otherwise you would like to backup your catalog table first (in SQLite just copy the .db file, in MySQL you can export the SQL Migration).

Then you can run /mp migrate-nbt, this will disable the MarketPlace for obvious security reasons and might take a while (you will be told the current percentage, each 10%). I don’t really recommend stopping the server but is not a mortal thing to do (you’ll have to start the whole process).

After the migration is completed only people with marketplace.post-migration permission will be able to use the MarketPlace, this process allows you and other OPs to check that everything is okay (it should be if all of your items where created in the same version as you run this command).

To leave everything just like before use /mp migrate-nbt again, now all the users with access to the marketplace can enjoy it again.

I am not resposible for data-loss in case you haven’t made a backup

You can report any other issue to me, please grant as much info as possible.

Placeholder API

In marketplace you have the ability to link with Placeholder API, these are the current one you can use:

%marketplace_last_[x]% will allow you to show the latest listings published on your server, you can use from 1 to 10 (1th being the latest and 10th the oldest)

With this placeholder you can do something like this

_images/placeholder.png

%marketplace_limit% show the published listings limit to that player

%marketplace_published% show the amount of published listings

%marketplace_limit_remaining% show the remaining slots (limit-published)