# 🎯 Key Changes

## 📢 Summary

**1.5.x**: Group and raid join/leave events have been split for a higher degree of granularity. More replacements added. Group and raid join/leave events will be exempt from the message interval limit, however it will be capped at 3 per trigger (imagine inviting large groups into a raid and firing off join messages for each player 🤢).

**1.4.x**: Nemesis Chat has shifted its paradigm in a big way! Nemeses are now essentially just a feature; everything within the addon will function with or without Nemeses. This means you can simply define triggered messages for Bystanders and yourself, and the addon will function as expected.

## 🩹 Patches

### 1.5.7

- Config options for APIs fully migrated over to new system.

### 1.5.6

- Removed README logo from game package.

### 1.5.5

- Refactored API functionality.
   - Most of this is under the hood and just allows for much easier, cleaner definitions of APIs. Everything relating to APIs has been refactored, with replacements and subjects being extremely easy to add now.
   - The Reference section in configuration now lists Core and API references separately.
   - The General section in configuration now has a sub-menu for enabling all APIs.
   - Other addons can also easily tie into the reference and API configuration screens.
- Added Bystander replacements for the GTFO and Details! APIs.
- More replacements and subjects in conditions to come! This release makes it tremendously easier to add/mantain them.
- Fixed whispers.

### 1.5.4

- Configuration update with explicit breakouts for whisper targets.

### 1.5.3

- Another fix on Bystander replacements.

### 1.5.2

- Fixed dynamic targeting for whispers. In the past, this was hardcoded to _always_ whisper a Nemesis. With the new approach, this will be set based on who triggered the event.
- Fixed a Bystander replacements bug.

### 1.5.1

- Typo fixes
- Properly updating the version of the addon

## ⭐ Latest Versions

### 1.5.0

- Refined `SELF` join events versus inviting a player and forming a group. No configuration updates are necessary.
- Group `JOIN` and `LEAVE` events are now exclusive to non-raid groups.
- Added raid `JOIN` and `LEAVE` events to allow for more granular configuration.
- Group/raid `JOIN` and `LEAVE` events are now exempt from the minimum message interval.
   - There is a hardcoded cap of 3 to guardrail against spam.
- Added the following replacement tags:
   - `[ROLE]`: Your role
   - `[BYSTANDERROLE]`: The/a Bystander's role (on events triggered by a Bystander, that'll be the triggering Bystander, otherwise a random one is chosen)
      - Keep in mind random Bystanders are chosen once so all Bystander replacement tags will refer to a singular Bystander.
   - `[NEMESISROLE]`: The/a Nemesis's role (on events triggered by a Nemesis, that'll be the triggering Nemesis, otherwise a random one is chosen)
      - Keep in mind random Nemeses are chosen once so all Nemesis replacement tags will refer to a singular Nemesis.
      - As always, these are described in the `Reference` tab of the NC Configuration screen.
- Minor updates to information presented in some configuration screens, such as `About`.

### 1.4.0

- Everything will function with/without Nemeses configured / present.
- Messages with `[NEMESIS]` / `BYSTANDER` replacement tags will be treated as conditional messages requiring at least one Nemesis / Bystander present in the group.
   - You may define as many messages as you'd like using these tags, and they'll be used only when the above conditions are met.
- Messages triggered by a Nemesis or Bystander will only fire when a Nemesis / Bystander is present in the group.
   - This hasn't actually changed, however, it's worth noting with the new approach 😊
   - You may define as many messages as you'd like with these triggerers, and they'll be used only when appropriate.
- `PUG Mode` has been removed entirely as it is obsolete. The new approach functions far better, and unlocks far more functionality, without additional configuration / feature toggles.
- 🐛 Noteworthy bug fixes:
   - Details API Overall DPS calculations fix (no more 1.4M DPS).
   - Fixed an issue with (re/un)subscribing to/from events. In some rare cases, Nemesis Chat would not function at all due to unsubscribing from crucial events.
   - Improvements to Dungeon and Boss recovery: When reloading UI, data is lost. However, Nemesis Chat attempts to retrieve previously set data when possible. This has been improved and as a result, you should almost never experience lost data outside of relogging. 🤞
   - Reports:
      - Reports will no longer fire in the case of lost data (from relogging, for example).
      - If there is a tie, reports will now list all players in shout outs and call outs. Example, 3 players have `0` avoidable damage taken for a boss, the shout out will include all 3 players.
   - Events:
      - Fixed an issue preventing self-triggered spellcasts and feasts from firing.

# ⏱️ Coming Soon

## ✅ Confirmed

- Nemesis configuration within reports:
   - Exclude Nemeses from shout-outs 😈
   - Replacements for Nemeses; Example, your Nemesis would get a shout-out for lowest damage dealt -- instead, you set a message that reads, `Shout out to [NEMESIS], who sat around doing nothing and consequently took 0 avoidable damage. Yaaaay.`

## 💭 Under Consideration

> **Note:** If you think any of the following features would be beneficial, *please* reach out in Discord and voice your opinion! I am a solo developer, and there is no possible way I can think of all scenarios. Your input would be greatly appreciated 😁

- Player context menu -- `Add Nemesis` and `Remove Nemesis`:
   - Major considerations are ensuring this does not break anything else, as hooking into the context menu has a high propensity for this.
   - One prospective downside is NC is not designed for setting a PUG player as a Nemesis and this could potentially lead to abuse.
   - On the flip side, the addon itself could always be abused anyway, and one can only realistically provide guard rails for prevention of abuse.
- UI element for tracking Interrupts and Avoidable Damage.
   - This will need to be non-intrusive, and configurable / disableable.
   - Clicking on one would allow sending (customizable) reports.
- Other potential "leaderboard-esque" UI elements
   - Same as above -- non-intrusive, etc.
- AI configuration screen
   - Granular control over which (praise | taunt) messages to send based on whether it's a Bystander or Nemesis, and based on event.
   - Custom overrides
   - More AI choices (possibly a scale, 1-10, from taunt (1) to praise (10))