Inactive [FUN/MISC] Vegetation 3.4.6 - Wild Grass/Vines/Plants/Moss/Grazing Animals (Permissions 2.6+) [1060]

Discussion in 'Inactive/Unsupported Plugins' started by zeff, Mar 9, 2011.

  1. Offline


    Vegetation: Wild Grass, Vines, Plants and Moss Growth! v3.4.6

    This plugin implements the functionality of ejhopkins' Wild Grass Collection v15.2 server mod, as well as vines on trees, (partially working) lily pads and mini-cacti on land, mossy growth spreading on cobblestone and surface plant spreading functionality based on Master-Guy's PlantSpreader plugin. **Note that in order for the players to see the wild grass, you must install the client mod following the instructions found here.** Of course, the grass and/or plant growth can be disabled.

    Now supports vines! See the latest screenshots in the list below.

    Screenshots (I'm using Misa's HD Texture Pack):
    Show Spoiler

    Yeah, I didn't let much grass grow. I had it set too low for the demo screenshot.

    Holy cow, that's seriously planty.

    Single grow of a square of tall (10) grass blocks around me using the /gg 10 command on each block.


    This field was grown using /growfield 8.

    ...and then mowed back down with /mow.

    Nice pretty vines hanging down from this tree... (stock MC textures)

    Show Spoiler

    • Placed plants (vines, cacti, lilypads) will sometimes (actually, semi-frequently) pop out and become plant pickups. This is an issue with the Minecraft server automatically doing its environmental plant-population algorithms. Until I find a way to circumvent this, your mileage may vary. Again, anyone is welcome to tweak the source code and make it work better.
    • To be able to plant flowers on sand or water requires a server patch.
      (see below)
    • Grass will grow taller. It can get pretty ridiculous. Without the optional client-side mod, players will only see normal grass blocks.
    • Specified animals will eat whatever grass they encounter, down by one level, on a timed basis.
    • Plants (flowers, mushrooms, cacti, canes, and pumpkins) will spread to nearby adjacent blocks of the same type.
    • Tall Grass and Dead Scrubs now also grow and spread
    • Growth will only occur during the daytime.
    • It will also only occur in the biomes set in the .ini file (see below)
    • It will also occur in all worlds hosted by a server, and only in chunks occupied by at least one player.
    • Configuration folder/file will be created if not found. To reset to factory defaults, simply delete the plugins/Vegetation/Settings.ini file.

    Server Patcher:
    Show Spoiler

    Bukkit Patcher (Download):
    If you want to be able to plant flowers on sand/water, you need to patch your craftbukkit version with the patcher provided here. However, putting flower blocks on water requires you to target the non-water block beneath the water block you want to plant your flower on. This is due to the way the client mod renders lilies, something I can not change. Bugs may occur if you don't plant them correctly, however there is no way your server map will get corrupted. In that case the client thinks there is a plant block on top of water while there actually is none. You will be able to see the "fake" lily but nobody else will, those fake ones will disappear once you relog.
    You may also use /grow flower to grow lily pads on water.

    This patch will not corrupt your map in any way. If you don't have it installed, the server will just unroot all flowers previously planted on sand/water blocks. They'll just pop.

    @echo off
    java -Xincgc -Xmx1G -jar BukkitPatcher_0.0.jar craftbukkit.jar

    Open the start_patcher.bat file and edit the highlighted portion to the name of your carftbukkit file. You have to put both files into the same directory as your craftbukkit.jar in order to patch it.

    Show Spoiler

    • /grow [type]: trigger a manual growth loop for the specified plant type.
      Valid types are: flower, mushroom, cactus, sugar_cane, moss, scrub
    • /mow: removes all grass within growthRange of player (see configuration) - it will reduce all tall grass blocks into grass-covered dirt blocks.
    • /biome: returns the type of biome the player is currently standing on. You can use this command to collect information on which biome the new tall grass blocks are placed in. Please post your findings in here so I can implement it.
    • /purge [type]: purges your map and removes vines and wild grass
      Valid type are: wild_grass, vines, tall_grass
    (Working on adding back the other commands / features)​

    Show Spoiler

    • The configuration file (plugins/Vegetation/<your worlds name>.ini) looks like this:
    /* Block Search Settings:
    /* Vegetation Settings:
    /* Set max grass height from 1-9
    /* If this option is set to true,
    /* moss will grow on any cobblestones touching water
    /* regardless if there was a moss block to spread from or not.
    /* Player related Settings:
    /* The player will trample a path through the grass if set to true.
    /* ENTITIES:
    /* Sets max number of grazing animals.
    /* You should decrease this number if you encounter server lag.
    /* BIOMES:
    /* Enabled/Disables the growth of vegetation on
    /* certain biomes.
    /* EVENTS:
    /* The following parameters determine how many ticks of
    /* 100 ticks a specific type of action is being executed.
    /* (Example: If grassPercent is set to 60, there is the possibility
    /*  of grass growing at 60/100 ticks if a grass block is found 60 times.
    • growthRange: width radius (from each player), in blocks, of horizontal block-checking and growth to occur - this affects server performance.
    • verticalRadius: height radius (from each player), in blocks, of vertical block-checking and growth to occur - this also affects server performance.
    • enableGrass, enable tallGrass, enablePlants, enableMoss, enableGrazers: self-explanatory :)
    • enableFlowers, enableFungi, enableCacti, enablePumpkins, enableCanes, enableVines, enableLilyPads: individually enable/disable growth types as needed. If enablePlants is set to false, these options will be ignored.
    • waterGrowsMoss: if set to true, any cobblestone touching water will become mossy over time. If moss spreading is also enabled, it will continue to spread from there.
    • grassPercent: percent of the time in which grass should grow
      (see also grazePercent below)
    • plantsPercent: percent of the time in which plants should spread
    • mossPercent: percent of the time in which moss should spread
    • lilyPadPercent: percent of the time in which lilypads should spread
    • vinePercent: percent of the time in which vines should grow
    • tallGrassPercent: percent of the time in which tall grass should spread

    • growForestBiome, growRainforestBiome, growShrublandBiome, growSavannahBiome, growPlainsBiome, growSeasonalForestBiome, growIceDesertBiome, growDesertBiome, growSwamplandBiome, growTaigaBiome, and growTundraBiome: individually enable/disable growth in these biomes as needed.
    • enableGrazers: if set to true, then the mobs (if enabled with the following directives) will eat the grass down by one level.
    • grazePercent: percent of the time in which animals will eat the grass
    • grazingSheep, grazingCows, grazingPigs, grazingChickens: enable/disable the ability for these individual animal types to graze on the grass, accordingly.

    Show Spoiler

    - 'vegetation.grow' - grants access to the /grow command​
    - 'vegetation.growall' - grants access to the /growall command​
    - 'vegetation.mow' - grants access to the /mow command​
    - 'vegetation.purge' - grants acces to the /purge command​
    - player command biome does not require any player permissions​

    Download the Plugin (latest version, JAR) v3.4.6​

    Source is now at Github - most recent releases can be found under the test branch.​

    Previous builds can be found here (and on Github).​


    Show Spoiler

    Version 3.4.6 09-August-2011
    * fixed Long Grass growing on sand and water upon chunk creation​

    Version 3.4.5 22-July-2011
    * fixed playerlist for nether and skylands​
    * fixed possible memory leak​
    * fixed a lot of NullPointerExceptions​

    Version 3.4.4 20-July-2011
    * vines will now vanish if a tree burns down​
    * tweaked tall grass spread a bit​
    * added option to purge command (wild_flowers will purge all sand flowers and lily pads)​

    Version 3.4.3 10-July-2011
    * fixed vines turning back into sugar cane blocks (hopefully)​
    * vines decay now​

    Version 3.4.2 22-June-2011
    * it should be possible to edit signs again​

    Version 3.4.1 16-June-2011
    * fixed Wild Grass​
    * adjusted spreading of Tall Grass​
    * added more options for purge command (self-explaining)​
    * new algorithm for trample grass!​
    * Wild Grass no longer grows on the same block as Tall Grass​

    Version 3.4 14-June-2011
    * added new purge command which removes vine blocks and resets grass blocks meta data (removes wild grass)​
    * vines will only grow on normal trees​
    * added Tall Grass aka Dead Scrubs, Tall Grass and Green Scrubs​
    * added settings check for the grow command, players now only can grow plants which are also enabled in the settings​
    * plants now only spread within their biome type​
    * enabled wild grass and trample grass again​

    Version 3.3 06-June-2011
    * implemented Operator commands for those who don't have Permissions installed on their server​
    * disabled grass for now, pending investigation​
    * fixed plant growth explosion​
    * added "biome" player command, which will just tell you in which type of biome you currently in​

    Version 3.2.2 20-May-2011 zeff
    * vines will no longer drop sugar canes​
    * player can now mow grass with hoes​
    * trampleGrass changed so that it appears more natural (kicks off with a chance of 40% now)​

    Version 3.2.1 14-May-2011 zeff
    * fixed a nasty bug where plants, especially lilies would sometimes replace a block instead of growing on one​
    * flowers and mushrooms now only grow if the light level is appropriate​
    * fixed a bug with planting flowers on water​
    * red roses no longer spread yellow flowers​

    Version 3.2 12-May-2011 zeff
    * separate setting files for each world
    * lily pads added​
    * sand flowers added​
    * performance improved​

    Version 3.1.2 06-May-2011 zeff
    * Implemented thread-safe playerlist as preparation for multi world support​
    * changed default settings for first plugin run​

    Version 3.1.1 02-May-2011 zeff
    * Cacti no longer spawn directly beside blocks which would unroot them instantly​
    * Sneaking players no longer trample down grass​
    * Minor bug fixes​

    Version 3.1 28-Apr-2011 zeff
    * Animals can once again graze grass​
    * Implemented spreading ratio for flowers/mushrooms/cacti. This will prevent them from covering your whole map as they can only spawn in a specific ratio per area​
    * Vines are growing now once you enable them​
    * "trampleGrass": If enabled, players will trample down grass and create a path​
    * "maxGrassHeight": self-explaining​

    Version 3.0 27-Apr-2011 zeff
    * disabled growall command since it's kind of useless the way it is now​
    * fixed mow player command​
    * disabled vines since they are not working properly and create lag​
    * added new setting option for player commands: maxActivePlayerCommands only allows a set amount of commands to run simultaneously​

    Version 2.31 13-Apr-2011 w5i2
    * Recompiled against latest recommended Craftbukkit build #674.​
    * Fixed another pretty ridiculous bug in the plant growth player-getting subroutine, one which was seriously affecting performance. Should work even more as it was designed to work now. :)

    Version 2.3 09-Apr-2011 w5i2
    * Recompiled against latest recommended Craftbukkit build #670.​
    * Grass grows through snow blocks now. Can't wait until 1.5 comes out!
    * Fixed a pretty ridiculous bug in the plant growth percentage calculations. Should work as it was designed to work now. :)

    Version 2.21 01-Apr-2011 w5i2
    * Recompiled against latest recommended Craftbukkit build #617.​
    * Added the ability to have water cause cobblestone to become mossy. Only if the cobblestone is touching the water, obviously.. And of course, normal moss spreading can take over from there if you have that enabled as well.​

    Version 2.2 30-Mar-2011 w5i2
    * Updated to incorporate new features of Wild Grass 10.1+ -- vines!!
    * Changed growth percentages to doubles, so now fractional percentages may be used in the .ini file.​
    * Added HELL biome to the list of configurable biomes (see above)​
    * added /growvines # command. For example, /growvines 10 will grow ten random vines within growthRange number of blocks.​
    * added /vine # command. If you aim at any lower leaf block on a tree and type /vine 3 it will grow a single vine from that block, three blocks tall.​
    * Recompiled against latest recommended Craftbukkit build #602.​

    Version 2.11 25-Mar-2011 w5i2
    * Fixed the /growgrass # command handling. Try /growgrass 1000 and watch it grow!​

    Version 2.1 24-Mar-2011 w5i2
    * Improved the plant spreading code, now my world has way too many flowers. :) Still not seeing any cacti growth, but I do see evidence of canes spreading.​
    * Grazing animals now will only eat grass that is >3 in height. I will most likely add a grazeHeight setting to the .ini file.​
    * Added /gg, /growfield and /grass commands (see Usage above)​
    * Added optional numeric arguments to the /overgrow and /growgrass commands to temporarily change/set the grassPerGrow value to something higher if needed.​
    * /overgrow now has one plant cycle included per 10 grass cycles (unless growPlants is disabled, of course)​
    * /mow now sets the surrounding grass level to 3 instead of 1 (completely flat). If you prefer the completely flat look, you can use /growfield 1 to achieve the same effect.​
    * Removed the obnoxious "Updating player position.." spam from the debug logging​

    Version 2.0 20-Mar-2011 w5i2
    * Major rewrite of the timer task code. This should greatly help with CPU performance issues.​
    * /overgrow now only grows around the player who typed it, rather than all players. It also now runs 1,000 growGrass() cycles, and notifies you at 25%, 50%, 75%, and completion, since it takes a while to run.​
    * Rewrote the way the timer handles the growth tasks - now it is based on a 100-slot timeslot system, so grass/plant/moss/graze amounts can be specified as percentages.​
    * Removed a few unneeded configuration directives and added some others.​

    Version 1.5 19-Mar-2011 w5i2
    * Had the idea to add animal grazing. This should help keep the grass down. :)

    Version 1.41 18-Mar-2011 w5i2
    * Recompiled against the latest recommended Craftbukkit build #556.​
    * Fixed the cacti/canes growth.​

    Version 1.4 18-Mar-2011 *it is recommended that you update to this version or newer* w5i2
    * Divided the moss, grass, plants, and block manipulation functions into separate Java classes.​
    * Added /growmoss command.​
    * Added mossEnabled and mossPerCycle to the .ini settings.​
    * Rewrote the TimerTask threads to be properly implemented (as classes instead of functions)​
    * Finally got the mossy cobblestone spreading to work​
    * I completely forgot to fix the cacti/canes growth, it will be fixed in the next release :)

    Version 1.31 15-Mar-2011 w5i2
    * Fixed a serious bug in which it would "grow" half-blocks into other types of half-blocks, or rotate stairs and rails. I apologise for any inconvenience this may have caused.​
    * Added the remaining biomes (sans Biome.HELL) to the configuration​
    * Apparently TimerTask asynchronicity is discouraged, so I changed the timer tasks to synchronous.​

    Version 1.3 14-Mar-2011 w5i2
    * Rewrote the looping routines again! They actually work properly now.​

    Version 1.21 10-Mar-2011 w5i2
    * Rewrote the looping routines to be a bit more efficient.​
    * Fixed a couple more mathematical bugs.​
    * Discovered and implemented the nifty Block.getRelative(BlockFace.UP) method.​

    Version 1.2 10-Mar-2011 w5i2
    * Added /overgrow command.​
    * Recompiled against latest recommended Craftbukkit build #531.​

    Version 1.1 10-Mar-2011 w5i2
    * Fixed flawed multi-world checking code. :)
    * Fixed flawed block-checking code.​
    * Added more configuration options.​
    * Added more biomes in which growth may occur.​

    Version 1.0 09-Mar-2011 w5i2
    * Created plugin.​
    Teteros, Sphax, kahlilnc and 2 others like this.
  2. Offline


    It decreases the value by two for each move as far as I remember.
  3. Offline

    Pontus Lantz

    The grass goes down 1 or 2 steps for each tick when im on the grass. Doesn't matter if i move or not. Just goes down increadibly fast 1/2 steps a time very fast when a player is at/in that block.
    Edit: Apparently the player have to move but even looking 1 mm to the side counts as movement so.
  4. Offline


    It all works through the PlayerMoveEvent, maybe there is some way to determine how far a player moved when the even got called. I'll look into it but since it's not that big of an issue I won't give it high priority. Right now I am more concerned with the way the plugin gets the servers online players since that seem to not work properly :(
  5. Offline

    Pontus Lantz

    Yea seems like a more serious problem ^^.
    Btw when i tried out vines i there where sugar plants that came down from the trees. I thought it was suppose to be like the grass and only be a texture?
  6. Offline


    You have to have the vines mod installed or the collection. Grass mod alone does not render sugar canes as vines.
  7. Offline


    FYI: The instructions are wrong for the config file in the op.

    In the description it is stated:
    First error is I count five percent settings :) Or did you mean the 4 settings other than "grassPercent"? It is not clear.

    But the sample config file shows the percentages at:

    So that is another problem. They don't add up to 100 if you use all five!

    Better yet, if you copy the numbers shown here into a config file, then you get the following error (using b740):

  8. Offline


    Delete your settings.ini and generate a new one from the plugin (just restart your server). The options are better explained in the file itself.
    weasel5i2 likes this.
  9. Offline


    Thanks, but I have done that. I was pointing out that your first post is out of date and leads to confusion and errors in the log. Just thought weasel5i2 might want to update the instructions to match the config ;)

    Unrelated to instruction issues, I would like to add a vote to turn grass, vine, and lilypad growth off by default in a new installation. I don't use any of those mods, since they require patching rather than just mod installation. Since I run an SMP server, I cannot control when others log onto the server, so would appreciate the option to turn ON map-affecting mods rather than have them start by default.

    By "map-affecting" I mean that last time I checked, wildgrass afffects the map so that it will not load on a vanilla server. If I am wrong (as I said, I don't use it -- for that very reason) please feel free to correct me :)

    Oh, and all 3 of those are turned on when you get a default config. I backed up my map, started the server, stopped it, edited the settings, and then restored the backup map just to be sure.

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


    I am very sorry about that, I will change that right away as I was planing to do with the last release but actually forgot it...
    A feature to purge your map and all affected data is also on my todo list but I am not really sure how to accomplish that yet.
  11. Offline


    I do need to update it, I forgot to change that when I added a fifth percentage..
    **edit** Fixed it to be a bit more ambiguous.. zeff, any changes to the description/instructions I might've missed, please lemme know and I'll add/change it.
  12. Offline


    Is there any way to mark a grass block so that it doesn't grow wild grass permanently? I'd like to be able to landscape with a little more freedom.
    weasel5i2 likes this.
  13. Offline


    That's a good idea.. Probably by setting the data value to some special non-grass (1-10) value which doesn't show anything on the grass block would do it.. Like >= 99 or something maybe? I'll have to experiment and see... I know that setting the value to 11 or higher does tend to do some strange stuff.. I've even seen it where the grass block has a vine growing out of the top of it!
  14. Offline


    You can set the metadata to 1, grass will show nothing as far as I know with that setting.
  15. Offline


    A possibility is if I use a gold or diamond hoe to hoe the ground then the grass on that block is permanently removed. You could always re-grass simply be destroying the block and putting another dirt block down.
  16. Offline


    But 1 falls within the grassy 1-10 range, so the growing algo would see that and increment it to 2, then 3, etc... We need to use a value that falls outside the 1-10 growing range as well as any other values that ejhopkins may have chosen to use.. That's why I think a higher unlikely value, like 99, would be suitable :)
  17. Offline


    The growing algorithm of the client mod does not work on server blocks, the plugin regulates so growth. 99 would be sufficient I guess.
  18. Offline


  19. Offline


    I updated the file just now, try again please.

  20. Offline


    Thanks, everything seems to have loaded fine. :)
  21. Offline


    Looks like it's updated now.. Was just needing to be re-uploaded by zeff. :)

    **EDIT** nevermind, it was updated as I was typing that. I just updated the thread/changelog.

  22. Offline


    If you added a setting for the max grass grow height, this plugin would be perfect, but as is the grass just grows too damn tall and it feels like I'm walking through a corn field instead of grass.
    The perfect height would be 1 block tall IMO since it wouldn't obstruct your line of sight much.
  23. Offline


    Show Spoiler

    /* Block Search Settings:

    /* Vegetation Settings:
    /* If this option is set to true,
    /* moss will grow on any cobblestones touching water
    /* regardless if there was a moss block to spread from or not.

    /* Player Command Settings:

    /* ENTITIES:
    /* Sets max number of grazing animals.
    /* You should decrease this number if you encounter server lag.

    /* BIOMES:
    /* Enabled/Disables the growth of vegetation on
    /* certain biomes.

    /* EVENTS:
    /* The following parameters determine how many ticks of
    /* 100 ticks a specific type of action is being executed.
    /* (Example: If grassPercent is set to 60, there is the possibility
    /* of grass growing at 60/100 ticks if a grass block is found 60 times.

    There is already a setting for that as you can see.
  24. Offline


    Is this working with 714 ?
  25. Offline


    Additional question: Could there be a command to remove ALL grass/vines/lilipads from the server? Basically a meta variable reset.
  26. Offline


    Thank you so much for this plugin! It's nothing short of genius and my players love it for the immersion it provides! Although, all of us had some ideas on what we would make this plugin better.

    I haven't bothered to read through all the pages, but has anyone suggested per-biome growth height for grass? I noticed that growth rates were on the to-do list, but maybe there should be a MAX_HEIGHT constant for specific biomes. For example, grass wouldn't grow as high in a tundra or snow desert biome. However, in a seasonal forest biome or rain forest that would be vastly different.

    Another setting, although maybe complicated, would be altitude values. That seems extremely complicated to code and you may need a team to do it (I really don't know much about coding with Bukkit). What I mean is, if plants or anything reach a certain altitude then their MAX_HEIGHT (which is like 4 naturally, right?) is reduced until eventually there's no grass near the clouds. Entirely configurable in the config files or automatic. Your call.

    I hope these ideas helped and aren't just rehashed, haha.

    I'd really like this! I screwed up at first and didn't pay attention to the grow settings. So, now I have grass EVERYWHERE. I fixed the settings and now the animals are finally mowing it down but... Damn.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 11, 2016
    weasel5i2 likes this.
  27. Offline


    I'm glad to see a plugin for WildGrass, but I'm curious about something. Our Bukkit build does not have permissions implemented, as we're a closed, private, invite-only construction server. So when running, the plugin squeaks "Permissions not implemented, commands won't work this way!"
    So far, I see red and yellow flowers popping up a bit more often, and the vines .... dear God, the vines. They are EVERYWHERE.
    But no lily pads, no other colors of wildflowers, no moss. Just an overabundance of vines and more red and yellow flowers. Not even the eponymous grass. I've tried playing with the settings.ini file, and this doesn't appear to have any effect. Is the lack of permissions hurting the functioning of the plugin?
    The Permissions plugin looks like I'd be purchasing an entire freeway system when what I wanted was a driveway--I'm not sure I want to mess with how ... involved it would be; I perceive it as a risky option.
  28. Offline


    Permissions isn't too involved, the stock settings file is well commented and configuring it uses the easy and simple indention-based YAML format.. So, the minimum thing to add to the stock config file (which will be located at plugins/Permissions/<world name>.yml; there will be one for each world on your server) to get Permissions working would be (and this is based on my own user permissions, replace the name and nodes as needed):

            group: Admins
                - '*'
                - 'chickenBombs'
                - 'kit.kat'
                - 'myhome.home.*'
    In the above example, the - '*' node gives me permissions to everything, and supersedes any permissions which follow after it in the file. Only give this to trusted users :) Each other node thereafter is permission for different plugins (in this case, ChickenBombs, KitPlugin, and MyHome) -- the forum threads for these plugins will specify which nodes to add to your config file in order to get them working with Permissions. This file is where you grant permission to your users to use certain plugins. To add other users, simply create a section for them indented exactly like the above example and it should work. The plugin will throw an exception if you format the spacing wrong. It will also create the config files if they don't exist. Just remember when editing that the indents are spaces (x4) and not tabs! ^_^

    Hope this helps! Permissions is pretty handy, and (afaik) not readily exploitable.

  29. Offline


    If you aren't seeing grass grow then it probably means your client side mod isn't correctly installed.

    And I agree about the vines. I had to turn vine growth off because they grew so rampantly and I don't quite understand the % options to modify it correctly.
  30. Offline


    I will see to use commands without permissions and the usual op server settings. Right now, I am revamping a lot of code to implement settings for separate worlds so I won't work on anything but this until my solution is stable. It's working for now but I am still tweaking things. Next will be to fully implement all flowers of the client mod. Lilies are a different story, they require more attention and a modification of the original client mod. I have a bukkit server patch and a base to plant them but it's pretty bugged.
    As for biome settings: Those will come as soon as everything else works properly.
    That's my plan for now.
  31. Offline


    Thank you for your hard work zeff. We all appreciate it.

Share This Page