v2.8b.566

Details

  • Filename
    OtherDrops.jar
  • Uploaded by
  • Uploaded
    Jun 20, 2013
  • Size
    450.24 KB
  • Downloads
    5,651
  • MD5
    95f2a22764b4b0a065c6ea9fd0e12b3e

Supported Bukkit Versions

  • CB 1.5.2-R1.0
  • CB 1.5.1-R0.2

Changelog

Beta release 2.8b.566

  • Add: PROJECTILE_HIT_BLOCK trigger - projectiles hitting blocks
  • Add: BLOCKGROW trigger - when wheat, sugarcane, cactus, etc grows
  • Add: allow /odd command to work with @p/@r/@a from CommandBlocks - eg. /odd p: @p diamond
  • Add: command "/od triggers" to show available triggers
  • Add: %loc.x %loc.y %loc.z %loc.world variables (should be self-explanatory)
  • Add: modified undocumented PLAYERMOVE trigger - now requires a target block which defines the block on which the player is moving.
  • Add: multiple option placeholders (eg. "+<36> <mace|sword|dagger> of <lightning|fire>" -> +4 mace of fire)
  • Add: "named chest" support now uses InventoryHolder to also support names for dispenser, brewing stand, etc.
  • Add: "send_customblockbreak_to_mcmmo" config setting (defaults to true) to make it optional
  • Add: support newer projectiles (thrown potion, enderpearl, thrownexpbottle, witherskull) and thrown potion data values.
  • Add: trig as alias for trigger parameter (easier to type and matches length of drop, looks neater)
  • Fix: alias for skull - head - was putting names in uppercase (eg. skull@Name works but head@Name went uppercase).
  • Fix: allow entitydamage events to work for damage other than by entity (eg. environmental damage)
  • Fix: allow simple data to range without "RANGE" ala CROPS@0-6
  • Fix: (blockbreakevent) only deal "default damage" if default drop has been cancelled.
  • Fix: fixes "tool: dye@blue&6Fred" not working (needed to parse color codes at config loading time)
  • Fix: issues with LAPIS_ORE & rename COCOA = dye@brown alias to COCOA_BEANS as COCOA is the plant.
  • Fix: lapis->dye@blue alias broke LAPIS_ORE drops (also added LAPIS_BLOCK as an alias for the ore).
  • Fix: leaves@this drop included "decay bit" so gave wrong data values. Fixes #243.
  • Fix: minor issue with /odd command and numbers in lorename or book text (was parsing the first 2 numbers seen as location, even if in lorename)
  • Fix: minor optimisation for messages - only parses variables if there the string contains a % (variable) or anglebracket (<> - for multi-text) & translate message colors in config loading.
  • Fix: NPE in EnvironmentAgent
  • Fix: NPE in LivingEntityData when checking custom mob names
  • Fix: NPE in MessageAction whilst loading config. Also improved config error given for NPE's.
  • Fix: /odr command now reports errors back to user that is reloading. Some general improvements to reporting reload errors.
  • Fix: only note "action: parameter found, use trigger:" message once per reload
  • Fix: rare issue where onPlayerInteract couldn't get target block looked at.
  • Fix: reset all "dropFor" variables so only the correct listeners are loaded after a "reload" command
  • Fix: some OtherDrops spawned creatures not working. Fixes #245.
  • Minor: add /otherdrops as alias for /od command
  • Minor: add strength alias for INCREASE_DAMAGE potioneffect.
  • Minor: spawnreason to /odi mob command
  • Minor: allow lowercase aliased triggers to work
  • Minor fix: allow "ANY", "ALL", etc for "tool" parameter to be case-insensitive (eg. any, aLl) now work
  • Minor: fix projectile matches so that SNOWBALL matches SNOW_BALL, etc (now correctly ignores case and strips underscore/dash/spaces)
  • Minor optimisation of material alias parsing.
  • Minor: adjust some debug message verbosity levels

Beta release 2.8b.542

  • Add: short-form drops & money, eg. ZOMBIE: [egg] (for drops) or SKELETON: 3-7 (for money)
  • Add: support for "ZOMBIE~" meaning any zombie with no customname, and "ZOMBIE~*" meaning a zombie with any customname (except blank)
  • Add: support for named chests & command-blocks as targets.
  • Add: "event: explosion@player" - creates explosion at the player rather than the target (can be combined with nobreak/fire/etc - eg. explosion@player/nobreak)
  • Add: "events" - eg. explosion, shear, lightning - now support event@param@param in addition to event@parm/parm/etc (eg. explosion@player@nobreak works too)
  • Add: MoneyAction now supports a range (eg. 1-10)
  • Add: Skeleton data types now use Bukkit enum for future compatibility.
  • Add: support for /odd x y z <item>, /odd w:world x y z <item> & /odd p:player <item> - also supports running command from console or command blocks
  • Fix: money action was withdrawing instead of depositing (oops...)
  • Fix: "replacementblock: AIR" for mob deaths now simply removes the entity rather than replacing the block (for AIR only)
  • Fix: %v in item-displayname & variables now only use % (eg. %date), fixes issue with variables not working at start of string.
  • Fix: allow /odd spawned mobs to process mobspawn trigger.
  • Fix: allow creeper deaths (by self-explosion) to be processed and tool: EXPLOSION_CREEPER now works.
  • Fix: issue where mobs with higher HP wouldn't match custom drops.
  • Fix: material@data aliases (eg. bonemeal) to be case-insensitive, work with underscores and added ANY_SHOVEL->ANY_SPADE & (LAPIS or LAPIS LAZULI) -> DYE@BLUE aliases
  • Minor: add alias for Command_Block (minecraft name) = Command (official Bukkit name)

Beta release 2.8b.535

  • Major: mcMMO compatibility for BlockBreakEvent with custom drops - now fires event off to mcMMO manually, similar to current LogBlock/Prism/etc support.
  • Major: actions parameter now known as trigger (eg. trigger: rightclick) to distinguish from an 'action' such as potioneffect, sound, etc. Note: action parameter still supported - all old configs should still work fine.
  • Add: sound action now supports range for volume and pitch & {sound1, sound2, etc} format.

only basic { } support with equal chance of any value being selected example: sound: {anvilbreak/0.8~1p/0.9v, catmeow}

  • Add: $date and $time variables, addresses issue #211. Custom date/time format can be changed in config file.

variables can now use $ or % - $ is the preferred as more standard across programming languages and easier to type variables can be "escaped" eg. "$time" will not be interpreted as a variable but rather show as just "$time". Double backslash needed as YAML interprets the first backslash.

  • Add: "particleeffects" - allows for a selection of Minecraft particle effects to be used.
    • full list here:
    • format- particleeffects: <effect>@<speed>@<count>
    • may be integrated with "effects" in the future
  • Add: tool: <item>~<name> now supported, item parsing revamped (see comments below...)

all previous syntax should still be supported main separator is now semi-colon, eg. diamondsword;damage_all#1;500~MySword;loreline1;loreline2 data, enchantment & displayname can be in any order (although any values are the displayname are taken to be lore text) eg. diamondsword;500;damage_all#1 -or- diamondsword~Fred

  • Add: allow left & rightclick to function on air, eg. ANY: [{ tool: dirt, action: rightclick, event: lightning }, { tool: dirt, action: leftclick, potioneffect: speed@60@5}]
  • Add: pset.exhaustion. Also, all pset values now support "+#" or "-#" (where # is a relevant number) to add or deduct from current value.
  • Add: allow action_radius for message, potioneffect, damage, sound & pset to be defined in config file
  • Add: allow "face" parameter to work with blockbreakevent. Fixes issue #212.
  • Add: custom_spawn_limit setting to avoid overloading a server with mobs (default 150) (if limit is exceeded OtherDrops will not spawn mobs during the "MobSpawn" trigger)
  • Add: example configuration for anvil repair (courtesy of Sehrgut)
  • Add: leather armor color now supports RGB values (using hex format eg #00FF00 = red).
  • Add: logging overridden blockbreakevents to Prism
  • Add: money action - replaces drop: money@percentpenalty/5 etc. Now money: 5, -5, 5%, -5% etc. Supports money.victim, money.steal, etc. (per other actions, money.world, money.server & money.radius all supported if you need them).
  • Add: potioneffect.remove (also potioneffect.victim.remove, .world.remove, etc)
  • Add: basic playeraction (pset.hunger, pset.xp, pset.speed) - subject to change, currently sets to exactly the value you give, will soon add/remove (optionally exact set with !).
  • Add: cooldown condition eg. "cooldown: click.$p@5" gives a unique cooldown for the player ($p) that lasts 5 seconds (default cooldown is 2 seconds)
  • Add: RPGItems test - /od rpg <ITEMNAME> (testing for future integration of RPG Items as drops)
  • Add: start of an "adjacent" condition - not yet functional
  • Add: support colon in target, eg: "wool:red"
  • Add: support for direct naming of mobs (eg. sheep~Fred, sheep@red~&4Red Fred)
  • Add: support names in creaturetarget (eg. pig~Fred: [{drop: apple}]), doesn't yet support other creature data alongside (eg. pig@baby~Fred will fail)
  • Add: mob custom names, book titles/author/pages now support color codes.
  • Add: experimental PLAYERMOVE trigger.
  • Add: trigger CONSUME_ITEM (triggers on player eating food, drinking potion or drinking a milk bucket), eg. PLAYER: [{ tool: apple, action: eat, potioneffect: [speed@200@5, jump@200@5] }]
  • Add: %t in variables now adds details of projectile shooter (eg. "an arrow shot by a skeleton").
  • Add: variable $deathmessage - fixes #211.
  • Add: variable $displayname or $lorename - shows item or mob custom name.
  • Fix: update "enchantment not valid" message to only appear at verbosity high and advise not necessarily a problem
  • Fix: issue with OtherDrops mobspawn limit not being applied.
  • Fix: playerinteractevents already cancelled should not be uncancelled - improved safety for cancelled interact events - only LEFT/RIGHTCLICK_AIR actions get through (all other cancelled interact actions ignored)
  • Fix: allow /odd for work properly (broken when adding /o as an alias)
  • Fix: bug causing comparatives to fail (eg. attackrange: "<6" - also used for height & lightlevel)
  • Fix: CreatureData "shouldn't be here" message now on high verbosity only and various creature data calls are now correctly parsing via EntityType and id rather than just id.
  • Fix: custom names for mobs should work for Bukkit 1.5 and above only (previously caused errors about a missing method on Bukkit 1.4.7).
  • Fix: exclusive & inclusive drop lists correctly add entities to dropResult (fixes issue with fishing not throwing fish at player when using droplists).
  • Fix: fish_success event now removes default fish rather than cancelling the event (adds compatibility with mcMMO)
  • Fix: improve custom names check - do not set if empty string and move version check to config parsing rather than runtime.
  • Fix: left/rightclick actions now work in Creative mode too.
  • Fix: make the "face" parameter case insensitive (previously face: north didn't work but face: NORTH did)
  • Fix: mob & item $t(oolname) variables now use "readable" names (ie. diamond sword rather than DIAMOND_SWORD)
  • Fix: MOBSPAWN now only ignores OtherDrops spawns rather than all custom spawns.
  • Fix: monster(silverfish)_eggs now use fuzzy matching so monster_eggs@stonebrick will work, etc. Fixes #212.
  • Fix: NPE error in playerinteract when left/rightclick in air
  • Fix: NPE error when using PLAYER: target
  • Fix: NPE when parsing variables with iteminhand being empty.
  • Fix: OtherDrops mobspawn limit now only considered if it's a natural spawn, also increased default OD limit to 300.
  • Fix: playerrespawn trigger now defaults to '1' for delay and current player location on respawn (not where they died).
  • Fix: potioneffects will now renew an existing potioneffect (previously if the player already had an effect the duration would not renew)
  • Fix: SPAWNEGG@THIS now works correctly (fixes #208)
  • Minor: allow metrics to display mob_death and block_break separately.
  • Minor: don't run "set dropped velocity to player" for fish_failed (fish_failed trigger drops appear at players feet as we cannot locate the "hook" end of the rod)
  • Minor: make some warning messages more informative (specifically regarding Vault & economy plugins)
  • Minor: update "action parameter outdated" message to show that action parameter still supported
  • Minor: add SPAWNMOB as alias for MOBSPAWN trigger.
  • Minor: add FISH_SUCCESS as alias for FISH_CAUGHT.
  • Minor: add ITEMCONSUME as alias for CONSUMEITEM (as some users have tried it)
  • Minor: color to log messages (high and above) - easier to keep track of verbosity levels and OD debug messages.

config option color_log_messages to disable (if annoying or ESC codes appear, etc) no color for low/normal verbosity by default (I prefer green for normal) will add configurable color per level later

Beta release 2.8b.382

  • Add: support lore text (~name:line1:line2:etc) & support more flexibility in displayname parsing (eg. item~name)
  • Add: allow variables & color codes in loretext.
  • Add: NOBREAK argument to EXPLOSION effect (eg. event: EXPLOSION@2/FIRE/NOBREAK). Fixes #122.
  • Add: cap explosion power at 100 to avoid lagging servers (and add override_explosion_cap for those that know what they are doing).
  • Add: support all 13 discs (along with aliases as per minecraftwiki).
  • Add: /o as shortcut for /odd
  • Fix: SKULL@zombie didn't work but SKULL@ZOMBIE did, fixed case sensitivity for creature skulls.
  • Fix: correctly check Heroes class (heroes.class condition)
  • Fix: lorename now correctly parses variables in ItemDrop (fixes issue where color was still part of name)
  • Fix: effects parameter now correctly case insensitive (and added fuzzy match so space/dash/underscore ignored)
  • Fix: (minor) use the correct "parse" on ItemDrop (for mob equipment), worked anyway but this is more accurate.
  • Minor: started work on possible embedded message (mostly to support droplists).

Beta release 2.8b.334

  • Add: redstone power event (POWERUP, POWERDOWN) triggers. Also triggers on surrounding (non-powerable) blocks.
  • Add: PLAYERJOIN & PLAYERRESPAWN triggers.
  • Add: support SKULL@THIS or SKULL@%v - drops victim head (supports playernames and creatures with currently known skull types)
  • Add: support creature names for spawneggs (eg. spawnegg@zombie).
  • Add: allow comparatives ("<4" etc, for lightlevel, height, attackrage) to support a range (eg. 1-5).
  • Add: disable_metrics option - for older Tekkit or Bukkit versions that don't support methods that Metrics calls upon.
  • Add: note in config that enchantments_ignore_level requires enchantmnets_use_unsafe to be true
  • Add: allow unknown entities to be targets (enables rightclicking on a ENTITY_ENDER_CRYSTAL for example)
  • Change: OtherDrops now built as a single jar file containing all resources into the jar file. These are extracted on first run if files don't exist.
  • Change: a left click on a mob is now handled as a "HIT" action/trigger. "LEFTCLICK" still supported (automatically changed to HIT if it's configured on a mob)
  • Change: HIT trigger changed internally to LEFTCLICK if it's on a block.
  • Fix: move Enderman data to it's own class so enderman@<material>@<id> works. Also added enderman@carry or enderman@nocarry.
  • Fix: correctly support multiple enchantments on a required "tool"
  • Fix: regions condition now case insensitive (as WorldGuard stores regions in lowercase anyway)
  • Fix: drop: DENY now correctly removes player inventory.
  • Fix: normal drops shouldn't set override default to false (fixes issue with drop: DENY failing if another drop also occurs)
  • Fix: allow AIR (drop: NOTHING) itemdrops to correctly override default (fixes issue when loot_overrides_default is set to false)
  • Fix: trim space from front/end of commands to avoid issue with "/!* test" (space before 'test' command)
  • Fix: replaceAll("[ -_]") was removing numbers (eg. huge_mushroom_1->hugemushroom) - replaced with "[
    s-_]" in matchMaterial and throughout OtherDrops
  • Fix: avoid NPE when using "/$" in the command parameter
  • Fix: avoid NPE with CoreProtect by adding to plugin.yml softdepends
  • Fix: getStringList now doesn't give NPE error on integers (eg. [268, 257])
  • Fix: pass correctly split name into DropList parsers (was previously getting full "name/quan/chance" still as the name)
  • Fix bug where drop: <item>/1/80 would trim last number and give 8%.
  • Fix: villager data to use ageable (baby) and livingentity (health & equipment)
  • Fix: allow "ANY" targets to correctly register listeners.
  • Fix: lightlevel now correctly gets the maximum lightlevel of surrounding blocks (if the target is not transparent)
  • Fix: issue with <name>/<quantity>/<chance>% returning empty chance value sometimes
  • Fix: inksack color, coal type and livingentity h (or hp) to be case insensitive
  • Minor: add alias spawneregg=monsteregg

Beta release 2.8b.156

  • new parameter - sound: <sound>/10v/1p (where v is volume and p is pitch - both optional)
    • Supports all current and future Bukkit "Sound" values
  • /od id now shows lorename (including full color codes)
  • fix for NPE errors regarding EntityDamageByEntity event
  • allow negative damage (with "damage" parameter) to heal entities
  • damage now ent from the entity that attacked (fixes issue with snowmen/snowballs)
  • check that replacementblock is valid to avoid rare crash if it was misconfigured

Beta release 2.8b.89

  • Cleanup some imports.
  • Add: aliases lavaslime & magmaslime = MAGMA_CUBE
  • fix: remove debug message seen when using eq:head:<item> for mobs
  • Fix: creeper drops not working
  • Fix: allow SLIME(and MAGMACUBE)@TINY/SMALL/BIG/HUGE & numerical (for larger slimes)
  • Change: max health now requires a "h" - eg. ZOMBIE@5h or zombie@baby@5H (allows for me to fix for eg. SLIME@32)
  • Fix: stop mutiple entities (eg. zombie/10) spawning in a line rather than on the spot
  • Fix: correctly parse tools for "explosives" (eg. tnt, fireball).
  • Fix: messageaction - empty string no longer gets sent to player chat.
  • cleanup - remove some debug messages & auto-generated catch block comments
  • Fix trigger counting for custom metrics graph, set debug msg to high verbosity
  • allow tools as data ID - eg. "tool: 276" = diamond sword
  • add command to view mob details - /od id mob

New build, only minor changes - 2.8b.54 (new version number format - major.minor(b|a).buildnumber - where a or b = alpha or beta).

  • improve /od show command (don't show null parameters, add standardised formatting and newlines)
  • show /odd usage message if no arguments provided
  • minor cleanup - remove unused OtherDropsConfig.priority and mark some variables "final"
  • Add metrics graph for tracking number of each trigger (action) used
  • modify potioneffectlevel so that userwritten config value matches ingame value (because Bukkit lvl 0 = ingame lvl 1)
  • fix NPE in EntityDamageByEntity (if no entity?)
  • Avoid "found" and "notFoundPlugins" console messages being duplicated upon Bukkit reload
  • add auto-incrementing build numbers

Release 2.8-beta6

  • overhaul enchantments system, allow item@!random!random for multiple random enchantments, support enchantedbooks (item@!random = random ench & level, item@!random#1 = random ench of level 1, item@!DAMAGE_ALL#? = damage_all ench and random level, item@!random!random = two different random enchantments)
  • register PigZombieData class and allow it to extend Zombie (to allow for @BABY or VILLAGER pigzombies)
  • allow EXPLOSION_TNT to match EXPLOSION_PRIMED_TNT (which is what actually occurs)
  • add Heroes condition (heroes.class & heroes.level) if Heroes plugin found
  • add aliases (sticks->stick, zombiepig->pigzombie)
  • allow drop: NOTHING to cancel entity equipment drops
  • fix leafdecay drop: NOTHING & extract "clearDrops()" method from performDrop
  • center mob spawns on the block, rather than spawning in the corner
  • Support colon as a data separator for items eg. ("wool:red") as some users will expect this format (previous separator "wool@red" works as normal)
  • stop dropgroups sending a blank line to player's chat
  • fix MoneyDrop - needed to load Vault after globalconfig but before loading drops
  • ensure all creatures use same data separator (currently "!!")
  • initial testing for PistonExtendEvent to intercept melon/pumpkin/etc smashing (not yet live)
  • stop CreatureData changing case (as data like playername for skull owner is case sensitive)
  • fix spawnlistener (it was ignoring non-custom spawns instead of custom ones)
  • avoid NPE in OdEnchantedBookMeta
  • minor - avoid issue with tailing characters (eg. DIAMONDSWORD@!)

Release 2.8-beta5.1

  • Added drop command - /odd <item/mob> - eg. /odd diamondsword@!damage_all#3~MySword
  • Skull owner support - /odd skull_item@Notch. (Case sensitive)
  • Added skull aliases - skull=skull_item, skull_block=skull (original bukkit "skull" is the block but most people will want the item)
  • Leather armor color support - /odd leatherpants@red (includes any dye color, also try richred richblue more colors, eg. By RGB number, to come later)
  • Written book support - /odd writtenbook@author=me:title=Snail:page=Once there was a:page=snail.
  • EnchantedBook support - /odd enchantedbook@damage_all
  • All mobs now support maxhealth & equipment.
  • All ageables (sheep, pig, cow, wolf, etc) now support baby/adult.
  • Support creatures riding creatures (passenger^ride) - eg. cow^bat = cow riding a bat. Supports entities, eg. entity_boat^bat
  • /od id command now also identifies block looked at.
  • Entity name matches by shortest unqieu name if starting with ; (mostly for /odd command) - eg. /odd ;z = spawn zombie

Release 2.8-beta4

  • fix LogBlock/BigBrother/Hawkeye/CoreProtect support (was registering AIR rather than correct block)
  • add RegenBlock support
  • remove docs-help folder (docs there are out of date)
  • allow SpawnedCheck to work with CreatureSpawnEvents
  • fix DamageAction - allow parsing of integers (eg. damage.victim: [20] no longer gives an error)
  • add new trigger: HIT (applies to any entity hitting another, except a player hitting, that's still LEFT_CLICK to avoid breaking existing configs).
  • added potioneffect.drop (applies to dropped LivingEntities - eg. any mob)
  • allow LoreNameCheck to apply to tool used to fire a projectile (more accurately: the item in the shooters hand - eg. PROJECTILE_ARROW lorename: MyBow will check the lorename on the bow rather than the projectile).
  • allow RANDOM as an enchantment (will search for a random valid enchantment)
  • enchantments level now an IntRange and works in tool: condition. (eg. tool: DIAMOND_SWORD@!DAMAGE_ALL#3-6)
  • fix "xp_overrides_default" setting

And here's some examples of what the changes let us do:

  GRASS:
    - drop: [SKELETON, ZOMBIE]
      potioneffect.drop: SPEED@300@5

    - drop: [FISHING_ROD@!~Poison Whip, BLAZEROD@!FIRE_ASPECT#6~Flaming Justice, DIAMOND_SWORD@!DAMAGE_ALL#1-6~Butterfly, BOW@!~Bow of Zeus, ARROW/64]
      dropspread: false

  ANY_CREATURE:
    - tool: DIAMOND_SWORD@!DAMAGE_ALL#2
      drop: DIAMOND
    - tool: DIAMOND_SWORD@!DAMAGE_ALL#5
      drop: EGG
      
    - action: HIT
      tool: PROJECTILE_FISHING_ROD
      lorename: Poison Whip
      potioneffect.victim: POISON@60@5
      damage.victim: 1
      message: "You've poisoned %v."

    - action: HIT
      tool: PROJECTILE_ARROW
      lorename: Bow of Zeus
      damage.victim: [LIGHTNING@20]
      
    - action: LEFT_CLICK
      tool: BLAZEROD
      lorename: Flaming Justice
      damage.victim: [5-500]
      message: "You've set %v on fire."

# Pokeball like action! :)
    - action: HIT
      tool: PROJECTILE_EGG
      drop: SPAWNEGG@THIS
      replacementblock: AIR

Release - 2.8-beta3

  • NOTE: multiple enchantments on item separator is now a "!" rather than "," - eg. bow@!arrow_damage#5!arrow_fire#1 rather than the old bow@!arrow_damage#5,arrow_fire#1 (this is to fix issue within droplists)
  • extend potioneffect parameter: potioneffect.<type>: SPEED@<duration(ticks)>@<strength> (eg. SPEED@400@3 - be careful, too high a strength value goes weird) where type is: attacker, victim, world, server or radius (eg. potioneffect.victim)
  • allow message.radius (plus potion.radius & damage.radius) to work(defaults to 10 - Unchangeable at this time.) Radius type only applies to players.
  • add DamageAction - similar to PotionAction & MessageAction this has multiple parameters: damage.attacker, .victim, .world, .server & .radius. Damge can be normal, fire or lightning. eg:
# apply fire to 500 ticks (might change to look like fire@500t)
  damage.victim: [fire@500]   

# apply between 2 to 6 normal damage
  damage.attacker: [2-6]  

# strike whole server with lightning (*evil laugh*) - supports loc-randomise parameter
  damage.server: [lightning]
  • add action: MOB_SPAWN as possible trigger.
# example: drop diamond on zombie spawns & apply a speed potion effect to the zombie
ZOMBIE:
    - action: MOBSPAWN
      drop: DIAMOND
    - action: MOBSPAWN
      drop: DEFAULT  # "default" in this context means "allow zombie to spawn"
      potioneffect.victim: SPEED@2000@7

# another example: replace zombie's in the desert with blazes:
  ZOMBIE:
    - action MOBSPAWN
      drop: BLAZE       # drop a blaze mob, and because there's no "default" the zombie wont spawn
      biome: DESERT # only in the desert

# replace Skeletons with random number between 1 & 6 skeletons in desert
  SKELETON:
    - action: MOBSPAWN
      drop: SKELETON/1-6
      biome: DESERT

# NOTE: I've added protection against recursion by ignoring custom spawns (eg. drops from otherdrops) otherwise: zombie: -action:mobspawn drop: zombie/2 - each zombie drops 2 zombies which trigger the spawn and drop another 2, etc would crash the server.  There is an option to enable mobspawn trigger working on custom mobs - let me know if you need it.
  • added support for CoreProtect (logging blockbreak's cancelled by OtherDrops).
  • allow a list for spawnedby (eg. [NORMAL, OTHERDROPS] or [-SPAWNER]).
  • added named aliases for crop states to carrots & potatoes.
  • added Cocoa as alias for dye@brown.
  • add data support for WOOD (eg. WOOD@JUNGLE), WOOD_STEP(slab), WOOD_DOUBLESTEP, COBBLEWALL, STEP@NETHER_BRICK, SANDSTONE
  • fix /odr so it reregisters appropriate events.
  • fix - allow CommonMaterial aliases to work with targets.
  • fix lorename so it works when item data exists (eg. diamondsword@400!Blah)
  • fix for "invalid enchantment" message appearing even with blank enchantments.
  • fix permissions & permissiongroups condition - if agent is not a player we now return false (if permissions condition exists).

Release - 2.8-beta2

  • add "spawnedby" condition - will check against any possible SpawnReason and custom reasons (eg. "OtherDrops"). Example:
  COW:
    - spawnedby: OTHERDROPS
      drop: DIAMOND

    - spawnedby: SPAWNER_EGG
      drop: GOLDINGOT
 
    - tool: ANY
      drop: SNOWBALL
  • add OtherDrops-config.yml options: "enchantments_use_unsafe" (add any enchant to any item/tool) and "enchantments_ignore_level" (ignore enchant start/max level) - eg. "drop: diamond_pickaxe@!dig_speed#50" or "feather@!damage_all#3".
  • add WolfData - now supports baby, maxhealth, tamed/untamed, angry/neutral & collar color - eg. wolf@tamed!blue (for blue collar) or wolf@baby.
  • fix MagmaCube data so magmacube@tiny or small, normal, huge now works
  • fix tool: PLAYER (now correctly matches any object or projectile) and ANY_OBJECT (now correctly matches any object and not environmental or other creature damage)

Release - 2.8-beta1

  • CreatureData overhaul - big change to how CreatureData is handled, alllows for:
    • Villager professions and "baby" status - eg. VILLAGER@BUTCHER, VILLAGER@LIBRARIAN!BABY or just VILLAGER@BABY.
    • Baby: chicken, cow, pig, mushroom_cow (note: sheep & wolf not added yet due to complexities)
    • Ocelot "baby" status and make config easier/more resilient (can be OCELOT@RED!TAME!BABY or @WILD!BLACK, etc). Config is OCELOT@<type>!<wild or tame>!<baby - optional> order of type/wild/baby doesn't matter.
    • added Zombie "baby" status, "villager" status and maxhealth (any number given) - eg. (ZOMBIE@VILLAGER!BABY!20). This can be used in both the drop and the target, eg:
    GRASS:
      - drop: ZOMBIE@20  # zombie with maxhealth 20

    ZOMBIE@20:   # drop TNT, _only_ for maxhealth 20 zombies.
      - drop: TNT
    • Skeleton: support wither.
    • Skeleton: default to holding bow.
    • Skeleton: test version of equipment config (allows for setting all armour slots and holding, any item including datavalues and enchantments) - format is SKELETON@eq:<slot>:<material>@<data>\!<enchantment>#<ench level><<dropchance>!!<next slot....>. Yes, there is a "<" character before the dropchance and you do need "!!" rather than "!" as the main separator and "\!" as the separator before any enchantments - couldn't process the config properly any easier way. Here's an example:
  SAND:
    - drop: SKELETON@eq:head:DIAMOND_HELMET@\!THORNS<50!!eq:hands:DIAMOND_SWORD@\!DAMAGE_ALL#3<50
  • fix a NPE error occuring when using "message.server" for leaf decay
  • allow creature aliases, added alias "witherskeleton" = "skeleton@wither"
  • shift dependency loading to a separate class - more consistent
  • only register event listeners if a config for that type of event exists
  • remove obselete Register, useYetiPermissions & Profiler sections

Release - 2.7.1

  • Compiled with Java 6
  • Dropping with lorename changed from % to ~ to avoid conflict with variables (eg. drop: DIAMOND_SWORD@!Butterfly Sword)
  • Add more formatting variables for LoreName & messages (Bold: &l, Strikethrough: &m, Underline: &n, Italic: &o, Reset: &r)
  • Fix some debugging messages (to do with lorename) always showing
  • Only send "no economy plugin found" message if both Register and Vault not loaded (note: will be removing Register in next build, as Vault has replaced it)

Release 2.7

  • No major changes since beta2.
  • Move "unknown material" message from verbosity high to low (as an admin would reasonably want to see this message, even on verbosity low, to know their config needs fixing)
  • Added a null check to MessageAction to avoid a possible NPE error.

Release 2.7-beta2

  • fix "exclusive drop group" (ie. { }) so that it works as a distribution (ie. previously {SAND/50%, DIRT/50%} would choose one option and then run the chance a second time so 50% of the time nothing dropped - now it's a 50/50 chance of either Sand or Dirt).
    • Percentages below 100% will be buffered with "NOTHING", ie. {SAND/10%, DIRT/10%} has a 80% chance from dropping nothing.
    • Percentages above 100% will be rounded down as a whole, ie. {SAND/90%, DIRT/90%} is still just a 50/50 chance of either.
  • added "lorename" condition - requires the item in player hand to have given "lorename".
    • Will probably move this condition into the tool name at a later stage.
  # example:
  GRASS:
    - drop: DIAMOND
      lorename: diamonddropper  # requires an item called diamonddropper
      # add a tool condition if you want
  • allow dropping an item with a lore name - <ITEMNAME>@!%<LORENAME> (eg. diamondsword@!%Butterfly) - can be combined with data values & enchantments but either way the "@!%" is still needed.
  • added more material aliases (eg. firecharge = fireball, creeperhead = skullitem@4) - let me know if there's a commonly used name I've missed
  • added TNTPrimed to entity list (to avoid "unknown entity" error)
  • increased BlockBreak, LeafDecay & PlayerInteract events from HIGH to HIGHEST priority (to fix issues with Regios plugin)
  • added jungle leaves to "leaf_overhaul" module

Release 2.7-beta1

  • fix for Jukebox NPE error
  • fix ItemFrame "unknown entity" error & move all unknown entity messages to verbosity "HIGH" (=less console spam)
  • fix issue with "drop: DEFAULT" not working
  • fix issue where mobs always dropped default items/xp
  • fix for "tool: HANDS" failing in 2.6-beta1
  • add Metrics support (metrics.griefcraft.com) to track anonymous usage stats (opt-out in plugins/PluginMetrics/config.yml - set opt-out to true)
    • note: over 1000 minecraft plugins already use this library so you've probably already got it and I thought the stats would be interesting. Everyone gets to see the same stats here: http://mcstats.org/plugin/OtherDrops
  • fix for mobs dropping custom items/xp inside MobArena arenas

Release 2.6-beta1

  • fixed player hurt animation playing for all block breaks
  • fixed "defaults" not being cleared on new file

Release 2.6-pre3

  • fixes issues loading "default:" section of files,
  • fixes issue with trying to load vault when it's not there

Release 2.6-pre2

  • fixed issue reading PLAYER targets.

Release 2.6-pre1

  • Adds vault support for money drops.
  • XP & money drops no longer override default drop.
  • add settings for loot/xp/money_overrides_default to otherdrops-config.yml
  • ocelot/cats now support wild/tamed (cats tame by default, ocelots wild by default) - eg. ocelot@redcat\tamed (note, must be backslash, not forwardslash).
  • replacetool can now include a quantity (eg. replacetool: diamond/3 will take away replace current tool(s) in hand with 3 diamonds)
  • account for EnderCrystal in getEntityTarget() - currently does nothing with it (so EnderCrystal is not a valid target yet)
  • allow "tool: " to require a quantity (eg. "tool: dead_bush/2" requires two or more dead bushes to be held)
  • add 'delay: 1' if action = rightclick and replacetool is set (this avoids issue with tools being replaced by a water or lava bucket that then gets used).
  • fix npe in thunder event, rename thunder event to thunderstorm, default duration to 2 minutes

* The file is now just a JAR file - blank config templates will be created on the first run of the plugin.

Previous beta notes:

* Be careful with new MOBSPAWN action.  It should be fine since I've added protection against recursion (eg. zombie: -action:mobspawn drop: zombie/2 - each zombie drops 2 and they trigger the spawn and drop another 2, etc - this shouldn't happen).

PLEASE NOTE: the change in the way that "drop: { }" works (now works as expected) may effect any drops you currently have using this.  Please test these and adjust as necessary before updating your live server.

Should work with any Bukkit from version R5 and up (currently tested on 1.4.7-R0.1).  Should also work on Tekkit & Spigot.