Shepherd v1.6

Category: Combat
Subcategory: Humor

Shepherd is a crowd-control addon designed to have some fun at the expense of
people who are careless around sheep.  When someone breaks your sheep, it will
yell at them, using several customizable messages depending on how many times
they've done it.  It also watches Priests' shackles, Rogues' sap, and Druids'
hibernate.

Alternatively, if you just want to see who's breaking your sheep, Shepherd
can be configured to be silent but still show you the details.  Finally, it
has a "nanny mode" usable by group leaders that will watch the entire raid's
crowd control and send whispers to the member who's crowd control was broken.

NOTE: Shepherd's default messages may be considered slightly rude by some
players.  If you are grouping with people that you don't know or who have
no sense of humor, it is recommended to set it to display to local frame only,
or to change the messages.

Using Shepherd:

To access the configuration dialog, use the "Addon Preferences" icon on the
minimap to bring up the dialog, then select Shepherd from the dropdown on the
left.  Alternatively, the /shepherd or /tsb slash command will bring up the
settings dialog to the correct page.

======== Settings ========

Main options - Default:
  * Active - On
      Toggle this off to completely disable Shepherd without having to
      disable the addon and reload the UI.  Useful for temporarily toggling it
      off if your group members become annoyed.
  * Grace period - 2
      The number of seconds of inactivity that is considered "safe".  This is
      to prevent false positives when a mob is downed and the group moves on
      to the next (which may be sheeped/shackled/etc).
  * Show grace period info - Off
      When enabled, shows you who broke the crowd control even if the grace
      period has passed.  It does not announce it, but prints the info to
      your General chat frame.
  * Channel - Say
      Which chat channel to send the messages to.  Use say or auto if you want
      to embarrass them in front of the group.  Use whisper if you want to
      politely remind them to be more careful.
  * Show other player's CC - off
      When enabled, prints details (to your General chat) of all crowd-control
      breaks, even if they're not yours.  Useful for a raid leader to see
      who's being careless.
  * Nanny mode - off
      When enabled, functions similarly to the above option in that it keeps
      track of the entire group's crowd-control spells.  However, when one
      is broken, it send a whisper _to the person who originally cast it_.
      Useful to inform party members who aren't running any sort of mod to
      detect CC breaks.  Only one person in the group should have this enabled
      to avoid duplicate whispers.
  * Always show details - off
      A semi-debug mode that always prints the full information to your
      General chat, even when a message is sent by some other means.
  * Announce your own breaks - off
      Normally if you break your own sheep, a message will be printed to your
      console but you won't say anything.  When this is enabled, a special
      message is used to tell everyone that you're not paying attention.
  * Debug - off
      Print lots of extra debugging information to the console

Messages page:
  * Custom messages - 3
      Adjust this slider to set how many custom messages you want to use.
  * Message #[1-3] - You'll see ;)
      You will see one of these options for each custom message.  The first
      time a particular player breaks your sheep, it will use Message #1,
      the second time it will use #2, etc.  The following codes can be used in
      this field:
        %a = Ability that was used which broke crowd control
	%n = Number of times this player has broken _YOUR_ crowd control
	%o = Ordinal (1st, 2nd) version of %n
	%p = Name of the player who broke crowd control
	%s = Short name of crowd control which was broken
	%t = Name of target that was under crowd control
  * Generic message
      When all custom messages are exhausted, this message will be used
      instead.  All of the same % codes may be used.
  * Nanny message
      The message to whisper to a player while in nanny mode.  Only the
      %a, %p, %s, and %t codes may be used.
  * Self message
      The message to use when you break your own crowd control.  The
      name codes as in nanny mode may be used (all but %n and %o).

Miscellaneous options:
  * Show Morons List
      Print a list to your console with player names and how many times they
      have broken your sheep.
  * Clear Morons List
      Clear the morons list, resetting all counts to zero and custom messages
      back to the first one.

======== Known Issues ========

Pretty much all of the known issues have gone away thanks to the new 2.4
combat log.  It was a pain to rewrite a big chunk of the addon, but now range
is much less of a problem and tracking mobs with identical names is possible.
Thanks Blizzard!

The only remaining issue is that there is no direct connection between start
casting messages and the target, so there is some guesswork involved in
figuring out who sheeped what when multiple are cast simultaneously.  So long
as the cast time is resonably consistent it should be able to work it out.
Only insane amounts of spell haste should be able to screw things up, or
possibly using Presence of Mind for an instant sheep.

======== Finale ========

Comments and suggestions are welcome!  You can e-mail me at

thelibrarian at x dot gank dot org
