Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
faa156e527 | |||
cab0a68cc1 | |||
3227ed2d61 | |||
62ba56419d | |||
acbbe1637d | |||
0659493aad | |||
85cb445e8e | |||
c75700cb76 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
|||||||
.zip filter=lfs diff=lfs merge=lfs -text
|
.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
@@ -1,6 +1,10 @@
|
|||||||
local addonname, shared = ...
|
local addonname, shared = ...
|
||||||
---@cast addonname string
|
---@cast addonname string
|
||||||
|
|
||||||
|
---@class shared
|
||||||
|
---@field timer number?
|
||||||
|
shared = { timer = nil }
|
||||||
|
|
||||||
---@class DechickenatorData
|
---@class DechickenatorData
|
||||||
---@field alerts table<string, Alert>
|
---@field alerts table<string, Alert>
|
||||||
|
|
||||||
@@ -8,11 +12,11 @@ local addonname, shared = ...
|
|||||||
---| 'BUFF'
|
---| 'BUFF'
|
||||||
---| 'DEBUFF'
|
---| 'DEBUFF'
|
||||||
|
|
||||||
--/dechicken a:Greater Blessing of Kings;B;R;e:spit;m:cuntfucker;c:SAY
|
--/dechicken a:Greater Blessing of Kings;R;e:spit;m:cuntfucker %s;c:SAY
|
||||||
--/dechicken a:Greater Blessing of Kings;B;R;e:spit;m:cuntfucker
|
|
||||||
--/dechicken a:Greater Blessing of Kings;R;e:spit;m:cuntfucker
|
--/dechicken a:Greater Blessing of Kings;R;e:spit;m:cuntfucker
|
||||||
--/dechicken a:Greater Blessing of Kings;B;R;m:cuntfucker
|
--/dechicken a:Greater Blessing of Kings;R;e:spit;m:cuntfucker
|
||||||
--/dechicken a:Greater Blessing of Kings;R
|
--/dechicken a:Greater Blessing of Kings;R;m:cuntfucker
|
||||||
|
--/dechicken a:Turkey Feathers;R;e:laugh
|
||||||
---@class Alert
|
---@class Alert
|
||||||
---@field message string?
|
---@field message string?
|
||||||
---@field channel string?
|
---@field channel string?
|
||||||
@@ -21,10 +25,28 @@ local addonname, shared = ...
|
|||||||
---@field spellName string
|
---@field spellName string
|
||||||
---@field remove boolean?
|
---@field remove boolean?
|
||||||
|
|
||||||
--/run Dechickenator_Data = nil
|
--/run Dechickenator_Data = {alerts={}}
|
||||||
if not Dechickenator_Data then Dechickenator_Data = {} end
|
if not Dechickenator_Data then Dechickenator_Data = {} end
|
||||||
if not Dechickenator_Data.alerts then Dechickenator_Data.alerts = {} end
|
if not Dechickenator_Data.alerts then Dechickenator_Data.alerts = {} end
|
||||||
local function init()
|
local function init()
|
||||||
|
local function RemoveBuff(buff)
|
||||||
|
if UnitAffectingCombat("player") then return end
|
||||||
|
CancelUnitBuff("player", buff)
|
||||||
|
end
|
||||||
|
local function RemoveBuffs()
|
||||||
|
if UnitAffectingCombat("player") then return end
|
||||||
|
for buff, enabled in pairs(Dechickenator_Data.alerts) do
|
||||||
|
if enabled then
|
||||||
|
RemoveBuff(buff)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not shared.timer then
|
||||||
|
shared.timer = C_Timer.NewTicker(1, function()
|
||||||
|
RemoveBuffs()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
local cleuFrame = CreateFrame("Frame")
|
local cleuFrame = CreateFrame("Frame")
|
||||||
cleuFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
cleuFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||||
cleuFrame:SetScript("OnEvent", function(self, event, ...)
|
cleuFrame:SetScript("OnEvent", function(self, event, ...)
|
||||||
@@ -50,7 +72,7 @@ local function init()
|
|||||||
DoEmote(Dechickenator_Data.alerts[spellName].emote, source)
|
DoEmote(Dechickenator_Data.alerts[spellName].emote, source)
|
||||||
end
|
end
|
||||||
if Dechickenator_Data.alerts[spellName].remove then
|
if Dechickenator_Data.alerts[spellName].remove then
|
||||||
CancelUnitBuff("player", spellName)
|
RemoveBuff(spellName)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
Binary file not shown.
89
README.md
Normal file
89
README.md
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
# Dechickenator
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
Dechickenator is a World of Warcraft addon that provides flexible buff and aura management with custom alerts and actions.
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
- **v1 (Master)**: Simple buff removal with predefined actions
|
||||||
|
- **v2.0**: More complex alert system with customizable actions
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Automatically remove unwanted buffs
|
||||||
|
- Create custom alerts for specific spell auras
|
||||||
|
- Send personalized chat messages when buffs are applied
|
||||||
|
- Perform custom emotes triggered by specific buffs
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
1. Download the [addon](https://git.site.quack-lab.dev/dave/wow_dechickenator/raw/branch/2.0/Dechickenator.zip)
|
||||||
|
2. Extract the addon to your World of Warcraft `Interface/AddOns` directory
|
||||||
|
3. Ensure the addon is enabled in the character selection screen
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Use the `/dechicken` slash command to configure alerts with the following syntax:
|
||||||
|
|
||||||
|
### Command Structure
|
||||||
|
`/dechicken a:SpellName;[options]`
|
||||||
|
|
||||||
|
### Options
|
||||||
|
- `a:` - Spell/Aura name (required)
|
||||||
|
- `e:` - Emote to perform
|
||||||
|
- `m:` - Custom message to send (supports `%s` for source name)
|
||||||
|
- `c:` - Chat channel (default: SAY)
|
||||||
|
- `R` - Automatically remove the buff
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
```
|
||||||
|
# Remove "Greater Blessing of Kings" and send a message
|
||||||
|
/dechicken a:Greater Blessing of Kings;R;m:No buffs please!
|
||||||
|
|
||||||
|
# Perform a laugh emote when "Turkey Feathers" is applied
|
||||||
|
/dechicken a:Turkey Feathers;e:laugh
|
||||||
|
|
||||||
|
# Send a custom message in YELL channel
|
||||||
|
/dechicken a:Some Buff;m:Hey %s, nice buff!;c:YELL
|
||||||
|
```
|
||||||
|
|
||||||
|
# Dechickenator; Ruski
|
||||||
|
|
||||||
|
## Обзор
|
||||||
|
Dechickenator - это аддон для World of Warcraft, обеспечивающий гибкое управление баффами и аурами с настраиваемыми оповещениями и действиями.
|
||||||
|
|
||||||
|
## Версии
|
||||||
|
- **v1 (Master)**: Простое удаление баффов с предустановленными действиями
|
||||||
|
- **v2.0**: Более сложная система оповещений с настраиваемыми действиями
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
- Автоматическое удаление нежелательных баффов
|
||||||
|
- Создание пользовательских оповещений для определённых аур заклинаний
|
||||||
|
- Отправка персонализированных сообщений в чат при получении баффов
|
||||||
|
- Выполнение пользовательских эмоций при срабатывании определённых баффов
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
1. Скачайте [аддон](https://git.site.quack-lab.dev/dave/wow_dechickenator/raw/branch/2.0/Dechickenator.zip)
|
||||||
|
2. Распакуйте аддон в директорию World of Warcraft `Interface/AddOns`
|
||||||
|
3. Убедитесь, что аддон включен на экране выбора персонажа
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
Используйте команду `/dechicken` для настройки оповещений со следующим синтаксисом:
|
||||||
|
|
||||||
|
### Структура команды
|
||||||
|
`/dechicken a:НазваниеЗаклинания;[опции]`
|
||||||
|
|
||||||
|
### Опции
|
||||||
|
- `a:` - Название заклинания/ауры (обязательно)
|
||||||
|
- `e:` - Эмоция для выполнения
|
||||||
|
- `m:` - Пользовательское сообщение (`%s` для имени источника)
|
||||||
|
- `c:` - Канал чата (по умолчанию: SAY)
|
||||||
|
- `R` - Автоматически удалять бафф
|
||||||
|
|
||||||
|
### Примеры
|
||||||
|
```
|
||||||
|
# Удалить "Великое благословение королей" и отправить сообщение
|
||||||
|
/dechicken a:Великое благословение королей;R;m:Не нужны баффы!
|
||||||
|
|
||||||
|
# Выполнить эмоцию смеха при получении "Индюшачьих перьев"
|
||||||
|
/dechicken a:Индюшачьи перья;e:laugh
|
||||||
|
|
||||||
|
# Отправить пользовательское сообщение в канал YELL
|
||||||
|
/dechicken a:Какой-то бафф;m:Эй %s, классный бафф!;c:YELL
|
||||||
|
```
|
Reference in New Issue
Block a user