[MECH] OtherDrops 2.8- Ultimate block/mob/player drop editing [1.5.2]

Discussion in 'Archived: Plugin Releases' started by Zarius, Jun 12, 2011.

  1. Offline

    Zarius

    [​IMG]


    Want to fix glass/stairs/boat drops? Want to gather ice/glowstone/grass in a balanced manner? Want to smelt ore with golden tools? Want to cause chaos with undead that rise again? Now you can, simply by enabling the included example files or delve into the more advanced customisation and make drops work the way you want.

    OtherBlocks aims to give you ultimate control over what item that blocks/entities drop when destroyed, depending on how they were destroyed. Compatible with WorldGuard. Lightweight! Only scans what it needs to and ignores the rest.
    Download: BukkitDev (download link on there) | Source Code

    Included Modules
    * Fix undroppables: fix drops for stairs, glass (don't use your hands - ouch), boats & bookshelves (1.8 stairs included)
    * Gold tools (basic): gold tools have a chance of dropping the complete block for grass, ice & glowstone.
    * Gold tools (smelt): gold tools have a chance of mining an ingot directly from ores.
    * Ore Extraction: using the usual tools, ingots are ripped out of ores, leaving the stone behind.
    * Leaf overhaul: adds leaf drops (apples, cocoa, leaves, sticks & a very small chance of golden apple).
    * Undead Chaos: beware the night! Zombies & skeletons rise again and even players rise back from the dead (player deaths spawn more zombies/skeletons).
    * and more...

    Custom Configuration Examples
    Code:
        # Simple glass drop fix
        GLASS:
          - drop: GLASS
     
        # Players drop Zombies on death, 50% of the time
        PLAYER:
          - drop: CREATURE_ZOMBIE
            chance: 50%
     
        # Spiders killed with any sword at night have a 10% chance to drop web,
        # otherwise they drop whatever they normally would
        CREATURE_SPIDER:
          - tool: ANY_SWORD
            time: NIGHT
            drop: WEB
            chance: 10%
     
        # Trees drop apples (or cocoa from birch trees)
        SPECIAL_LEAFDECAY@GENERIC:
          - drop: APPLE
            chance: 5%
        SPECIAL_LEAFDECAY@BIRCH:
          - drop: DYE@BROWN
            chance: 5%
    
    If you are getting errors with the word "snakeyaml" in it, your config file isn't properly formatted.
    Test it on this website (or this one).

    See the dev.bukkit page for full details on how to set up OtherDrops, a complete parameters list and further examples.


    Changelog

    Newest changelog details here.


    Main author: @Zarius
    Contributors: @Celtic Minstrel, raws
    Original author: @cyklo
     
  2. Offline

    Ixy

    Love the plugin, but having a few problems, having this setup as a test:
    Code:
    otherblocks:
        GLASS:
            - drop: NOTHING
              tool: AIR
              damageattacker: 1-5
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
            - drop: GLASS
              tool: DIAMOND_SWORD
    
    The above allows people who are not members of a region (with build DENY as blanket default), to break any block that has a DROP set to anything but the default drop. So worldguard protection is useless for anywhere that I want to give a block a drop. I have attempted to use regions = [testarea] like
    Code:
    
        GLASS:
            - drop: NOTHING
              tool: AIR
              damageattacker: 1-5
              regions: [testarea]
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - drop: GLASS
              tool: DIAMOND_SWORD
              regions: [testarea]
    
    /ob show glass then shows that it should only apply to that region, but yet, all glass can be broken anywhere, including by any player not a member of a region (even guests).
    permissiongroups: [demolition, admin, member] also fails to have any effect on restricting who can break things and get the rewards. (also appears using height: ">67" also fails.

    This is with version 1.7.1
    Other plugins of note (that are used in some way by this)
    Permissions 3.1.6

    iConomy 5.01

    WorldGuard 5.2.2

    -dep. WorldEdit 4.6

    Hope this helps somewhat, and that you can fix this, I really love this plugin's ability and potential!

    If you can fix this, it would be great if you use the already existing members list from worldguard.

    By using worldguard's member/owner list (with priority checks)
    Perhaps you can add another property to otherblocks
    region-members-only: true
    to the diamondsword option, so that only that region gets glass dropping IF and ONLY IF you are a also member of that region. If that did not make sense, I will try clarify!
    Example of how it could look:

    Code:
    otherblocks:     GLASS:
            - drop: NOTHING
              tool: AIR
              region-members-only: true
              damageattacker: 1-5
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - drop: GLASS
              tool: DIAMOND_SWORD
    
     
  3. Offline

    cabledevin

    Hello. I am somewhat confused about how the 'exclusive' option works. Hypothetically say I have something like:
    Code:
      GOLD_ORE:
      - dropgroup: tiered
        exclusive: 0
        chance: 90
        drops:
    
         - tool: ANY_PICKAXE
           drop: GOLD_ORE
           quantity: 0-3
           chance: 50.0
           exclusive: 1
    
         - tool: ANY_PICKAXE
           drop: IRON_ORE
           chance: 25.0
           exclusive: 2
    
      - dropgroup: untiered
        exclusive: 3
        chance: 90
        drops:
    
         - tool: ANY_PICKAXE
           drop: GOLD_ORE
           quantity: 0-3
           chance: 50.0
           exclusive: 4
    
         - tool: ANY_PICKAXE
           drop: GRAVEL
           chance: 25.0
           exclusive: 5
    
    If I understand correctly what happens is that first it reads whether or not the 90% tiered dropgroup chance rolls a success. If it does, it ignores the other drop groups, and focuses in on the tiered drop group. Then it checks if the 50% GOLD_ORE check rolls a success. If it does, it ignores the next possibility? Is this correct? If it is, then does that mean that the untiered dropgroup will only be checked 10% of the time, and of that 10%, 90% of it will roll any of the drops in that drop group, effectively making it a 9% chance?

    EDIT: Nevermind, I used this theoretical set-up and changed the iron chance to 100% . It worked the way I guessed in the above parapgraph. Thank you anyway!
     
  4. Offline

    Zarius

    Make sure "usepermissions" is set to true in the config. I'll look into changing this to make it easier.

    Worldguard protection seems to work ok on my server however try setting otherblocks priority to high and let me know how that goes.

    I'll also look into the height issue later.

    @cabledevin

    Glad you got it working :)
     
  5. Offline

    cabledevin

    Oh, and I would also like to inform you of how great this plugin is:
    It is very great. [cake] Thank you for making and maintaining it !![diamond][diamond][diamond]!!
     
  6. Offline

    Zarius

    Glad to assist :) Check out the todo list for what I've got planned (at some point in the future :D) and feel free to let me know if you think of a feature or something to improve it :) I'm trying to keep it as simple as possible but still powerful.
     
  7. Offline

    EMOberger

    ok so i have my choas config like so:
    Code:
    defaults:
        - biomes: ALL
          worlds: underworld
          #time: 
          # weather: 
          # permissiongroup: 
          # permissiongroupexcept: 
    
    "underworld" being my 3rd world
    and it is not working, it goes to all of my worlds not just underworld.
     
  8. Offline

    Zarius

    Glad to assist :) Check out the todo list for what I've got planned (at some point in the future :D) and feel free to let me know if you think of a feature or something to improve it :) I'm trying to keep it as simple as possible but still powerful.

    Ok, will have to test that out tonight and add some debug messages so we can at least see if it's reading the default values.

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

    EMOberger

    OK, Thank you for you time once again :]
     
  10. Offline

    lithiu

    Is there a way to do like toolexcept but with a region? For example, I want something to drop/happen anywhere but not in a specific region (like the town)

    edit : Also I want to make players take damage (0.5) when they try to destroy a "fire block" (when you use flint and steel on the ground) except when they use flint and steel to turn it off!

    Thanks for the help! Sounds like a plugin with a lot of possibilities, I like it!
     
  11. Offline

    Zarius

    Already working on the region exceptions - code is there but not tested yet (will be like "regions: [dropinthis, -dontdropinthis]").

    The fireblock bit sounds like a great idea :) Is it not already possible?

    Code:
        FIRE:
            - damageattacker: 1  # note - 1 = half a heart
              toolexcept: [FLINT_AND_STEEL]
    
     
  12. Offline

    Ixy

    Thanks for your reply Zarius!

    ((Forgot to mention in my previous post: Bukkit RB #1000.))

    I have looked at your suggestions and have tried them. So that you understand more or less what I am requesting about the WG permission checking before block breaking.

    I have a 2km x 2km perimter the deadly-zone. (Noone can build there, and gasses kill you over a short period)
    Build in WG is deny by default for this world, unless you are a member of a region.

    The 2x2 blanket area called the Deadly-zone is:
    Priority -1
    heal-amount: -8
    heal-delay: 10
    Owner: me

    Inside this region, I have another region called Kaslow.
    Priority 0,
    heal-amount: 0 #cancel out the -8 which is inherits since it's null by default
    Owner: me
    Members: none

    inside Kaslow, I have plots, which I assign users,
    Randomplot:
    Priority: 1
    Owner: me
    Member: whoever uses this land

    so you can imagine this overlay
    Code:
    -----------------------
    |deadlyzone           |
    |   ____________      |
    |  |kaslow      |     |
    |  |     _____  |     |
    |  |    |plotx| |     |
    |  |    |_____| |     |
    |  |____________|     |
    |                     |
    |                     |
    |_____________________|
    
    If I want to reward people in general now (as I've attempted to set this up) breaking stone and dirt giving some money, for heights above 70m inside Kaslow (or anywhere really). So that people help with leveling the world, and get some money for doing so! Unfortunately like I've explained earlier doing this, allows anyone and everyone to break a rock in anyone's property, even not their plot, or in kaslow itself. This is despite setting priority like you suggested. Sorry about that :(

    I maintain the regions to keep things going smoothly, and currently (and I suspect there are people with even more intensely complicated regions), I don't think I have it in me to spend hours setting up complicated group checks, permissions checks, region checks just to see if someone could break a block in a region worldguard already protects :) Because this would quickly make my users permissions file and group file filled up with tonnes of groups and special cases.. this would be extremely difficult to keep track of.

    It seems that this could all be solved if WG does its checks before Otherblock allows a break - that way otherblocks does not have to waste any resources at ALL if the person shouldn't even BE breaking stuff in that region.

    I suspect this would work like a gem! And I hope you consider this route! I did look at your source code, I could not see any WG permissions check on dropblock event, but I do see you hook into worldguard, so I don't think this would be a step too far out of your way :D


    - Anyway just for helping you debug a little
    I have set priority to High as suggested, (this output is with highest) and other priorities as well, all same problem, they can break stuff out of their region.

    Code:
    With this setup:
    priority: highest #used high as well
    usepermissions: true #sorry I totally missed that on first check, but this point is moot if you saw my reason above
    
    otherblocks:
    
        GLASS:
            - drop: NOTHING
              tool: AIR
              damageattacker: 1-5
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - drop: GLASS
              tool: DIAMOND_SWORD
    
    Now because I have world guard set up, pretty intensely, intuitively I expect this breaking of stuff to respect my worldguard settings somehow... unfortunately all the checks pass and the glass gets destroyed.  However if I set drop: DEFAULT, the glass does not break.  So perhaps you could look into this and let WG do its permission checks BEFORE attempting to check for block-break drops.
    
    
    11:27:56 [INFO] [OtherBlocks] BLOCK_BREAK(Undefined event): before check.
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK - starting check - permissions enabled. Checking 'Shrygar' has 'otherblocks.active'.
    11:27:56 [WARNING] [OtherBlocks]Starting drop compareto, block.
    11:27:56 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    11:27:56 [WARNING] [OtherBlocks]Passed worlds check.
    11:27:56 [WARNING] [OtherBlocks]Passed time check.
    11:27:56 [WARNING] [OtherBlocks]Passed height check.
    11:27:56 [WARNING] [OtherBlocks]Skipped range check.
    11:27:56 [WARNING] [OtherBlocks]Passed attackrange check.
    11:27:56 [WARNING] [OtherBlocks]Passed biome check.
    11:27:56 [WARNING] [OtherBlocks]Passed ALL checks.
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: AIR).
    11:27:56 [WARNING] [OtherBlocks]Starting drop compareto, block.
    11:27:56 [WARNING] [OtherBlocks]Passed data check.
    11:27:56 [INFO] [OtherBlocks] Failed check: tools
    11:27:56 [WARNING] [OtherBlocks]Starting drop compareto, block.
    11:27:56 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    11:27:56 [WARNING] [OtherBlocks]Passed worlds check.
    11:27:56 [WARNING] [OtherBlocks]Passed time check.
    11:27:56 [WARNING] [OtherBlocks]Passed height check.
    11:27:56 [WARNING] [OtherBlocks]Skipped range check.
    11:27:56 [WARNING] [OtherBlocks]Passed attackrange check.
    11:27:56 [WARNING] [OtherBlocks]Passed biome check.
    11:27:56 [WARNING] [OtherBlocks]Passed ALL checks.
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: GLASS).
    11:27:56 [WARNING] [OtherBlocks]Starting drop compareto, block.
    11:27:56 [WARNING] [OtherBlocks]Passed data check.
    11:27:56 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    11:27:56 [WARNING] [OtherBlocks]Passed worlds check.
    11:27:56 [WARNING] [OtherBlocks]Passed time check.
    11:27:56 [WARNING] [OtherBlocks]Passed height check.
    11:27:56 [WARNING] [OtherBlocks]Skipped range check.
    11:27:56 [WARNING] [OtherBlocks]Passed attackrange check.
    11:27:56 [WARNING] [OtherBlocks]Passed biome check.
    11:27:56 [WARNING] [OtherBlocks]Passed ALL checks.
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (drop).
    11:27:56 [INFO] [OtherBlocks] ENTITYDEATH(): Check successful (attempting to drop GLASS)
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK(GLASS): doing 1 damage to tool.
    11:27:56 [INFO] [OtherBlocks] BLOCKBREAK(GLASS): cancelling event and removing block.
    
    Implemeting WG check BEFORE OtherBlock does its thing the log might look like this:

    Code:
    11:27:56 [INFO] [OtherBlocks] BLOCK_BREAK(Undefined event): before check.
     11:27:56 [INFO] [OtherBlocks] BLOCKBREAK - starting check:
    11:27:56 [INFO] [OtherBlocks] WORLDGUARD Region: Kaslow,Deadlyzone.
                   owners, members: [Player1, Player2,Player3]:
                   NOT a member!  Cancelling...
    
    Thanks for taking the time to read all this :) I look forward to future updates! This is a very nice plugin to have, I hope you can help out many of us!

    sneaky easter egg (open)

    Code:
        CREATURE_PIG:
            - tool: ALL
              drop: CREATURE_PIG_ZOMBIE
              quantity: 1
              event: LIGHTNING
              chance: 1
              message: "&4Yep, now you have gone and done it, the pig gods are mad as hell, it has sent a defender to avenge it!"
    




    EDIT: Reread your post about your worldguard regions working, could you provide a sample block(s) setup that you have tried that DROP something other than default when breaking it with height conditions, and/or specific regions only? If noone but the members/owners of stated region could break that block - let me know how you set that up please, so that I can try that! Thanks a million!
     
  13. Offline

    Zarius

    The "regions" parameter was very broken :( Fixing it now and checking out the "world" & height parameters issues too.

    @Ixy

    Love the ideas - lots to go through will read it and respond more later.
     
  14. I guess this is a known bug, seeing above posts. Just wanted to confirm that the current version allows breaking blocks in WG protected regions.

    Is a fix on the way? Or is there a temporary workaround or so ?
     
  15. Offline

    Ixy

    @Zarius: Thanks mate, for taking the time :) I would love to write plugins too, but I play MC to get away from software development. I will test it for you if you want, if you tell me what you have changed - and any test paramaters (or example blocks you have used, to see if I get same results)

    @Anyone
    On an totally different note! For anyone else who uses the plugin
    Do you find any particular performance differences between these two options? (group by tool and group by drop)

    Code:
        GLASS:
            - drop: NOTHING
              tool: AIR
              damageattacker: 1-5
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - drop: GLASS
              tool: DIAMOND_SWORD
    
    And

    Code:
        GLASS:
            - tool: AIR
              drop: NOTHING
              damageattacker: 1-5
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - tool: DIAMOND_SWORD
              drop: GLASS
    
    @Anyone
    I am curious about some of the other user's configurations, please post some interesting configurations (not the whole file, just a few block break samples!) Whether it be spiders popping out of zombies when they die, or dropping skeletons when they burn, or torches exploding when you break it with Gunpowder in your hand!
     
  16. I updated to 1.71. and now this config will drop obsidian from chickens in normal world. It didnt use to:

    Code:
        CREATURE_CHICKEN:
            - tool: ALL
              world: skylands
              drop: OBSIDIAN
            - tool: ALL
              world: skylands
              drop: CREATURE_GIANT
              chance: 20
              event: LIGHTNING
              message: Leave my chickens alone!
     
  17. What is happening with this plugin:

    Code:
    defaults:
      - biomes: ALL
        worlds: world_ether
      # time: 
      # weather: 
      # permissiongroup: 
      # permissiongroupexcept: 
    
    otherblocks:
      STONE:
        - tool: GOLD_PICKAXE
          drop: STONE
          worlds: world_ether
          chance: 80
      LOG:
        - tool: GOLD_AXE
          drop: COAL@CHARCOAL
          worlds: world_ether
          chance: 70
      SAND:
        - tool: GOLD_SPADE
          drop: GLASS
          worlds: world_ether
          chance: 60
    
    And still people can break these blocks, ANYWHERE. Why is the worlds option not being used?

    Code:
    As it says Worlds in some places and World in others, I also tried:
    
    ====
    defaults:
      - biomes: ALL
        world: world_ether
      # time: 
      # weather: 
      # permissiongroup: 
      # permissiongroupexcept: 
    
    otherblocks:
      STONE:
        - tool: GOLD_PICKAXE
          drop: STONE
          world: world_ether
          chance: 80
      LOG:
        - tool: GOLD_AXE
          drop: COAL@CHARCOAL
          world: world_ether
          chance: 70
      SAND:
        - tool: GOLD_SPADE
          drop: GLASS
          world: world_ether
          chance: 60
    
    Same issue, this plugin is driving me a little nuts now.
     
  18. Offline

    Zarius

    Sorry - it was very broken from a recent change - I'm testing the fix right now.

    @Joy @po5 @Ixy

    Version 1.8 release - hopefully fixed the major bugs, wouldn't mind a few quick tests so I can fix things before I sleep :D

    * fixed major bug in worlds/height/etc
    * added better WorldGuard support (honors regions you can't build in)
    * fixed regions
    * added replacement block (be careful with this - example below) - does not work with default drop

    Code:
        # When you break iron ore you get an ingot and the block turns into stone....
        IRON_ORE:
             - replacementblock: STONE
               drop: IRON_INGOT
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  19. Offline

    Ixy

    Will test really quickly, if this works - you'll be a war hero!

    ::diamond::
    War veteran!

    Thank you! Prelim tests passed, region succeeded!

    Code:
    otherblocks:
    
        GLASS:
            - drop: NOTHING
              tool: AIR
              damageattacker: 1-5
              regions: testarea
              message: "&4DAMN! &fThat bloody hurt, you lacerated your hands!"
    
            - drop: GLASS
              tool: DIAMOND_SWORD
              regions: testarea
    
    
    This code worked with this test:

    Created area testarea, had glass in it, anyone who could build in it, got the glass
    Those who were not able to build got nothing and permission denied error
    they hurt themselves only inside the region too.

    HOWEVER.

    adding height: ">70" broke it, nothing works if you add height paramater.

    For breaking stuff below 70 seemed to work:

    Code:
    DEBUG:
    
    15:06:06 [INFO] Unknown console command. Type "help" for help.
    15:06:11 [INFO] [OtherBlocks] BLOCK_BREAK(Undefined event): before check.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK - starting check - permissions enabled
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed height check.
    15:06:11 [WARNING] [OtherBlocks]Skipped range check.
    15:06:11 [WARNING] [OtherBlocks]Passed attackrange check.
    15:06:11 [WARNING] [OtherBlocks]Passed biome check.
    15:06:11 [WARNING] [OtherBlocks]Passed ALL checks.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: AIR).
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed data check.
    15:06:11 [INFO] [OtherBlocks] Failed check: tools
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed height check.
    15:06:11 [WARNING] [OtherBlocks]Skipped range check.
    15:06:11 [WARNING] [OtherBlocks]Passed attackrange check.
    15:06:11 [WARNING] [OtherBlocks]Passed biome check.
    15:06:11 [WARNING] [OtherBlocks]Passed ALL checks.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: GLASS).
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed data check.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [INFO] [OtherBlocks] Checking: Eternam is in list: [null]
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed weather check.
    15:06:11 [INFO] [OtherBlocks] Failed height check.
    
    

    But when I was above 70...

    Code:
    15:06:06 [INFO] Unknown console command. Type "help" for help.
    15:06:11 [INFO] [OtherBlocks] BLOCK_BREAK(Undefined event): before check.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK - starting check - permissions enabled
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed height check.
    15:06:11 [WARNING] [OtherBlocks]Skipped range check.
    15:06:11 [WARNING] [OtherBlocks]Passed attackrange check.
    15:06:11 [WARNING] [OtherBlocks]Passed biome check.
    15:06:11 [WARNING] [OtherBlocks]Passed ALL checks.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: AIR).
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed data check.
    15:06:11 [INFO] [OtherBlocks] Failed check: tools
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed height check.
    15:06:11 [WARNING] [OtherBlocks]Skipped range check.
    15:06:11 [WARNING] [OtherBlocks]Passed attackrange check.
    15:06:11 [WARNING] [OtherBlocks]Passed biome check.
    15:06:11 [WARNING] [OtherBlocks]Passed ALL checks.
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: after compareto (dropgroup).
    15:06:11 [INFO] [OtherBlocks] BLOCKBREAK: before compareto (drop: GLASS).
    15:06:11 [WARNING] [OtherBlocks]Starting drop compareto, block.
    15:06:11 [WARNING] [OtherBlocks]Passed data check.
    15:06:11 [WARNING] [OtherBlocks]Passed tool checks. (tool = DIAMOND_SWORD)
    15:06:11 [INFO] [OtherBlocks] Checking: Eternam is in list: [null]
    15:06:11 [WARNING] [OtherBlocks]Passed worlds check.
    15:06:11 [WARNING] [OtherBlocks]Passed time check.
    15:06:11 [WARNING] [OtherBlocks]Passed weather check.
    15:06:11 [INFO] [OtherBlocks] Failed height check.
    

    Hope this helps!
    [EDIT : Removed height bug post]

    Definitely not important but, a feature request possibility (some who don't use regions may find this specifically useful): Since you have height, could x and z come into play too possibly? (possibly ranged? like height: [30,85] z: ">50" x : [100,500]
    It would be nice to say north of town always gives more money for zombies, while south of town gives more money for skeletons :) (but no specific regions though, just generally z < 50 for example)

    Thanks a million, I know it's late down under already :)
     
  20. @Zarius world parameter seems fixed

    and i finally got around to play with the delay parameter. Omg that is fun :)
     
  21. Offline

    lithiu

    Fire block doesn't seem to trigger the effet. Used this as a test :

    FIRE:
    - tool: ANY
    damageattacker: 1-2

    I get no damage when "destroying" it
     
  22. Offline

    Ixy

    Oops, I stand corrected, the height works! (edited my post) Sorry about that, I accidentally redefined my region to =70, so of course it was not going to register above 70!

    My bad there! As for the attackrange: It seems to be no problem now!

    Thank you so much for these fixes! My members absolutely love this plugin :)
     
  23. Offline

    Zarius

    Hmm, possible that fire doesn't trigger a blockbreak event, will see if there is another event for it.

    Cool, glad it worked. Let me know if you need any help with the config. I'll think about the other suggestions you made.

    @po5
    Cool, delay is fun with undead :) Look forward to see what else it can do :)
     
  24. Offline

    sagethor

    @Zarius

    Upon updating, I can't seem to get any other unspecified drops - example, planks. How do you add it with this new config? Thanks.

    EDIT - Nevermind. There seems to be some bug with wood planks being destroyed on halfblocks.
     
  25. Offline

    Stormbow

    How do we specify which saplings to drop?

    I might have it figured out...

    Code:
            - drop: SAPLING@2
            - drop: SAPLING@1
            - drop: SAPLING@0
    I think you may just call it "WOOD". They were called that in the previous edition anyway...

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

    _LB

    Awesome plugin! Is there a way to have certain things depending on the size of a slime? I understand if it's difficult to do, in that case forget it. But if it's easy to check the integer values on slimes to get the size then I'd like to be able to detect that :)

    EDIT: Also is this valid syntax? If not, how can I work around it to make it correct?
    Code:
      CROPS:
        - tool: ANY
          drop: [WHEAT, SEEDS]
          quantity: [1, 1]
        - tool: STONE_HOE
          drop: [WHEAT, SEEDS]
          quantity: [1, 2]
          exclusive: true
        - tool: IRON_HOE
          drop: [WHEAT, SEEDS]
          quantity: [1, 3]
          exclusive: true
        - tool: DIAMOND_HOE
          drop: [WHEAT, SEEDS]
          quantity: [1, 4-5]
          exclusive: true
        - tool: GOLD_HOE
          drop: [WHEAT, SEEDS]
          quantity: [2, 6-10]
          exclusive: true
     
  27. Offline

    Zarius

    Yeah, that should be fine - let me know how it goes.

    Slimes is a good idea - should be doable :)

    Note that both drop and quantity take a single string only. I'm thinking about allowing a list for drops with [WHEAT, SEEDS] meaning 50% of the time wheat, 50% of the time seeds. [+WHEAT, +SEEDS] would mean both wheat and seeds.

    What do you expect from "quantity: [2, 6-10]"? 50% of the time it drops 2 items, and 50% of the time it drops between 6 and 10 items?

    Also, exclusive is like a group tag so setting them all to "true" means they'll all drop together. You want to give them different exclusive strings (eg. 1, 2, 3, etc).
     
  28. Offline

    _LB

    I wanted the lists to correspond, eg:
    drop: [WHEAT, SEEDS] quantity: [2, 6-10]
    would drop both 2 wheat and 6 to 10 seeds. Is there a way I can do this with valid syntax? And with the Exclusive tag, basically the string is the identifier for exclusive groups? I was setting it to true because it was the first string I thought of.

    EDIT: Thanks to the exclusive thing I worked it out :)

    EDIT: Well, no, it works even if the crops aren't grown yet - I'll try specifying the 'fully grown' data value. (Which is 7, correct?)

    EDIT: It worked, but it's only dropping 1 wheat and 1 seed w/ a gold hoe for this configuration:
    Code:
        - tool: GOLD_HOE
          drop: WHEAT
          quantity: 2
          exclusive: 4
        - tool: GOLD_HOE
          drop: SEEDS
          quantity: 6-10
          exclusive: 4
     
  29. Offline

    Zarius

    You can use CROPS@RIPE or CROPS@7 (yeah, I think 7 = ripe). Check out this page for the data values.

    For the multiple drops you can use dropgroups:

    Code:
        CROPS@RIPE:
            - dropgroup: mine
              tool: GOLD_HOE
              drops:
                  - drop: WHEAT
                    quantity: 2
                  - drop: SEEDS
                    quantity: 6-10
    
     
  30. Offline

    _LB

    Thanks, where can I find the syntax for that on the wiki?

    EDIT: Actually I get an error message for that syntax:
    Show Spoiler

    Code:
    02:25:27 [SEVERE] Error occurred while enabling OtherBlocks v1.8 (Is it up to date?): null; mapping values are not allowed here
    mapping values are not allowed here
     in "<reader>", line 19, column 14:
                drops:
                     ^
    
            at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:745)
            at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:307)
            at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:183)
            at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:564)
            at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
            at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:228)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeSequenceNode(Composer.java:204)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:158)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
            at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
            at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
            at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
            at org.bukkit.util.config.Configuration.load(Configuration.java:82)
            at com.gmail.zariust.bukkit.otherblocks.OtherBlocksConfig.loadSpecificFileVersion(OtherBlocksConfig.java:369)
            at com.gmail.zariust.bukkit.otherblocks.OtherBlocksConfig.loadConfig(OtherBlocksConfig.java:345)
            at com.gmail.zariust.bukkit.otherblocks.OtherBlocksConfig.load(OtherBlocksConfig.java:66)
            at com.gmail.zariust.bukkit.otherblocks.OtherBlocks.onEnable(OtherBlocks.java:330)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:126)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:878)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:272)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:162)
            at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:146)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:284)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:271)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:148)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  31. Offline

    Zarius

    I haven't written a page for dropgroups yet - work in progress :)

    You sure you copied the indentation properly? I tested my example with the yaml page (http://yaml-online-parser.appspot.com/) and it worked ok. Try your config at the yaml page or send it to me and I'll take a look at it.
     

Share This Page