First of all, your prompt isnt that hard to match....
Quote:
match="^\*\s?\d+\%\*\s?\d+\%\*\s?\d+\%\*\s?\d+(am|pm)$"
chat.xml wrote:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Saturday, June 30, 2007, 10:48 -->
<!-- MuClient version 4.13 -->
<!-- Plugin "Chat_Redirector" generated by Plugin Wizard -->
<!--
Edit plugin and change "chat_world" variable to be the name of the
world you want chats to go to.
-->
<muclient>
<plugin
name="Chat_Redirector"
author="Nick Gammon"
id="cb84a526b476f69f403517da"
language="Lua"
purpose="Redirects chat messages to another world"
date_written="2007-06-30 10:45:35"
requires="4.08"
version="1.0"
>
<description trim="y">
<![CDATA[
Redirects chats to the specified world.
Add or modify "chat" triggers to capture different sorts of message.
Change the variable "chat_world" to be the name of the world chats are to go
to.
]]>
</description>
</plugin>
<!-- Triggers -->
<triggers>
<trigger
enabled="n"
name="gag_prompt"
group="chatlogging"
match="^\*\s?\d+\%\*\s?\d+\%\*\s?\d+\%\*\s?\d+(am|pm)$"
regexp="y"
omit_from_output="y"
script="gagged_prompt"
sequence="100"
>
</trigger>
<trigger
enabled="y"
name="they_yell"
group="chatlogging"
match="^[A-Za-z\- ]+ yells \'(.*?)\'$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
name="you_yell"
match="^You yell \'(.*?)\'$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="* replies '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="You reply to * '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="* tells you '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="You tell * '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="^You tell the (group|formation) \'(.*?)\'$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="* tells the group '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="* tells the formation '*'"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="^\[[A-Z]+\] [A-Za-z\- ]+\: (.*)$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>
<trigger
enabled="y"
group="chatlogging"
match="^\[\d+\] clan members heard you say, (.*)$"
regexp="y"
omit_from_output="y"
script="redirect"
sequence="100"
>
</trigger>
</triggers>
<aliases>
<alias
enabled="y"
match="clear tells"
script="clear_tells"
></alias>
</aliases>
<aliases>
<alias
enabled="y"
match="noyells on"
script="no_yells"
></alias>
</aliases>
<aliases>
<alias
enabled="y"
match="noyells off"
script="yells_on"
></alias>
</aliases>
<!-- Script -->
<script>
<![CDATA[
chat_world = "chat"
local first_time = true
function redirect (name, line, wildcards, styles)
-- try to find "chat" world
local w = GetWorld (chat_world) -- get "chat" world
if w then -- if present
for _, v in ipairs (styles) do
w:ColourTell (RGBColourToName (v.textcolour),
RGBColourToName (v.backcolour),
v.text)
end -- for each style run
w:Note ("") -- wrap up line
w:Note (os.date("(%X)"))
w:Note ("")
SetTriggerOption("gag_prompt","enabled","y")
end -- world found
end -- function redirect
function gagged_prompt(n,l,wc)
SetTriggerOption("gag_prompt","enabled","n")
end
function clear_tells(name, line, wildcards)
local w = GetWorld (chat_world) -- get "chat" world
if w then
w:DeleteOutput()
w:Note ("")
end
end
function no_yells (n,l,w)
SetTriggerOption("you_yell","enabled","n")
SetTriggerOption("they_yell","enabled","n")
ColourNote("YELLOW","BLACK","Yells will NOT redirect.")
end
function yells_on (n,l,w)
SetTriggerOption("you_yell","enabled","y")
SetTriggerOption("they_yell","enabled","y")
ColourNote("YELLOW","BLACK","Yells WILL redirect.")
end
function init_chat()
local w = GetWorld (chat_world) -- get "chat" world
-- if not found, try to open it
if first_time and not w then
local filename = GetInfo (67) .. chat_world .. ".mcl"
Open (filename)
w = GetWorld (chat_world) -- try again
if not w then
ColourNote ("white", "red", "Can't open chat world file: " .. filename)
first_time = false -- don't repeatedly show failure message
end -- can't find world
end -- can't find world first time around
end -- end function
function OnPluginConnect()
init_chat()
end
function OnPluginLoad()
init_chat()
end
function OnPluginInstall()
init_chat()
end
]]>
</script>
</muclient>