Mercurial > wow > squawk
comparison Controller.lua @ 19:431f2fce08f2
Added in link stripping
Coloured class names
Reply to specific squawk
Related squawks fixed
new arrow to indicate reply
limit to 140 characters
author | wobin |
---|---|
date | Tue, 12 May 2009 00:57:59 +1000 |
parents | a3328fffef5c |
children |
comparison
equal
deleted
inserted
replaced
18:a3328fffef5c | 19:431f2fce08f2 |
---|---|
8 | 8 |
9 function Controller:TheyWantToFollowMe(Name) | 9 function Controller:TheyWantToFollowMe(Name) |
10 if Settings:IsPrivate() then | 10 if Settings:IsPrivate() then |
11 Settings:AddPending(Name) | 11 Settings:AddPending(Name) |
12 self:PutForwardFollowRequest(Name) | 12 self:PutForwardFollowRequest(Name) |
13 self:SendMessageToTarget(Name, "#Pending|"..UnitName("player")) | 13 self:SendMessageToTarget(Name, "#Pending|"..self.Name) |
14 else | 14 else |
15 Settings:AddFollower(Name) | 15 Settings:AddFollower(Name) |
16 View:NotifyOfNewFollower(Name) | 16 View:NotifyOfNewFollower(Name) |
17 self:SendMessageToTarget(Name, "#Follow|"..UnitName("player")) | 17 self:SendMessageToTarget(Name, "#Follow|"..self.Name) |
18 end | 18 end |
19 end | 19 end |
20 | 20 |
21 function Controller:TheyWantToUnfollowMe(Name) | 21 function Controller:TheyWantToUnfollowMe(Name) |
22 Settings:RemoveFollower(Name) | 22 Settings:RemoveFollower(Name) |
23 end | 23 end |
24 | 24 |
25 function Controller:IWantToFollowThem(Name) | 25 function Controller:IWantToFollowThem(Name) |
26 self:SendMessageToTarget(Name, "#Request|"..UnitName("player")) | 26 self:SendMessageToTarget(Name, "#Request|"..self.Name) |
27 Settings:AddRequested(Name) | 27 Settings:AddRequested(Name) |
28 end | 28 end |
29 | 29 |
30 function Controller:IWantToUnfollowThem(Name) | 30 function Controller:IWantToUnfollowThem(Name) |
31 Settings:RemoveFollowing(Name) | 31 Settings:RemoveFollowing(Name) |
32 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player")) | 32 self:SendMessageToTarget(Name, "#Unfollow|"..self.Name) |
33 View:NotifyOfUnfollowing(Name) | 33 View:NotifyOfUnfollowing(Name) |
34 end | 34 end |
35 | 35 |
36 function Controller:IAmNowFollowingThem(Name) | 36 function Controller:IAmNowFollowingThem(Name) |
37 Settings:AddFollowing(Name) | 37 Settings:AddFollowing(Name) |
38 View:NotifyOfNewFollowing(Name) | 38 View:NotifyOfNewFollowing(Name) |
39 end | 39 end |
40 | 40 |
41 function Controller:AddANewSquawk(Name, Message, Source) | 41 function Controller:AddANewSquawk(Name, Class, Message, Reply, Source) |
42 if not Settings.Blocked[Name] then | 42 if not Settings.Blocked[Name] then |
43 | 43 |
44 if Source == "WHISPER" then | 44 if Source == "WHISPER" then |
45 if Settings.Requested[Name] then -- We've been approved offline! | 45 if Settings.Requested[Name] then -- We've been approved offline! |
46 Settings:AddFollowing(Name) | 46 Settings:AddFollowing(Name) |
47 end | 47 end |
48 | 48 |
49 if not Settings.Following[Name] then -- If we're no longer following this person | 49 if not Settings.Following[Name] then -- If we're no longer following this person |
50 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player")) | 50 self:SendMessageToTarget(Name, "#Unfollow|"..self.Name) |
51 return | 51 return |
52 end | 52 end |
53 end | 53 end |
54 | 54 |
55 if Source == "GUILD" and Name == UnitName("player") then | 55 if Source == "GUILD" and Name == self.Name then |
56 return | 56 return |
57 end | 57 end |
58 | 58 |
59 table.insert(Model.Squawks, Squawks:new(Message, Name)) | 59 table.insert(Model.Squawks, Squawks:new(Message, Name, Class, Reply)) |
60 View:UpdateSquawkList() | 60 --View:UpdateSquawkList() |
61 end | 61 end |
62 end | 62 end |
63 | 63 |
64 local trigger | 64 local trigger |
65 local function RepressFailure(frame, event, ...) | 65 local function RepressFailure(frame, event, ...) |
73 else | 73 else |
74 return false, unpack(...) | 74 return false, unpack(...) |
75 end | 75 end |
76 end | 76 end |
77 | 77 |
78 function Controller:SendNewSquawk(Message) | 78 function Controller:SendNewSquawk(Message, ReplyStamp) |
79 if not Settings:IsPrivate() then | 79 if not Settings:IsPrivate() then |
80 self:SendMessageToGuild("#Squawk|"..UnitName("player").."|"..Message) | 80 self:SendMessageToGuild("#Squawk|"..self.Name.."|"..self.Class.."|"..ReplyStamp or "".."|"..Message) |
81 end | 81 end |
82 | 82 |
83 self:AddANewSquawk(UnitName("player"), Message) | 83 self:AddANewSquawk(self.Name, self.Class, Message, ReplyStamp) |
84 for name, _ in pairs(Settings.Following) do | 84 for name, _ in pairs(Settings.Following) do |
85 self:SendMessageToTarget(name, "#Squawk|"..UnitName("player").."|"..Message) | 85 self:SendMessageToTarget(name, "#Squawk|"..self.Name.."|"..self.Class.."|"..ReplyStamp or "".."|"..Message) |
86 end | 86 end |
87 end | 87 end |
88 | 88 |
89 function Controller:ImPending(Name) | 89 function Controller:ImPending(Name) |
90 View:NotifyOfPending(Name) | 90 View:NotifyOfPending(Name) |
95 end | 95 end |
96 | 96 |
97 function Controller:ApprovePendingRequest(Name) | 97 function Controller:ApprovePendingRequest(Name) |
98 Settings:AddFollower(Name) | 98 Settings:AddFollower(Name) |
99 View:NotifyOfNewFollower(Name) | 99 View:NotifyOfNewFollower(Name) |
100 self:SendMessageToTarget(Name, "#Follow|"..UnitName("player")) | 100 self:SendMessageToTarget(Name, "#Follow|"..self.Name) |
101 end | 101 end |
102 | 102 |
103 | 103 |
104 | 104 |
105 function Controller:SendMessageToTarget(Name, Message) | 105 function Controller:SendMessageToTarget(Name, Message) |
118 ["#Squawk"] = Controller.AddANewSquawk, | 118 ["#Squawk"] = Controller.AddANewSquawk, |
119 ["#Request"] = Controller.TheyWantToFollowMe, | 119 ["#Request"] = Controller.TheyWantToFollowMe, |
120 } | 120 } |
121 | 121 |
122 function Controller:ReceiveMessage(Message, Distribution, Sender) | 122 function Controller:ReceiveMessage(Message, Distribution, Sender) |
123 local command, name, info = strsplit("|",Message) | 123 local command, name, class, reply, info = strsplit("|",Message) |
124 View:Print(Distribution..":"..Message) | 124 Parse[command](Controller, name, class, reply, info, Distribution) |
125 Parse[command](Controller, name, info, Distribution) | |
126 end | 125 end |
127 | 126 |