Skip to content
magik edited this page Apr 5, 2011 · 33 revisions

iCoLand v2.04 [617]

I'm migrating data from the orignal thread @ bukkit.org here, because of space limitations on the bukkit forums.


Plugin Requirements

iCoLand v2.04 was tested against Craftbukkit build #617
iConomy 4.6.3
Permissions 2.5.5

Update to v2.0+ warning ( from v1 )

I've updated the plugin to 2.02. I've moved completely away from the .yml format I was storing land locations with and have moved to the H2 DB ( it's like sqlite ). If you have iConomy and use the default settings, you should have the H2 library already downloaded.

For all of you coming from before this release. If you want to keep all of your land data, you will need to call this command after you start the server up again:

From the console: icl importdb From in-game: /icl importdb ( you will need a new perm node, "icoland.importdb" )

Do not play with this importDB command - it will drop the whole H2 database, and import from from the file.


Warning

This plugin is very new and very beta. There will be problems/issues/bugs. Please report anything you find here, so we can work out the problems.


Intro

So I wanted a plugin on my server that allows for self-service protection. But I didn't want to make these areas infinitely creatable, and I hate the idea of admins/mods having to zone out areas for people. So that's where the birth of this idea came from. This mod allows for self-service protection areas, and they are limited by the fact that they must "buy" these areas with iConomy currency. This will greatly reduce the amount of griefing issues I will have to deal with on my server as I will start telling people that this is the only valid form of protection and griefing is a fact of life that is unavoidable if you don't protect your land.

iCoLand allows you to buy/sell areas of land ( cuboids ) for self-service protection. You select areas of land using the "/icl select" tool, then you can buy the land with "/icl buy land". This makes the land protected so no others can place or destroy blocks in there. There will be addons you can buy that will add extra features to the land you've bought. Such as announcing the zone name when you enter or leave it, having a location heal a player over time, blocking people from entering the zone completely.

The basic premise of the plugin is that each block in the world is worth some default value (configurable). In the future, there will be the ability to make areas of land worth more. Probably a center point that is highest price modification, with a radius of effect that drops down to 0 at the edge of the circle. Addons also are a per-block pricing scheme.

Updates and more to come, keep posted.

Much thanks goes to Nijikokun for the great iConomy, as well as some helper functions I may have stole of his through HaloInverse's DynamicMarket plugin. Thanks to you too Halo! And thanks to TheYeti for maintaining Permissions until Bukkit solves that can of worms. As well as the Bukkti devs for making all of this possible.


Installation Instructions:

Just copy the jar to your plugins folder and run once to generate the config files.
Modify the config to your tastes.

Commands and Addons

Legend

    LANDID - ID # of the land you want the command to act on
    ADDON - the name of the addon ( announce, noenter, heal )
    PERMTAGS - permission tags they are formatted like: <NAME>:<MODIFIER>, where <NAME> is the playername or the special tag "default", and <MODIFIER> is either "-" to remove a perm, or "t" or "f" to indicate granting or denying permission

Commands

/icl - shows /icl help
/icl help - help screen
/icl list - lists all properties
/icl select [cancel] - land selection tool ( right click 2 corners )
/icl info [here|LANDID] - shows more specific info on a single land, with just /icl info it shows you info on the selected land ( or the land you are currently in if nothing selected ), /icl info here shows you info of the area you are standing in, /icl info <LANDID> will show you info on a specific land ID#
/icl buy land - this command buys the land currently selected for the price listed under /icl info
/icl buy addon <ADDON> <LANDID> - buys the specified <ADDON> for the specified <LANDID> - addon prices are listed under /icl info
/icl sell land <LANDID> - sells the land specified by <LANDID> ( price has a "salestax" % it will buyback the land at
/icl sell addon <ADDON> <LANDID> - sells the specified <ADDON> at the specified <LANDID>
/icl edit <LANDID> name <LOCATION NAME>
/icl edit <LANDID> perms <PERMTAGS>
Admin commands:
    /icl modify <LANDID> perms <PERMTAGS> - (admin) - modifies a <LANDID>' permissions
    /icl modify <LANDID> addons <ADDONTAGS> - (admin) - modifies a <LANDID>'s addons
    /icl modify <LANDID> owner <NEWOWNER> - (admin) - changes the owner of a <LANDID>

Addons

  • Announce - will announce the name of the area when a player enters or leaves
  • NoEnter - will deny people from entering the zone
  • Heal - will heal players over time
  • NoSpawn - no spawns ( and removes mobs from the zone on a period configurable time )
  • NoBoom - no explosions ( not yet implemented )
  • NoFire - blocks can not burn or be ignited
  • NoFlow - lava/water will not flow in this zone ( if you have build perms you can have single source blocks in mid air heh )

Permission Nodes:

For now every single command has a perm node for it... will clean this up eventually to simplify it into groups

  • icoland.list - ability to use /icl list
  • icoland.select - ability to use /icl select
  • icoland.edit - ability to use /icl edit
  • icoland.info - ability to use /icl info
  • icoland.buy - ability to use /icl buy
  • icoland.sell - ability to use /icl sell
  • icoland.modify - ability to use /icl modify ( admin functionality )
  • icoland.modify.owner - ability to use /icl modify owner
  • icoland.modify.perms - ability to use /icl modify perms
  • icoland.modify.addons - ability to use /icl modify addons
  • icoland.nolimit - limits do not apply ( min/max volume/# of lands )
  • icoland.nocost - land/addons are free
  • icoland.bypass - allows admin bypass of perm checking
  • icoland.canbuild - allows to build in non claimed areas ( only when Prevent-Build-Without-Perm: true in the config )

Changelog:

1.18

bugfix - now blocks placement of water/lava in protected areas

1.17

    bugfix for new global deny

1.16-1.15

    noflow config bugfix
    added bypass perm for admins - also shows more info in /icl info now for non-owned land
    implemented /icl modify addons ( just toggles whatever list you put at the end )
    tweaked "nocost" perm to show prices, but not charge
    added a global config to deny build perms in non claimed areas ( defaults to false ) - also added "canbuild" perm that allows users to bypass this deny if they have this perm

1.14-1.12

    added NoFlow
    added NoFire
    added NoBoom
    tweaked /icl list and /icl info information

1.11

    Added mob removal task for NoSpawn addons
    Added "nocost" permission node for free land/addons

1.10

    Implemented healing zone
    Added NoSpawn zone ( still needs a mob removal interval task )
    Added relevant config options

1.09

    paginated /icl list
    added configurable max limit for total volume claimed
    added configurable max limit for total # of lands claimed
    added min/max limits for individual land sizes

1.08

    refactor/rename to iCoLand

1.07

    Locale fix

1.06

    updated to CB# 602 RB ( and iConomy/Permissions for this RB )
    bugfix for selection after buying land

1.04

    shifted configuration around, added enable toggle for all addons
    added 'noenter' addon
    bug fix - /icl modify not saving

1.02

    better in-game /icl help
    bug fixes/cleanup

1.00

    added permission editing
    added location names
    lots of bugfixes, restructure

0.009

    initial bukkit.org release ( BETA )

To-do

Implement proper permissions modification!!! ( IMPORTANT )
Add other addons
    implement NoEnter and Heal
    teleport-able ability?
    No Explosions
    No Spawn - or mob cleanout on interval?
    No Flow zone? ( Need to think about whether this should be default to prevent water/lava griefing )
    No Fire Spread
Better Permissions nodes structuring - simplify into .access, .admin, etc...
Add support for other storage formats ( currently using flat-file yml )
    H2?
    SQLite
    MySQL
    I don't see this flat-file method I am using ( plus the way it ties into the internal structure ) as a viable solution for a large server. I think a relational database is more fit for this application for very large number of zones/land/locations because it will allow for more targeted checking instead of iterating through every zone like it is now.
Price hike areas - admin settable - circle with highest price modification at center, going down to 0 change at the radius edge.
Possible dynamicish price changing? Maybe every zone created automatically adds one of these price hike areas centered at the new zone? This would make it so "popular" areas would rise in value.
Flesh/fill /icl help displays. ( IMPORTANT... very lacking right now )
No-Buy zones - don't want people claiming the spawn, etc....
taxation - periodic taxes on land - land has to be paid for over time at a % rate of it's total value ( addons + land price )
paginate /icl list, have admin list to view all land
possibly better /icl select? a little buggy right now still
temporary "Announce" for tmpCuboid areas for the player that is selecting an area?
add Announce land area name/title
Have a minimum size/volume for buyable land? ( not a bunch of 1x1x1 cubes )
Configurable minimums/maximums - for size of claimable land - maximum # of claimable lands? Possibly configurable per group?
Better tp algorithm when entering noenter zone
sub-zone delegation? Not sure how I would go about this, but it would be nice....
zones for sale - somehow set up/mark a zone for sale, and have people be able to buy it? This somewhat ties into the above, if these zones for sale were sub-zones....
modify temporary selection to go from sky to bedrock?
select a whole chunk?

[/spoiler]

Clone this wiki locally