GithubHelp home page GithubHelp logo

shopkeepers / shopkeepers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nisovin/shopkeepers

99.0 99.0 54.0 8.35 MB

A Bukkit plugin to create custom villager shopkeepers.

Home Page: https://dev.bukkit.org/projects/shopkeepers

License: GNU General Public License v3.0

Java 99.58% Shell 0.42%
bukkit java minecraft shopkeepers spigot

shopkeepers's Introduction

Shopkeepers logo

Shopkeepers Build Status

Shopkeepers is a Bukkit/Spigot plugin that allows you to set up custom villager shopkeepers that sell exactly what you want them to sell and for what price. You can set up admin shops, which have infinite supply, and you can also set up player shops, which pull supply from a container.

BukkitDev: https://dev.bukkit.org/projects/shopkeepers
Spigot: https://www.spigotmc.org/resources/shopkeepers.80756/
Wiki: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki
Language Files: https://github.com/Shopkeepers/Language-Files/
Issues: https://github.com/Shopkeepers/Shopkeepers/issues
Discord: https://discord.gg/d9NKd5z
Source code: https://github.com/Shopkeepers/Shopkeepers/

Shopkeepers API

If you want to write an add-on plugin for Shopkeepers, or integrate some Shopkeepers aspect into your plugin, you can add ShopkeepersAPI as a dependency to your plugin.

Maven repository:

<repositories>
  <repository>
    <id>shopkeepers-repo</id>
    <url>https://repo.projectshard.dev/repository/releases/</url>
  </repository>
</repositories>

Snapshot repository (development builds): https://repo.projectshard.dev/repository/snapshots/

If the above Maven repository is currently not available, you can also try to use Jitpack: https://jitpack.io/#Shopkeepers/Shopkeepers/
Jitpack snapshots: https://jitpack.io/#Shopkeepers/Shopkeepers/master-SNAPSHOT
However, this is not guaranteed to always work either.

Maven dependency:

<dependency>
  <groupId>com.nisovin.shopkeepers</groupId>
  <artifactId>ShopkeepersAPI</artifactId>
  <!-- Replace this with the latest Shopkeepers version -->
  <version>2.15.1</version>
  <scope>provided</scope>
</dependency>

There is no documentation yet on how to use the API. But the various API classes and interfaces have some code documentation. You can find those here: https://github.com/Shopkeepers/Shopkeepers/tree/master/modules/api/src/main/java/com/nisovin/shopkeepers/api
As an entry point to other components, you can use the class ShopkeepersAPI. For example, ShopkeepersAPI.getShopkeeperRegistry() returns you the ShopkeeperRegistry, with which you can query the loaded shopkeepers.

The API may still be quite unstable: On every Minecraft release, as well as whenever some API or data breaking change is made, the Major component of the Shopkeepers version (the 15 in v2.15.1) is incremented (which occurs quite regularly). Most of the time, only some aspects of the API change, so your plugin might still work fine without changes. But nevertheless, be prepared to check for breaking API changes at least as frequently as Minecraft updates are released.

The API is still quite limited. For example, it is not yet possible to implement custom shopkeeper types via the API. And many aspects, for example related to how trades are processed, cannot be altered via the API.

If you only want to check if a given entity is a shopkeeper, there is no need to hook into the Shopkeepers API: Every shopkeeper entity is tagged with the 'shopkeeper' metadata, so you can check for that via entity.hasMetadata("shopkeeper").

Cloning and Building

This section assumes that you have Git installed.

We use Gradle to compile and build the plugin. This repository comes with Bash scripts to automatically install the required versions of Gradle and the Java SDK, build the required Spigot dependencies, and then use Gradle to build Shopkeepers and produce a plugin, an API, and a 'main' jar. Unless you are a developer, you can ignore the latter two jars.

To build Shopkeepers, just execute the following commands from within a Bash console. If you are on Windows, you can install Git-for-Windows and then execute these commands from within the "Git Bash".

git clone https://github.com/Shopkeepers/Shopkeepers.git
cd Shopkeepers
./build.sh

If everything went well, the build folder will contain a plugin jar that you can install on your server, as well as an API and 'main' jar that can be used to by other plugin developers to develop addons. The API jar contains the more stable but limited public API, whereas the 'main' jar contains the far less stable internal plugin code, excluding any server version specific code.

Pull Requests & Contributing

To import the project into your favorite Java IDE, refer to your IDE's respective documentation on how to import Gradle projects. For example, in Eclipse you can find this under Import > Gradle > Existing Gradle Project. Follow the instructions to select the root Shopkeepers folder and import all the Gradle projects found by Eclipse.

The root project contains several module projects. The most important ones are:

  • main: This contains the core plugin code.
  • api: This contains all API code.
  • And several modules for the NMS / CraftBukkit version specific code of the supported server versions.

Shopkeepers requires several Spigot and CraftBukkit dependencies. The easiest way to automatically build and install these dependencies into your local Maven repository is to run the included ./scripts/installSpigotDependencies.sh script.

To build the project from within your IDE, refer to your IDE's respective documentation on how to build Gradle projects. For Eclipse, right-click the root project, select Run As > Run configurations..., and then set up a 'Gradle Task' run configuration that executes the intended Gradle build tasks.
Some shortcuts have been defined for commonly used combinations of build tasks. For example, 'cleanBuild' will trigger a clean build and runs all tests. 'cleanInstall' will additionally install the built jars into your local Maven repository.

Note that we require Java 16 to build.

For more information on creating pull requests and contributing code to the project see Contributing.

shopkeepers's People

Contributors

akshualy avatar blablubbabc avatar derflash avatar dermistkaefer avatar ikymax avatar intangir avatar isabelcoolaf avatar meiskam avatar nathanwolf avatar nisovin avatar oltdaniel avatar xephi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

shopkeepers's Issues

1.6 corrupting NBT data

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/28

Originally posted by Darkhand81 (Aug 31, 2012):

Hiya Nisovin, v1.6 seems to have a serious issue with corrupting NBT data in save.yml. Luckily I keep backups! :)Bukkit build 2358.  After upgrading to 1.6 and restarting, Shopkeepers crashes with the following:http://hastebin.com/weganefoxu.avrasmAt the same time, the NBT data in save.yml is permanently corrupted.Before (from backup):http://hastebin.com/tanejufavu.vbsAfter:http://hastebin.com/lenerurinu.sm

Check argument

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/18

Originally posted by THDigi (Aug 20, 2012):

If using /shopkeeper with an argument that is not 1-5 or the profession names it will panic:
<>
07:06:15 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'shopkeeper' in plugin Shopkeepers v1.4
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
        at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
        at net.minecraft.server.ServerConnection.b(SourceFile:35)
        at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.entity.Villager.Profession.REMOVE
        at java.lang.Enum.valueOf(Unknown Source)
        at org.bukkit.entity.Villager$Profession.valueOf(Villager.java:25)
        at com.nisovin.shopkeepers.ShopkeepersPlugin.onCommand(ShopkeepersPlugin.java:178)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 15 more
<
>This came up when I used "/shopkeeper remove" xD

[Bug] Steal from protected chests using Shopkeepers

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/24

Originally posted by Zombiemold (Aug 25, 2012):

What steps will reproduce the problem?

  1. Right click a chest locked with LWC or Lockette (or similar)
  2. Spawn villager near the chest if possible
  3. Adjust the price of the items in the shopkeeper
  4. Buy the items from the chest using the prices you setWhat is the expected output? What do you see instead?
    It should deny the creation of the shopkeeper if the chest is locked by one of these plugins.What version of the product are you using?
    v1.5Please provide any additional information below.Some of my players are really crafty, but luckily he explained this to me before it got abused. Thanks for hearing me out. Cheers.

Wrong money calculation on max amount

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/25

Originally posted by FlashIT (Aug 28, 2012):

What steps will reproduce the problem?Create a new player shopkeeper, add some stuff to the chest and then open the shopkeeper editor.
Now raise both of the payment slots to their maximum (64 emerald blocks, 64 emeralds) and save everything.What is the expected output? What do you see instead?I'd expect to buy the item from the shopkeeper paying 64 emerald blocks and 64 emeralds. Instead it asks for 71 emerald blocks now, leaving the second slot blank. There's no way to provide that payment (I've also tried to just pay the 64 blocks & emeralds).What version of the product are you using?
Shopkeeper: 1.6
Rebalance Villagers: 1.0.1I'm no sure if it may be an issue with the smart stacking feature of the Rebalance Villagers plugin or Shopkeepers itself.

Villagers glitch through walls and floors

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/12

Originally posted by darth2499 (Aug 10, 2012):

What steps will reproduce the problem?

  1. Push the villagers
  2. They glitch through blocks (goes under the block)
    3.What is the expected output? What do you see instead?
    The villagers will glitch under the block and float unless you push them out.What version of the product are you using?
    1.3Do you have an error log of what happened?
    NonePlease provide any additional information below.

Shopkeerper error

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/30

Originally posted by Ralf122 (Sep 2, 2012):

I got this error after the new update. so i downgraded also got it. everything works fine. but when you pay you can't get the item in your inventory it will be placed back automaticly.org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:144)
02.09 20:24:00 [Server] INFO     at java.lang.Class.forName(Class.java:264)
02.09 20:24:00 [Server] INFO     at java.lang.Class.forName0(Native Method)
02.09 20:24:00 [Server] INFO     at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
02.09 20:24:00 [Server] INFO     at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
02.09 20:24:00 [Server] INFO     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29)
02.09 20:24:00 [Server] INFO     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:44)
02.09 20:24:00 [Server] INFO     at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
02.09 20:24:00 [Server] INFO     at java.security.AccessController.doPrivileged(Native Method)
02.09 20:24:00 [Server] INFO     at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
02.09 20:24:00 [Server] INFO     at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
02.09 20:24:00 [Server] INFO     at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
02.09 20:24:00 [Server] INFO     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
02.09 20:24:00 [Server] INFO     at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
02.09 20:24:00 [Server] INFO     at java.lang.ClassLoader.defineClass1(Native Method)
02.09 20:24:00 [Server] INFO Caused by: java.lang.UnsupportedClassVersionError: me/dragon252525/emeraldMarket/EmeraldMarket : Unsupported major.minor version 51.0
02.09 20:24:00 [Server] INFO     at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.ServerConnection.b(SourceFile:35)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
02.09 20:24:00 [Server] INFO     at net.minecraftserverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:124)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)
02.09 20:24:00 [Server] INFO     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:880)
02.09 20:24:00 [Server] INFO     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
02.09 20:24:00 [Server] INFO     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
02.09 20:24:00 [Server] INFO     at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:21)
02.09 20:24:00 [Server] INFO     at org.bukkit.Bukkit.reload(Bukkit.java:183)
02.09 20:24:00 [Server] INFO     at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:565)
02.09 20:24:00 [Server] INFO     at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:222)
02.09 20:24:00 [Server] INFO     at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
02.09 20:24:00 [Server] INFO     at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
02.09 20:24:00 [Server] INFO     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:155)
02.09 20:24:00 [Server] INFO org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: me/dragon252525/emeraldMarket/EmeraldMarket : Unsupported major.minor version 51.0
02.09 20:24:00 [Server] SEVERE Could not load 'plugins/EmeraldMarket_v1.2_5.jar' in folder 'plugins'

Surplus villagers

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/11

Originally posted by DemmyDemon (Aug 10, 2012):

What steps will reproduce the problem?

  1. Place a shopkeeper inside what could be considered a large house.
  2. Wait around for a long while.
  3. The appropriate amount of population for that "large house" will spawn and walk around.What is the expected output? What do you see instead?
    I expected Shopkeepers to block this behaviour. Alas, it did not.What version of the product are you using?
    1.3Do you have an error log of what happened?
    No log data available as far as I know.Please provide any additional information below.
    Not sure if it's relevant, but I have only the ONE Shopkeeper, and it's a priest.

Shopkeepers randomly disappear - reload don't work

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/40

Originally posted by KBKWilliamsson (Sep 25, 2012):

What steps will reproduce the problem?

  1. Create shopkeepers
  2. WaitWhat is the expected output? What do you see instead?
    Doing a /shopkeeper reloadWhat version of the product are you using?
    1.6.1
    Bukkit 1.3.1 R2Please provide any additional information below.Some shopkeepers tend to disappear after a random time, when noone is online seems to be the main issue.
    They are all in chunks that are forced to stay loaded.
    Doing a /shopkeeper reload makes ALL shopkeepers disappear.Restarting the server entierly though makes them all come back.This is the best trade plugin I've seen to date, however it's full with bugs, I really can't have this because of all the severe ones that go unanswered by the developer.

Allow all currencys to be used

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/35

Originally posted by bigggan (Sep 16, 2012):

What is the enhancement in mind? How should it look and feel?Add a config that allows all currencys to be used. Like if my players want to sell 10 stones for 64 sand?Please provide any additional information below.We dont use some special currency we just allow players to do whatever they feel their items are worth

Inventory is borked after Shopkeeper setup.

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/20

Originally posted by nathanaelps (Aug 20, 2012):

After tinkering in the Shopkeeper Editor, normal block placement doesn't work.
I think it may be related to certain inventory-control issues?What steps will reproduce the problem?

  1. Install a brand-new CraftBukkit, with only 1 plug-in: Shopkeepers.
  2. Give self a new villager spawn egg.
  3. Click into air once, then onto chest once, then immediately beside the chest (this creates a shopkeeper, as expected.)
  4. Sneak and edit the Shopkeeper's sales.
  5. Click on the Emerald in the corner, closing the shopkeeper interface.
  6. Move a stack of blocks in the inventory to a tool slot.
  7. Try to place a block.
  8. Immediately, the block is un-placed. The inventory slot reverts to empty.
  9. Reload the bukkit from console. The itemstack reappears in its former place in the inventory.What is the expected output? What do you see instead?
    A block should be placed and the itemstack decremented by 1/The block disappears, as does the itemstack.What version of the product are you using?
    1.4Do you have an error log of what happened?
    No errors come up.Please provide any additional information below.
    video depiction: http://youtu.be/pxJMbrNd3cI

PlayerTradingShops: Support for multiple trades for the same item type

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/236

Originally by blablubbabc (Jun 7, 2014):
PlayerTrading shopkeepers currently don't support different trades for the same item type.
Maybe allow removing items from the default generated first row (in the editor view) and placing items from the inventory there, similar to how placing items in the second row works.

Additions from duplicate issue: #348
"I stock my chest with diamonds. I can only set my diamonds to "buy" iron. I would like to set my diamonds to buy iron, lapis, gold, etc. I imagine the feel could be the same way you set the price with a trade villager."

Comment 1 by blo0p (Jul 17, 2014):
Just piggy backing off of this comment because this sounds like an awesome feature
The way the ticket describes it, it sounds like it'd be necessary to have multiples of an item for it to work. Once this feature is completed could it be achievable with just one item?
An example works better at describing the concept of just one item:
Say I have an inn where you buy your room key from the shopkeeper... Would it be possible to only sell one key for each room and then the shopkeeper has the ability to buy back that single key (thus restocking it for sale afterwards)?
If multiple items were required to set up the two trades the system wouldn't work as two people could buy the same key etc..

Comment 2 by fneyret (Feb 28, 2015):
Hi, I would love to see that feature added.
Great plugin though.

Shopkeepers lock up

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/36

Originally posted by bigggan (Sep 17, 2012):

What steps will reproduce the problem?
Im not entiely sure what causes this but sometimes fast or after a while, the villagers will lock up and I cant do anything with them, only thing that works is a /shopkeeper reload to fix itI cant trade/buy or edit the price/items inside the shopkeepersWhat version of the product are you using?1.6.1Please provide any additional information below.It might be related to closing the editor wrong like editing the shopkeeper while you disconnect, but not sure.

Shopkeepers spawn in Glass

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/14

Originally posted by RasCas (Aug 15, 2012):

What steps will reproduce the problem?
1.Stand before a wall of glass
and make a new Shopkeeper.What is the expected output? What do you see instead?
Shopkeeper is in the glassblock, should be before
If the walls is  made of wood e.G. no problemWhat version of the product are you using?
1,3Do you have an error log of what happened?
no

Non-intuitive player trading shop setup

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/217

Originally by Max_Coffeebreath (Jan 30, 2014):
What steps will reproduce the problem?

  1. Create a new trade villager using either spawn egg or command.
  2. Add inventory in a column in chest.

What is the expected output? What do you see instead?
The column should create a trade for that column (column in shop editor). Instead the items show up in a row in the shop editor.

What version of the product are you using?
v1.16-beta3

Please provide any additional information below.
I have been using trade villagers since before v1.14.2 so I am very familiar with how to set them up. New trade villagers are not working. I believe that old ones that were upgraded to the current version will continue to work with their current trades... I seem to recall that working but I cannot be 100% sure as I deleted the old shopkeepers this morning to do something new.

Comment 1 by Max_Coffeebreath (Jan 30, 2014):
sorry meant 'trade shopkeeper' in each instance where I said 'trade villager'

Comment 2 by blablubbabc (Jan 30, 2014):
The trade setup for player trade shopkeepers works a bit differently:

  • you only put those items into the chest, which you want to trade away / give away
  • you then go into the shopkeeper editor window and here you can setup what other shall give you in trade for your items. you do that by:
  • clicking a item in your inventory, and then clicking a slot in the editor window
  • the item will then be placed there and you can increase/decrease the amount of that item in the editor window by right/left clicking

Comment 3 by Max_Coffeebreath (Jan 30, 2014):
That is not how it previously worked. Maybe that is how it is supposed to work now. If so it is still just as broken. You cannot pick up or move items in your pack while you have the shop editor open.

Comment 4 by blablubbabc (Jan 31, 2014):
I don't know if, when or why it was changed to work like that (nor do I know how it worked before), but I think to remember that nisovin said something about that moving items around in the window (click-dragging) has to be disabled because of certain inventory click changes in one of the last minecraft versions, were players would be able to get the items from the editor window.

I currently don't know if this issue is still present, but I agree that the current way of setting up the trades is not obvious. Maybe it would be good to, for example, insert some sort of "dummy items" into the editor window which have lore text which explains the players that they have to click-drop items into those slots for setting it up, and/or add some additional messages.

But I tested and can confirm that this current way of setting those trades up works: click item in inventory, then click slot in the editor window.

Villager Trades Dissapear

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/19

Originally posted by C0mput3rHuman101 (Aug 20, 2012):

What steps will reproduce the problem?

  1. Reload
  2. RestartWhat is the expected output? What do you see instead?
    Expected: Same stuff for sale
    I see: Everything gone
    What version of the product are you using?
    v1.2Do you have an error log of what happened?
    No

Wrong map purchased

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/5

Originally posted by Omid78 (Aug 7, 2012):

What steps will reproduce the problem?
1.Create a shopkeeper and give them a recipe sell the player a map, let's say "map_1". So the data-value of the item is "1".
2.This data value will show up in the save.yml file correctly.
3.Now attempt to purchase this map from the shopkeeper. You will get a new map, like "map_2" or something....What is the expected output? What do you see instead?
I would expect to get the exact map that is in the recipe (with the correct data-value), but a new map is being created instead.What version of the product are you using?
v1.1Do you have an error log of what happened?
Nope.Please provide any additional information below.
I don't know if this error extends to other items. For example, it would be nice to have the shop-keeper be able to sell specific (written&signed) books. Or even the ability to sell damaged products.Actually, thinking about it, things do become a bit cloudy: If you did implement the change I am writing about, then how would a shopkeeper sell a "generic" empty map? Hm. :-(Also, here's the content of the save.yml file:'0':
  world: blahblahblah
  x: 997
  y: 75
  z: 1005
  prof: 1
  recipes:
    '0':
      '0':
        id: 388
        data: 0
        amt: 1
      '2':
        id: 358
        data: 1
        amt: 1So as you can see, I made a librarian, and gave him one recipe: 1 emerald for 1 map(data value=1).And another thing: I really like this mod. Way to go!

Transfer to offline player

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/200

Orignally by Tsubashi (Dec 10, 2013):

What steps will reproduce the problem? 1. Create a player shopkeeper 2. Attempt to transfer 3. See the error "No Player Found"
What is the expected output? What do you see instead? I expected this to work like lockette, where it will show a warning cautioning me that the player is offline, asking me to check the spelling if I think they are online, etc. but ultimately to update. I end up manually editing save.yml each time I need to do this, but it would be nice to be able to do it in game.

ShowCaseStandalone interference.

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/7

Originally posted by MathiasVerden (Aug 8, 2012):

What steps will reproduce the problem?

  1. Using the plugin ShowCaseStandalone.
  2. Creating a ShowCaseStandalone store.
  3. Trying to purchase using right-click.What is the expected output? What do you see instead?A special inventory is opened showing what is in the shop
    instead of purchasing 1 item or selling 1 item from/to the shop.What version of the product are you using?Version 1.2 for 1.3.1Do you have an error log of what happened?No error, the plugin just overwrites the original
    action of the plugin.Please provide any additional information below.The plugin seems to overwrite the purchase action
    of a ShowCaseStandalone store. Just like it does
    with Showkeepers, it opens their "inventory", but it's
    not supposed to do that for SCS stores.

Statistics for Adminshops

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/32

Originally posted by McThyzer (Sep 9, 2012):

Hey,i am using this Plugin for Adminshops on my Server, but i lost completely track of how much a offer is exploited.
I would appreciate a way which saves statistics for the Shopkeepers and tell me how often a specific trade is offered.
And if i take a offer out the statistics of this offer could be removed, so that is a maximum of 8 lines per Adminshopkeeper.It would be enough for me if he tells me:
"Offer #<1-8> (x ): "Thanks :)

Player made Shopkeepers randomly become normal villagers.

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/21

Originally posted by matt531320 (Aug 21, 2012):

What steps will reproduce the problem?

  1. Have a normal player with 'regular' permissions create an NPC.
  2. Reload plugin or restart server.
  3. NPC is now a villager.
  4. Reload plugin again.
  5. There is now a villager and a shopkeeper at/near the same location or everything is back to normal.What version of the product are you using?
    1.2.1Do you have an error log of what happened?
    Nope.Please provide any additional information below.
    It's very sporadic, it happens sometimes and then others it doesn't. It's weird... But there's no error shown in the console.

Linking shopkeepers, sharing their trades

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/116

Originally by blablubbabc (Apr 3, 2013):

Situation: Creating admin shopkeepers with the same trades at different places in the world.
Issue: Continously having to check and update the shopkeepers, so that they are always selling/offering the same items to the same conditions.
Suggestion: Somehow let admins define "shopkeeper-profiles" that they can assign to shopkeepers and which will always mirror the deals from the profile. Basically, maybe more intuitive, letting admins link shopkeepers together that will then always share the same trades. And if the trades are updated at any of the linked shops, they get updated for all the other automatically.

Mob Attribute GUI

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/297

Originally by ArloTheEpic (Feb 15, 2015):

The concept is a seperate GUI for changing mob appearences. Here are some things that would be very cool to have on this GUI.

-Equipment changing for Zombies & Skeletons. *
-Baby option for zombies.
-Baby option for other animals like mooshrooms and pigs.
-Baby Villagers!
-Possibly a way to have the shopkeeper riding something, E.G. skeleton riding spider or Zombie riding pig.
-Held Item changing.*
-Saddles for Pigs!

*these would probably work best as having players place items from their inventory in a slot.

(some of this could be done before the aformentioned overhaul, like Pig saddling.)


Also the possibility to change the mob type (shop object type?) in the gui would be nice (suggestion by lichkungoMatch)

Zombies Ignore Shopkeepers

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/23

Originally posted by Aeristria (Aug 22, 2012):

Could you add the possibility of removing zombie interest from shopkeeper based villagers? A few nights cycle can gather hordes outside of a door when they detect presences of shopkeepers, and outdoor markets tend to get swarmed.Even with shopkeeper damage turned off, the interest bait makes zombie killing an easy and exploitable source of EXP when their focus is glued to an invincible and immobile entity.

Data values / Enchantment Values

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/33

Originally posted by KingCold999 (Sep 10, 2012):

What steps will reproduce the problem?

  1. Add cocoa beans to the shop. Make them worth 2 emeralds.

  2. Sell rose red dye instead.

  3. Profit
    What is the expected output? What do you see instead?
    Only cocoa beans should be able to be sold when selling to the cocoa bean shop. However any dye works. This can be done with anything with a data value (or enchantment value, for example I made a store that was trading Sharp I plus 32 emeralds for Sharp II, and you could use a regular sword for it). This would also break buy-shops for potions.. as you could just sell an empty bottle instead of a regeneration potion.
    What version of the product are you using?
    1.6, though I believe it is in all versions (and in normal minecraft as well, as seen with charcoal/coal)
    Do you have an error log of what happened?
    N/A
    Please provide any additional information below.
    A very easy fix most likely, just check the data values of the input items against the data values of the output item, and deny the "TradeEvent" if they do not match. This will break using coal for charcoal however (though imo I believe that is how it should be, charcoal should be worth less as it is easier to get and is infinitely). Probably should have a configuration for people who don't want this, or a list of blocks that can be exchanged in the normal way.

Multi-person trading?

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/6

Originally posted by Darkhand81 (Aug 7, 2012):

Is the 'one person at a time' trading limit a technical limitation, or is it just to ensure that the villager is looking at the right person? If it's technically possible I'd love a toggle in the config to allow villagers to be able to trade with multiple people at once; I would imagine it would help a lot on a busy server, or when adding a new villager with a hot commodity.

Cannot interact with villager after one trade + logging out

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/3

Originally posted by Darkhand81 (Aug 7, 2012):

What steps will reproduce the problem?1. Create an admin villager and one or more trades
2. Complete one of the transactions
3. Log out and back inWhat is the expected output? What do you see instead?Expect to be able to trade again with the villager, but am unable to open the villager trade window or the Shopkeeper Editor.  The villager can still be pushed around, but even the client thinks it's not there; I can place blocks directly on the square the villager is standing on (the block is automatically removed in a second, but the client tries to place it). I can click items through/behind the villager as well.  Removing the villager's entry in save.yml and creating a new one fixes the problem until the next interact/logout.What version of the product are you using?ShopKeepers 1.0 on Bukkit build 2315Do you have an error log of what happened?Error log is clear

Wrong location warnings

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/2

Originally posted by nisovin (Aug 7, 2012):

Getting a few of these warnings every minute:
[WARNING] Wrong location for EntityVillager['Villager'/813, l='world', x=1025.50, y=63.00, z=2068.50] in world 'world'!
[WARNING] Entity is at 1025.5,2068.5 (chunk 64,129) but was stored in chunk 65,129
I'll probably filter them out with ConsoleFilter, but is this causing an issue, or just meant for debugging purposes?

Commission/Paid Villagers

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/31

Originally posted by Feaelin (Sep 3, 2012):

I'd like to see a "commission" feature. The villager that is doing the actual trading takes a percentage of the take.For example, if I set in the config the commission rate "1 out of every 10" (e.g. 10%) the player whose shop it is will only get 9 emeralds out of every 10 then shop takes in, the other 1 emerald is "paid" to the npc villager. :)

Add Shopkeeper limit per player/permission

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/13

Originally posted by sawineMT (Aug 14, 2012):

What is the enhancement in mind? How should it look and feel?Add a permission node or a config to set a maximum of shopkeepers NPC per player.Please provide any additional information below.Could use a node to do it like the plugin PlotMe does it. (Although I heard it is a bad way of doing it as it is more intensive on the server... but heh, I got told that by my dev, I'm still newb at java  :) )Thanks

Rentable Shopkeeper - Command

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/187

Originally by MasterMithrandir (Sep 25, 2013):
I am having issues setting up multiple rentable shopkeepers. So these are my suggestions:

  • A command for directly setting rentable shopkeepers, with no owner being applied to them (ready for rent!).
  • If a limit of inactivity time is established, rentable shopkeepers should not dissappear, but rather be reset back for someone else to rent them.
  • Also if this isn't already applied, players should be limited to how many shopkeepers they can rent, in the same way they are limited on how many they can create.

Edit by blablubbabc (Oct 24, 2017):
Additional suggestions from roughtoast, potentially related to this:

  • Selling shopkeepers (unlimited time limit or simply owner change?).
  • /shopkeeper sell {price} while looking at the npc.
  • When the shopkeeper is for sale, change its display name to show that, including the price.
  • Idea: (Group-sell, selling multiple shopkeepers at once).
  • Idea: Only allow buying/renting by a certain permission group (with certain permission node).
  • Signs for buying/renting the shop, (or other other means,) so that no commands need to be explained.
  • Option to let players only use the shops in certain areas such as spawn and market shops.

A few suggestions

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/26

Originally posted by jorisk322 (Aug 28, 2012):

  1. When I set up some enchantment trades (1 pair of ARMOR_X + X emeralds = ARMOR_X_ENCHANTED) I saw that people could just throw in any item, doesn't matter how broken, and the trade would repair it. It would be nice if you could make it lookt at data values in the trades, so that doesn't happen anymore.
  2. It would be nice if we could configure trades to change after they've been used a set number of times. Example: I have a trade to get emeralds from in-game items. I would like to make it so that when people have used that trade 20 times (and gained 60 emeralds), it would be changed to be less profitable. 1-3, would change to 1-1, so people would have to trade with players if they want a better offer. That way, not too much money is put in the system.I hope you consider adding these two things, but I fully understand if you think they're to complicated/unneeded.
    Thansk in advance,
    jorisk322

Protection of chests - a problem

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/39

Originally posted by KBKWilliamsson (Sep 22, 2012):

What steps will reproduce the problem?

  1. User A places a chest
  2. User B creates a player shopkeeper, binding it to that chest
  3. User B can now steal all belongings in that chestWhat is the expected output? What do you see instead?What version of the product are you using?
    1.6.1Do you have an error log of what happened?Please provide any additional information below.
    It is possible to steal from another user, without leaving any entries in a rollback plugin, by simply binding a shopkeeper to the chest.Solution:
    When binding a shopkeeper to the chest, make it check if that player placed that chest at maximum five minutes ago, if not, tell the user to place the chest again.
    This will ensure that the chest is placed by a legitimate user, and you don't have to create a database containing all the locations of a chest and who it belongs to.

Currency changes suggestions

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/17

Originally posted by Ythmevge (Aug 19, 2012):

What is the enhancement in mind? How should it look and feel?On the server I help run we would like to allow the players to setup trades, rather than have a currency in place. Would it be possible to add an option (to the config)  that would allow the player to setup the trade in the shopkeeper editor. Just like you can in an Admin shopkeeper. So if a player wanted to sell a piston for 16 redstone and 4 cobblestone they could put the redstone and cobblestone into the shopkeeper and the player could purchases the piston for redstone and cobblestone.If that isn't possible or easy to do, what about an option to make the currency function separately. So you could set your price up to 64 sponge, and/or 64 diamond. So the High currency item could be set independent of the currency item.

Citizens Bug

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/1

Originally posted by WingedSpear (Aug 5, 2012):

U cant interact with any NPC of Citizens if this plugin its installed, already tested removing the plugin and adding it and im sure the one who have the issue is this plugin,Btw, great plugin, for real.

Closing the Shopkeeper Editor without clicking the Emerald button destroys items placed in the editor window

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/4

Originally posted by Darkhand81 (Aug 7, 2012):

What steps will reproduce the problem?1. Place items in the Shopkeeper Editor window
2. Close the window instead of clicking the emerald block buttonWhat is the expected output? What do you see instead?Expect to have items returned to inventory, but the items are destroyed instead.What version of the product are you using?Shopkeepers 1.0 on Bukkit 2315
Do you have an error log of what happened?

Block shopkeeper

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/27

Originally posted by aehooo (Aug 29, 2012):

Ok, this might sound stupid, But I would like to request an option to this plugin, where I could disable the NPC entity and bind the shops to specific blocks.On our server we value NPCs as a decoration, so using this plugin would grant everyone free npcs, something I would like to avoid. Instead, I would like that we could bind exactly all the funcionality to a block, or a construction of blocks, like a bookshelf, or something like that.So, when player creates a shop, he would type the command and click the bookshelf, when player is buying, he would rightclick the bookshelf. Everything would funcion the same, but without acctually the NPC being there.Please, consider my request. Picture related, the shop block could be something like that:

Disable-other-villager: false causing player shops to no work

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/16

Originally posted by Ythmevge (Aug 19, 2012):

What steps will reproduce the problem?

  1. Setting disable-other-villagers to false
  2. Setup a Play shop, using a spawn egg, right clicking on a chest, then the block you want him on. After setting an item or for sale it wouldn't show up for sale. Then when you try to shift right click on the villager to change his sale nothing will happen.
  3. Then I changed disable-other-villager to true and after recreating the player shop it worked again.What version of the product are you using?
    v 1.4 of ShopkeeperPlease provide any additional information below.
    The server is running the following plugins:
    2012-08-18 17:15:11 [INFO] Plugins (17): WorldBorder, CreeperHeal, WeatherSync, Minequery, NoCheatPlus, Shopkeepers, WorldPos, SkylandsPlus, BKCommonLib, UltraHardcore, Multiverse-Core, PermissionsEx, Modifyworld, CHDistantFarm, Multiverse-Inventories, Multiverse-SignPortals, Multiverse-NetherPortals

Currency Items: Support for enchantments, etc.

Migrated from: https://dev.bukkit.org/projects/shopkeepers/issues/271

Originally by 2toetommy (Dec 10, 2014 ):

What is the enhancement in mind? How should it look and feel?

Adding support for custome Items as currency for shop. I use Coinage for Physical money drops.
So I have a Iron Ingot with Lore and cusotme name on it with Iteminfo of: 265:1#l
Pic below.
I want to use a shopkeeper so players can sell this item for cash or trade for another Item. the trade for cash OR these custom items is pretty important step in Shopkeepers I believe. With a simple hook to vault I can see it being a decently easy update.

Please provide any additional information below.
I would be happy to assist testing this new feature if you decide to add it.
http://puu.sh/doj2t/7f2ae83d48.png
http://puu.sh/doj4U/c203ba6d3e.png

Comment 1 by blablubbabc (Dec 10, 2014):
You should already be able to specify the name, lore and data value with latest version. Though i have no idea what this '#l' behind the data value of your item is. Enchantments or other item attributes beside those are currently not supported.
You will have to look for another plugin if you want to exchange items to virtual vault currency.

Comment 2 by 2toetommy (Dec 14, 2014):
That might be Issue the Enchantment part. The plugin I use for currency does place a enchantment on the item just for the look.
Hmm I think I will on my side see what the possibility is of combining This plugin into Shopkeepers. If I get a decent build I will message you with it And see what you think.

Comment 3 by blablubbabc (Dec 14, 2014):
Yes, other attributes like enchantments are currently not supported for the currency items.

Shopkeepers API

Improve the API and its documentation. Also make it more failure-proof. Currently, it is required to hook into Shopkeepers and use its internal methods, potentially messing things up if used wrong.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.