summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-15 13:53:59 +0800
committerchai <chaifix@163.com>2021-11-15 13:53:59 +0800
commit942a030afd348ab2e02eac8054b43e3c3a72ea48 (patch)
treea13459f39a3d2f1b533fbd1b5ab523d7a621f673 /Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua
parente307051a56a54c27f10438fd2025edf61d0dfeed (diff)
*rename
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua')
-rw-r--r--Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua114
1 files changed, 114 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua b/Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua
new file mode 100644
index 0000000..2869948
--- /dev/null
+++ b/Data/BuiltIn/Libraries/lua-addons/addons/cBlock/cBlock.lua
@@ -0,0 +1,114 @@
+--[[
+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 = 'CBlock'
+_addon.version = '1.05'
+
+windower.register_event('addon command',function (...)
+ local term = table.concat({...}, ' ')
+ a,b,block = string.find(term,'ignore (.*)')
+ c,d,delete = string.find(term,'delete (.*)')
+ if block ~= nil then
+ ignore[#ignore+1] = block:lower()
+ local f = io.open(settingsFile,'a')
+ f:write(block.."\n")
+ windower.add_to_chat(55,"No longer seeing "..block.." speak in FFOchat.")
+ local q,r = io.close(f)
+ if not q then print(r) end
+ elseif delete ~= nil then
+ for u = 1, #ignore do
+ if ignore[u] == delete then
+ table.remove(ignore,u)
+ end
+ end
+ windower.add_to_chat(55,"Seeing "..delete.." speak in FFOchat again.")
+ local tmp = io.open(settingsPath..'tmp.txt',"w")
+ for line in io.lines(settingsFile) do
+ if line ~= delete then
+ tmp:write(line..'\n')
+ end
+ end
+ local q,w = io.close(tmp)
+ if not q then print(w) end
+ local r,es = os.rename(settingsFile,settingsPath..'tmp2.txt')
+ if not r then print(es) end
+ local e,rs = os.rename(settingsPath..'tmp.txt',settingsFile)
+ if not e then print(rs) end
+ local r,es = os.remove(settingsPath..'tmp2.txt')
+ if not r then print(es) end
+ end
+end)
+
+function file_exists(name)
+ local f=io.open(name,"r")
+ if f~=nil then
+ local q,r = io.close(f)
+ if not q then print(r) end
+ return true
+ else
+ return false
+ end
+end
+
+windower.register_event('load',function ()
+ windower.send_command('alias cBlock lua c cBlock')
+ ignore = {}
+ settingsPath = windower.addon_path..'data/'
+ settingsFile = settingsPath..'blacklist.txt'
+ if not file_exists(settingsFile) then
+ local f,err = assert(io.open(settingsPath.."blacklist.txt","w"))
+ io.close(f)
+ else
+ fill_ignore()
+ end
+end)
+
+windower.register_event('unload',function ()
+ windower.send_command('unalias cblock')
+end)
+
+function fill_ignore()
+ i = 1
+ for line in io.lines(settingsFile) do
+ ignore[i] = line
+ i = i + 1
+ end
+end
+
+windower.register_event('incoming text',function (old,new,color)
+ for i=1,#ignore do
+ c,d,text = string.find(old,'%[%d+:#%w+%](.*):')
+ if text ~= nil then
+ if text:lower() == ignore[i]:lower() then
+ new = ''
+ end
+ end
+ end
+ return new, color -- must be here or errors will be thrown
+end)