Inactive [FUN/MECH] ChopTree 1.24 - Chop Trees by Removing Lowest Block - Like Cacti [1000] (by Arcwolf)

Discussion in 'Inactive/Unsupported Plugins' started by askmeaboutlo0m, May 1, 2011.

  1. Offline

    askmeaboutlo0m

    ChopTree - Chop trees like cacti or make logs move down while chopping
    Version: 1.24


    ATTENTION:
    There seems to be a plugin conflict where the client crashes with a blue-white screen and keeps crashing for minutes after that.
    If you encounter the error please give me a list of the plugins you are using, with enough lists I will be able to outrule what causes it. Please also tell me if you are using any client-side mods.


    Thanks very much to Arcwolf for developing version 1.24!

    Tested with Craftbukkit build [740], [766], [798], [818], [1000].
    Supports: Permissions v. 2.7.2 (Phoenix) and mcMMO v. 1.0.07.
    Please give me feedback, ask any questions you like and/or provide suggestions!
    Thank you!

    Features:
    • Lets trees act like cacti - remove a block and all blocks above are yieled too.
    • Or you can make that log blocks move down one by one instead - no more climbing trees.
    • Works with all three tree types (they all yeild their own wood).
    • Also works with "big" trees that have multiple branches - makes felling them a lot easier.
    • Restrict using this plugin to certain tools only.
    • Supports mcMMO and Permissions.
    • Only works on trees, houses made of logs are safe!
    • Chunk protection to make your tree houses safe.
    Download (JAR file) | Source (ZIP file)


    Description:
    This plugin was requested by Britich and is inspired by the Canary plugin RealTree by billyoyo.
    However, it is not just a simple port of that plugin, it was made from scratch after Britich's description.

    Pictures:
    Show Spoiler

    [​IMG]
    Approach tree...

    [​IMG]
    ...and punch it.

    [​IMG]
    All logs will be yielded.

    [​IMG]
    The leaves will decay like normal.


    Set-up:

    Even though I added a lot of things for version 1.2 it will act like the original one if you don't change any settings - with the exception of players are able to toggle the plugin.​
    To run this plugin just copy it into your plugins folder. On first startup it will create a ChopTree folder and a ChopTree.properties file, which you can edit.​
    There will be a ChopTree.players file which saves player toggles and a ChopTree.chunks file which saves protected chunks.​


    Properties File:
    Show Spoiler

    The ChopTree.properties file will look like this when first created:
    Code:
    # -ChopTree Properties-
    # You can add or change the command and toggle command aliases here.
    # Because of technical limitations the console commands will always be "ChopTree" and "ct", but the in-game comments will be taken from here.
    
    Command = ChopTree, ct
    Toggle = ToggleChop, tc
    
    # Here you can change the options (can also be done in-game).
    
    ActiveByDefault = true
    UseAnything = true
    MoreDamageToTools = false
    InterruptIfToolBreaks = false
    SupportMcmmoIfAvailable = true
    TreeFellerNeeded = false
    LogsMoveDown = false
    OnlyTrees = true
    
    # -Material List-
    # If the "UseAnything" option is false, the plugin will take the items you can use to chop trees with from here.
    # You can either put in the material's name or its ID.
    
    mat = WOOD_AXE
    mat = STONE_AXE
    mat = IRON_AXE
    mat = GOLD_AXE
    mat = DIAMOND_AXE
    
    Command and Toggle can be changed manually by just adding more aliases for them, seperated by commas. Note that if you run the command from the console it will always have the aliases "ChopTree" and "ct", no matter what it says in your file.
    You can also remove either of the lines to disable the command for players completely.

    The options can be changed manually in the file too. To find out which option has which effect look at the "Commands" section below.

    The material list will only be used if the option UseAnything is false. In that case you can specify which items players can use to chop trees with this plugin, other items will not trigger plugin effects (except chunk protection). You can either use the item ID or it's name.
    If you want to make tree chopping more costly you can only allow gold axes for example.
    List of item IDs on Minecraft Wiki, list of all item names in the Bukkit documentation.


    Commands:
    Show Spoiler

    ChopTree - show status of all options.
    ChopTree (option) - show status of specified option.
    ChopTree (option) (true/false) - switch option on or off.
    ChopTree chunk - shows if your current chunk is protected.
    ChopTree protect - deactivates the plugin in your chunk.
    ChopTree fullprotect - disables destroying logs in general (not only with plugin) in your chunk.
    ChopTree reload - reloades changes from your properties file (the normal reload won't do that)
    ToggleChop - toggles the plugin on and off for a player.

    (option) can be:
    ActiveByDefault - choose if plugin will be toggled on or off for players (on).​
    UseAnything - if activated players can use any item to chop trees, else materials list will be used (off).​
    MoreDamageToTools - toggles damage to tools for every chooped log (off).​
    InterruptIfToolBreaks - if activated tree chopping will interrupt if the tool breaks (off).​
    SupportMcmmoIfAvailable - if activated plugin will support mcMMO if it can find it (on).​
    TreeFellerNeeded - choose if players need to have mcMMO's tree feller enabled (off).​
    LogsMoveDown - if activated logs will move down when chopped instead of popping like cacti (off).​
    OnlyTrees - if enabled only trees can be chopped, else all logs can be (on).​
    EnableOverride - if enabled choptree.override nodes can be used (off)​



    Aliases:
    Show Spoiler

    ct or "command" in properties file for ChopTree.
    tc or "toggle" in properties file for ToggleChop.
    c for chunk.
    p for protect.
    f or full for fullprotect.
    r for reload
    a or default for ActiveByDefault.
    u or anything for UseAnything.
    m or damage for MoreDamageToTools.
    i or interrupt for InterruptIfToolBreaks.
    l or down for LogsMoveDown.
    o or trees for OnlyTrees.
    e or override for EnableOverride.


    Permissions:
    Show Spoiler

    Permissions node - description (default if you are not using Permissions)

    choptree.chop - chop trees using this plugin (all)

    choptree.command.check - check what status the options have (all)
    choptree.command.change - change status of options (ops)
    choptree.command.toggle - toggle plugin per player (all)
    choptree.command.protect - protect/unprotect chunks (ops)
    choptree.command.chunk - see if the chunk is protected (all)
    choptree.command.reload - reload properties file (ops)

    Override nodes will be ignored if EnableOverride is false.

    choptree.override.moredamagetotools - will not have tools damaged for every log (off)
    choptree.override.useanything - can use any item (off)
    choptree.override.interruptiftoolbreaks - chopping won't interrupt when the tool breaks (off)
    choptree.override.treefellerneeded - tree feller is never needed (off)
    choptree.override.onlytrees - can chop all logs, not only trees (off)
    choptree.override.chunkprotection - chunk protection will be ignored (ops)


    To Do:
    • (Medium) Test with WorldGuard, remove conflict
    • (Medium) Enhance isTree algorithm a bit more
    • (Medium) Add [tools], [non-tools] and [hands] to material list
    • (Low) Add configurable drops
    • (Low) Add automatic sapling replant
    Changelog:
    • Version 1.24 by Arcwolf - Download (JAR file) | Source (ZIP file) - July 28. '11
      • Removed deprecated methods
      • Fixed mcMMO compatibility
      • Updated for Craftbukkit build [1000]
    • Version 1.23 - Download (JAR file) | Source (ZIP file) - June 02. '11
      • Fixed an error with iron axe receiving double damage as if it wasn't an axe
      • Added /ct reload command to reload changes from properties file
    • Version 1.22_2 - Download (JAR file) | Source (ZIP file) - June 01. '11
      • Recompiled for Minecraft 1.6.6/Craftbukkit [818]
    • Version 1.22_1 - Download (JAR file) | Source (ZIP file) - May 22. '11
      • Fixed chunk protection Permissions
    • Version 1.22 - Download (JAR file) | Source (ZIP file) - May 22. '11
      • Fixed chunk protection
    • Version 1.21 - Download (JAR file) | Source (ZIP file) - May 16. '11
      • Added EnableOverride option (off by default) to fix wildcard problem
    • Version 1.2 - Download (JAR file) | Source (ZIP file) - May 14. '11
      • Rewrote tree finding algorithm
      • Fixed some bugs leading clients to crash
      • Fixed and extended Permissions support
      • Added toggle commands
      • Added mcMMO support
      • Added option that player has to have mcMMO's TreeFeller enabled
      • Added optional damage to tools
      • Added optional tools list to restrict using this plugin only with certian tools
      • Added option to let trees go down one by one instead of popping like cacti
      • Added chunk-wise protection
      • Included plugin.yml into source download
      • Probably more
    • Version 1.1 - Download (JAR file) | Source (ZIP file) - May 5. '11
      • Added Permissions support
      • Fixed bug with some pine trees not being chopped
    • Version 1.0 - Download (JAR file) | Source (ZIP file) - May 1. '11
      • Initial Release
     
  2. Offline

    iFreZzAx

    The most important thing right now In my opinion is trees being chopped in portected areas.
     
  3. Offline

    Netu

    [redmushroom]A man after my own heart.
     
  4. Offline

    askmeaboutlo0m

    That is another plugin conflict with WorldGuard.
    I might be able to circumvene it in a strange way but I don't think I can support WorldGuard directly, it already doesn't work with mcMMO.
     
  5. Offline

    MusicMonkey5555

    Wait this plugin doesn't work w/mcMMO?
     
  6. Offline

    Tuvok

    At this moment you can use ChopTree, or mcMMOs Woodcutting skill.
    I cant stand treetops floating in the air, so ChopTree is a must. Players like levels, skills and that kind of thing, so they have mcMMO minus Woodcutting.
    It's a shame we cant have both.

    So i hope You will reconsider. :)
     
  7. Offline

    mrciku

    As of which, I have research on the leaves to find out how notch does the anti-decay for player placed blocks.

    I found out that player placed block has a data value of 3 to 7, therefore I added this extra thing on the isTree function:

    Code:
    if (Up.getData() > (byte) 3 && Up.getData() < 8) return false;
    if (Down.getData() > (byte) 3 && Down.getData() < 8) return false;
    if (North.getData() > (byte) 3 && North.getData() < 8) return false;
    if (East.getData() > (byte) 3 && East.getData() < 8) return false;
    if (South.getData() > (byte) 3 && South.getData() < 8) return false;
    if (West.getData() > (byte) 3 && West.getData() < 8) return false;
    I also took the liberty to add in integration with LogBlock

    Up, Down, etc variables are basically the block relatives functions, but I made them in variable form.

    I might recode the modifications and probably continue it if you are not going to. I removed the mcMMO support since it's not needed in my server.
     
  8. Offline

    MusicMonkey5555

    I am having the blue-white screen crash, of death :) I am using CraftBukkit Build: 1240 (MC:1.8.1) and have the following plugins installed:
    Let me know if you need me to do any other tests or make any headway. Oh and it of course only happens when I am chopping tree's.

    Me and one other person have client side modes (worldedit & ZanMinimap) and have had it both happen, but one friend doesn't and have also ran into the issue, so my guess is it isn't a client side mod.
     
  9. Offline

    PyPKjE

    Pleas update ;)

    2011-10-06 09:28:28 [SEVERE] Could not pass event BLOCK_BREAK to ChopTree
    java.lang.IllegalAccessError: tried to access field net.minecraft.server.ItemStack.damage from class me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener
    at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.updateInventory(ChopTreeBlockListener.java:107)
    at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.Chop(ChopTreeBlockListener.java:87)
    at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.onBlockBreak(ChopTreeBlockListener.java:58)
    at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:518)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:201)
    at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:165)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:500)
    at net.minecraft.server.Packet14BlockDig.a(SourceFile:43)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
     
  10. Offline

    false_chicken

    Very useful plug in! Any chance that you could add support for Huge Mushrooms?
     
  11. Offline

    Em3rgency

    I'm getting the same problem. The plugin still works as intended while I get the error in the console, but I very much hate seeing errors ;) A fix?
     
  12. Offline

    goodwind

    i found this solution by mcspazzy here.
    No errors on my server
     
    Dope likes this.
  13. Offline

    Dope

    This gets rid of the errors, except it gives another bug.
    When I chop darkwood while having logs in my inventory, some weird things happen. All logs turn into normal logs, all saplings turn into normal saplings and I cant see the health of my tools anymore.

    However, if I click on the logs everything turns back to normal. Still is an annoying bug though.

    I am using spout and cb1240.
     
  14. Offline

    MaMaxGER

    pls update
     
  15. Offline

    PyPKjE

    Tell me what you want, but this plugin file server.log throws errors

     
  16. If the author decides to update, would he consider making us able to instant chop giant mushrooms too?

    Thx :)
     
  17. Offline

    hekko

    pleese uptade 1350# bukkit pleese
     
  18. Offline

    kaasinees

    ^ second that. please update...
     
  19. Offline

    Tim Visee

    There should be World Guard support. I tried to download the source and edit it, but I was stuck because I still don't know how to import the net.minecraft.server.... library (if you could tell me how this world, that would be nais) and aslo the craftplayer inside the org.bukkit library doesn't exsists, So I wanted to add world guard support because that's really easy but I didn't have those 2 library's. If you don't want to update the plugin to add World Guard could I get the Library's (and if possible the Eclipse project to make it easier) so I can create a world guard patch, that would be great!
    Btw, I love this plugin a lot!
    Oh and, If you want to I probably could also add the 'Place sappling' support if you want too!
     
  20. Offline

    dmitlantis

    Please update plugin!
     
  21. Offline

    Daedalus`

    Have you seen this:

    ?
     
  22. Offline

    MikeA

    I wouldn't use this, it gave me horrendous 30 line long errors with spout every time someone cut a tree.
     
  23. Offline

    Tim Visee

    Don't use spout, it sucks and have a lot of bugs which causes problems with other plugins :-\
     
  24. Offline

    MikeA

    I use Spout, as I have a few plugins that require it.
    I used the updated version from the guy in the above post any everything works great, the old version was just, not working.
     
  25. Offline

    Daantjuu

    works here with bukkit 1317
     
  26. Offline

    Sayshal

  27. Offline

    ErikDjupvik

    I do NOT use Spout and still get huge errors.

    Show Spoiler
    Code:
    2011-10-19 22:05:04 [SEVERE] Could not pass event BLOCK_BREAK to ChopTree
    java.lang.IllegalAccessError: tried to access field net.minecraft.server.ItemStack.damage from class me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.updateInventory(ChopTreeBlockListener.java:107)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.Chop(ChopTreeBlockListener.java:87)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.onBlockBreak(ChopTreeBlockListener.java:58)
        at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:534)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:201)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:165)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:500)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:43)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
    2011-10-19 22:05:07 [SEVERE] Could not pass event BLOCK_BREAK to ChopTree
    java.lang.IllegalAccessError: tried to access field net.minecraft.server.ItemStack.damage from class me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.updateInventory(ChopTreeBlockListener.java:107)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.Chop(ChopTreeBlockListener.java:87)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.onBlockBreak(ChopTreeBlockListener.java:58)
        at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:534)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:201)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:165)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:500)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:43)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
    2011-10-19 22:05:11 [SEVERE] Could not pass event BLOCK_BREAK to ChopTree
    java.lang.IllegalAccessError: tried to access field net.minecraft.server.ItemStack.damage from class me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.updateInventory(ChopTreeBlockListener.java:107)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.Chop(ChopTreeBlockListener.java:87)
        at me.askmeaboutlo0m.ChopTree.ChopTreeBlockListener.onBlockBreak(ChopTreeBlockListener.java:58)
        at org.bukkit.plugin.java.JavaPluginLoader$40.execute(JavaPluginLoader.java:534)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
        at net.minecraft.server.ItemInWorldManager.c(ItemInWorldManager.java:201)
        at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:165)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:500)
        at net.minecraft.server.Packet14BlockDig.a(SourceFile:43)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
    
     
  28. Offline

    bigkevin112

    If only I knew java I would update this. This is one of the best plugins made. It sucks that no one is updating it. This is the only really good tree plugin like this. LyTreeHelper works but if the tree is connected to another tree both tree bases have to be broken to drop the trees. This ones doesn't do it that way. If this one is connected to another tree it will still drop. If someone could please update this plugin.
     
  29. Offline

    AVirusC

    I'll take a look at the source, can't promise anything though. =)
     
  30. Offline

    bigkevin112

    If you could that would be awesome!! Do what you can. :) Thanks!
     
  31. Offline

    Paulpkyou

    This thread should be marked as inactive since it is, anyway since i need a plugin like this for my server I'm going to update it, when its done I'll post a link to it in this comment, if you find any bugs with it just contact me and ill fix them.

    EDIT:

    This will be the last release until a bug is found or the plugin gets outdated again, I've took the old outdated plugin and I've made it work again, I've also removed the option to use McMMO since it was part of the problem.

    Download:
     

    Attached Files:

    MusicMonkey5555 likes this.

Share This Page