Posted by: Vector
« on: October 29, 2008, 01:06:32 PM »
Fixed the problem where it messaged the user everytime they joined. This time, there is a three second delay where the bot whispers the person the date.
The bot will open up a pop-up asking you what you want the standard message to be. It will whisper each user everytime, until you cancel it (.stannounce off)
If there is a message for that given date, the bot will whisper the user the message, AND NOT whisper them the standard message. Let me know if I need to patch anything up.
'cs
'110.2
'&Calendar Script:Vector
Const CS_Ver = "0.2"
Const CS_acc = 100
Public CS_File
CS_File = BotPath() & "calendar.ini"
Public dspStandard
dspStandard = True
Sub cs_Event_Load()
AddChat vbGreen, "Vector's Calendar Script v" & CS_Ver & " Loaded"
If Not GetSetting("cs", "sMessage") Then
sMessage = InputBox("Enter the standard greet message", "Vector's cs plugin")
SetSetting "cs", "standardMessage", sMessage, "Standard Message", True
End If
TimerInterval "cs", "greetDelay", 3
TimerEnabled "cs", "greetDelay", False
End Sub
Sub cs_Event_WhisperFromUser(Username, Flags, Message)
If Not Left(Message, Len(BotVars.Trigger)) = BotVars.Trigger Then Exit Sub
GetDBEntry Username, a, f
if a < CS_Acc Then Exit Sub
cmd = Split(Mid(Trim(Message), Len(BotVars.Trigger) + 1), " ")
If Lcase(cmd(0)) <> "announce" Then Exit Sub
End Sub
Sub cs_Event_Userjoins(Username, Flags, Message, Ping, Product, Level, OriginalStatString)
If GetConfigEntry("noreply", Date() & "|" & Username, CS_File) <> "" Then Exit Sub
TimerEnabled "cs", "greetDelay", True
If Not dspStandard Then Exit Sub
getStandard = GetSetting("cs", "standardMessage")
If getStandard = "" Then Exit Sub
AddQ "/w " & PsD2 & Username & " " & getStandard
dspStandard = True
End Sub
Sub cs_Event_UserTalk(Username, Flags, Message, Ping)
Call cs_processInput(Username, Message, 1)
End Sub
Sub cs_processInput(Username, Message, Origin)
If Left(Message, Len(BotVars.Trigger)) <> BotVars.Trigger Then Exit Sub
GetDBEntry Username, a, f
If a < CS_acc Then Exit Sub
cmd = Split(Mid(Trim(Lcase(Message)), Len(BotVars.Trigger) + 1), " ")
ucmd = Ubound(cmd)
Select Case cmd(0)
Case "stannounce"
If ucmd < 1 Then Exit Sub
If cmd(1) = "off" Then
SetSetting "cs", "standardMessage", "", "", True
DSP Origin, "Standard message cancelled."
Else
sMessage = Split(cmd(0) & " ")(1)
SetSetting "cs", "standardMessage", sMessage, "", True
DSP Origin, "Standard message set.", Username, vbWhite
End If
Case "announce"
uDate = Ubound(Split(cmd(1), "/"))
If uDate <> 2 Then
mDate = Split(Date, "/")(0)
dDate = Split(Date, "/")(1)
yDate = Split(Date, "/")(2)
fDate = dDate & "/" & mDate & "/" & yDate
DSP Origin, "Incorrect date format. Example: " & fDate, Username, vbWhite
Exit Sub
End If
splitDAte = Split(cmd(1), "/")
tempDay = splitDate(0)
tempMonth = splitDate(1)
setDate = tempDay & "/" & tempMonth & "/" & Split(Date(), "/")(2)
setNotification = Split(message, cmd(1) & " ")(1)
getDateList = GetConfigEntry("datelist", "list", CS_File)
If getDateList <> "" Then
WriteConfigEntry "datelist", "list", getDateList & ", " & setDate, CS_File
Else
WriteConfigEntry "datelist", "list", setDate, CS_File
End If
WriteConfigEntry "dates", setDate, setNotification, CS_File
DSP Origin, "Date notification set for " & setDate, Username, vbWhite
End Select
End Sub
'// TIMER SUBS \\'
Sub cs_greetDelay_Timer()
TimerEnabled "cs", "greetDelay", False
If GetConfigEntry("datelist", "list", CS_File) = "" Then Exit Sub
getList = GetConfigEntry("datelist", "list", CS_File)
If InStr(getList, ", ") Then
splitList = Split(getList, ", ")
Dim dateEntry
For i=0 to Ubound(splitList)
tempDay = Split(splitList(i), "/")(0)
tempMonth = Split(splitList(i), "/")(1)
tempList = tempMonth & "/" & tempDay & "/" & Split(Date, "/")(2)
If Trim(tempList) = Trim(Date()) Then
dateEntry = splitList(i) : Exit For
End If
Next
getDateEntry = GetConfigEntry("dates", dateEntry, CS_File)
if getDateEntry = "" Then Exit Sub
If GetConfigEntry("noreply", Date() & "|" & Username, CS_File) <> "" Then Exit Sub
WriteConfigEntry "noreply", Date() & "|" & Username, Username, CS_File
Dsp 3, getEntry & ": " & getDateEntry, Username, vbGreen
dspStandard = False
Else
getEntry = getList
tempDay = Split(getEntry, "/")(0)
tempMonth = Split(getEntry, "/")(1)
tempEntry = tempMonth & "/" & tempDay & "/" & Split(Date, "/")(2)
If Trim(tempEntry) = Trim(Date()) Then
getDateEntry = GetConfigEntry("dates", getEntry, CS_File)
If getDateEntry = "" Then Exit Sub
If GetConfigEntry("noreply", Date() & "|" & Username, CS_File) <> "" Then Exit Sub
WriteConfigEntry "noreply", Date() & "|" & Username, Username, CS_File
Dsp 3, getEntry & ": " & getDateEntry, Username, vbGreen
dspStandard = False
End If
End If
End Sub