Zarius / Bukkit-OtherBlocks

OtherBlocks (now known as OtherDrops) plugin for Bukkit (dev build: https://www.mediafire.com/?i6ows1g6kus2o0l)
http://dev.bukkit.org/server-mods/otherdrops/
GNU General Public License v3.0
17 stars 17 forks source link

Tool-Attribution Parameter #315

Open stvncao5 opened 10 years ago

stvncao5 commented 10 years ago

This is essentially a feature request for another type of parameter. This (presumably complex) parameter can attribute any sort of tool to another type of tool. For instance, if I had configuration that looked like this:

    DIRT:
    - tool: GOLD_SHOVEL
      drop: OBSIDIAN
    - tool: GOLD_AXE
      attribute: [GOLD_SHOVEL, PROJECTILE_ARROW@PLAYER, DAMAGE_WATER]

Breaking a dirt block with a golden axe (the "trigger: BREAK" is assumed) will not be read by the server as "this dirt block was broken by a golden axe", but rather as "this dirt block was broken by all of those three causes specified". You might be wondering why this is at all useful at this point. One could definitely just copy the configuration from the "GOLD_SHOVEL" onto the "GOLD_AXE" to desire the same effect as the above. But there are some implications to this parameter that extend beyond convenience.

If there is a plugin, or a mod, that alters some item - call it "x" - so that "x" casts some sort of effect that OtherDrops cannot replicate, then it might be useful to have this parameter. If one wanted, they could have item "y" do the same thing as item "x" by attributing "y" to "x".

Another example. (And ImmortalOverlord from the comments asked about this.) Say you want an arrow to have the "damage.victim" parameter so that the arrow instantly kills anything it hits. Technically, OtherDrops would be the cause of their demise, not the arrow. With this parameter, you could attribute the cause not to a plugin, but to the player that shot the arrow. This could be great in conjunction with a plugin that, for example, allows players to steal from other players they've killed. Without the parameter, the killer wouldn't be able to steal any cash. Here's how it would probably be accomplished in configuration:

    PLAYER:
    - trigger: HIT
      tool: PROJECTILE_ARROW@PLAYER
      damage.victim: 1000000
    - trigger: BREAK
      tool: damage.victim # yes, I know this is not a real tool; I'm just writing this for the sake of demonstration
      attribute: PROJECTILE_ARROW@PLAYER # if not done already, you would probably need to add extra support on "PROJECTILE_ARROW" to get the player that fired the arrow

I don't expect this suggestion to be very feasible at all, and will probably be a messy concept to implement. I'm just putting this idea forth, as it could be good to consider.