diff options
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/aecho')
3 files changed, 153 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/aecho/ReadMe.md b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/ReadMe.md new file mode 100644 index 0000000..cb8ebcd --- /dev/null +++ b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/ReadMe.md @@ -0,0 +1,16 @@ +**Author:** Ricky Gall +**Version:** 2.02 +**Description:** +Watches buffs/debuffs and sends messages to alts when you gain certain +ones. Also, automatically uses echo drops if you get silenced. + +**Abbreviation:** //aecho + +**Commands:** + 1. aecho watch <buffname> --adds buffname to the tracker + 2. aecho unwatch <buffname> --removes buffname from the tracker + 3. aecho trackalt --Toggles alt buff/debuff messages on main (this requires send addon) + 4. aecho sitrack --When sneak/invis begin wearing passes this message to your alts + 5. aecho list --lists buffs being tracked + 6. aecho toggle --Toggles off automatic echo drop usage (in case you need this off. does not remain off across loads.) +
\ No newline at end of file diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/aecho/aecho.lua b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/aecho.lua new file mode 100644 index 0000000..10223c0 --- /dev/null +++ b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/aecho.lua @@ -0,0 +1,129 @@ +--[[ +Copyright (c) 2013, Ricky Gall +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of <addon name> nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL <your name> BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + + +_addon.name = 'AEcho' +_addon.version = '2.02' +_addon.author = 'Nitrous (Shiva)' +_addon.command = 'aecho' + +require('tables') +require('strings') +require('logger') +require('sets') +config = require('config') +chat = require('chat') +res = require('resources') + +defaults = {} +defaults.buffs = S{ "light arts","addendum: white","penury","celerity","accession","perpetuance","rapture", + "dark arts","addendum: black","parsimony","alacrity","manifestation","ebullience","immanence", + "stun","petrified","silence","stun","sleep","slow","paralyze" + } +defaults.alttrack = true +defaults.sitrack = true + +settings = config.load(defaults) + +autoecho = true + +windower.register_event('gain buff', function(id) + local name = res.buffs[id].english + for key,val in pairs(settings.buffs) do + if key:lower() == name:lower() then + if name:lower() == 'silence' and autoecho then + windower.send_command('input /item "Echo Drops" '..windower.ffxi.get_player()["name"]) + end + if settings.alttrack then + windower.send_command('send @others atc '..windower.ffxi.get_player()["name"]..' - '..name) + end + end + end +end) + +windower.register_event('incoming text', function(old,new,color) + if settings.sitrack then + local sta,ea,txt = string.find(new,'The effect of ([%w]+) is about to wear off.') + if sta ~= nil then + windower.send_command('@send @others atc '..windower.ffxi.get_player()['name']..' - '..txt..' wearing off.') + end + end + return new,color +end) + +windower.register_event('addon command', function(...) + local args = {...} + if args[1] ~= nil then + local comm = args[1]:lower() + if comm == 'help' then + local helptext = [[AEcho - Command List: + 1. aecho watch <buffname> --adds buffname to the tracker + 2. aecho unwatch <buffname> --removes buffname from the tracker + 3. aecho trackalt --Toggles alt buff/debuff messages on main (this requires send addon) + 4. aecho sitrack --When sneak/invis begin wearing passes this message to your alts + 5. aecho list --lists buffs being tracked + 6. aecho toggle --Toggles off automatic echo drop usage (in case you need this off. does not remain off across loads.)]] + for _, line in ipairs(helptext:split('\n')) do + windower.add_to_chat(207, line..chat.controls.reset) + end + elseif S{'watch','trackalt','unwatch','sitrack'}:contains(comm) then + local list = '' + local spacer = '' + if comm == 'watch' then + for i = 2, #args do + if i > 2 then spacer = ' ' end + list = list..spacer..args[i] + end + if settings.buffs[list] == nil then + settings.buffs:add(list:lower()) + notice(list..' added to buffs list.') + end + elseif comm == 'unwatch' then + for i = 2, #args do + if i > 2 then spacer = ' ' end + list = list..spacer..args[i] + end + if settings.buffs[list] ~= nil then + settings.buffs:remove(list:lower()) + notice(list..' removed from buffs list.') + end + elseif comm == 'trackalt' then + settings.alttrack = not settings.alttrack + elseif comm == 'sitrack' then + settings.sitrack = not settings.sitrack + end + settings:save() + elseif comm == 'list' then + settings.buffs:print() + elseif comm == 'toggle' then + autoecho = not autoecho + else + return + end + end +end) diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/aecho/data/settings.xml b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/data/settings.xml new file mode 100644 index 0000000..b095981 --- /dev/null +++ b/Data/BuiltIn/Libraries/lua-addons/addons/aecho/data/settings.xml @@ -0,0 +1,8 @@ +<?xml version="1.1" ?> +<settings> + <global> + <alttrack>false</alttrack> + <buffs>accession, addendum: black, addendum: white, alacrity, celerity, dark arts, ebullience, immanence, light arts, manifestation, paralyze, parsimony, penury, perpetuance, petrified, rapture, silence, sleep, slow, stun</buffs> + <sitrack>true</sitrack> + </global> +</settings> |