-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwhisper.lua
53 lines (51 loc) · 2.15 KB
/
whisper.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
-- whisper.lua
-- Implements the /whisper and /reply commands.
function HandleWhisperCommand(Split, Player)
if (Split[2] == nil) or (Split[3] == nil) then
SendMessage(Player, cChatColor.LightGray .. "Usage: "..Split[1].." <player> <message>")
return true
end
local FoundPlayer = false
local SendMessage = function(OtherPlayer)
if (OtherPlayer:GetName() == Split[2]) then
local newSplit = table.concat(Split, " ", 3)
-- Notify them that the message was sent successfully.
SendMessageSuccess(Player, "Sent a message to " .. Split[2] .. ".")
OtherPlayer:SendMessagePrivateMsg(newSplit, Player:GetName())
lastsender[OtherPlayer:GetName()] = Player:GetName()
FoundPlayer = true
end
end
cRoot:Get():ForEachPlayer(SendMessage)
-- If that player couldn't be found, display an error.
if not FoundPlayer then
-- Tell them.
SendMessageFailure(Player, "Could not find that player, are they online?")
end
return true
end
function HandleReplyCommand(Split, Player)
if Split[2] == nil then
Player:SendMessage(cChatColor.LightGray .. "Usage: "..Split[1].." <message>")
else
local SendMessage = function(OtherPlayer)
if (OtherPlayer:GetName() == lastsender[Player:GetName()]) then
local newSplit = table.concat(Split, " ", 2)
Player:SendMessageSuccess(cChatColor.LightGray .. "Sent a message to " .. lastsender[Player:GetName()] .. ".")
OtherPlayer:SendMessagePrivateMsg(newSplit, Player:GetName())
lastsender[OtherPlayer:GetName()] = Player:GetName()
return true
end
end
-- If there isn't anybody to which they may reply, display an error.
if lastsender[Player:GetName()] == nil then
Player:SendMessageFailure(cChatColor.LightGray .. "Could not find a previous sender.")
else
-- If that player couldn't be found, display an error.
if (not(cRoot:Get():FindAndDoWithPlayer(lastsender[Player:GetName()], SendMessage))) then
Player:SendMessageFailure(cChatColor.LightGray .. "Could not find that player, are they online?")
end
end
end
return true
end