Giant Trees
Giant Trees
Giant Trees is a plugin for adding procedurally generated giant trees to your world. Giant trees are generated in three ways:
- Giant trees are grown in creative/survival mode by planting saplings and fertilizing with bone meal
- Giant trees are summoned with a command
- Giant trees naturally grow when new forested biomes spawn
Tutorials in other languages:
Planting Giant Trees
To plant a giant tree in creative/survival mode, perform the following steps:
- Flatten a 5x5 area of dirt
- Surround an emerald block with two rings of saplings
- Fertilize a sapling with a stack of 64 bone meal
- Stand back
The type of sapling fertilized will determine the species of giant tree that grows.
Commands
To create a giant tree with a command, use the /tree-create or /gt command, followed by the name of the tree. Tree names are found in the plugin's data directory. For example, to summon a giant acacia tree, use the command
/gt tree.ACACIA
To edit the model for an existing tree, or create a new tree model, use the /tree-edit command. This command can only be used from the server console.
/tree-edit tree.ACACIA
Naturally Growing Trees
By default, Giant Trees will grow naturally in newly generated chunks in the default overworld (the world called "world"). To add giant trees to more worlds, increase the frequency of tree growth, or disable natural tree growth altogether, edit the plugin's config.yml.
Tree Species
For the beta the following species of trees can be summoned with the /gt command:
- tree.ACACIA
- tree.BIRCH
- tree.DARK_OAK
- tree.JUNGLE
- tree.OAK
- tree.SPRUCE
More tree species will be added in future releases.
Undoing Giant Trees
Trees summoned with the /gt command can be undone using WorldEdit's //undo
command. This feature is automatically enabled if WorldEdit is installed.
Making Your Own Giant Tree Species
You can make your own species of giant tree. Start by using the /tree-edit command from the server console, giving it the name of the tree you want to edit or create. (For new trees, ignore the file not found error). As an alternative, you can double-click the Giant Trees plugin .jar file to start the visual tree editor.
Design your tree using the visual tree editor. When you are done, click save and exit the visual editor. To add roots to your tree, create another tree with the same name as your tree, with .root added to the end. For example, /tree-edit tree.ACACIA.root. Root trees are rendered upside down in the world and scaled to match their tree.
Is your new tree really awesome? If so, PM me the model and I'll include it in the next version of the plugin.
Permissions
- gianttrees.create (default OP) - Allows the creation of a giant tree using the tree-create command.
- gianttrees.grow (default true) - Allows a player to grow a giant tree by fertilizing a grid of saplings.
Source Code/Issues
https://github.com/rmichela/GiantTrees
Metrics
This plugin utilizes Hidendra's plugin metrics system. the following information is collected and sent to mcstats.org unless opted out:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- Plugin's version
- Server's version
- OS version/name and architecture
- core count for the CPU
- Number of players online
- Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
This is a great plugin it is a must have for people that like to make tree houses!
Whenever I try to use a subtype of material (birch or colored wool, planks, etc.) It says it is an invalid tree. What am i doing wrong, here is an example of what I am tryng:
/gt 30 4 17:2 18:2
In theory this should make a giant birch tree right? But instead it says "invalid tree".
@LukethDragon
Yea looking at my code that's actually a mistake (sortof). I guess my original thinking is that you shouldn't be able to undo things you grew. Glad you fixed it though.
I am kinda in a code freeze right now, waiting for the Minecraft API to come out, which is unfortunately taking much longer than expected.
@CMahaff
Actually we gave /gt undo a go, apparently there's no undoing a giant tree grown naturally from a sapling. :P
It's all good though, it's a live and learn scenario!
@LukethDragon
I never thought of that scenario actually. If it is a problem you can /gt undo it of course. I think I'd leave it that way because otherwise I might get people commenting who are confused why none of their trees are growing, just because they are in too small a room.
But thanks for letting me know!
So we have the option enabled that allows for the chance that when a sapling is planted, it grows into a giant tree. Pretty nifty really.
I ran into a snag though. See I've made a bit of a wood farm down in a deep cellar of my house, with a clearance of only 6 vertical blocks so that the trees grow at a manageable and easily harvest-able size. I'm planting away after a harvest and then BAM, giant tree up through the ground and all through my house.
It's all just a bit of a laugh, but I'm curious what your intentions in this area would actually be? Perhaps in an update the planted saplings could check for the available space before growing? Or Is the sudden appearance and destruction the desired effect? I mean seeing as it /is/ a giant tree and all.
@cadika_orade
Well you can spawn them naturally, however it WILL weigh down your server quite heavily - and may generate errors. I know a lot of people have had problems with it, so I don't recommend turning it on. Unfortunately Bukkit's recent changes have made it quite unstable - and I'm in a code freeze for this plugin until the modding API comes out.
I'm not sure what your problem is. Are there any errors generated? It's possible that a tree save could be corrupt. Additionally I see you are using R2 - R4 is the latest server release - that shouldn't make a difference but you never know I guess.
Every time I try to spawn a giant tree of any size or dimensions, I get a 1-block tall disk of my desired diameter and 4 single-block... "streamers" going off in the NW, NE, SW, SE directions all the way to the height limit. CPU and RAM usage rapidly hit 100%, everyone gets disconnected, and I have to restart the server. When I do, everyone's inventories are back to however they were at last save but the map is just fine, save for the bizarre... tree-thingy.
I have used your plugin to great effect in the past, and I am using your latest version. I am running CB 1.2.5-R2.
P.S. PLEASE make it possible for these to spawn naturally, ideally with the ability to select configuration parameters per biome. I find giant trees the perfect thing to liven up bland oceans.
@StayAlive1337
Of course. /gt height width logtype leaftype
So, for glowstone /gt 24 4 birch 89
89 is the block id for glowstone that you can get here: http://www.minecraftwiki.net/wiki/Data_values
Hi. It is possible, to create glowstone tree? It must look great! Glowstone > leafs.
20x7 tree+ timber= FUN
@gabriel11798
Hahahah it is up to you. If they are still spawning and not actually hurting anything than I guess you can ignore the errors?
Also, I found this on the No Lagg page:
"Keep chunks loaded
Since 1.1 you can set a delay for chunks to stay loaded. You can use this to keep commonly-visited chunks in memory and prevent them from unloading and loading frequently. Please disable this feature, since it got bugged after the chunk unload event became a spam."
So it appears to be a Bukkit problem. Either that or a conflict with no lag. If it is not actually crashing the plugin or corrupting your saves than I guess you can ignore the error. I'm guessing something is up with the ON_LOAD call which means it is probably trying to put blocks in a chunk that isn't loaded.
Hopefully this will be fixed when the Mod API comes out and I port the plugin over. Sorry it is giving you problems.
@CMahaff
b-b-b-b-b-but.... I like natural trees..... (they still spawn)
@gabriel11798
Turn off "Allow Naturally Occurring Giant Trees" in your config. It might be due to a change in Bukkit, but you are the second person to report this. I did label the feature as highly alpha. If it is causing you to crash, just disable it in the config and restart the server and it should be fine.
This has a error with Nolagg :/ here it is:
2012-04-25 18:28:39 [WARNING] Could not properly handle event CHUNK_LOAD: java.lang.IllegalAccessError: Synchronized code got accessed from another thread: com.connormahaffey.GiantTrees.CreateTree at org.bukkit.event.Listener.onChunkLoad(Listener:0) at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:103) at com.bergerkiller.bukkit.nolagg.examine.TimedChunkProviderServer.getChunkAt(TimedChunkProviderServer.java:147) at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:105) at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:69) at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:478) at org.bukkit.Location.getBlock(Location.java:82) at com.connormahaffey.GiantTrees.Build.changeBlock(Build.java:94) at com.connormahaffey.GiantTrees.TreeLeaves.createTreeLeaves(TreeLeaves.java:120) at com.connormahaffey.GiantTrees.CreateTree.makeLeaves(CreateTree.java:151) at com.connormahaffey.GiantTrees.CreateTree.run(CreateTree.java:87) 2012-04-25 18:28:39 [INFO] This error is logged only once: it could have occurred multiple times by now. 2012-04-25 18:28:39 [INFO] Please contact one of the authors of plugin 'Giant Trees':
And it did happen more than once.
@Darkhand81
Ah excellent!
And yes, that's a lot of blocks, around 3000! Bukkit might not be able to handle that many at once. I imagine you'd have similar problems if you tried to make a shape that big in WorldEdit.
To be honest I've never tried a tree that wide!
@ethrbunny
The errors are from naturally occurring trees. If you turn them off in the config they will go away. It's an experimental feature for sure.
And for planting to work, you need to turn it on in the config, restart the server, place a sappling and then the block OR place the block and then the sappling. Just make sure the block you are placing matches the block ID in the config. Default is 41 which should be gold.
It's working alot better on the medium size trees, no more overhead limit errors!
It still chokes to death on the larger guys though, width seems to affect it more than height. 96 height by 20 width seems to be particularly tough, I haven't gotten one that size to finish yet. It's a definite improvement though!
I wasn't able to get one to grow via block->plant so I started wandering (in creative mode). After a while these stack dumps just started pouring out in the console window.
I've been able to grow them via /gt and have seen them 'naturally' so basically the plugin works fine. Im guessing that the stress of making them while also producing new chunks is perhaps too much for my tired old server.
Still trying to do the gold block -> plant tree = gt though. Do I have the wrong order?
@ethrbunny
Do you have naturally occurring trees turned on or off? Or is this happening when you create a tree?
Getting lots of these:
16:02:33 [WARNING] Could not properly handle event CHUNK_LOAD: java.lang.IllegalAccessError: Synchronized code got accessed from another thread: com.connormahaffey.GiantTrees.CreateTree at org.bukkit.event.Listener.onChunkLoad(Listener:0) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:103) at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:115) at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:79) at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:489) at org.bukkit.Location.getBlock(Location.java:82) at com.connormahaffey.GiantTrees.Build.changeBlock(Build.java:94) at com.connormahaffey.GiantTrees.TreeLeaves.createTreeLeaves(TreeLeaves.java:113) at com.connormahaffey.GiantTrees.CreateTree.makeLeaves(CreateTree.java:150) at com.connormahaffey.GiantTrees.CreateTree.run(CreateTree.java:87) 16:02:33 [INFO] This error is logged only once: it could have occurred multiple times by now.