i have a little bug :(
 

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

i have a little bug :(

Started by frogger, 28 February, 2007, 18:59:11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

frogger

hi@all
i have a little problem with a script based on GetPasswort script by Mutor,
the script registered users and posts a account info to hubbot,
the problem is when i register a nick like "blabla bla" or with passord like "blabla bla" the script brings the following error:
.lua:121: attempt to concatenate local `p3' (a nil value)
can someone modify the script that it brings no errors again?

(sry 4 the terrible english^^)

here the code:
-- based on GetPassword 2.0c LUA 5 by Mutor 3/14/05


PassCfg = {
--//-- Botname pulled from the hub or use "Custom" name
["BotName"] = frmHub:GetHubBotName(),
--//-- Register PassCfg["BotName"] name?, 0=no/1=yes
["RegBot"] = 1,
--//-- PassCfg["BotName"] Description, "" = none
["BotDesc"] = "",
--//-- PassCfg["BotName"] has a key?, 0=no/1=yes
["BotIsOp"] = 1,
--//-- Bots email address, "" = none
["BotMail"] = "",
--//-- Menu name, pulled from the hub or use "Custom" name
["PassMenu"] = "Befehle?",
--//-- Custom submenu name
["PassSubMenu"] ="User registrieren",
--//-- Reg Command
["ChgPassCmd"] = "!reguserwithaccinfo",
--Set your profiles here. >=1 can reg guest, >=2 can reg user, >=3 can reg all 
["PassProfiles"] = {
	[0] = 3,
	[1] = 2,
	[2] = 1,
	[3] = 0,
	[4] = 0,
	[5] = 0,
	[6] = 0,
	[9] = 0,
	},
}

Main = function()
	if PassCfg["BotName"] ~= frmHub:GetHubBotName() and PassCfg["RegBot"] == 1 then
		frmHub:RegBot(PassCfg["BotName"], PassCfg["BotIsOp"], PassCfg["BotDesc"], PassCfg["BotMail"])
	end
end

NewUserConnected = function(user, data)
PassCmds(user)
end

OpConnected = NewUserConnected

ChatArrival = function(user, data)
	data=string.sub(data,1,string.len(data)-1)
	local s,e,cmd = string.find(data,"^%b<>%s+(%p%w+)")
	local s,e,usr = string.find(data,"^%b<>%s+%p%w+%s+(%S+)")
	local s,e,pwd = string.find(data,"^%b<>%s+%p%w+%s+%S+%s+(%S+)")
	local s,e,pm = string.find(data,"^%b<>%s+%p%w+%s+%S+%s+%S+%s(%S+)")	
		if cmd == PassCfg["ChgPassCmd"] then
			if  usr == nil  or pwd == nil or pm == nil then   
				user:SendData(PassCfg["BotName"],"Sorry "..user.sName..", falsche Eingabe.")
				return 1
			else
				if PassCfg["PassProfiles"][user.iProfile] >= 1  then				
					if PassCfg["PassProfiles"][user.iProfile] == 1 and pm == "8" then		
						ChangePass(user, usr, pwd, pm)
						return 1					
					elseif PassCfg["PassProfiles"][user.iProfile] == 2  and pm == "7" then			
						ChangePass(user, usr, pwd, pm)
						return 1					
					elseif PassCfg["PassProfiles"][user.iProfile] == 2  and pm == "8" then				
						ChangePass(user, usr, pwd, pm)
						return 1									
					elseif PassCfg["PassProfiles"][user.iProfile] == 3 then				
						ChangePass(user, usr, pwd, pm)
						return 1		
 					else				
						user:SendData(PassCfg["BotName"],"Sorry "..user.sName..", du bist nicht befugt das Profil "..pm.." zu reggen!")
						return 1			
					end
				else
					user:SendData(PassCfg["BotName"],"Sorry "..user.sName..", du bist nicht befugt zu reggen!")
					return 1
				end
			end
		end
end

GetPass = function(user, name)
	local pass = frmHub:GetUserPassword(name)
	local p1 = GetProfileName(user.iProfile)
	if pass then
		local p2 = GetProfileName(GetUserProfile(name))
		PassMsg = "ACCINFO angefordert von:    [-->]  "..p1.."  "..user.sName.." .\r\n\r\n"..
		"\r\n\t\t"..
		"_______________________________________________\r\n\t\t"..
		"???????????????????????????????????????????????\r\n\t\t\t"..
		"______________________________ \r\n\t\t\t"..
		"Hubname:    "..frmHub:GetHubName().." \r\n\t\t\t"..
		"Hubaddy:     "..frmHub:GetHubAddress()..":"..
		""..frmHub:GetHubPort().." \r\n\t\t\t"..
		"Nickname:   "..name.." \r\n\t\t\t"..
		"Passwort:     "..pass.." \r\n\t\t\t"..
		"Profil:            "..p2.."\r\n\t\t\t"..
		"?????????????????????????????? \r\n\t\t"..
		"_______________________________________________\r\n\t\t"..
		"???????????????????????????????????????????????\r\n\r\n"
		user:SendPM(PassCfg["BotName"],PassMsg)
	else
		ErrMsg = "Anfrage f?r:    "..p1.." "..user.sName.."\r\n\r\n"..
		"\t\tSorry, "..name.." wurde nicht gefunden in der Userliste.\r\n"..
		"\t\t?berpr?fe deine Eingabe und versuchs nochmal.\r\n\r\n"
		user:SendPM(PassCfg["BotName"],ErrMsg)
	end
end

ChangePass = function(user, nick, pass, pm)
	if frmHub:isNickRegged(nick)  then
		user:SendData(PassCfg["BotName"],"Sorry "..user.sName..", Nick schon vergeben.")
		return 1
	else	
		AddRegUser(nick, pass, pm)
		GetPass(user, nick)
		local p3 = GetProfileName(GetUserProfile(nick))
		local p4 = GetProfileName(user.iProfile)
		local info = frmHub:GetHubBotName()
		SendPmToOps(info,p4.." "..user.sName.." hat "..nick.." mit dem Profil "..p3.." gereggt.")
		return 1						
	end

user,nick,pass,pm = nil,nil,nil,nil
end

function PassCmds(user)
	if PassCfg["PassProfiles"][user.iProfile] then
		if PassCfg["PassProfiles"][user.iProfile] == 1 then
        		user:SendData("$UserCommand 1 1 |") 
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\Anw?rter$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 8&#124;|")	-- guest
		end
		if PassCfg["PassProfiles"][user.iProfile] == 2 then
        		user:SendData("$UserCommand 1 1 |") 
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\User$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 7&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\Anw?rter$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 8&#124;|")	-- user
		end
		if PassCfg["PassProfiles"][user.iProfile] >= 3 then
			user:SendData("$UserCommand 1 1 |") 
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\AD$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 0&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\AS$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 1&#124;|")	
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\OP$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 2&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\VT$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 3&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\SVIP$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 4&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\VIP$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 5&#124;|")		
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..		
			"\\REG$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 6&#124;|")		
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\User$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 7&#124;|")         	
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\Anw?rter$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 8&#124;|")
			user:SendData("$UserCommand 1 1 "..PassCfg["PassMenu"].."\\Reg/Upgrade\\"..PassCfg["PassSubMenu"]..
			"\\Server$<%[mynick]> "..PassCfg["ChgPassCmd"].." %[line:Welcher User?] %[line:Neues Passwort] 9&#124;|")						
		end
	end
end



greez frogger (the jumper:)
sorry i have forgotten to say:
the hubsoft is lua5.0x
greez frogger (the jumper:)

bastya_elvtars

I don't know if registered nicks may contain spaces. It is not recommended, though.
Everything could have been anything else and it would have just as much meaning.

frogger

yes but this is the problem when mistake an brings a space in it then comes a error :(
i only will that the script brings a warning like "sorry no spaces in nick or pw" but no errors :(
its possible to block spaces, stop the error an gives a message like "sry no spaces in nick or pw" ?
ready  ;D problem terminated hehe

greez frogger (the jumper:)

bastya_elvtars

Isn't this supposed to catch spaceless nicks anyway?
Everything could have been anything else and it would have just as much meaning.

bastya_elvtars

local cmd,usr,pwd,pm = data:match("^%b<>%s+(%p%w+)%s+(%S+)%s+(%S+)%s(%d+)")

How about this?
Everything could have been anything else and it would have just as much meaning.

SMF spam blocked by CleanTalk