2.8b.382

Details

  • Filename
    OtherDrops.jar
  • Uploaded by
  • Uploaded
    Mar 26, 2013
  • Size
    390.21 KB
  • Downloads
    2,077
  • MD5
    2b80141a3b3e131f96cd5e0de1774250

Supported Bukkit Versions

  • 1.5.1
  • 1.5.0
  • CB 1.4.7-R1.0

Changelog

Beta release 2.8b.382

  • Add: support lore text (name:line1:line2:etc) & support more flexibility in displayname parsing (eg. itemname)
  • 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#3MySword
  • 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.

* Sounds on PLAYERJOIN require a delay of at least 1 tick or the joining player wont hear them.

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.