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 |
