can anyone make me a chatroom script like that in sdch
see this is the code of the sdch script
Option Explicit
'===============================================================
' Dynamic Chatroom by CRO
' limitless amount of chatrooms with specific users
' limitless amount of rooms for a user to be in
' users who leave the hub will rejoin rooms upon entry
' Each room does not have a minimum level to use.
' The rooms can be private or public.
' Only invited people will remain in private
'===============================================================
Const strAdmin = "CRO" 'Person who receives script errors (like that would happen :P)
Const iInviteReq = 3 'Min level to be able to invite others to private room
Const iPublicReq = 5 'Min level to make the room public
Const iPrivateReq = 5 'Min level to make the room private
Const iKickReq = 5 'Min level to remove users from the room
Dim oPrivateRoom, oPublicRoom
Sub Main
Set oPrivateRoom = CreateObject("Scripting.Dictionary")
Set oPublicRoom = CreateObject("Scripting.Dictionary")
If Not colCommands.Exists("createroom") Then colCommands.Add 330, "createroom", "Activated & Add Chat 1 ", 6, True
If Not colCommands.Exists("deleteroom") Then colCommands.Add 330, "deleteroom", "Deactivated & Del Chat 1", 6, True
If Not colCommands.Exists("joinroom") Then colCommands.Add 330, "joinroom", "Activated & Add Chat 2 ", 1, True
If Not colCommands.Exists("deleteall") Then colCommands.Add 330, "deleteall", "Del All ChatBots ", 10, True
End Sub
Sub UnloadMain
Set oPrivateRoom = Nothing
Set oPublicRoom = Nothing
colCommands.Remove("createroom")
colCommands.Remove("deleteroom")
colCommands.Remove("joinroom")
colCommands.Remove("deleteall")
End Sub
Sub CustComArrival(curUser, objCommand, sCurData, blnMC)
Dim aData
aData = Split(sCurData, " ")
If objCommand.ID = 330 Then
Select Case objCommand.Name
Case "createroom"
If UBound(aData) < 1 Then
curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
Else
If Not oPrivateRoom.Exists(aData(1)) Then
If colUsers.Online(CStr(aData(1))) Then
curUser.SendChat CStr(Settings.BotName), "This name is taken by a user"
Else
oPrivateRoom.Add aData(1), CStr(curUser.sName & ", ")
curUser.SendData "$Hello " & aData(1) & "|"
curUser.SendData "$OpList " & aData(1) & "|"
curUser.SendPrivate CStr(aData(1)), "Welcome to the chat"
End If
Else
curUser.SendChat CStr(Settings.BotName), "This room already exists"
End If
End If
Case "deleteroom"
If UBound(aData) < 1 Then
curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
Else
If oPrivateRoom.Exists(aData(1)) Then
oPrivateRoom.Remove(aData(1))
colUsers.SendToAll "$Quit " & aData(1) & "|"
Else
curUser.SendChat CStr(Settings.BotName), "This room does not exist"
End If
If oPublicRoom.Exists(aData(1)) Then oPublicRoom.Remove(aData(1))
End If
Case "joinroom"
If UBound(aData) < 1 Then
curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
Else
If oPublicRoom.Exists(aData(1)) Then
oPublicRoom.Item(aData(1)) = oPublicRoom.Item(aData(1)) & CStr(curUser.sName & ", ")
curUser.SendPrivate CStr(aData(1)), "Welcome to the chat"
Else
curUser.SendChat CStr(Settings.BotName), "This room does not exist/is not public"
End If
End If
Case "deleteall"
Dim aRooms, i
aRooms = oPrivateRoom.Keys
For i = 0 to UBound(aRooms)
colUsers.SendToAll "$Quit " & aRooms(i) & "|"
Next
aRooms = oPublicRoom.Keys
For i = 0 to UBound(aRooms)
colUsers.SendToAll "$Quit " & aRooms(i) & "|"
Next
oPrivateRoom.RemoveAll
oPublicRoom.RemoveAll
curUser.SendChat CStr(Settings.BotName), "All rooms have been deleted and removed"
End Select
End If
End Sub
Function PreDataArrival(curUser, sData)
If LeftB(sData, 6) = "$To" Then
Dim sRoom
sRoom = BetweenFirst(sData, " ", " ")
If oPublicRoom.Exists(sRoom) Then
If InstrB(lcase(oPublicRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then
ChatRoom curUser, sRoom, sData
Else
If InstrB(lcase(oPrivateRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then
ChatRoom curUser, sRoom, sData
Else
oPublicRoom.Item(sRoom) = oPublicRoom.Item(sRoom) & CStr(curUser.sName & ", ")
ChatRoom curUser, sRoom, sData
End If
End If
sData = ""
Else
If oPrivateRoom.Exists(sRoom) Then
If InstrB(lcase(oPrivateRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then ChatRoom curUser, sRoom, sData
sData = ""
End If
End If
End If
PreDataArrival = sData
End Function
Sub UserConnected(curUser)
Dim aUsers, aRooms, i
aUsers = oPrivateRoom.Items
aRooms = oPrivateRoom.Keys
For i = 0 to UBound(aUsers)
If InstrB(lcase(aUsers(i)), lcase(curUser.sName)) Then
curUser.SendData "$Hello " & aRooms(i) & "|"
curUser.SendData "$OpList " & aRooms(i) & "|"
curUser.SendPrivate CStr(aRooms(i)), "Welcome to the chat"
End If
Next
aRooms = oPublicRoom.Keys
For i = 0 to UBound(aRooms)
curUser.SendData "$Hello " & aRooms(i) & "|"
curUser.SendData "$OpList " & aRooms(i) & "|"
If InstrB(lcase(aUsers(i)), lcase(curUser.sName)) Then curUser.SendPrivate CStr(aRooms(i)), "Welcome to the chat"
Next
End Sub
Sub RegConnected(curUser)
UserConnected curUser
End Sub
Sub OpConnected(curUser)
UserConnected curUser
End Sub
Sub ChatRoom(curUser, sRoom, sData)
Dim aUser, aData, aCommand, i, j
sData = AfterFirst(sData, "> ")
If AscW(CStr(sData)) = AscW(CStr(Settings.CPrefix)) Then
aCommand = Split(sData, " ")
Select Case CStr(AfterFirst(aData(0), Settings.CPrefix))
Case "invite"
If curUser.Class >= iPublicReq Then
oPrivateRoom.Item(sRoom) = oPrivateRoom.Item(sRoom) & AfterFirst(sData, " ") & ", "
aData = Split(AfterFirst(sData, " "), ", ")
aUser = Split(oPrivateRoom.Item(sRoom), ", ")
For i = 0 to UBound(aData)
If colUsers.Online(CStr(aData(i))) Then
colUsers.ItemByName(CStr(aData(i))).SendData "$Hello " & sRoom & "|"
colUsers.ItemByName(CStr(aData(i))).SendData "$OpList " & sRoom & "|"
colUsers.ItemByName(CStr(aData(i))).SendPrivate CStr(sRoom), "Welcome to the room."
End If
Next
Else
curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
End If
Case "leave"
oPrivateRoom.Item(sRoom) = Replace(oPrivateRoom.Item(sRoom), curUser.sName & ", ", "")
If oPublicRoom.Exists(sRoom) Then oPublicRoom.Item(sRoom) = Replace(oPublicRoom.Item(sRoom), curUser.sName & ", ", "")
If Not oPublicRoom.Exists(sRoom) Then curUser.SendData "$Quit " & sRoom & "|"
Case "kick"
If curUser.Class >= iKickReq Then
oPrivateRoom.Item(sRoom) = Replace(oPrivateRoom.Item(sRoom), AfterFirst(sData, " ") & ", ", "")
If oPublicRoom.Exists(sRoom) Then oPublicRoom.Item(sRoom) = Replace(oPublicRoom.Item(sRoom), AfterFirst(sData, " ") & ", ", "")
If Not oPublicRoom.Exists(sRoom) Then curUser.SendData "$Quit " & sRoom & "|"
Else
curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
End If
Case "public"
If curUser.Class >= iPublicReq Then
colUsers.SendToAll "$Hello " & sRoom & "|"
colUsers.SendToAll "$OpList " & sRoom & "|"
oPublicRoom.Add sRoom, ""
Else
curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
End If
Case "private"
If curUser.Class >= iPrivateReq Then
colUsers.SendToAll "$Quit " & sRoom & "|"
oPublicRoom.Remove(sRoom)
aUser = Split(oPrivateRoom.Item(sRoom), ", ")
For i = 0 to UBound(aData)
If colUsers.Online(CStr(aData(i))) Then
colUsers.ItemByName(CStr(aData(i))).SendData "$Hello " & sRoom & "|"
colUsers.ItemByName(CStr(aData(i))).SendData "$OpList " & sRoom & "|"
End If
Next
Else
curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
End If
Case "list"
curUser.SendPrivate CStr(sRoom), CStr("Private users: " & oPrivateRoom.Item(sRoom))
If oPublicRoom.Exists(sRoom) Then curUser.SendPrivate CStr(sRoom), CStr("Public users: " & oPublicRoom.Item(sRoom))
Case Else
curUser.SendPrivate CStr(sRoom), CStr("This is not a command")
End Select
sData = ""
End If
aUser = Split(oPrivateRoom.Item(sRoom), ", ")
For i = 0 to UBound(aUser)
If colUsers.Online(CStr(aUser(i))) Then
If Not LCase(curUser.sName) = LCase(aUser(i)) and Not sData = "" Then colUsers.ItemByName(CStr(aUser(i))).SendData CStr("$To: " & aUser(i) & " From: " & sRoom & " $<" & curUser.sName & "> " & sData & "|")
End If
Next
If oPublicRoom.Exists(sRoom) Then
aUser = Split(oPublicRoom.Item(sRoom), ", ")
For i = 0 to UBound(aUser)
If colUsers.Online(CStr(aUser(i))) Then
If Not LCase(curUser.sName) = LCase(aUser(i)) and Not sData = "" Then colUsers.ItemByName(CStr(aUser(i))).SendData CStr("$To: " & aUser(i) & " From: " & sRoom & " $<" & curUser.sName & "> " & sData & "|")
End If
Next
End If
End Sub
Sub Error(Line)
FileAccess.AppendFile FileAccess.AppPath & "\Scripts\DynamicChat_Error.log", Now & "|" & Err.Number & "|" & Err.Description & "|" & Line & "|"
If colUsers.Online(cstr(strAdmin)) Then colUsers.ItemByName(cstr(strAdmin)).SendPrivate Settings.HubName & " DynamicChat_Error ", Now & "-" & "Error occured at line " & Line & " (Number: " & Err.Number & "; " & Err.Description & ")"
End Sub
it already exists, try chatrooms by tezlo
i tried that one but i want like this one where rooms are made public and private and ppl can join on their room by +joinroom
rooms can be made private or public or u need to do is create the room, and specify each profile, or use the chatroom script by Nerbos, it had that function !
ok can u add the joinroom cmd in the chatroom script by tezlo coz i m running a hub on sdch and my users are used to it so can u pls
u dont need to write any command to join a room, simply just send a msg to the bot !