Inactive [ECON] WurkIt v1.2.0 - Let your players earn iConomy\BOSEconomy money for playing Minecraft!! [1000]

Discussion in 'Inactive/Unsupported Plugins' started by oz_revulsion, Jun 11, 2011.

  1. Offline

    oz_revulsion

    [ECON] WurkIt v1.2.0 - Let your players earn iConomy\BOSEconomy money for playing Minecraft!! [1000]

    Version: 1.2.0

    This plugin allows you to set a price to pay your players for every type of block that they could find in minecraft. Unlike other jobs plugins WurkIt gives you the ability to set everyone the same job meaning that everyone is on the same even ground to earn currency making for a more stable (all beit semi communist) economy.

    If you'd like to buy me a beer for staying up building you a plugin you can donate here:

    [​IMG]

    Because of Bukkit's BS adfly links ban that is the only way to support me, sorry.

    You can download WurkIt here:
    Download the Jar there
    Or the Zipped Jar here

    Requirements:
    - iconomy v5.0; or
    - BOSEconomy v0.6.2 or above only

    Optional:
    - Permissions v3.1.6 only any older versions will not work

    Compatible With:
    - ItemCraft v1.4.1

    Tutorial Videos:

    Watching these videos is highly recommended for all admins who have WurkIt whether this is the first time you are installing or you've been on board since 0.2. These videos outline all of the old and new features and how to use them. The first two videos have admin and player stuff and is all the stuff that WurkIt can do in game. The last two videos are admin only videos and go through how to configure WurkIt and all the funky new features for admins. The total running time is 40 minutes but that is a damn sight quicker than it would take you to learn it all by reading, plus you get to listen to my velvet vocals if you watch the videos :D

    Show Spoiler

    Part 1 of the Player and Admin Tutorial


    Part 2 of the Player and Admin Tutorial




    Part 1 of the Admin configuration Tutorial and overview of new admin commands




    Part 2 of the Admin configuration Tutorial and overview of new admin commands




    New Features in this version:
    Show Spoiler

    - Wurk places have been put in! With Wurk places you can set an area in your server where if players break or place blocks in that area you will automatically pay them extra for working in that area. In this way you can pay players for helping you will projects in your server.
    - Heaps of bug fixes include, spelling mistakes in WurkIt items. Beds and Iron doors not working is fixed. Fixed the anti farming being broken. Every bug that was reported in the thread before the 1.2 annoucement has been fixed.
    - Updated to work with RB #1000.
    - WurkIt can only use Permissions 3.1.6 and BOSEconomy 0.6.2 or above now.
    - Added in commands to fill in your config with all blocks available in WurkIt and another to remove all 0 valued blocks. So when you want to add heaps of blocks at once you can all available blocks to your config, change the values of the ones you want to add and then run the strip out command to get rid of the left over blocks you don't want.
    - WurkItItems and your config will now always be ordered by minecraft ID even if you take them out of order in your config if you run a priceset then they will be reordered again.


    Features:

    Show Spoiler

    - Set a break and a place price for the blocks you want to and a default price for every other block your players may break. All blocks in 1.7.2 supported!
    - In game commands to edit your price list in the config and also check the prices you currently have set for placing and breaking blocks you are near in game.
    - Players can choose whether they are notified about their payday or not.
    - Choose if you want to display to the player that they have been paid for their recent activity on the server. Also you can set the exact message that they see when they get paid.
    - Choose the frequency of when your players get paid. Anything from once a second to once a whenever the hell you want (in seconds!)
    - Players can't just place a block and then break it again for money or vice versa. There is a break, placed buffer which keeps a rolling window of the blocks placed and broken so once a block is placed or broken on a square that square will not give any money until the buffer has been reset or when the window moves off the square. This is all configurable
    - Debug mode can be turned on to make sure that your players are always getting paid correctly.
    - Latest versions of BOSEconomy and iConomy support.
    - Permissions v3.1.6 only support. Older Versions will not work.
    - This plugin is compatible with ItemCraft v 1.4.1 Please note that is compatible but not supported! What this means is that it will run without problems but you will not be able to set prices for custom blocks they will all just get the default price. One thing to note however was that the way I made this compatible was to make it so if your server is an ItemCraft server then WurkIt's support for long grass, trap doors and dead bushes had to be taken away because currently they are not supported within ItemCraft. So if you have an ItemCraft server then these blocks will only use the default price along with all the other ItemCraft blocks. I have changed the plugin to regenerate its WurkItItems.txt every time it starts up now so if you are unsure of what blocks are supported based on your server just check that. Also if you have a non ItemCraft server you can still use long grass, trap doors and dead bushes if you do want to make your players gardeners! LOL!
    - Put in functionality to pay for placing blocks. This has all been built into the anti farming functionality so you can farm with placing blocks.
    - Edited all the commands to involve this placing functionality.
    - WurkIt will now automatically edit your config so that you have all the necessary settings for it not to break when upgraded. All you need to do is stop your server, delete the old Wurkit.jar put in the new one and restart Wurkit will automatically upgrade your config file without blowing away your current settings!



    Installation:
    Simply place the jar in your plugins folder and reload your config. This will create the WurkItConfig.yml, WurkItVersion.txt and the WurkItItems.txt files in the WurkIt folder. If you have previously installed versions of WurkIt then all you need to do is replace your .jar file with the new one and Wurkit will do all the work of rebuilding your config to the latest version.

    Configuration:
    WurkIt.config
    Show Spoiler

    Code:
    # The pricelist is what you pay the player for breaking or placing certain blocks
    # default is what the player is paid if you don't specify how much a certain block is
    # For example if you only have Stone and default setup in your price list then your players
    # will get your set break price everytime they break stone and if they break any other block they will get your default price
    # default is mandatory and must be in the config, if you do not want to use it then set it to zero but
    # if you remove it you will crash the plugin.
    # The format is:
    # <item_name>:
    #      break: 0.0
    #      place: 0.0
    # the item names can be found in the items WurkItItems.txt in the plugin folder but generally
    # it is just the grammatically correct item name so stone is "Stone"
    # all spaces are replaced with _'s and word after also starts with a capital so cobbelstone stairs is Cobblestone_Stairs
    # if you are unsure check the WurkItItems.txt but to use an item it must be written in the config exactly as it is
    # in the WurkItItems.txt and it is case-sensitive so if in your config you do this
    # sToNe:
    #    break: 3.0
    #    place: 1.0
    # it's not going to work and your stone will just get the default value. It must be "Stone"
    
    PriceList:
       default:
          break: 3.0
          place: 1.0
    
    # Set your message in the message field. Use the text $$ where you want to put your amount
    # your currency units are automatically picked up. Coloured messages are currently not supported
    # set enabled to false if you do not want to get the payday messages sent to your players.
    
    PaydayMessage:
       message: "It's payday! You earned $$"
       enabled: true
    
    # The PaydayInterval is how often your players get paid and it is in second. Only put integers (whole numbers) in here
    # the buffer size dictates how many blocks are recorded as being placed or broken and thus have no value if broken or palced at any one time
    # now this buffer lives in memory on your server so if you don't want to pwn your server I suggest you keep this modest
    # at a guess I'd say 1000 is reasonable for most servers without causing too much trouble but if you find you are getting
    # performance issues after installing this plugin then I'd say reduce the buffer size
    # by default the buffer runs a moving window so when it hits the max size the first entry is deleted to make room for the last one
    # the buffer is cleared by default whenever there is a payday but if you want to keep your rolling window constant then change
    # your clearBufferOnPayday value to false. Its true by default to give your poor server memory a break from time to time
    # rather than being at max capacity all the time but if you think your server can hack it then you can set it there
    # debugType takes three different values and is just used to make sure that your payday is firing correctly
    # you can use none, simple or verbose. Simple will tell only when the payday task fires and verbose
    # will show you when it fires and also how much each player is paid
    
    PaydayInterval:
       interval: 60
       clearBufferOnPayday: true
       debugType: none
       bufferSize: 1000
    # This section sets out the wurkplace variables. The first variable wurkPlaceTool is the id of the tool that is to be
    # used to mark out the wurkplaces when creating a wurkplace. The next for default variables set out what a wurkplace
    # information will be set to when a new wurk place is first created on your server. It is important
    # that the break and place type variables are set to either flat or percent in lower case and not mispelled.
    # WurkPlaceGreeting and Farewell are what is displayed to the player when they walk into or out of a wurkplace
    # wurkPlaceSaveInterval is how often (in seconds) wurk it should save the changes made to the wurkplaces that are in
    # memory at the moment down to your server for safe keeping.
    # entryExitRefreshRate is how often in server ticks wurk it should be checking if a player has entered or exited if you
    # are experiencing any lag after installing wurkit you might try increasing this so you check players postions less often
    # Finally debugType takes two options either none or simple. If this is set to simple then a message will be logged in your
    # server log every time a save event is fired.
    WurkPlaceSettings:
       wurkPlaceTool: 268
       defaultBreakType: percent
       defaultBreakAmount: 10
       defaultPlaceType: percent
       defaultPlaceAmount: 10
       wurkPlaceGreeting: "You just entered a Wurk Place."
       wurkPlaceFarewell: "You just left a Wurk Place."
       wurkPlaceSaveInterval: 360
       entryExitRefreshRate: 10
       debugType: none
    
    There is a lot of documentation within auto generated config file but let me re-iterate here.

    The first section is:

    PriceList:

    This holds all the prices for the blocks that will be broken or placed by your players. You have to put them in the format of:

    <item_name>:
    break: 0.0
    place: 0.0

    This is where the <item_name> comes from the WurkItItems.txt and the price is a number with either one or two decimal places. The <item_name> must be the same as what is written in the WurkItItem.txt but is pretty intuitive basically you just start every new word with a capital letter and any space is replaced with a _ so a cobblestone stairs would be Cobblestone_Stairs. If you are ever in doubt then just consult the WurkItItem.txt for the correct case sensitivity and spelling. If you have misspelled or got the case-sensitivity wrong on an entry then it will get the default amount you have set rather than the price you have set for the block itself.

    default must feature somewhere as a block type. What default does is apply a price to any block that you have not applied a price to. If you don't want a price applied to EVERY block you haven't given a break or place price to then simply set default to 0.0. You must always have a default entry or the plugin will crash if you don't want to use it set it to zero.

    The second section is the PaydayMessage section.

    This contains two variables being message and enabled. The message is what you want to be displayed to the player when they get paid you can type any text here. If you want to have the amount to be paid displayed including the units of your iConomy currency put the symbols $$ so you could put "$$ earned today" and it would display "50 Dollars 20 Cents earned today" for example. The enabled property let's you dictate if you want to display to your players that they got paid or not if you have this set to false your players will not get the payday message. If you have the message disabled leave the message there as you may get unexpected results if you have no message and besides if you have it disabled it will not show anyway!

    The third section is the PaydayInterval section.

    The interval takes an integer (a whole number) describing how often in seconds you want to pay your players. Mind you the players will only get paid if they are online so if you set this to every 12 hours and they are not online when this ticks over on the server then they wont be paid so be good to your players when setting this. Do not set this interval to zero or you may find that the plugin acts unexpectedly. If you want to pay your players instantly then just set this to 1. The difference between instantly and after 1 second is barely noticeable but massively more reliable.

    If clearBufferOnPayday is set to true then the placed buffer is cleared down and started again after every payday. This is a good way to minimize the plugins memory foot print as you wont be constantly running at the full placed buffer size. If you have this set to false then you will a persistent moving placed block window.

    debugType accepts three different values: none, simple and verbose. None will obviously turn the debugging information off. Simple will place a line in the server logs every time the payday task fires successfully. Verbose will do the same as simple with the addition that it will also tell you how much it is paying the players that it pays. This is helpful if you aren't sure if your payday task is firing correctly or not or if you think it has stopped.

    The bufferSize refers to how many blocks you want to have in your moving window. The placed buffer keeps track of all the blocks placed by player if these blocks are broken again they do not give payment to the player this also works the other way around i.e. broken then placed. This stops Farming the same block for cash. This buffer is kept in memory so I strongly recommend you do not set this bazillion if you don't want to pwn your server. I have tested this on the default setting of 1000 and the memory footprint was minimal but I would say if you are going to increase this then do so in small intervals and observer what happens to your servers memory so that you don't chew through your RAM. 1000 is more than enough to avoid farming because a player would have to place a block, then guess when the 1000 blocks have been placed and then break it again. This functionality doesn't make farming impossible but it makes it impractical.

    WurkPlaceSettings holds all variables used by the wurk place functionality in WurkIt. Wurkplacetool is the minecraft id of the tool that you want to use to select the points that you want a new wurkplace to be built in.

    The next six variables are what the plugin uses as the settings for new wurk places that are created. It is important that for the Break and Place types that you spell this right or you may break wurkit. You must set this to either percent or flat in lower case. Percent means that players get paid a percentage of the amount they would normally get paid for breaking blocks that are in a wurkplace the percentage amount is held in the amount variables. Flat means that the players get paid a set amount for each block they break in a wurkplace once again the amount that is added in held in the amount variables.

    wurkPlaceSaveInterval is how often changes to wurkplaces are saved down to disk on the server. This is in seconds. This shouldn't really ever need to be changed. entryandexitrefresh is how often the player positions are checked to see if a player has just entered or exited a wurkplace. This is in server ticks so 10 is a half a second. Once again this shouldn't need to be changed but if you do change it then you should only increase it. You might do this if you are experiencing lag.

    Finally debugType takes either simple or none. Simple will log an entry in the server log every time the wurkplaces are saved down to disk.


    Commands:
    Show Spoiler

    /wurkit

    - Shows help for wurkit and the version info

    /wurkit - reload

    - Reloads the configuration file.

    /pricecheck <on: off>

    - Turns on and off the price check feature. When the price check feature is on any time you right click a block it will give you the price that you will be paid for breaking and for placing it. Just a tip here make sure you have an item such as a pickaxe in your hand when you right click and not a block. If you right click with a block in your hand your will still get a price check but you'll also place a block which is a bit annoying! Right clicking with an item in your hand avoids this.

    /paydaymessage <on: off>

    - Turns on and off the payday message on for yourself. This is a per player setting it will not affect the payday setting in the config file.

    /priceset <break: place> <newPrice>

    - This command will change your WurkItConfig.yml and will set the break or place price of the next block that you right click to <newPrice>. Obviously <newPrice> must be a number.

    /wurkplace create <newname>

    - This will create a new wurkplace with the <newname>. This will only work if you have two points selected with your wurkplace selection tool

    /wurkplace rename <oldname> <newname>

    - This will rename the wurkplace with <oldname> to <newname>. You can only do this if you own the wurk place or have the correct permissions to do so.

    /wurkplace delete <wurkplacename>

    - This will delete the wurkplace with the name <wurkplacename>. You can only do this if you own the wurkplace or have the correct permissions to do so.

    /wurkplace info

    - This will display information about the wurkplace you are currently standing in.

    /wurkplace set <wurkPlaceSetting> <value>

    - Use this command to set one of the wurk place settings for the wurk place you are currently standing in to

    /completewurkconfig

    - Use this command to rebuild your config adding in every block that you don't currently have in the config. The new blocks will have a zero break and place value

    /stripwurkconfig

    - Use this command to strip the current config of any blocks that have zero values against both their break and place values<value>

    Available wurk place settings:

    breakType - Can take either percent or flat. Percent to pay a percentage of the normal payment to the employees. Flat to pay them a flat rate for every block.
    breakAmount - The amount of percentage or flat rate to pay.
    placeType - Can take either percent or flat. Percent to pay a percentage of the normal payment to the employees. Flat to pay them a flat rate for every block.
    placeAmount - The amount of percentage or flat rate to pay.


    A quick word about pricecheck and payday message: Pricecheck defaults to off and payday message defaults to what ever is in the server config. Both of these settings are stored in memory for each user and are not saved down to file. So if you have a server that has the payday message turned on and you turn it off with the command this will only stay off during your current session. If you log off and log on again the payday message will turn itself back on. Also if the payday message is off in the config using the paydaymessage command will have no affect.

    Permissions Nodes:

    Code:
    ---Admin Permissions----
    wurkit.admin.* - all admin commands
    wurkit.admin.priceset - /priceset <newPrice>
    wurkit.admin.reload - /wurkit -reload
    wurkit.admin.completeconf - /completewurkconfig
    wurkit.admin.stripconf - /stripwurkconfig
    wurkit.admin.wurkplaces.* - all wurk place admin commands
    wurkit.admin.wurkplaces.rename - allows the player to rename any wurkplace even if they don't own them
    wurkit.admin.wurkplaces.delete - allows the player to delete any wurkplace even if they don't own them
    wurkit.admin.wurkplaces.editvars - allows the player to edit the wurkplace settings for any wurk place even if they don't own it.
    
    ----Player Permissions------
    wurkit.player.* - all player commands
    wurkit.player.pricecheck - /pricecheck <on:off>
    wurkit.player.paydaymessage - /paydaymessage <on:off>
    wurkit.player.allowpay - Players will only be paid by WurkIt if they have this permission
    wurkit.player.wurkplaces.* - all player wurk place commands
    wurkit.player.wurkplaces.create - /wurkplace create <wurkplacename>
    wurkit.player.wurkplaces.rename - /wurkplace rename <oldname> <newname>
    wurkit.player.wurkplaces.delete - /wurkplace delete <wurkplaceName>
    wurkit.player.wurkplaces.info - /wurkplace info
    wurkit.player.wurkplaces.editvars - /wurkplace set <wurkplacesetting> <value>
    Changelog:

    Show Spoiler

    v1.2.0
    - Added Wurk places
    - Heaps of bug fixes including item spelling mistakes, bed and iron doors not working and anti farming not working.
    - Upgrade to RB 1000 and compatible with 1.7.3
    - Upgraded to use Permissions 3.1.6 and new BOSEconomy.

    v1.1.1
    - Fixed the show stopping bug that was invluded in v1.1.0

    v1.1.0 [BUGGED]
    - Built in functionality to pay players for placing blocks.
    - Increased default buffer size after further optimizations.
    - Upgrade to RB 953 and made compatible with new blocks in 1.7.2.
    - Built better version control to help admins update their config file correctly.
    - Updated all commands to handle new placing functionality.

    v1.0.1
    - OMFG new release of Bukkit RB only hours after v1.0 release. Now 935 compatible.
    - A few other little buglets I cleaned up whilst testing new build.

    v1.0
    - Optimized code used around the placed block buffers in preparation for block placing functionality.
    - Optimized permissions and command related code.
    - Change the way that the payday task is scheduled to address payday task stopping periodically.
    - Added version control so that WurkIt wont blow away your config every time you upgrade WurkIt and it will add missing functionality when upgrading.
    - Updated to Bukkit RB[928].
    - Built in BOSEconomy support.
    - Added debugging in the PaydayInterval settings
    - Added the priceset function.

    v0.3
    - Made Wurkit compatible with ItemCraft v1.4.1
    - Made Wurkit support Permissions
    - Added /pricecheck and /paydaymessage commands
    v0.2
    - Added the placed buffer to stop "farming"
    - Added the help and version info commands
    - Added necessary changes to config file for the user to setup all the new functionality
    v0.1
    - Initial build


    Future Plans:

    - Upload source code to github for everyone.
    - More customization features for wurk places.
     
  2. Offline

    dark_hunter

    Odd how you say MIA, becuase.

    Today at 1:58 PM GMT +12:
    [​IMG]
     
  3. Offline

    oz_revulsion

    Yeah well that is a strange one. I notice today that toxic has now posted an update to his plugin after not having answered to any posts for a month! Great to see a good plugin not get abandon but I wish I wish I knew he was still working on it! In any case I'm gonna keep working on this and at very least it can be offered as an alternative to Paid2Mine if anyone is looking for one. It may be the same for now but hopefully as we both keep working the project will branch in functionality enough to make a difference.

    Cheers
    Oz
     
  4. Until something is created for "Anti-Farming" for as you said, the place then build, I can't use this.
     
  5. Offline

    oz_revulsion

    ...And Oz_Revusion saw eastonch's message and he stroked his imaginary (yet incredibly manly) beard. And he thought "Hmm yes, this will not do". And that was how WurkIt v0.2 was born with all the Anti-Farming goodness you desire.

    Enjoi!
    Oz
     
    dark_hunter likes this.
  6. @oz_revulsion I love you.
    Although... can i set 0.1currency?
     
  7. Offline

    oz_revulsion

    Can you set 0.1 currency? HA! Yes of course you can my friend in fact I can do you two better!

    1. You can set up to 2 decimal places so you can make something worth 1.33 if you want.
    2. When you set a decimal place the plugin will use your currency names from iConomy so 1.33 will replace the $$ in your message with 1 dollar, 33 cents.

    Love me more now?

    Cheers
    Oz
     
  8. Offline

    dark_hunter

    Plugin seems to stop working after awhile, no idea why.
     
  9. Offline

    oz_revulsion

    Oh noes! Ok nobody panic it's going to be OK as long as no one panics....STOP PANICKING!!!! *takes large gulps of air from a brown paper bag*

    ...OK

    Well I didn't program the thing to stop working after a while so there must be some error messages in your server logs can you please find them and post them here. Also if you could please post your WurkIt.config for my perusal.

    Also when its not working could your try these.

    - Type /plugins list and see if WurkIt is still enabled
    - If it is still enabled then does /wurkit return anything to you?
    - If it does have you broken any blocks recently that you or someone else hasn't placed? Obviously you will only get a pay day messages if you have earned money since the last pay day.
    - Who has observed it not working? Is one of your players saying it's not working or have you observed that it has actually stopped?

    Answers to those questions should set me in good stead to go on a crusade against our buggy enemies. Let's hope together we can sort this out for you commarade.

    TALLY HO!!!

    Oz
     
  10. Offline

    dark_hunter

    I moved back to pay2mine, sorry mate. Hope all goes well with your plugin, it did work great.

    Cheers.
     
  11. Offline

    oz_revulsion

    That's fine bud but if you could please give me the error your getting from your server logs so that I can investigate it and make sure other potential users don't come across it, it would be a great help for me.

    I've now installed this on my own multiplay server (so PS multiplay users it should be in your Gameplay altering plugins list :D ) So far it has been running for an hour with 6 players on and it has been running absolutely fine. I will keep an eye on it and report in the morning on how it went.

    Cheers
    Oz

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

    dark_hunter

    There was no error, nothing.
     
  13. Offline

    oz_revulsion

    Hmm not sure what has happened there and if you uninstalled then I guess we'll never know. For anyone else thinking on installing however I have now had this plugin running for over 24 hours on a live server and its still working like clockwork.

    Cheers
    Oz
     
    dark_hunter likes this.
  14. Offline

    s1ck3st

    Worx fine!

    Any chance to turn off server.log spam?
    Code:
    2011-06-14 02:31:19 [INFO] This is block break.
    2011-06-14 02:31:22 [INFO] This is block break.
    2011-06-14 02:31:23 [INFO] This is block break.
    2011-06-14 02:31:23 [INFO] This is block break.
    2011-06-14 02:31:24 [INFO] This is block break.
    2011-06-14 02:31:25 [INFO] This is block break.
    2011-06-14 02:31:25 [INFO] This is block break.
    2011-06-14 02:31:26 [INFO] This is block break.
    2011-06-14 02:31:26 [INFO] This is block break.
    2011-06-14 02:31:27 [INFO] This is block break.
    2011-06-14 02:31:27 [INFO] This is block break.
    2011-06-14 02:31:28 [INFO] This is block break.
    2011-06-14 02:31:35 [INFO] This is block break.
    2011-06-14 02:31:36 [INFO] This is block break.
    2011-06-14 02:31:40 [INFO] This is block break.
    2011-06-14 02:31:41 [INFO] This is block break.
    2011-06-14 02:31:41 [INFO] This is block break.
    2011-06-14 02:31:42 [INFO] This is block break.
    2011-06-14 02:31:43 [INFO] This is block break.
    2011-06-14 02:31:43 [INFO] This is block break.
    2011-06-14 02:31:44 [INFO] This is block break.
    2011-06-14 02:31:44 [INFO] This is block break.
    2011-06-14 02:31:45 [INFO] This is block break.
    2011-06-14 02:31:45 [INFO] This is block break.
    2011-06-14 02:31:46 [INFO] This is block break.
    2011-06-14 02:31:46 [INFO] This is block break.
    2011-06-14 02:31:47 [INFO] This is block break.
    2011-06-14 02:31:50 [INFO] This is block break.
    2011-06-14 02:31:51 [INFO] This is block break.
    2011-06-14 02:31:51 [INFO] This is block break.
    2011-06-14 02:32:11 [INFO] This is block break.
    2011-06-14 02:32:12 [INFO] This is block break.
    2011-06-14 02:32:12 [INFO] This is block break.
    2011-06-14 02:32:13 [INFO] This is block break.
    2011-06-14 02:32:13 [INFO] This is block break.
    2011-06-14 02:32:14 [INFO] This is block break.
    2011-06-14 02:32:14 [INFO] This is block break.
    2011-06-14 02:32:18 [INFO] This is block break.
    2011-06-14 02:32:19 [INFO] This is block break.
    2011-06-14 02:32:20 [INFO] This is block break.
    2011-06-14 02:32:20 [INFO] This is block break.
    2011-06-14 02:32:25 [INFO] This is block break.
    2011-06-14 02:32:26 [INFO] This is block break.
    2011-06-14 02:32:26 [INFO] This is block break.
    2011-06-14 02:32:27 [INFO] This is block break.
    2011-06-14 02:32:27 [INFO] This is block break.
    2011-06-14 02:32:28 [INFO] This is block break.
    2011-06-14 02:32:28 [INFO] This is block break.
    2011-06-14 02:32:29 [INFO] This is block break.
    2011-06-14 02:32:29 [INFO] This is block break.
    2011-06-14 02:32:30 [INFO] This is block break.
    2011-06-14 02:32:30 [INFO] This is block break.
    2011-06-14 02:32:31 [INFO] This is block break.
    2011-06-14 02:32:32 [INFO] This is block break.
    2011-06-14 02:32:33 [INFO] This is block break.
    2011-06-14 02:32:33 [INFO] This is block break.
    2011-06-14 02:32:34 [INFO] This is block break.
    2011-06-14 02:32:34 [INFO] This is block break.
    2011-06-14 02:32:35 [INFO] This is block break.
    2011-06-14 02:32:37 [INFO] This is block break.
    2011-06-14 02:32:38 [INFO] This is block break.
    2011-06-14 02:32:38 [INFO] This is block break.
    2011-06-14 02:32:39 [INFO] This is block break.
    2011-06-14 02:32:39 [INFO] This is block break.
    2011-06-14 02:32:40 [INFO] This is block break.
    2011-06-14 02:32:41 [INFO] This is block break.
    2011-06-14 02:32:42 [INFO] This is block break.
    2011-06-14 02:32:42 [INFO] This is block break.
    2011-06-14 02:32:43 [INFO] This is block break.
    2011-06-14 02:32:43 [INFO] This is block break.
    2011-06-14 02:32:44 [INFO] This is block break.
    2011-06-14 02:32:44 [INFO] This is block break.
    2011-06-14 02:32:50 [INFO] This is block break.
    2011-06-14 02:32:51 [INFO] This is block break.
    2011-06-14 02:32:51 [INFO] This is block break.
    2011-06-14 02:32:52 [INFO] This is block break.
    2011-06-14 02:32:52 [INFO] This is block break.
    2011-06-14 02:32:53 [INFO] This is block break.
    2011-06-14 02:32:53 [INFO] This is block break.
    2011-06-14 02:32:54 [INFO] This is block break.
    2011-06-14 02:32:55 [INFO] This is block break.
    2011-06-14 02:32:56 [INFO] This is block break.
    2011-06-14 02:32:57 [INFO] This is block break.
    2011-06-14 02:32:59 [INFO] This is block break.
    2011-06-14 02:33:00 [INFO] This is block break.
    2011-06-14 02:33:01 [INFO] This is block break.
    2011-06-14 02:33:06 [INFO] This is block break.
    2011-06-14 02:33:07 [INFO] This is block break.
    2011-06-14 02:33:07 [INFO] This is block break.
    2011-06-14 02:33:07 [INFO] This is block break.
    2011-06-14 02:33:08 [INFO] This is block break.
    2011-06-14 02:33:08 [INFO] This is block break.
    2011-06-14 02:33:09 [INFO] This is block break.
    2011-06-14 02:33:10 [INFO] This is block break.
    2011-06-14 02:33:11 [INFO] This is block break.
    2011-06-14 02:33:12 [INFO] This is block break.
    2011-06-14 02:33:13 [INFO] This is block break.
    2011-06-14 02:33:13 [INFO] This is block break.
    2011-06-14 02:33:14 [INFO] This is block break.
    2011-06-14 02:33:14 [INFO] This is block break.
    2011-06-14 02:33:15 [INFO] This is block break.
    2011-06-14 02:33:16 [INFO] This is block break.
    2011-06-14 02:33:16 [INFO] This is block break.
    2011-06-14 02:33:18 [INFO] This is block break.
    2011-06-14 02:33:19 [INFO] This is block break.
    2011-06-14 02:33:20 [INFO] This is block break.
    2011-06-14 02:33:20 [INFO] This is block break.
    2011-06-14 02:33:21 [INFO] This is block break.
    2011-06-14 02:33:21 [INFO] This is block break.
    2011-06-14 02:33:22 [INFO] This is block break.
    2011-06-14 02:33:23 [INFO] This is block break.
    2011-06-14 02:33:23 [INFO] This is block break.
    2011-06-14 02:33:24 [INFO] This is block break.
    2011-06-14 02:33:24 [INFO] This is block break.
    2011-06-14 02:33:25 [INFO] This is block break.
    2011-06-14 02:33:25 [INFO] This is block break.
    2011-06-14 02:33:26 [INFO] This is block break.
    2011-06-14 02:33:26 [INFO] This is block break.
    2011-06-14 02:33:27 [INFO] This is block break.
    2011-06-14 02:33:27 [INFO] This is block break.
    2011-06-14 02:33:28 [INFO] This is block break.
    2011-06-14 02:33:28 [INFO] This is block break.
    2011-06-14 02:33:29 [INFO] This is block break.
    2011-06-14 02:33:29 [INFO] This is block break.
    2011-06-14 02:33:30 [INFO] This is block break.
    2011-06-14 02:33:30 [INFO] This is block break.
    2011-06-14 02:33:31 [INFO] This is block break.
    2011-06-14 02:33:32 [INFO] This is block break.
    2011-06-14 02:33:33 [INFO] This is block break.
     
  15. Offline

    dark_hunter

    Must have been an error in the system, I'm trying it on my local server at home and so far it works, will carry on testing it and see if it was.

    Regards,
    ~Dh
     
  16. Offline

    oz_revulsion

    Thanks for choosing WurkIt as your jobs plugin of choice!!

    All my info messages have the [WurkIt] tag in front of them. If you run a /wurkit -reload and check your logs you'll see what I mean. What other plugins do you have installed on your server? Any chance you installed any of these at the same time as WurkIt? I'm not saying it isn't WurkIt doing that I'm just saying I didn't build that in so I don't know how its doing it! Let's start with the other plugins you have installed and we'll work it out from there.
     
  17. Offline

    s1ck3st

    Thanks for makin' WurkIt as my my jobs plugin of choice!!

    You Sir are a sly old dog :D
    Sure you're right! Unfortunately this issue only occures since WurkIt -I'm not sure but I guess it has something to do with WorldGuard, but atm I haven't time to find the 'evil-doer'!

    Thx & enjoy ur day
     
  18. Offline

    Ratty18

    Hey dude, i came from paid2mine, and im like a total newb to the config and stuff, would you be able to post a config with like all the normal world ores? (stone, cobble, diamond, iron stuff like that) i can change the price and stuff, thanks :D
     
  19. Offline

    oz_revulsion

    Hey brother. Thanks for making the switch! It feels very good to have someone recognise my work like that!

    Below is the config that I use on my personal server. The one thing you need to keep in mind when you are configuring jobs is that people in a general gaming session break a LOT of blocks so if you don't want people earning thousands in a day then its best to keep the prices really low and keep the common items out. When I set up my first jobs plugins I set stone to pay 0.25 and one guy earned 6k in one session!

    The config below is perhaps a little too on the prudish side for most but it keeps value in the economy. To earn 1000 of my currency is a real achievement. Having said that if you just want heaps of your players rolling in phat cash then just make stone and cobbles worth $3. In any case this will be a good place to start for you it will just need some tweaking to your liking.

    Thanks again and I hope you enjoy the plugin!

    Code:
    # The pricelist is what you pay the player for breaking certain blocks
    # default is what the player is paid if you don't specify how much a certain block is
    # For example if you only have Stone and default setup in your price list then your players
    # will get your set price everytime they break stone and if they break any other block they will get your default price
    # default is mandatory and must be in the config, if you do not want to use it then set it to zero but
    # if you remove it you will crash the plugin.
    # The format is:
    # <item_name>:
    #      price: 0.0
    # the item names can be found in the items WurkItItems.txt in the plugin folder but generally
    # it is just the grammatically correct item name so stone is "Stone"
    # all spaces are replaced with _'s and word after also starts with a capital so cobbelstone stairs is Cobblestone_Stairs
    # if you are unsure check the WurkItItems.txt but to use an item it must be written in the config exactly as it is
    # in the WurkItItems.txt and it is case-sensitive so if in your config you do this
    # sToNe:
    #    price: 3.0
    # it's not going to work and your stone will just get the default value. It must be "Stone"
    
    PriceList:
       default:
          price: 0.00
       Log:
          price: 0.10
       Yellow_Flower:
          price: 0.25
       Red_Rose:
          price: 0.40
       Red_Mushroom:
          price: 0.50
       Sapling:
          price: 0.50
       Crops:
          price: 0.50
       Coal_Ore:
          price: 0.10
       Redstone_Ore:
          price: 0.20
       Glowing_Redstone_Ore:
          price: 0.20
       Iron_Ore:
          price: 0.20
       Diamond_Ore:
          price: 4.00
       Obsidian:
          price: 2.00
       Pumpkin:
          price: 4.00
       Sugar_Cane:
          price: 0.10
    
    # Set your message in the message field. Use the text $$ where you want to put your amount
    # your currency units are automatically picked up. Coloured messages are currently not supported
    # set enabled to false if you do not want to get the payday messages sent to your players.
    
    PaydayMessage:
       message: "It's payday! You earned $$"
       enabled: true
    
    # The PaydayInterval is how often your players get paid and it is in second. Only put integers (whole numbers) in here
    # the placed buffer size dictates how many blocks are recorded as being placed and thus have no value if broken at any one time
    # now this placed buffer lives in memory on your server so if you don't want to pwn your server I suggest you keep this modest
    # at a guess I'd say 500 is reasonable for most servers without causing too much trouble but if you find you are getting
    # performance issues after installing this plugin then I'd say reduce the buffer size
    # by default the buffer runs a moving window so when it hits the max size the first entry is deleted to make room for the last one
    # the buffer is cleared by default whenever there is a payday but if you want to keep your rolling window constant then change
    # your clearBufferOnPayday value to false. Its true by default to give your poor server memory a break from time to time
    # rather than being at max capacity all the time but if you think your server can hack it then you can set it there
    
    PaydayInterval:
       interval: 180
       placedBufferSize: 500
       clearBufferOnPayday: true
    
     
  20. Offline

    Ratty18

    Thanks dude, figured id look one more time today before hosting, right on time too :p hope it works like i think it will. Good job by the way, i would donate but aint got the cash atm.
     
  21. Offline

    oz_revulsion

    I've now had it running on my server for 48 hours straight with no problems I'm sure you'll be fine. Donations are nice but they are voluntary if you can't swing you can't swing it's no big deal honestly.

    Hope you enjoy the plugin! Upgrades will be be coming in about a week or two I think. I'll be adding permissions support and maybe a few extra commands. Till then.

    Cheers
    Oz
     
  22. Offline

    Ratty18

    Tryed it, used it for about an hour, and i actually prefer it over paid2mine because even if you dont earn anything, it still tells you. But in your pic atleast your not like obese like some of the game/moders out there.
     
  23. Offline

    oz_revulsion

    Hmm lucky you said something that not earning anything was a unexpected "feature" I'll make sure I keep it in (or at least make it so it can be turned on and off) in future.

    As far as the pic goes I didn't realise it was a beauty contest! But as long as I'm winning I guess I'll keep my mouth shut.

    Thanks for the compliments neway :cool:

    Cheers
    Oz
     
  24. Offline

    Verm

    Any chance you will add payment for placing blocks? I like this plugin because it creates an incentive for players to WORK. Currently it's all about removing blocks, not about construction of epic monuments and such, which it could, and dare I say, should be.
     
  25. Offline

    oz_revulsion

    It's a good idea that is for sure but it would mean that I would then have to starting putting placed blocks into the block buffers so that you could not farm by placing a block breaking it and placing it again (the reverse of the break farming concept). It's something I will definitely consider but I will want to add things like permissions and a few other pieces of functionality first so that the plugin is given time to prove that it is stable on a range of servers before I start adding more strain on the host servers by doubling the memory usage on the block buffers.

    The short answer is, awesome idea! It will almost certainly make it into future versions.

    Cheers
    Oz
     
  26. Offline

    Verm

    Not too sure why you're concerned about this. A block buffer of 500 blocks should only be 500 pointers.. Last I knew a pointer was 4 bytes. 500 x 4 bytes = 2000 bytes x 100 players (huge server) = 200,000 bytes = 200KB. I think you'd get more strain out of checking those 500 blocks to see if they're the block the player is breaking everytime a block is broken. On the other hand, I can't think of how you would manage to keep players from farming block placement..
     
  27. Offline

    oz_revulsion

    AWESOME! Let's have some geek talk. I freaking looooove geek talkin!

    Maybe I didn't word that the way I should of. You've hit the nail on the head its not the memory used loading the structures in its the memory used doing the comparisons I am worried about. Currently the code does string comparisons on "x y z" so let's say on average there are 3 digits in each coordinate we are talking about 11 comparisons per entry ignoring negatives and assuming java does its string comparisons via just doing "if char[0] == char[0]..." and also considering I am using strings it would be crazy difficult to do any sort of red black search so it would just be a brute force sequential search which leaves the possibility of 5500 comparisons every time someone breaks a block.

    Your obviously very switched on so before you say it, yes, I know there heaps better ways of handling all of the above than using strings but I just knocked out the anti-farming thing over a couple of hours hung over on a Sunday morning and it was the best way my alcohol shrivelled mind could think of doing it. This is definitely one of the things I will be working on in amongst me adding the other already planned functionality.

    As far as the logic goes to add block placement there are no worries there the code is already written! The block breaking logic I am using will work equally well with block placement the real problem is the fact that it will require another buffer to be read when placing a block. Now, the 5500 comparisons I talked about above may not be too worrying in and of themselves as you said servers are meant to handle that but think about how quickly you can put down a stack. If I was building a castle and laying foundations I guesstimate I could lay down as stack in a matter of 30 seconds or less that is a possible 352, 000 comparisons in less than 30 seconds made by one player! What about the rest of the players! That is ignoring the fact that the block broken buffer would have to be larger than 500 because as I said placing blocks can be done a hell of a lot quicker so you would have to make it larger for it to be useful.

    Once again if you'd prefer to skip the wall of text here's what I'm really saying.

    The logic for block placing is not the issue here. Nor, in reality, is the memory usage the real problem here is my shitty code that I need to refine before thinking about adding block placing so that I can avoid pwning people's servers with my post-party coding lunacy! I'm planning on doing whilst I add other features such as permissions and other commands and once this is done block placing payment is definitely more of a possibility. Most importantly please accept my apology for drinking and coding, it will never happen again...
     
  28. Offline

    Fox Diller

    Hey Mate!

    I'd love to say "Great Plugin!" but I can't use it on our corporate Minecraft server. Through some research, it looks like an issue with ItemCraft, I've even taken the time to capture the error thrown so you can see it for yourself.

    Code:
    03:43:08 [SEVERE] Could not load 'plugins\WurkItv0.2.jar' in folder 'plugins':
    java.lang.reflect.InvocationTargetException
           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
           at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
           at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
           at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:172)
           at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:194)
           at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:117)
           at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:109)
           at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:235)
           at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:222)
           at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:149)
           at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:286)
           at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoSuchFieldError: LONG_GRASS
           at me.ozrevulsion.WurkIt.WurkItItemHash.<init>(WurkItItemHash.java:42)
           at me.ozrevulsion.WurkIt.WurkIt.<init>(WurkIt.java:39)
           ... 13 more
    Another plugin on here had a similar issue with NoSuchFieldError: LONG_GRASS; ItemCraft 'shuffles' ItemID's around to support the extra items over SMP. If you can figure this out, I'd love to begin using your plugin here!

    Thanks again, and good job with the plugin (just wish I could use it! ;) )

    .fox
     
  29. Offline

    oz_revulsion

    Bad News. I'll give it a test this weekend. Can you please post your WurkIt config?

    Cheers
    Oz
     
  30. Offline

    Fox Diller

    It didn't get as far as creating a .config file, so I haven't had a chance to even change the config. Sorry. :(
     

Share This Page