!kick &!warn in lua5
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

!kick &!warn in lua5

Started by UwV, 04 March, 2005, 04:04:14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

UwV

-- KickBot Lua5 
-- based on plop's set max logins 


Botty = "-=KickBot=-" 

Mwarns = 3
Mkicks = 3

------------------------

warned = {}
kicked = {}

function ChatArrival(CurUser, Data)
	local s,e,Cmd, Vic, Why = string.find(Data, "%b<>%s+(%S+)%s*(%S*)%s*(%S*).*|")
        if Cmd == "!kick" then
                if CurUser.bOperator ~= 1 then
                        CurUser:SendData(Botty, "Sorry "..CurUser.sName.." but You  need to be  OP to kick Ass on this hub..")
                elseif Why == "" and Vic =="" then
                        CurUser:SendData(Botty, "Just kick ?,, hmm maybe tell me who and why ?")
                elseif Why == "" then
		        CurUser:SendData(Botty, "Wait a second "..CurUser.sName..", even I need a reason to kick ass.. ok ?")
                elseif (GetItemByName(Vic) == nil) then
                        CurUser:SendData(Botty, "Hmm  "..Vic.." must have felt it coming... and the coward left..")
                else      
                        local Arse = GetItemByName(Vic)          
                        if Arse.iProfile ~= 0 and Arse.iProfile ~= 5 and Arse.iProfile ~= 6 and Arse.iProfile ~= 7 then	                        
                                if (kicked[Arse.sName] == nil) then
                                        kicked[Arse.sName] = 1
                                else
                                        kicked[Arse.sName] = kicked[Arse.sName] + 1
                                end
                                if (kicked[Arse.sName] == Mkicks) then
                                                SendToOps(Botty, "Ok,.. "..Vic.." has just been kicked by "..CurUser.sName.." because "..Why..".")
                                                SendToOps(Botty, "That was "..Vic.."'s "..Mkicks.."'th kick, so he/she is now banned. :0/")
                                                Arse:SendPM(Botty, "You have been kicked by "..CurUser.sName.." because : "..Why..".")
		                                Arse:SendPM(Botty, "You have been kicked : "..Mkicks.." times,.. and now you are banned.. :0(")
		                                Arse:Ban()
		                                -- Arse:NickBan()
		                                kicked[Arse.sName] = nil
                                else
                                                Arse:SendPM(Botty, "You have been kicked by "..CurUser.sName.." because : "..Why..".")
                                                Arse:SendPM(Botty, "Get kicked "..Mkicks.." times and you will be banned...")
                                                SendToOps(Botty, "Ok,.. "..Vic.." has just been kicked by "..CurUser.sName.." because "..Why..".")
                                                Arse:Kick(CurUser.sName, Why)
	                        end
                          else
                                Arse:SendPM(Botty, CurUser.sName.." Has tried to Kick your ass,.. ")
                                Arse:SendPM(Botty, "But,.. I have protected yours... ")
                                Arse:SendPM(Botty, ",..\t so i guess 'we' better show IT who's the boss, huh ? ;0)")
                                CurUser:SendData(Botty, "Bad move "..CurUser.sName..",..  For sure "..Arse.sName.." is gonna kick YOUR ass now... :0/")
                          end
		end
                return 1

        elseif Cmd == "!warn" then
                if CurUser.bOperator ~= 1 then
                        CurUser:SendData(Botty, "Sorry "..CurUser.sName.." but You  need to be  OP to warn anybody on this hub..")                                
                elseif Why == "" and Vic =="" then
                        CurUser:SendData(Botty, "Just warn ?,, hmm maybe tell me who and why ?")
                elseif Why == "" then
		        CurUser:SendData(Botty, "Wait a second "..CurUser.sName..", even I need a reason to warn for.. ok ?")
                elseif (GetItemByName(Vic) == nil) then
                        CurUser:SendData(Botty, "Sorry ,  "..Vic.." is  offline, so not here to be warned.  ")
                else
                        local Arse = GetItemByName(Vic)
                        if Arse.iProfile ~= 0 and Arse.iProfile ~= 5 and Arse.iProfile ~= 6 and Arse.iProfile ~= 7 then	                        
                                if (warned[Arse.sName] == nil) then
                                        warned[Arse.sName] = 1
                                else
                                        warned[Arse.sName] = warned[Arse.sName] + 1
                                end
                                if (warned[Arse.sName] == Mwarns) then
                                        SendToOps(Botty, "Ok,.. "..Vic.." has just been warned by "..CurUser.sName.." because "..Why..".")
                                        SendToOps(Botty, "That was "..Vic.."'s "..Mwarns.."'th warn, so he/she got kicked. :0o")
                                        Arse:SendPM(Botty, "You have been warned by "..CurUser.sName.." because :")
                                        Arse:SendPM(Botty, "-> "..Why..".")
		                        Arse:SendPM(Botty, "You have been warned : "..Mwarns.." times,.. and now you are kicked,.. ")
                                        Arse:SendPM(Botty, "Get kicked "..Mkicks.." times and get banned :0(")
		                        warned[Arse.sName] = nil
                                        if (kicked[Arse.sName] == nil) then
                                               kicked[Arse.sName] = 1
                                        else
                                               kicked[Arse.sName] = kicked[Arse.sName] + 1
                                        end
                                else
                                        Arse:SendData(Botty, "You have been warned by "..CurUser.sName.." because : "..Why..",")
                                        Arse:SendData(Botty, "Get warned "..Mwarns.." times and you will be Kicked.")
                                        SendToOps(Botty, "Ok,.. "..Vic.." has just been warned by "..CurUser.sName.." because "..Why..".")
	                        end
                         else
                                Arse:SendPM(Botty, "Hmm, interesting for some reason "..CurUser.sName.." Has tried to warn you,.. ")
                                CurUser:SendData(Botty, "Bad move "..CurUser.sName..",..  OP's can't warn anyone at that level !!  ;0)")
                        end
                end
                return 1
        end
end

this line is a "admin" protection set to my profiles.dat
if Arse.iProfile ~= 0 and Arse.iProfile ~= 5 and Arse.iProfile ~= 6 and Arse.iProfile ~= 7 then

to protect only masters (in standard profiles.dat)
 use :
if Arse.iProfile ~= 0 then



\NL   The knowledge and skills you have achieved are meant to be forgotten so you can float comfortably in emptiness, without obstruction.
" Holly loves me,...  . "      ;o)

& don't forget, the motto is :
  -- SUPPORT YOUR LOCAL DJ'S --


Krysalis

#2
Hmm..
i?ve found 2 errors, could fix myself
may anyone need this too

---In the reason no sentences, ' only the first word of the reason come.  

change string

local s,e,Cmd, Vic, Why = string.find(Data, "%b<>%s+(%S+)%s*(%S*)(.*)")


---user dont be kicked after tree warnes.
---addet ban
 

Change this part:

if (warned[Arse.sName] == Mwarns) then
                                        SendToAll(Botty, Vic.." wurde verwarnt von "..CurUser.sName..", Grund "..Why..".")
                                        SendToAll(Botty, "Das wars "..Vic.."'s "..Mwarns..". verwarnung, nun wirst du gekickt. :0o")
                                        Arse:SendPM(Botty, "Du wurdest verwarnt von "..CurUser.sName.." weil :")
                                        Arse:SendPM(Botty, "-> "..Why..".")
		                        CurUser:SendData("Du hast "..Arse.sName.." verwarnt")
					Arse:SendPM(Botty, Mkicks.."x  wurdest du verwarnt, nun wirst du gekickt :(")
		                        warned[Arse.sName] = nil
                                        Arse:Ban()
					if (kicked[Arse.sName] == nil) then
                                               kicked[Arse.sName] = 1
                                        else
                                               kicked[Arse.sName] = kicked[Arse.sName] + 1
                                        end
                                else
                                        Arse:SendData(Botty, "Du bist verwarnt worden von "..CurUser.sName.." weil : "..Why..",")
                                        Arse:SendData(Botty, warned[Arse.sName].." Verwarnungen, noch eine und du wirst gekickt.")
                                    	CurUser:SendData("Du hast "..Arse.sName.." verwarnt")
				    	SendToOps(Botty, Vic.." wurde gerade verwarnt von "..CurUser.sName..", Grund "..Why..".")
	                        end

 Greets


SMF spam blocked by CleanTalk