0.9.6
-
Fixes
-
Changes
-
Values are now copied into the Calculation nests (this includes the [[Calculate routine|Routine: Calculate]]). This is so that damage can be used to potentially factor into, say explosion size. If you're used to using something like 'targeteffect.explode': '4', just change it to 'targeteffect.explode': 'set.4'.
-
The Range routines have been changed from value-setting to additive. The most simple solution to fix this is to use the Set routine, akin to the following snippet:
-
- 'set': 'range.13.18';
-
- The [[Binom routine|Statement: Chance]] has been renamed to "Chance", for semantic reasons. Usage is exactly the same as before, like so:
- 'chance.30': 'set.0' # Has a 30% chance to set the value to 0.
-
- For the sake of simplicity in future updates, basic status conditional routines have been changed back to $entity.is$status.
* "Item" aliases are now "Material" aliases. This is because of a new feature that will be introduced with the next major release. :)
-
New features:
-
Plugin integrations:
-
[[Regions|Conditional: Region]] - elRegions and WorldGuard compatible.
-
Permissions - added PermsEx, bPermissions, and SuperPerms support. Added the [[Permission Evaluation|Statement: Permission Evaluation]] conditional.
-
McMMO. New routines are as follows:
-
[[Ability activation conditionals|"Conditional: Ability Enabled (McMMO)]]
-
[[Set Skill calculation|Calculation: Set Skill (McMMO)]]
-
-
-
Miscellaneous new routines:
-
[[BlockOver|Conditional: Block Status]]
-
[[BlockUnder|Conditional: Block Status]]
-
[[Calculate|Routine: Calculate]]
-
[[UnknownHurt|Calculation: Unknown Hurt]]
-
[[Delay|Routine: Delay]]
-
-
Aliasing:
-
Region
-
Routine
-
-
Dynamic integer references! This brings several new features to the table, listed below. For a complete reference to valid integer properties, see this page
-
Deprecation of the hardcoded comparison routines in favor of a single one that uses the new integer references. Some examples:
-
target.health.lessthan.attacker.health
-
target.y.greaterthanequals.attacker.y
-
-
Now you can use these in Message routines! Simply encapsulate entity references or routine aliases in percentage signs to use this. For instance:
- message.attacker.You did %event.value% damage!
-
-
Events:
-
Tame
-
ProjectileHit
-
-
Projectile entity reference (in addition to currently existing "attacker" and "target")
-
Message routines have had a massive upgrade! Now you can use dynamic variables, strings, and colors to greatly speed along debugging and perhaps even use for RPG-type messaging. See [[the Message routine|Routine: Message]] for more details.
-
Arithmetic expressions!
-
-
Indev features
- Implemented an experimental tagging system. See the [[FAQ|FAQ: How do I use tagging?]] for more details.
0.9.5
Changes:
- For what should be the last time, major syntax changes have occurred in MD. Gone now are the strange nodes - ModDamage is now entirely conditionally driven. The new configuration scheme is like follows:
Event:
- SOME.ROUTINE
- PERHAPS.A.CONDITIONAL:
- SOME.ROUTINE
- EVEN.A.SWITCH:
FIRSTCASE:
SECONDCASE:
ANOTHERCASE:
These routines are run every time the relevant event is fired - conditional evaluations are now necessary for situational dynamics.
-
Modified $entity$op syntax in conditionals to be split with a period - syntax reference has been updated accordingly in the tuts and reference on the wiki
-
Renamed "MobHealth" to "Spawn".
Fixes:
-
Fixed events throwing NPEs when Permissions was not present. Oops.
-
Fixed EntitySetOnFireTicks routine not working.
-
Fixed EntityReflect (now renamed to EntityHurt) causing explosions, instead of hurting entities magically.
-
Changed EntityExposedToSky conditional to ignore more blocks. Current list:
-
Air
-
Torch
-
Ladder
-
Fire
-
Lever
-
Button
-
WallSign
-
Glass
-
-
Fixed ArmorSet comparisons to work as intended - I know there are some edge cases out there that suffered because of this. :(
-
Added an "empty" ArmorSet so it's possible to determine whether a player is wearing any piece of armor or not. This is literally the string "EMPTY", case-insensitive.
-
Removed the EntityTargetedByOther routine - this seemed a very limited-application routine.
-
Changed the Binom base routine to operate as a Conditional statement.
New features:
-
Overloaded the Set base routine to operate as a Calculation - this shouldn't break any old configs.
-
Added "switch" statements. Switch statements are the final step in effectively replacing the Offensive/Defensive paradigms and DET configuration with a more dynamic model that should be more intuitive and simple to use - see above and/or the wiki.
-
Drastically modified configuration reports ingame and on the console - characters are now counted for proper line output, and the entire configuration is essentially read back, including colored error/warning strings. Much more functional than the last config checking.
-
Tweaked Conditionals syntax - they can now use basic boolean operators, though operation is strictly linear. There are no plans for parenthetical encapsulation. See the new tutorial for more details!
-
Aliasing for the following:
-
Armor sets
-
Biomes
-
Entity types
-
Groups
-
Items
-
Message - see the Message routine for more details [[here|Routine: Message]].
-
Worlds
-
-
Added the following routines:
-
AddItem (Effect, aliasable)
-
DropItem (Effect, aliasable)
-
HasRangedElement (Conditional)
-
SetItem (Effect)
-
PlayerSleeping (Conditional)
-
PlayerSneaking (Conditional)
-
WorldEvaluation (Conditional, aliasable)
-
-
Added sub-elements for Spider: Spider_Jockey and Spider_Riderless.
-
Added Death and Food events. :D
-
Changed the Elements hierarchy to have a "Living" and "Nonliving" category - the former including mobs, animals, and humans, while the latter covers everything else.
The following were suggested by lucent (thanks!):
* *Added the "fishingrod" ranged damage element.*
* *Added states for certain mobs (Slime size, Wolf angry/wild/tame, Creeper normal/charged, Human NPC/Player) - refer to wiki for more information.*
* Added EntityX and EntityZ comparisons - for consistency, EntityAltitude has been renamed to "EntityY".
The following were suggested by TheSquishyDitto. Thanks!:
* *Added the "trap" generic MD element and "dispenser" as a child element.*
* Changed configuration so that single-property configuration works in those cases you don't want to use another line.
-
The following were suggested by Ranzear - much obliged!
- Added the EntitySpawn Calculation.
0.9.4
-
Made several types of nested calculations, which include the following:
-
Conditionals! These offer powerful ways to evaluate damage situations and has enormous potential for a robust override of Minecraft damage mechanics. See the [[wiki|Home]] for more details, as there's simply too many to make mention here.
-
Effects - these do something that simple damage changing cannot. For instance, 'attackereffect.explode', or 'effect.reflect'. The reason these are nested is because there may be situations where person configuring may want something other than a static value for the effect input.
-
-
Fixed casing for item names - now you don't have to be anal about having everything capitalized for Bukkit, though personally I'd keep things that way so that it's easier to read your configuration.
-
Added "fist" and "other" nodes to the melee damage category - I'm still open to suggestion for classification here. :P
-
Implemented server-level globals - thanks to nsko for a great idea! It should be noted that this WILL break old configurations, in addition to the structural change made to the MobHealth node. The changes are small, but that's all it takes. Just move your world configurations from:
Offensive:
world:
someconfig:
- 'some.config'
Defensive:
world:
someconfig:
- 'some.config'
MobHealth:
world:
someconfig: 'some.config'
Scan:
world:
- 'SOME.CONFIG'
...to:
Offensive:
worlds:
world:
someconfig:
- 'some.config'
Defensive:
worlds:
world:
someconfig:
- 'some.config'
MobHealth:
worlds:
world:
someconfig:
- 'some.config' #TAKE NOTE OF THIS. MOBHEALTH CONFIGURATION HAS CHANGED.
Scan:
worlds:
world:
- 'SOME.CONFIG'
-
Re-added the Permissions 2.x support, since I realize that 3.x can be a pain for some admins to deal with right now.
-
Modified some console output while loading so that it gives you more information.
-
Modified the "check" command so that it now displays configuration right off the top - use the last page(s) to check the load status of your worlds/groups!
0.9.3
-
Fixed addition and negativeHeal not working properly - thanks to Deolin for pointing this out!
-
Fixed nonliving entities throwing an NPE when they were damaged and passed to MD
-
Added chainmail to the armor generics list - thanks to embty for the suggestion!
-
Fixed some erroneous documentation for the armor set delimiter
-
Added some more "verbose" messages that should be more helpful when online support is not available
-
Cleaned up startup config output that can still be revealed with verbose debugging (default health/damage and negative healing)
-
Implemented the "check" command for the console - this will make "quiet" mode more viable
-
Added some Permissions checks that will send warnings to console if a player involved in a damage event hasn't been assigned to a group (instead of an ugly stacktrace)
-
Finished implementation of the "check" commands
-
Added the "enable" and "disable" commands
0.9.2
-
Fixed a nice fat NPE error getting thrown every time a mob spawned. Oops.
-
Finished the "/md reload" and the basic "/md check" commands
-
Documented the "/md debug" command.
-
Changed "range.#base.#range" to "range.#lower.#upper" - see config reference for more information. Thanks to Digi for his suggestion here!
0.9.1
-
Added an experimental noDamageTicks check that cancels the event if 40 ticks remain- not sure how this will affect other plugins yet.
-
Added armor sets (see wiki for more details)
-
Fixed PvP string fetching - PvP relationships should work now.
-
Changed "item" to be split into "ranged" and "melee" (this breaks configs that use "item"!), fixing the long-range exploit. However, long range still clashes when the target is struck, and the long-range item is still in hand, and a melee node is defined for it. This is because of a double-firing of the damage event that needs to be looked into.
-
Changed to Permissions 3.0. My only suggestion for adapting to this change is that the configuration be carefully considered if one plans on using multigroup.
0.9
- Introduced ModDamage! Indev, though.