[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

    Jadedwolf

    inorite. I really hope someone else picks up this code and moves on with it so we can have a working something at least.
     
  3. Offline

    Celtic Minstrel

    Sorry, I did do some work on it prior to the last post. My statement was intended to imply that the work was minimal, not that I hadn't done anything. I do want to keep this alive; however, I wouldn't say no to people stepping up to help out. :)

    It's entirely possible that a simple recompile will fix some bugs, and I think I've already fixed a couple others, so I guess I'll push out a beta9 even though there hasn't really been much changed. Keep in mind that I've done no testing with the plugin; I tweaked code a little to make it a bit more robust and fixed compile errors, but that's about it.
     
  4. Offline

    sagethor

    @Celtic Minstrel
    Really hoping you're successful in getting this plugin to work again. I've begun using it for another project, and it never works properly, sending out an empty string error.
     
  5. Offline

    Celtic Minstrel

    Beta 9; I have no idea if it works though. I don't recommend using it on a live server unless you test it first on a local one.
     
  6. Offline

    RugRats

    Working download link can be found here!
     
  7. Offline

    slimpyman

    the link is here ?!
     
  8. Offline

    Sepulzera

    I'm sorry, but Beta9 contains even more bugs as Beta8 and Beta7. I will still stick to Beta6, and I would recommend this to anyone else, who is independent from Blocks and Items after Minecraft-Beta1.8 !
     
  9. Offline

    Nuinbot

    Please elaborate on bugs you found.

    The update is not official and therefore I am unsure what problems it may pose. The thread still reads RB 1337 aka MC 1.8.1.
     
  10. Beta 8 has issues with mobs not dropping stuff on dying. Lots of errors in console/log.
    Beta 9 has issues with unbreakable blocks+carts (but fixes error spam+mobs very nicely!).
     
  11. Offline

    Sepulzera

    Carts have bugs in Beta 7 and Beta 8, either.
    Beta 7 has issues with money, at least it wasn't working for me.
    In Beta 8 mobs don't have the death-animation anymore (you know, with smoke particles etc)

    I don't know all tons of bugs, these, and the bugs mentioned above, are the only one I noticed, but there are plenty others for sure.

    And Beta 6 has less bugs: Carts are working, except that storage_minecart throws an error. Mobs drop their loot and have an death-animation. Only bad is, that it isn't updated for 1.9.

    But tbh: Imo the best would be to delete Beta7,8,9 and start updating from Beta6. All the new features are nice to have, but the old syntax is working very well and Celtic wouldn't have to waste his time with bugs.

    Btw: You can find some more bugs here
     
  12. Offline

    Celtic Minstrel

    Uh, whoops, fixed now.

    That was a known possibility. There's nothing forcing you to actually use beta9; it's a beta for a reason. :p

    Can I have more detail? Preferably on a BukkitDev ticket, but here is acceptable.

    If anyone is experiencing any of those bugs on beta9, or not experiencing any of them, do let me know; preferably on the ticket page, but again, I can accept replies here as well.
     
  13. Code:
      MINECART:
          - drop: NOTHING
            world: dreamland
    
    Something this simple makes indestructible minecarts.

    Code:
      COBBLESTONE_STAIRS:
          - tool: ALL
            drop: COBBLESTONE_STAIRS
            world: [eden, badlands, eden_nether, eden_the_end]
    
    This one also makes indestructible blocks for me, but since it allows a drop, trying to break it generates an endless supply of stairs.

    Didnt want to test further since it created item duping on survival. But im guessing any block that you add to the list stops being breakable.
     
  14. Offline

    Celtic Minstrel

    A possible workaround might be to assign a percentage of 99% or so. You could also add decimal places, but too many would risk it rounding up.

    Thanks for the info.
     
  15. Offline

    Nuinbot

    Is there any chance that a config file would be able to handle me using the block/item IDs instead of the string values you have assigned? I am much more comfortable with the IDs having memorized a great majority of them, versus typing out each name with caps lock on. If not, could you provide this functionality? Thanks!
     
  16. Offline

    csekavec

    (2.0beta9) This seems fantastic, I just wish I could get it working on 1.0.1 R1. YML put into the otherdrops-config.yml directly is ineffectual but if it is via an include file it does cause change. Unfortunately, blocks don't break, but mining them drops the appropriate item per the config.

    Going back to beta6 solves this, hope this is helpful to you.
     
  17. Offline

    Zarius

    Been absent for a while for personal reasons (btw: I'm getting married in March :D) but looking to get back into OtherDrops - I'll go through this thread, BukkitDev & tickets and see if I can answer or fix the issues.

    Give me a little time to gather things together and if I've missed your query after a couple of days let me know.

    Just on the most recent queries -

    @Nuinbot - there is some support for using block/item ID's and the plan is to get it working for all sections (harder than it seems at first glance) so that there is full support for custom blocks. I've been out of the Minecraft scene for a few months but I've noticed there's a new SpoutMaterials plugin but custom blocks - I'll have to try that out and see if we can get it working with custom drops.

    I don't think you need to have caps on - everything is (or should be, at least) case in-sensitive. Personally I much prefer names where possible as (whilst it may be harder to type) it's much easier to read the configs.

    @csekavec

    I'll test it on 1.0.1 as soon as I get a test server up and running. I'm aware of the invincible block issue and got a few ideas about where the issue might be - will look into it (definitely do _not_ want duping issues).

    Yeah, I thought I had that working - you mean like hitting a block and it turns into fire? Will put that on my list to test.

    Um.... 2 months? :D That would make it January 22 - so there's a deadline for me to aim for :D Yeah, most new mobs/drops should automatically work though I've heard people comment that some newer stuff wasn't working, will look into that.

    @Celtic Minstrel - many thanks for keeping this alive and continuing to work on it, I know how hard it can be to get time especially around exams/Christmas time.
     
    Kane and owenftw like this.
  18. Offline

    Nuinbot

    What a coincidence! I am getting married in March too. Congratulations!

    While I am not using Spout on my server, I do look forward to an update. I too have heard that betas 8 and 9 are broken, but I am testing it out now. (Been getting other basics out of the way before I jump into mobs and drops.) Can you please see if the item list on the wiki is up to date, and do you have a link that shows all the names (some parts of the wiki seem outdated)? I keep typing in different variants but some don't work. Thank you.
     
  19. Offline

    Zarius

    @Nuinbot - congrats to you too! :)

    Yeah, the wiki's will likely need updating however the top of the wiki's should note (I don't think it does at the moment) the official Bukkit javadocs as they will always show the latest names.

    The Bukkit Material list is here and the CreatureType list is here.
     
  20. Offline

    Zarius

    Won't have much time over the weekend but I'll see what I can get done. So far I've browsed through the forum and compiled the following list of items to check:

    * Add option to disable drops for users in creative mode ( @Zach Hinchy )
    * Add option to turn off OtherDrops completely (/od off) ( @Zarius )
    * Test mobs dropping XP orbs ( many people reported issue )
    * Get Endermen working, if not fixed already ( @user1234567890 and others )
    * Investigate block disappearing below/on mobs that die ( @deadalucard and others )
    * Investigate NPE on Snow Golem deaths ( @halley , @Sorken )
    * Investigate "tool: ANY_PICKAXE" working without a tool ( @Sich )
    * @sagethor - "empty string error" - if you're still having this error please let me know and add more details
    * Investigate NPE's when rightclicking on air with an item in hand ( @Vincent1468 )
    * Investigate indestructible minecarts/stairs/blocks ( @Sorken and others )
    * Investigate lack of death animation ( @Sepulzera )
    * Add aliases: MUSHROOM_COW (MOOSHROOM), SNOW_MAN (SNOWMAN, SNOW_GOLEM) ( @Zarius )
    * Expand/test support for item/block ID's ( @Nuinbot , @Zarius )
    * Check new blocks/items/mobs work (should be automatic) & check for data values that might need supporting ( @Zarius )

    Some of these might already be fixed in the latest beta but I'll check anyway. If you have an issue or idea that's not on this list (and doesn't have a ticket on the bukkitdev page) let me know.
     
  21. Offline

    Nuinbot

    @Zarius:
    Something I have been working on today to prepare myself for the insane drop system for my new server. It is a block/item list, collected from the Minecraft wiki and the Bukkit item name list, with decimal IDs. It is spaced with tabs, so it can be pasted into a spreadsheet or text editor of your choice. Feel free to use it. The only items I have not added were the new monster spawning eggs (don't know the Bukkit name, but the ID number is there) and piston parts.

    http://pastebin.com/vg5U4Bbb
     
  22. Offline

    Sepulzera

    In Beta 8 or 7 (not sure) when you break a minecart the rail below disappeared.
    It can't be tested in beta 9 as they are indestructible (see your list above).
    Anyway, your point "* Investigate block disappearing below/on mobs that die" might get expanded to "*Investigate block/item disappearing below/on minecarts/maybe others too"

    And btw: I'm glad your back again! Gratz for your affiance :)
     
  23. Offline

    Zarius

    Preliminary testing with 2.0-beta8-prerelease (since that was the last version I compiled, see here for download) with Minecraft 1.1 & CB1717 seems to work mostly ok. No indestructible minecarts & blocks (tested grass, dirt, cobblestone and cobblestone_stairs).

    Death animations aren't working though & rails under a customised minecart drop disappeared. Some more testing and re-familiarising then back into coding :)

    Still testing with beta8-prerelease & CB1717. Browsed some plugins and enhanced my testing server (due to so many Minecraft updates I've started from scratch).

    Mushroom cows: unfortunately Bukkit (CB1717) reports these as just a standard cow upon death, until this is fixed they will share custom drops with cows. No problems with a custom Enderman drop (tested dropping a blaze rod).

    Projectile_arrow worked with this config (perhaps broken in Beta 9 - will move to testing that soon):
    Code:
        ZOMBIE:
            - tool: PROJECTILE_ARROW@PLAYER
              drop: [CHAINMAIL_HELMET@2-2/0-1/5%, BONE/0-2/5%, ARROW/10/100%]
    
    Spawned an Enderdragon to test it - ouch! Wiped out my basic shelter/crafting room and flew away - could take a while to test custom drops with it :D

    Monster eggs work - bit confusing due to the previous Silverfish "eggs" (stone). MONSTER_EGG is the new spawn-egg and MONSTER_EGGS is the silverfish egg. Example:

    Code:
        DIRT:
            - drop: MONSTER_EGG@54  # drop a zombie egg
    
    Numbers for each creature-type are here.

    Okay, bunch of testing, pulled Celtics changes and did a little coding, time for bed now (the suns coming up :D)

    Status update: Testing with CB1718 & "Beta 10 - prerelease" (feel free to download and test - keep in mind the bugs I'm aware of at the bottom of this post)

    * cobblestone_stairs & minecarts are not indestructible
    * Zombie/Projectile_arrow test as per previous post works
    * no errors on rightclicking air (with or without items)
    * enderman custom drops work fine - no errors

    * new creatures _do_ need an update to OtherDrops to add custom drops (they should work automatically on any version of OtherDrops if set as a drop) - don't think there's any way around this at the moment

    * any new blocks/items should work without an update to OtherDrops (they should work in any version of OtherDrops) - let me know if there's any issues (although datavalues may need to be entered as an integer until updated)

    * new mobs now added (blaze, ender_dragon, magma_cube, mushroom_cow, snowman, villager) & aliases added (creature_enderdragon, creature_lavaslime, creature_mooshroom, creature_snow_man - these aliases only work with the creature_ tag for technical reasons)

    Bugs I know about and am working on:
    ** minecarts (and probably mobs) destroy tracks below
    ** no death animation on mobs with custom drops
    ** creeper explosions (I guess any explosions) do not drop custom blocks
    ** datavalues for 1.9 mobs & items/blocks need to be investigated

    Ok, found the problem with death animations and think I've fixed it - I've updated the prerelease in the post above if anyone wants to test it.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 15, 2016
  24. Offline

    kahlilnc

    Um no errors of any kinda on the latest dev build. But it uses tons of CPU and I get cant keep up the the server messages in console like crazy when this is added and it is not really being used as well. :/ Maybe a fix for that?
     
  25. Offline

    Zarius

    Well, good that there's no errors. Odd that it would use up CPU, i had no issues and there aren't any timers or loops that always run. Anyone else have that problem?
     
  26. Offline

    PseudoKnight

    I can't tell if you're looking at the tickets too, so I'll add that there's a bug with delayed drops that affect only the last interaction with the same block type, not the original interaction that started the delay. (may only affect drop groups)

    It's less important than the other bugs that I've reported, but thankfully you've noticed those: all explosion tools not working and (all?) entities removing occupied blocks on death.

    I'll test the new versions as soon as soon as we move to 1.1. Glad to see you back! :)
     
  27. Offline

    Zarius

    "Beta 10 - prerelease 3" - fixes death animations and block replacement with entities have custom drops (eg. minecarts destroying tracks).

    @PseudoKnight - yup, looking into the tickets too but some of those issues will take a bit longer. Briefly looking into the explosion issue but it's a bit complicated so will have to wait a little longer - hopefully in place by end of the week.
     
  28. Offline

    tremlingrendel

    I am a huge fan of this plugin...just can't get it to work the way I want.

    Want to make sure though, this is possible.

    Is there a way to code it where Sand blocks have a % chance to drop a different block (Dirt, Cobblestone, Wood Planks, Iron Ore etc.) and when it drops a different block, it's exclusive. So, you dig out 100 blocks of sand, and you may get instead 55 sand, 30 cobblestone, 12 dirt, 2 wood planks, and 1 iron ore instead of 100 sand.

    I kept getting errors, but from what I read about each error, it was just me not plugging in the values right (using tab instead of space, characters where there were not supposed to be, no characters where they should have been, and so on).

    Any chance I could get a quick example of a block of sand being broken, and it having a 60% chance of sand, 30% chance of cobblestone, and 10% chance of dirt? I can work from that and see what I did wrong.

    And from what I saw in the documentation, is the use of { } characters the same as "exclusive:"? I tried and failed both methods, but wasn't sure how either are used.
     
  29. Offline

    Celtic Minstrel

    I barely managed to keep it alive, really.

    I don't think I had the beta8 changes, so beta9 was probably built solely off of beta7. Not sure how I made stuff indestructible... I didn't really bother testing. <_<


    Why do these aliases only work with the creature_ prefix?

    What do you mean by this... stuff like names for the potions? If so, there's a lot of relevant info on the Minecraft wiki.

    I'm curious, what was the issue?

    I'll probably refrain from doing anything more until 2.0 actually gets released, unless there's something specific you want me to do... my changes tend to break things more often than not. <_<
     
  30. Offline

    Zarius

    Thanks :) Yes, definitely possible to do what you want - the {} keys should do that I think, eg. drop: {SAND/50%, COBBLESTONE/30%, DIRT/12%, WOOD/2%, IRON_ORE/1%} - not sure how the percentages will play out exactly though, I need to test and think about this more.

    "exclusive:" used to work like you think but it got changed in 2.0 - there's a new "flags: unique" that should do that though (ie. if the "unique" drop occurs then no other drops will).

    It helped for people to know that a dev was still working on it :)

    Aliases with creature_ is because the system checks synonyms for blocks and creature groups, then checks against available creature_types, then blocks/items. I cheated and used the creature group synonyms rather than making a new system for creature synonyms :)

    Yeah, potions, gates, enchanting, etc. Not sure if data value labels will be relevant (as the numbers can be used already) - just need to look into it.

    The death animation issue was due to the "replacement block" function not properly considering entities. What happens is that with blocks we need to default the "replacement block" (if not set in the config) to AIR so that the block disappears after it's cancelled.

    With entities we don't need to do this but they went through the same process so were being removed (cancelling the death animation) and replaced with AIR (removing the block they are in - eg. tracks).

    This wouldn't be a problem if blocks had a drop list we could clear rather than cancelling the whole block-break but I haven't dealt with actual bukkit code enough to do a pull request.

    Issues fixed so far:
    * Get Endermen working, if not fixed already ( user1234567890 and others ) (not an issue in beta10-pre3)
    * Investigate block disappearing below/on mobs that die ( deadalucard and others ) (fixed in beta10-pre3)
    * Investigate NPE on Snow Golem deaths ( halley , Sorken ) (fixed in beta10-pre3)
    * Investigate NPE's when rightclicking on air with an item in hand ( Vincent1468 ) (not an issue in beta10-pre3)
    * Investigate indestructible minecarts/stairs/blocks ( Sorken and others ) (fixed in beta10-pre3)
    * Investigate lack of death animation ( Sepulzera ) (fixed in beta10-pre3)
    * Add aliases: MUSHROOM_COW (MOOSHROOM), SNOW_MAN (SNOWMAN, SNOW_GOLEM) (done in beta10-pre3)
    * Check new blocks/items/mobs work (should be automatic) (working in beta10-pre3, there was some updating needed to support new mobs - blocks/items work without change)

    Issues to work on before 2.0 release:
    * Test mobs dropping XP orbs ( many people reported issue )
    * Investigate "tool: ANY_PICKAXE" working without a tool ( Sich )
    * Check for data values that might need supporting
    * Look into TNT & Creepers dropping the correct customised drop
    * Also look into explosion as a tool (dev.bukkit ticket 41)
    * Look into delayed drops (dev.bukkit ticket 43)
    * Default OtherDrops to ignore Creative mode (unless anyone has a reason not to) ( Zach Hinchy & dev.bukkit ticket 40 )
    * There are also a number of other tickets that I think have been fixed - will test and close them.

    Issues to work on after 2.0 (amongst others):
    * Add option to turn off OtherDrops completely (/od off)
    * sagethor - "empty string error" - if you're still having this error please let me know and add more details
    * Expand/test support for item/block ID's ( Nuinbot ) , also looking into SpoutMaterials support
    * Work on tool: EXPLOSION

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 15, 2016
  31. Offline

    Skirmisher

    Hi again. Great to see you're back and that this plugin is still alive and kicking, Zarius! I'll wait for a bit until more of the "game-breaking" issues are resolved before I use it, but keep up the good work! :D

    (oh and I didn't forget you Celtic Minstrel; good work too!)
     

Share This Page