[INACTIVE][SEC] OwnBlocks v10.0 - Players may not break blocks placed by others [860]

Discussion in 'Inactive/Unsupported Plugins' started by cvenomz, Apr 19, 2011.

  1. Offline

    cvenomz

    OwnBlocks:
    Version: v10.0

    (7-10-2011) - Please see the latest branch of OwnBlocks, called OwnBlocksX. It is recommended you use OwnBlocksX now.

    OwnBlocks keeps track of placed blocks, and who placed them. Players are not allowed to break blocks placed by other players. Note however, that indirect breaking may still occur (i.e. fire, tnt).

    Features:
    • Blocks you place cannot be broken by others
    • Persistence; Server remembers who owns what blocks after a restart or "reload"
    • Toggleability! Use /ownblocks or /ob to toggle OwnBlocks on and off
    • Ability to exclude certain blocks from being protected
    • Support for Permissions AND non-Permissions servers
    • Auto-saving intervals for database protection
    • Add (pre-placed) blocks to the database manually
    Download OwnBlocks v10.0



    please note - If you are using iConomy, only version 4.6 is currently supported.

    Source Code
    OwnBlocks is released under the WTFPL License.

    Config File Options:
    Please note that at any time you may move/rename/delete you config file, and restart your server to produce the example/default config file with these options pre-filled along with descriptions. Also remember that lines preceded by a '#' are comments, and are ignored.
    exclude - enter comma separated integers of block-ids you wish to exclude from being protected and entered into the database. An example would be to enter the block-id for saplings, so planted trees do not have a single log at the bottom that is protected when a tree is harvested by another player.
    iConomy - enter an integer greater than '0' (zero) to enable. The number entered becomes the 'Basic Rate' at which players are charged to place protected blocks. Players will not be able to place blocks if they have insufficient funds.
    debug - If you are experiencing errors, and want to post them here to resolve them, or just want to spam your server log with information, set debug equal to 'true'
    status-message - Set this to 'disable' to not receive the message "[Username] - OwnBlocks is now activated for you....". Set this to 'simple' to receive a simple "OwnBlocks activated/deactivated" instead. Lastly, set this to 'disable' to disable messages entirely. Now that I think of it, disabling status-messages seems like a really bad idea......but the choice is yours.
    save-interval - Enter the number of seconds specifying the interval between database saves. The default is 60 seconds. Increase this number if you have an obscenely large database that takes a long time to write to disk. Decrease this number if you are paranoid and/or have very fast disk IO.
    info-id - Enter the integer representing the ID of the material or tool you would like to use as your "information tool" which will display the Owner of a block you right click with specified tool. Default is 269, which is the wooden shovel.
    add-id - Enter the integer representing the ID of the material or tool you would like to use as your "add tool" which will add the block you left click with the tool to the database. Default is 268, which is the wooden sword.
    enabled-on-login - True means that OwnBlocks is automatically activated for every player as soon as they log in. False means that OwnBlocks must be activated manually by each player when they want to start building protected blocks.


    Permissions Nodes:
    You will need to add these nodes to your Permissions configurations if your server uses Permissions:
    'OwnBlocks.ignoreOwnership' - Allows player to break blocks placed by others. This node is typically given to admins.
    'OwnBlocks.use' - Allows a player to even use OwnBlocks. If you want everyone to be able to protect blocks with OwnBlocks, and assuming you have a "normal" Permissions configuration, then add this node to your "default" class.
    'OwnBlocks.info' - Allows a player to use the info-tool to display who owns a protected block.
    'OwnBlocks.add' - Allows a player to use the add-tool to add blocks to the database for protection.


    Changelog:
    • Version 10.0 (5-20-2011)
      • Added configuration to set whether OwnBlocks is activated for players upon login
      • Added tool to add pre-built blocks to the protection database
      • Improved process of saving database
      • Fixed status-message configuration options (inconsistent verb tense)
      • Default to protecting all blocks when Permissions is not detected
    • Version 9.0 (5-5-2011)
      • Added support for Servers without the Permissions plugin
      • Added 'OwnBlocks.use' and 'OwnBlocks.info' nodes
    • Version 8.2 (5-4-2011)
      • Fixed NullPointerException when right clicking with empty hand
    • Version 8.1 (5-4-2011)
      • Added ability to use tool to display who a block belongs to. use info-id in your config file
    • Version 7.0 (5-3-2011)
      • Added database auto-saving intervals
      • Added ability to enable/disable 'status message'
    • Version 6.5 (4-29-2011)
      • Added iConomy support for charging a basic rate for each block placed
      • Added config option for debug mode
    • Version 5.0 (4-23-2011)
      • Added Permissions Integration :)
      • I think I fixed a bug that occurred when the 'reload' command is issued
    • Version 4.0 (4-23-2011)
      • Added properties file (/plugins/Ownblocks/OwnBlocks.properties)
      • 'exclude'
      • Blocks are now removed from database when broken by their owners
    • Version 3.0 (4-22-2011)
      • Added the ability to toggle OwnBlocks on and off
      • Added commands: /ownblocks or /ob
    • Version 2.0 (4-21-2011)
      • Moved data directory from main folder to the plugins folder
      • Added/fixed serialization (Persistence)
      • Made database searching more efficient
    • Version 1.0 (4-20-2011)
      • Initial Testing Release
    ToDo: Should there be continued interest in this plugin, I will consider looking into:

    • MySQL support
    • Support for group projects
    • Add configuration option to prevent "adjacent construction", where a player builds blocks on blocks owned by another player
    • Add support for Metadata values
    • Area Selection
    • Update this iConomy shenanigans.
    • Look into solution for chest protection
    • Add command to check the database for blocks that have become air because they were deleted externally by something like WorldEdit
    [​IMG]
     
  2. Offline

    Elvis

    I have not tested this yet for i still think i need some more features to download this. I am not picky i thank you very much for bringing what is the Best anti Grief plug At the moment or at least what can when it gets good in devolpement. Anyways what im trying to say is can you make a feature allowing a command /allow (playername) basicly a Default group can do that if they choose allows other people to break their block. Pretty much individuals and /allow list (playername) checks who can break their blocks
    Anyways i thank you very much for bringing The greatest anti grief plugin.
    FYI yesterday i asked my friend if someones going to ever make a plugin like this
    Turns out there has been one. Thanks - Elvis
     
  3. Offline

    killj0y

    Why bold typing? He can read just fine.

    This plugin i dont believe is meant for that kind of work. How this plugin is done is very simple and perfect for what its goal is.
     
  4. Offline

    Elvis

    Well im afraid i really wasnt typing to you and bold is where i get to the part of my request
     
  5. Offline

    patrick61647

    Hi i installed this plugin today. Can someone tell me were to put the permission nodes in because when i tried i could only get the one working for all the people and not admins. Please Help
     
  6. Offline

    killj0y

    So you got it where everyones blocks are protected and not just admins? if so read what he said here

    hope that helps
     
  7. Offline

    Spl1tz

    Hi i'm having 2 issues

    I don't know if its normal but all players login with ownblocks toggled on, any way to prevent this?

    and i got this error. Conflict with iConomy. Incompatible?

    http://pastebin.com/embed_js.php?i=3xzw97jF
     
  8. Offline

    killj0y

    Whatever group you allow to have ownblocks enabled for will default to on. They can toggle it on and off themselves.
     
  9. Offline

    patrick61647

    Thanks for quick response i got it so everyones blocks are protected but admins cant destroy them. ???
     
  10. Offline

    killj0y

    You need to create a group for yourself or whoever you wish to allow destory the blocks and add the permissions node 'OwnBlocks.ignoreOwnership' for that group or for the certain people. This will allow them to break any blocks.
     
  11. Offline

    cvenomz

    OwnBlocks is currently written such that everyone is enabled by default. I meant to add an option for that in the config file. Ill get around to that. And regarding iConomy, yes, it looks like a version mis-match/incompatibility of sorts. What version of iConomy are you using?

    @killj0y, Thanks for helping me, and everyone else out with support :)
     
  12. Offline

    spunkiie

    Please make a PreciosStone import tool.

    Here's my PS unbreakables.txt (flatfile)
    download
     
  13. Offline

    cvenomz

    Ill take a look into it. Broken link by the way: http://i.imgur.com/ybwht.png
     
  14. Offline

    spunkiie

    cvenomz:
    Nice to read it :D

    Link is OK now. Good Luck!
     
  15. Offline

    Spl1tz

    I have the latest iConomy build. iConomy 5.0 (Eruanna) [602-740]
    Thx for the reply!
    I'll wait for a fix.
     
  16. Offline

    killj0y

    Link is still down.
     
  17. Offline

    spunkiie

    WTF ? I'm downloading it right now.
     
  18. Offline

    TimeDeatH

    I wish this had blocks from history, because I created huge kingdom walls around my spawn area, before I got ownblocks.
     
  19. Offline

    spunkiie

    What Phaed (PreciousStone developer) has to say about OwnBlocks:

    thread link

    Well, I just think it would be interesting to hear what OwnBlock developers think about Phaed's statements
     
  20. Offline

    Maxis010

    Go read it in the PreciousStones thread so you can see how much spunkiie has wound up the plugin devs by spouting hate and propaganda for OwnBlocks in the OB vs PS wars he created
    You will have to check the quotes as he decided to delete a lot of his posts

    Nice plugin by the way, I'll stick to bZone as I need stuff like healing but nice all the same
     
  21. Offline

    killj0y

    This is a stupid and un needed argument. Both plugins serve their respected purpose. The simple fact alone that the dev of that plugin would sprout an argument based on another user simply letting the COMMUNITY there may be a plugin to suit them with the purpose they want is enough to end the argument alone and sad.

    Not to mention that dev used the argument "My plugin is free"
    Last time i checked OwnBlocks and well 1000's of other plugins here are free?

    Argument not needed and the fact you even brought the conversation over to this thread just makes you as bad as the person who started it.

    Oh and to stir and/or help any argument debated about if OwnBlocks is stable or not. I Run PugGaming which is home of over 100k. [<----100,000] Members. Our Server has ran OwnBlocks since day 1 of its current world which has been used and in use of well over 1000 logged users . Still runs as it was a new world rendered.
     
  22. Offline

    cvenomz

    To whom it may concern,

    There seems to be some confusion regarding the Bukkit plugin, OwnBlocks, and its relationship with PreciousStones, another Bukkit plugin, whose list of features includes block protection functionality which has been compared to that of OwnBlocks. PreciousStones provides a slew of features for Bukkit servers, and is based upon the idea of players placing blocks in the Minecraft world to perform some extraordinary function unto players who are within some proximity to the previously aforementioned block. Some such functions include allowing players to breathe underwater, healing or incurring damage, launching players into the sky, or even protecting a zone from external forces of destruction. OwnBlocks is a simple plugin with a goal to provide players the ability to protect blocks which they place, as they are placed, with the intent of creating an atmosphere or sentiment within a Bukkit server where players need not worry about the possibility of a second player damaging or destroying any creations of the first. It is this simple goal, among a few others, such as designing OwnBlocks to be simple to install, setup, and use, to be functional "out-of-the-box", and to accommodate and be responsive to the needs and requests of end-users-- so long as this does not significantly detract from previously aforementioned goals. I cannot speak for the developers of PreciousStones, but based on the fact that block protection is only one of its many features, in addition to the differing implementations, I conclude that these two plugins are designed and suited to address different wants and needs. As such, OwnBlocks and PreciousStones are not within the same field for comparison, as the "better" choice is dependent upon the end-user's requirements.

    There has also been some concern raised about specific design choices implemented in OwnBlocks, and I would like to take this moment to address these concerns any of you may have. It is true that OwnBlocks's database is kept in a HashMap, which, when written to the disk is serialized into a single binary file. This implementation is advantageous for a multitude of reasons. First, a HashMap is a very efficient method of storing and accessing data. With an optimal hashing algorithm, adding and retrieving data is a very efficient and fast operation with an order of O(1). This is much faster than other possible implementations of databases, such as a tree or linear list-style solution which would have orders ranging anywhere from O(log n) to O(n). In fact, an algorithm of the order O(1) is of the fastest possible execution time an algorithm may possibly have. Calling an implementation of O(1) "Performance wise" a "bad idea", implies that one knows a solution of the order O(0), which is quite impossible because that would mean that the algorithm would not actually execute any code at all, and thus, cease to be considered an algorithm in the first place. Second, a HashMap solution was easy to implement in a simple, concise, and robust manner. Serializing the data to single file also keeps things simple. A single file means that everything is all in one place. Choosing the simple flatfile as a solution, also provides OwnBlocks with the inherent ability to operate without the need for a large infrastructure in place, providing functionality for even the simplest of installations and server set-ups.

    Data corruption is a valid concern for any digital data. However, the fact that a serialized HashMap is stored within a simple flatfile does not increase the chances of data corruption. The database file is subject to the same risk as every other file within your file system. Should you be concerned of this risk, you should frequently make backups of your database file, just as you do with any other important files.

    It also seems there was a concern about the memory usage of a loaded OwnBlocks database. I would simply like to point out that the data of each block in the database takes up a whole 12 bytes, plus the number of bytes required to represent the owners name. If, for example, we say that a player with a 6-character ascii name places four million protected blocks to be stored in the OwnBlocks database, the database will occupy only 72MB RAM of the of memory space available to the Bukkit server. Considering for a moment just how many blocks constitute four million, the likelyhood players will ever reach this number, and the types of servers, performance-wise, that four million blocks would ever be protected on, one will swiftly discover the insignificance of this number. It is also worth noting that to have four million protected blocks, one must have a incredibly large map to contain all of their creations. Compared to the space occupied by the map data, I dare go so far as to say that the space occupied by the OwnBlocks database would be dwarfed to the point of being regarded as negligible.

    In conclusion, I appreciate every opportunity I have to see my work peer-reviewed. In my opinion, this is one of the many beauties of Open-Source code. I also regret the fact that I may not always be able to return the favor since, unfortunately, not all source code is graced to be released under an Open-Source license, or to even be publicly available at all. In accordance with the Open-Source philosophy, should anyone discover better, or more efficient solutions than ones currently implemented in this project, I would be more than happy to hear them, and duly consider them for integration. In addition, I am always interested in doing my best to respond to anyone who should continue to have concerns or questions with the current implementations or solutions of my projects.

    Sincerely,
    cvenomz
     
  23. Offline

    KimKandor

    Can we get back to having fun now?

    I'm wondering if you have thought about adding meta-data values to the block ignore list for things like saplings which would be 6, 6:1, and 6:2? Those placed with OwnBlocks activated render the bottom of the ensuing tree trunk unbreakable. Thanks again for a cool and useful plugin :)
     
  24. Offline

    Ruinheart

    This is the perfect Plug-in for a Roleplaying server thank you for making this!
     
  25. Offline

    SteffanK

    you will update this plugin ?on the next days ? :) pls it´s a very importent plugin for us
     
  26. Offline

    killj0y

    What is in need of updating?
     
  27. This is a most important Feature for the next Update from this Plugin:
     
  28. Offline

    styyluz

    I have a problem, i have installed de plugin ownblocks, and i exluded the dirt, sand and the wood in the cfg, but when the users try to broke this blocks of other users, they cant, and the plugin not display any mesage, simply you cannot broke the blocks.

    I hope you can help me, thanks in advance.
    bye, and sory for my bad english.
     
  29. Offline

    cvenomz

    Have you restarted your server after you changed the configuration? Also, were the blocks placed before you excluded them? The excluding will only take effect for blocks placed after you specify them to be excluded; blocks already placed are unaffected.
     
  30. Offline

    BarelyMissed

    Having a problem with integrating with Permissions.

    The .use permission is working fine for default users.

    However, the .ignoreOwnership option, when added to the Admins permissions, does not work. It doesn't work with the asterisk and doesn't work with the full spelling either.

    Thanks,
    -Barely
     
  31. Offline

    SteffanK

    this plugin will update on bukkit version 766 or whait of minecraft 1.6
     

Share This Page