Add readme
This commit is contained in:
144
README.md
Normal file
144
README.md
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
# Heimdall WoW Addon
|
||||||
|
|
||||||
|
Heimdall is a comprehensive World of Warcraft addon designed to provide advanced player tracking, notification, and group management features.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Heimdall is a multi-module addon that offers various functionalities to enhance player interaction and awareness in the game. It consists of several key modules, each with a specific purpose:
|
||||||
|
|
||||||
|
### 1. Spotter Module (`Spotter.lua`)
|
||||||
|
- Tracks and reports player sightings in real-time
|
||||||
|
- Configurable notification settings:
|
||||||
|
- Detect players by faction (Alliance, Horde)
|
||||||
|
- Identify hostile players
|
||||||
|
- Mark "stinky" players (predefined list)
|
||||||
|
- Sends notifications to a specified channel when players are spotted
|
||||||
|
- Provides detailed information about spotted players:
|
||||||
|
- Name
|
||||||
|
- Race
|
||||||
|
- Faction
|
||||||
|
- Health
|
||||||
|
- Location
|
||||||
|
- Example report:
|
||||||
|
- "I see (Hostile) Atomickitty of race Blood Elf (Horde) with health 6.8M/6.8M at Orgrimmar (Valley of Strength)"
|
||||||
|
- "I see (<reaction>) <name> of race <race> (<faction>) with health <health>/<healthMax> at <location>"
|
||||||
|
- Configuration:
|
||||||
|
- `enabled` - Whether the module is enabled
|
||||||
|
- `everyone` - Whether to report to everyone in the channel
|
||||||
|
- `hostile` - Whether to report hostile players (regardless of faction, ie. when a horde becomes alliance)
|
||||||
|
- `alliance` - Whether to report alliance players
|
||||||
|
- `stinky` - Whether to report only stinky players
|
||||||
|
- `notifyChannel` - The channel to report to (by name)
|
||||||
|
- `zoneOverride` - The zone to override the zone of the player to report (defaults to current zone/subzone)
|
||||||
|
- `throttleTime` - The time to throttle the reports to (in seconds)
|
||||||
|
- Configuration example:
|
||||||
|
```
|
||||||
|
/run Heimdall_Data.config.spotter = {enabled=true,everyone=false,hostile=true,alliance=true,stinky=true,notifyChannel="Agent",zoneOverride=nil,throttleTime=10}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Whoer Module (`Whoer.lua`)
|
||||||
|
- Advanced player tracking and logging system
|
||||||
|
- Periodically performs WHO queries in specific zones
|
||||||
|
- Maintains a persistent database of player information:
|
||||||
|
- First seen
|
||||||
|
- Last seen
|
||||||
|
- Seen count
|
||||||
|
- Zone history
|
||||||
|
- Sends notifications when:
|
||||||
|
- New players are detected
|
||||||
|
- Players change zones
|
||||||
|
- Players disappear from tracking
|
||||||
|
- Supports whisper notifications to predefined contacts
|
||||||
|
- Plays sound alerts for "stinky" players
|
||||||
|
- Example report:
|
||||||
|
- Player appeared:
|
||||||
|
- "Любящаядева of class Mage, race Human (Alliance) and guild Анонимное сообщество in Valley of Trials, first seen: 2024-12-27T15:54:38, last seen: never, times seen: 0"
|
||||||
|
- "<name> of class <class>, race <race> (<faction>) and guild <guild> in <zone>, first seen: <firstSeen>, last seen: <lastSeen>, times seen: <timesSeen>"
|
||||||
|
- Player changed zone:
|
||||||
|
- "Thekinglord of class Paladin (Human - Alliance) and guild Caminantes Nocturnos R moved to Durotar"
|
||||||
|
- "<name> of class <class> (<faction>) and guild <guild> moved to <zone>"
|
||||||
|
- Player disappeared:
|
||||||
|
- "Thekinglord of class Paladin and guild Caminantes Nocturnos R left Valley of Trials"
|
||||||
|
- "<name> of class <class> and guild <guild> left <zone>"
|
||||||
|
- Configuration:
|
||||||
|
- `enabled` - Whether the module is enabled
|
||||||
|
- `notifyChannel` - The channel to report to (by name)
|
||||||
|
- `ttl` - The time to live for a player (in seconds)
|
||||||
|
- `doWhisper` - Whether to whisper to predefined contacts
|
||||||
|
- `zoneNotifyFor` - Whether to notify for players in specific zones
|
||||||
|
- Configuration example:
|
||||||
|
```
|
||||||
|
/run Heimdall_Data.config.who = {enabled=true,notifyChannel="Agent",ttl=20,doWhisper=true,zoneNotifyFor={["Orgrimmar"]=true,["Thunder Bluff"]=true,["Undercity"]=true,["Durotar"]=true,["Echo Isles"]=true,["Valley of Trials"]=true}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Messenger Module (`Messenger.lua`)
|
||||||
|
- Centralized message queuing and sending system
|
||||||
|
- Manages message delivery across different chat channels
|
||||||
|
- Handles channel joining and message routing
|
||||||
|
- Provides a reliable messaging infrastructure for other modules
|
||||||
|
- Configuration:
|
||||||
|
- `enabled` - Whether the module is enabled
|
||||||
|
- Configuration example:
|
||||||
|
```
|
||||||
|
/run Heimdall_Data.config.messenger = {enabled=true}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Inviter Module (`Inviter.lua`)
|
||||||
|
- Automated group invitation system
|
||||||
|
- Listens to a specific channel for invitation requests
|
||||||
|
- Supports a configurable keyword for invitations
|
||||||
|
- Automatically promotes channel members to assistants in raid groups
|
||||||
|
- Configuration:
|
||||||
|
- `enabled` - Whether the module is enabled
|
||||||
|
- `keyword` - The keyword to listen for
|
||||||
|
- `updateInterval` - The interval to update the list of channel members (in seconds)
|
||||||
|
- `listeningChannel` - The channel to listen for invitations
|
||||||
|
- Configuration example:
|
||||||
|
```
|
||||||
|
/run Heimdall_Data.config.inviter = {enabled=true,keyword="+",updateInterval=10,listeningChannel="Agent"}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Death Reporter Module (`DeathReporter.lua`)
|
||||||
|
- Tracks and reports player deaths in combat
|
||||||
|
- Captures detailed death information:
|
||||||
|
- Killer
|
||||||
|
- Victim
|
||||||
|
- Killing spell
|
||||||
|
- Location
|
||||||
|
- Implements throttling to prevent spam
|
||||||
|
- Handles duel detection to avoid reporting duel-related deaths
|
||||||
|
- Sends notifications to a specified channel and optional whisper contacts
|
||||||
|
- Example report:
|
||||||
|
- Configuration:
|
||||||
|
- `enabled` - Whether the module is enabled
|
||||||
|
- `notifyChannel` - The channel to report to (by name)
|
||||||
|
- `doWhisper` - Whether to whisper to predefined contacts
|
||||||
|
- Example report:
|
||||||
|
- "Euotuie killed Wild Mature Swine with Demon's Bite in Durotar (The Dranosh'ar Blockade)"
|
||||||
|
- "<killer> killed <victim> with <spell> in <zone> (<subzone>)"
|
||||||
|
- Configuration example:
|
||||||
|
```
|
||||||
|
/run Heimdall_Data.config.deathReporter = {enabled=true,notifyChannel="Agent",doWhisper=true}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Core Module (`Heimdall.lua`)
|
||||||
|
- Initializes and configures all other modules
|
||||||
|
- Manages global configuration and data persistence
|
||||||
|
- Provides utility functions for:
|
||||||
|
- UTF-8 string handling
|
||||||
|
- String padding
|
||||||
|
- Data retrieval with defaults
|
||||||
|
|
||||||
|
## Stinky Players
|
||||||
|
|
||||||
|
The addon maintains a list of "stinky" players - users of interest that trigger special notifications and tracking.
|
||||||
|
|
||||||
|
## Slash Commands
|
||||||
|
|
||||||
|
- `/has [PlayerName]`: Toggle a player's "stinky" status
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
1. Download the [addon](https://git.site.quack-lab.dev/dave/wow-Heimdall/media/branch/master/Heimdall.zip)
|
||||||
|
2. Extract the addon to your World of Warcraft `Interface/AddOns` directory
|
||||||
|
3. Ensure the addon is enabled in the character selection screen
|
||||||
Reference in New Issue
Block a user