[ECON] NPCTrader v1.1.4 - The Full featured localized shop system [RB740 - 766]

Discussion in 'Inactive/Unsupported Plugins' started by MatCat, Feb 13, 2011.

  1. Offline

    MatCat

    NPC Trader - The Full featured localized shop system

    Version 1.1.4 (Testing Version!)



    The first localized full featured shop system for Bukkit/iConomy, in NPC Form!

    What's better for a localized shop system then your very own NPC Clerk / Teller / Worker / Slave / Whatever word you want to call your NPC!

    Features
    • Localized system
    • Fully player controlled (No admin intervention needed)
    • Full Item and Metadata support (Colored wools, etc)
    • Item name or ID recognition
    • Partial name recognition (If online)
    • Complete internal permissions system for managers of the NPC
    • iConomy Based
    • MySQL data storage
    • Item stocking system
    • In-Game help for everything
    • Supports Permissions and GroupManager (Using FakePermissions) Plugins!
    Installation / Setup

    1. Put NPCTrader.jar in your plugins folder
    2. Put mysql-connector-java-bin.jar in your main minecraft folder
    3. Restart your server (Auto-generates config.yml in plugins/NPCTrader/)
    4. Edit the config.yml for MySQL and other config settings.
    5. Restart once more
    6. Enjoy!
    If for some reason the folder / config does not auto-generate, then you can open the .jar file with 7zip or winzip or other archiving utility that supports jars and extract the config.yml from the jar.


    NOTE: If you do not have or do not know if you have MySQL setup then you either have to setup MySQL or not use this plugin for now. Please do not post questions asking how to install MySQL as that is outside of the scope of this post. You can follow this tutorial (Thanks @Germata!) for detailed windows installation and setup, but I cannot provide support for installing and setting up MySQL, only support for my plugin specifically.

    Permissions

    Permissions will only be used if it is installed. The following is the permissions list:

    Code:
    npc.admin      - Give to admins for full access to all NPCs
    npc.admin.list - Access to /npc list npcs
    npc.user.*     - General user commands, you can specify by replacing * with command name, I.E. buy
    npc.manager.*  - NPC Manager commands
    npc.owner.*    - NPC Owner commands
    npc.create     - Ability to create an NPC 
    If permissions is used you may also specify limits on how many NPCs a specific player or group may have ownership flag on, please see config file for more information.

    Usage

    Once the plugin is installed and running, you can see the in-game help by typing /npc in your chat window. To interact with an NPC just right click on it first.

    Here is a simple tutorial for setting up an NPC named Bob that sell's bread, cooked fish, and cooked pork, and buys wheat, raw fish, and raw pork.

    1. Stand exactly where you want your NPC, including head position and body rotation.
    2. Type: /npc create Bob 6 10 This will create the NPC with 6 Item Slots, each holding 10 units.
    3. Right click on the newly created NPC
    4. Type: /npc setup 1 bread 1 2 0 true false This will setup Slot 1 with Bread, selling lots of 1 at 2 Coins, buying them from players at 0, True for NPC Selling it, False for buying from players.
    5. Repeat step 4 for Cooked fish and Pork
    6. Type: /npc setup 4 wheat 64 0 10 false true This will setup Slot 4 with Wheat, buying lots of 64 at 10 Coins. This one is set False to selling it to players, but true to buy from players.
    7. Type: /npc stock 1 20 This will stock the NPC with 20 breads on slot 1 (Assuming you have enough bread).
    8. Repeat step 7 for raw fish and pork.
    You know have a fully setup and functioning NPC.


    Known Issues / Bugs

    • Config folder does not get generated on Linux - Works on Windows
    • Cookies and beds, and pretty much any other 1.4/1.5 items.
    • Spams console when you stand close to an NPC
    • Gives error when an NPC is spawned (Can be ignored)
    • Head / Rotation is not being properly set on spawn / move. (Fixed in 1.14)
    • Does not work with actual permissions (works with GroupManager)
    • Rename command is broken
    Things Todo

    • Re-write item handling
    • Support for both GroupManager and Permissions
    • iConomy 5 Support
    • Add armor capacity
    • Tie into WorldGuard for checking for build rights (Will be optional)
    Misc


    If you installed MySQL for Windows just to run this plugin then check out this link to see how to create the initial minecraft database you will need.


    *** NOTE: SQLite IS NEVER GONNA HAPPEN! If you want to see an alternative, fork the src, make it work as an option, and I will include it in.***

    Changelog
    • Version 1.1.4
      • Changed out item name / id handling system
      • Now supports all current official items
      • Fixed Move Bug
      • Fixed NPC Creation Errors
      • Fixed a few other errors
      • Fixed Config creation on linux (hopefully!)
    • Version 1.1.3
      • Completely rewrote most of the code that directly interfaces with the NPC Library.
      • Now uses chunk loading/unloading to make sure only NPC's in loaded chunks are loaded (Way more efficient)
      • Changed banker command to only allow setting yourself as banker (to stop an exploit situation).
    • Version 1.1.2
      • Fixed upgrading stack counts for free bug
      • Fixed rename command not working on linux
      • Made it so an NPC must have 1 item slot to be created
      • Added permissions support for owned npc limits (By group or player)
    • Version 1.1.1
      • Fixed issues with quantities of '0'
      • Added rename command
      • Fixed iConomy hooking on startup
    • Version 1.1.0
      • Fixed Admin Override Permissions not working
      • Added Half and Double Slabs
      • Updated to work with B612+
    • Version 1.0.9
      • Updated to work on B531+
      • Updated to work with iConomy 4.*
      • Much needed overhaul of error handling and disabling procedures.
      • Converted integer based money to decimal based.
    • Version 1.0.8
      • Updated for newer builds
    • Version 1.0.7
      • Fixed more issues with ItemData, hopefully they are fixed for good.
      • Added log names
      • Added Coal/Charcoal distinction
      • Order of slots listed will always be in ascending order
    • Version 1.0.6
      • More meta-data issues, resolved.
    • Version 1.0.5
      • My restructuring of the code to try to support SQlite completely foobared the connect and close code, causing timeouts and errors. Fixed it.
    • Version 1.0.3
      • Fixed buy/sell/stock/unstock to use absolute values so that negatives cannot happen.
    • Version 1.0.2
      • Fixed bug where db connection was closed on /npc create
    • Version 1.0.1
      • Fixed bug with null Item Datas
    • Version 1.0.0
      • Fixed many many bugs
      • Added /npc list npcs as an admin command to let you see a full list of NPCs
      • Added recording transactions.
      • Added full permissions support
      • Better error handling and message delivery.
    • Version 0.94
      • Fixed not checking stock when doing /npc setup
      • Made the setup's error messages way more intuitive
    • Version 0.93
      • Fixed disappearing NPC bug.
    • Version 0.92
      • Fixed bug where selling was not checking player inventory.
    • Version 0.91
      • Fixed bug where giving improper arguments for upgrading and creating reported iConomy and NPC Trader out of sync.
    • Version 0.9
      • Initial Release
    You can download the jar here.



    You can download the mysql connector jar here.
     
  2. Offline

    biggetje537

    my server works fine and there are no errors with NPCTrader but the only thing is
    how the fuck do you get the plugin enabled
    it sais NPCTrade version 1.1.0 is disabled!
    help me out please
     
  3. Offline

    Alf999111

    /plugin load NPCTrader
     
  4. Offline

    biggetje537

    where should i do that
    im new in plugins
    but this plugin looks awesome
     
  5. Offline

    Nitnelave

    Thanks for this plugin, I was looking for a way to put up nice stores... But just a problem : I'd like to be using Citizens plugin at the same time, but their commands take precedence on yours because they are the same /npc ... Could you switch the command name to /npctrader or talk to the guys from Citizens to change it?
    Thanks a lot!
     
  6. Offline

    Alf999111

  7. Offline

    bruterules

    Code:
    2011-04-06 21:12:15 [INFO] Database configuration Error!
    Verify your config.yml settings are correct and valid for your MySQL setup.
    Returned Error: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    2011-04-06 21:12:15 [INFO] NPCTrader version 1.1.0 is disabled!
    Any idea? I've put NPCTrader in plugins, installed the connector jar and edited the configuration to my database.

    Another thing, a tutorial for using PhpMyAdmin would be nice too....
     
  8. Offline

    woodzy

    please have an update **wine** love this plugin
     
  9. Offline

    RTRD

    @MatCat I got the same problem as him:
     
  10. Offline

    ronix

    I have two issues. The first was easy to handle:

    On the first start, I got the following error:
    Code:
    2011-04-07 15:14:50 [SEVERE] java.io.IOException: No such file or directory
    2011-04-07 15:14:50 [SEVERE]    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    2011-04-07 15:14:50 [SEVERE]    at java.io.File.createNewFile(File.java:883)
    2011-04-07 15:14:50 [SEVERE]    at com.MatCat.NPCTrader.Resources.writeResource(Resources.java:10)
    2011-04-07 15:14:50 [SEVERE]    at com.MatCat.NPCTrader.NPCTrader.onEnable(NPCTrader.java:158)
    2011-04-07 15:14:50 [SEVERE]    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    2011-04-07 15:14:50 [SEVERE]    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:514)
    2011-04-07 15:14:50 [SEVERE]    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:216)
    2011-04-07 15:14:50 [SEVERE]    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:94)
    2011-04-07 15:14:50 [SEVERE]    at org.bukkit.craftbukkit.CraftServer.loadPlugin
    Easy to solve: Create an NPCTrader folder. Did you include the following line in your plugin:

    Code:
    new File("plugins" + File.separator + "NPCTrader" + File.separator).mkdirs();
    Should solve the issue...


    The second one is more obscure:

    Code:
    2011-04-07 15:19:03 [INFO] NPCTrader version 1.1.0: No iConomy, disabling plugin
    2011-04-07 15:19:03 [INFO] NPCTrader version 1.1.0 is disabled!
    2011-04-07 15:19:03 [SEVERE] Nag author: 'MatCat' of 'NPCTrader' about the follo
    wing: onPluginEnable has been replaced with a new signature, (PluginEnableEvent)
    
    Well, I have iConomy up and running, no idea why your plugin does not accept it...
     
  11. Offline

    MatCat

    Ok yes the /plugin enable NPCTrader command is an essentials command, if you do not use Essentials you would have to use some sort of plugin to enable NPC Trader, the problem is that for some it loads before iConomy does, and the code to wait for iConomy to load first is broken, this will be fixed in next release. My plugin's command is /npctrader, /npc is just an alias for it.
     
  12. Offline

    woodzy

    so wait i need to have an outher plugin to use this one?
     
  13. Offline

    Sixnew2

    Problem starting the plugin. Also it does not automatically generate a config file.

    Code:
    2011-04-08 08:06:16 [SEVERE] java.io.IOException: The system cannot find the path specified
    2011-04-08 08:06:16 [SEVERE]     at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    2011-04-08 08:06:16 [SEVERE]     at java.io.File.createNewFile(Unknown Source)
    2011-04-08 08:06:16 [SEVERE]     at com.MatCat.NPCTrader.Resources.writeResource(Resources.java:10)
    2011-04-08 08:06:16 [SEVERE]     at com.MatCat.NPCTrader.NPCTrader.onEnable(NPCTrader.java:158)
    2011-04-08 08:06:16 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    2011-04-08 08:06:16 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:514)
    2011-04-08 08:06:16 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:216)
    2011-04-08 08:06:16 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:94)
    2011-04-08 08:06:16 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:72)
    2011-04-08 08:06:16 [SEVERE]     at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:215)
    2011-04-08 08:06:16 [SEVERE]     at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:202)
    2011-04-08 08:06:16 [SEVERE]     at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:142)
    2011-04-08 08:06:16 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:257)
    2011-04-08 08:06:16 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    2011-04-08 08:06:16 [INFO] Database configuration Error!
    Verify your config.yml settings are correct and valid for your MySQL setup.
    Returned Error: java.lang.NullPointerException
    2011-04-08 08:06:16 [INFO] NPCTrader version 1.1.0 is disabled!
    
     
  14. Offline

    woodzy

    **sits quietly and waits for the fix**
     
  15. Offline

    firewalled

    Pretty nice plugin. Good extension to Minecraft!

    Sorry if this question has already been asked, but how do you add an item with space in it? E.g. Lapis Lazuli (the dye) and others? I tried ", ' and _ and just stripping out the space but neither works.
     
  16. Offline

    Alf999111

    open in the NPCTrader folder the items.db with a text editor
     
  17. Offline

    MatCat

    Updated to 1.1.1, fixed issues with '0' quantity, added rename command, fixed iConomy hooking on startup. There is still plenty more to be done including a nag from bukkit, the config file not generating properly on first startup.
     
  18. Offline

    sexyexample

    I feel like a big idiot asking this question but how do you view the next page
    of the NPC's inventory?

    EDIT:
    NVM i got it.
    /npc list 2
    LOL
     
  19. Offline

    woodzy

    ** jumps up excited** man that took along time to update, but to bad 1.5 is comming out soon :/
     
  20. Offline

    MatCat

    I don't really for see 1.5 being a problem, most of the API changes bukkit made that could possibly effect my plugin have already been done... Hopefully :).

    Updated to Version 1.1.2, this brings a fix to Upgrades not charging money properly, also fixes the new rename command not working on linux, and add's npc ownership limits (With permissions plugin).

    If you already have a config file then please see the example below for setting up limits.
    Code:
    # This is the configuration for maxium allowed NPCs based on
    # Permissions or GroupManager FakePermissions AKA EssentialsGroupBridge
    # It is sectioned into 2 sections, Groups and Players.  Either
    # configuration tree takes the respective name and a value of
    # how many NPCs may be owned.
    # 0 means none
    # -1 means Unlimited
    # Any other negative number would equate to unlimited
    # Any posative number would be the limit of NPC's the player may be
    # owner flagged on.
    
    MaxNPCGroupsCount:
        Default: 2
        Donator: 5
        Moderator: 10
        Admin: -1
    MaxNPCPPlayersCount:
        matcat: -1
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 8, 2016
  21. Offline

    Kitzur

    My error(cb 617)
    2011-04-10 22:48:10 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'npc' in plugin NPCTrader v1.1.2 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:233) at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:594) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:557) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:551) at net.minecraft.server.Packet3Chat.a(SourceFile:24) at net.minecraft.server.NetworkManager.a(NetworkManager.java:198) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72) at net.minecraft.server.NetworkListenThread.a(SourceFile:100) at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283) at net.minecraft.server.ThreadServerApplication.run(SourceFile:375) Caused by: java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getGroup(Ljava/lang/String;)Ljava/lang/String; at com.MatCat.NPCTrader.NPCTrader.CanCreate(NPCTrader.java:118) at com.MatCat.NPCTrader.Commands.npcCreateCommand.Run(npcCreateCommand.java:42) at com.MatCat.NPCTrader.NPCTrader.onCommand(NPCTrader.java:354) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35) ... 12 more
     
    GingernutRanger likes this.
  22. Offline

    woodzy

    we REALLY love this plugin!!
    2011-04-10_17.15.10.png
     
  23. Offline

    Germata

    I got the same mistake as you. Even tried setting up new db , but didnt work.
     
    GingernutRanger and Kitzur like this.
  24. Offline

    DioZero

    i can't figure out what to type in the mysql part,
    when it says driver:
    i type in localhost but it doesn't work xS
    Also I tested my mysql out with big brother and
    it seems to work xD So can anyone help me? =D
     
  25. Offline

    Shooty

    How can i do if the folder NPCTrader refuse appear ?
     
  26. Offline

    DioZero

    then create the folder
     
  27. Offline

    Zenergyx3

    Code:
    08:20:20 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'npc'
     in plugin NPCTrader v1.1.2
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80
    )
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:2
    54)
            at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:596)
            at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:559)
    
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:553)
            at net.minecraft.server.Packet3Chat.a(SourceFile:24)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:198)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:72)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:368)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:283)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:375)
    Caused by: java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler
    .getGroup(Ljava/lang/String;)Ljava/lang/String;
            at com.MatCat.NPCTrader.NPCTrader.CanCreate(NPCTrader.java:118)
            at com.MatCat.NPCTrader.Commands.npcCreateCommand.Run(npcCreateCommand.j
    ava:42)
            at com.MatCat.NPCTrader.NPCTrader.onCommand(NPCTrader.java:354)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
            ... 12 more
    Patiently awaiting an update for the latest 670 build. Please update? :)
     
    GingernutRanger and Kitzur like this.
  28. Offline

    MatCat

    My own server is running 670, not sure what your problem is there...

    OHh I see the problem, it's a permissions plugin problem... Do you have Permissions or Group Manager with Fake Permissions running?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 8, 2016
  29. Offline

    woodzy

    i think this is from your plugin, i added urs today and noticed this in consol like every1-5 min spamming it can u stop it some how?
    11:27:07 [INFO] 4
    11:27:07 [INFO] World Match... Added
     
  30. Offline

    MatCat

    Yeah IT's a hardcoded debug output, next release I will add an optional debug config line to the config.yml, basically it just lets you know when an NPC is made visible again from someone getting close to it.
     
  31. Offline

    woodzy

    PUUU i was nervis about it XD how did you inbed your world map? is it a live map?
     

Share This Page