(5.0.0 - 5.16.0) 0.7.1-beta (5.0.0 - 5.16.0) 0.8.2-pre (5.0.0 - 5.16.0) 0.9.1-pre (5.0.0 - 5.16.0) 1.0.0 (5.0.0 - 5.16.0) 1.3.0
107
Read more on poggitShopkeepers is made to be multi-version, in fact I announce with great joy that the plugin is available for both PocketMine-MP 5 and PocketMine-MP 4!
Warning
The Shopkeepers version for PocketMine-MP 4 is available exclusively here on GitHub since InvMenu has versions that are not compatible with each other! The branch can be found here
The base command is /shopkeepers
but you can also use /sk
, /skeepers
and /shopk
as aliases.
Here a list of all commands that you can use:
Command | Args | Description |
---|---|---|
info | none | Show the plugin's informations |
info | SHOP NAME | Show the shop configuration page |
edit | SHOP NAME | Edit the shop recepies |
create | SHOP NAME / NULL | Create a new shop, if the name is leaved empty will be generated |
summon | SHOP NAME | Summon a Shopkeeper entity (as a Villager) for your Shop |
rename | SHOP NAME and NEW NAME | [NOT AVAILABLE] Rename a current shop |
list | none | Show all of your shops |
There is not really an Admin shop but you can activate this function by using the command /sk info <SHOP NAME>
and then clicking on the Blaze Powder and then clicking on the red wool block that has "Admin shop" as its name
There are two ways:
/sk info <SHOP NAME>
and then click on the chest at the center of the GUIEasy: shift and click on the Shopkeeper
More easy: just hit it, it will die in only one hit!
Reporting bugs to developers to the developer
Here is what to include in the reporting to make it perfect:
If it is not complete how do we know how it all happened?
plugin_data/Shopkeepers
folderThis way we can compare the error with those files to find a possible transcription error
It changes a lot from version to version, and this would help us a lot to understand where to look for
Knowing where you downloaded the plugin from might help, always better to know some information
Shopkeepers.phar
"Last wade," in case we can analyze the source
Any contribution is greatly appreciated because you help me to lighten my workload, so here are some small guidelines to follow when you want to contribute:
I don't want to see things like this:
class Fox {
protected $fox; // WHAT'S THE TYPEjQuery321030619179516671513_1687468620179???'?'Q'2'wqiadw sdfbuhwhwrf jhs
function create($int, $bruh) { $bruh = 10-$int+$bruh; // AAAAAAAAAA. IT'S A PUBLIC, PRIVATE OR PROTECTED FUNCTION?!?!??!?
return $bruh; // AND WHAT'S THE RETURN TYPE???? AND WHY THE CODE IS IN THE FIRST LINE????????
}
}
They allow new contributors to understand what the file is for without having them parse 250 lines, so update them with the true purpose of the file!
// CORRECT:
/*
* Shopkeepers for PocketMine-MP
* Add custom shopkeepers to your PocketMine-MP server!
*
* Copyright (C) 2023-now FoxWorn3365
* Relased under GNU General Public License v3.0 (https://github.com/FoxWorn3365/Shopkeepers/blob/main/LICENSE)
* You can find the license file in the root folder of the project inside the LICENSE file!
* If not, see https://www.gnu.org/licenses/
*
* Useful links:
* - GitHub: https://github.com/FoxWorn3365/Shopkeepers
* - Contribution guidelines: https://github.com/FoxWorn3365/Shopkeepers#contributing
* - Author GitHub: https://github.com/FoxWorn3365
*
* Current file: /EntityManager.php
* Description: Load and save custom entities into and from a simple string
*/
// WRONG:
/*
* Shopkeepers for PocketMine-MP
* Add custom shopkeepers to your PocketMine-MP server!
*
* Copyright (C) 2023-now FoxWorn3365
* Relased under GNU General Public License v3.0 (https://github.com/FoxWorn3365/Shopkeepers/blob/main/LICENSE)
* You can find the license file in the root folder of the project inside the LICENSE file!
* If not, see https://www.gnu.org/licenses/
*
* Useful links:
* - GitHub: https://github.com/FoxWorn3365/Shopkeepers
* - Contribution guidelines: https://github.com/FoxWorn3365/Shopkeepers#contributing
* - Author GitHub: https://github.com/FoxWorn3365
*
* Current file: /EntityManager.php
* Description: Idk make entites ez
*/
utils
is reserved for Static functions and final classesAll functions in
utils
must have all static methods and all static classes must be in that directory and namespace
I want to understand it
permissions:
shopkeepers.base:
description: "Allows users to use the base command"
default: true
shopkeepers.shop.summon:
description: "Allows users to summon player's shop"
default: true
shopkeepers.shop.create:
description: "Allow users to create a shop"
default: true
shopkeepers.shop.edit:
description: "Allow users to edit they'r shop"
default: true
shopkeepers.shop.list:
description: "Allow users to see a list of their shops"
default: true
shopkeepers.shop.remove:
description: "Allow users to despawn they'r Villager shops"
default: true
shopkeepers.shop.rename:
descritpion: "Allow users to rename they'r shops"
default: true
shopkeepers.shop.namevisible:
description: "Allow users to decide if the shopkepeer's name should be visible or no"
default: true
shopkeepers.shop.admin:
description: "Allows users to decide if the shopkeepers should be admin or none"
default: op
shopkeepers.shop.kill:
description: "Allow users to kill every shopkeepers, also of other players"
default: op
shopkeepers.shop.defaultGUI:
description: "Allow users to see and use the /sk command without args to open the base GUI"
default: true
shopkeepers.shop.use:
description: "Allow users to use a shopkeeper when they touch it"
default: true
shopkeepers.shop.allowRemoteInventoryOpen:
description: "Allow users to open a shopkeeper's inventory with the command /sk inventory"
default: op
The plugin needs to save store data, and unlike other plugins, it uses .json files so they are more accessible to server owners, so here is the structure.
As a reminder, the plugin saves each player's data in separate files, so there will be a PlayerName.json
for each player that creates a shop.
Now, let's see the object:
{
"author":"<PlayerNAME>",
"admin":false,
"title":"<ShopNAME>",
"namevisible":false,
"inventory":[],
"items":[
{
"buy":nbtSerializedItem,
"sell":nbtSerializedItem
}
]
}
Name | Type | Description |
---|---|---|
author | string | The username of the shop author |
admin | bool | If the shop is an Admin shop, so you don't have to put items in the inventory and you won't earn anything |
title | string | The real name of the shop |
namevisible | bool | Should the shop name be visible when summoned? |
inventory | array | The inventory of the shop |
items | array | A list of all recepies (max 9) |
Thanks to Muqsit for the InvMenu virion who have contributed to the creation for this plugin!
Also this plugin helped me!
$this->trades->{PLAYER}
object because otherwise is OP!You can contact me via:
@foxworn
[email protected]