allow certain prefixes only for Reg users
 

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

allow certain prefixes only for Reg users

Started by exlepra, 05 January, 2005, 13:11:40

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

exlepra

Hello scripters,
 I need a script which only allows users to log in with certain prefixes for example, [Friend] [Reg] [VIP] if they are registered users of the hub.


thx in advance

DJ Bert

I think this is it
--Description Tag by ??????Hawk?????? 05-07-2004
-- Modified by Troubadour & DJ Bert

--===Sets the tag to be shown in reg's descriptions=================

regTagInDescription = "{Reg}"   	--\\ Tag

--==================================================================
--===Sets the tag to be shown in Vip's descriptions=================

VipTagInDescription = "{Vip}"   	--\\ Tag

--==================================================================
--===Sets the tag to be shown in op's descriptions==================

OpsTagInDescription = "{Op}"   		--\\ Tag

--==================================================================
--===Sets the tag to be shown in masters's descriptions=============

MastersTagInDescription = "{Admin}"   	--\\ Tag

--==================================================================
--===Sets the tag to be shown in Net Founder descriptions===========

netTagInDescription = "{Networkmember}"   	--\\ Tag

--==================================================================
--===Sets the tag to be shown in Moderator's descriptions=============

modTagInDescription = "{Moderator}"   	--\\ Tag

--==================================================================
--===Sets the tag to be shown in Moderator's descriptions=============

modTagInDescription = "{Friends}"   	--\\ Tag

--==================================================================
--===Sets the time for the tags to be updated=======================

Mins =  1

--==================================================================



timer = 60000 * Mins
function Main() 
	SetTimer(timer)
	StartTimer() 
end 

function OnTimer()
	TagInDescription()
end

function TagInDescription()
	local aux,usr
	for aux, usr in GetUsersByProfile("vip") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..VipTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("operator") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..OpsTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("master") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..MastersTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("reg") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..regTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("Moderator") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..modTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("Networkmember") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..netTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
	for aux, usr in GetUsersByProfile("Friends") do
		if (GetItemByName(usr) ~= nil) then
			local userToShow = GetItemByName(usr)
			if (userToShow.sMyInfoString ~= nil) then
				local s,e,name,desc,speed,email,share = strfind(userToShow.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
				SendToAll( "$MyINFO $ALL "..name.." "..netTagInDescription.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
			end
		end
	end
end


Grtzzz

DJ Bert

exlepra

Not quite, this one checks description If I understood properly.

What I need is something like protected prefixes in nicknames, eg if user  tries to enter with  [VIP]anyone nick for example the hub shouldnt let him in if that [VIP]anyone nick is not registered.

Madman

#3
-- Made by dEFiNE
-- Mod by nErBoS asked by Robban
-- Modded by Madman on request by exlepra

BotName = "-Bot-"

ISP = {
	"[Friend]",
	"[Reg]",
	"[VIP]",
}

CheckProfiles = { --//Set the profiles you want to check to 1
	[-1] = 0,	-- Users (Unregged)
	[0] = 0,	-- Masters
	[1] = 0,	-- Operators
	[2] = 1,	-- VIP
	[3] = 1,	-- Reg
	[4] = 0,	-- Moderator
	[5] = 0,	-- NetFounder
}

function Main()
	frmHub:RegBot(BotName)
end

function NewUserConnected(curUser)
	if CheckProfiles[curUser.iProfile]==1 then
		for key, value in ISP do
			if (strlen(curUser.sName) >= strlen(value) and strsub(strlower(curUser.sName),1,strlen(value)) == strlower(value)) then
				return 1
			end
		end
		curUser:SendData(BotName, "Your nick should include one of this Prefix")
		ISPList(curUser)
		curUser:SendData(BotName, "For Example [REG]" ..curUser.sName)
		curUser:Disconnect()
	end
end

OpConnected = NewUserConnected

function ISPList(curUser)
	local names = ""
		for index, value in ISP do
		names = names.." "..value.."\r\n\t"
	end
	curUser:SendData("\r\n\t" ..names)
end

This should work...
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

exlepra

Well, this ^ does the other way :)   cos if a vip logs in without vip prefix he gets a warning to use the prefix but it will never happen cos vip is registered with [VIP]nick and not just nick.

Madman

QuoteOriginally posted by exlepra
Well, this ^ does the other way :)   cos if a vip logs in without vip prefix he gets a warning to use the prefix but it will never happen cos vip is registered with [VIP]nick and not just nick.
Well.. that is easy change..
just change
[2] = 1,-- VIP
to
[2] = 0,-- VIP
and vip wont be checked....
That is what the CheckProfiles  is for...
thoose with 1 will be checked... and 0 wont be checked =)
But as you said.. it wont happen, since they are registed with [VIP]nick =)
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

exlepra

It still doesnt work as it should, because it lets
  [VIP]blablabla enter to the hub even if that nick is not registered.

[UK]Madman

#7
This might work...

-- by [UK]Madman
-- Cut down version of a profile/username checker by nErBoS


sBot = "-=Bot=-" -- enter any botname between the ""

prefix = 	{
		"[VIP]",   -- Add any forbidden prefixes here between ""
		"[OP]",
		"[FRIEND]",
		"[More]",
		}

function Main()
frmHub:RegBot(sBot)
end

function NewUserConnected(curUser)

	if curUser == -1 then

		for key,value in prefix do
			if (strlen(curUser.sName) >= strlen(value) and strsub(strlower(curUser.sName),1,strlen(value)) == strlower(value)) then
				curUser:SendData(sBot, "You are not registered in this hub, you cannot use have "..value.." in your name!, please return with a corrected username!") -- Enter any message you want the user to recieve here (..value.. will tell them exactly what isnt allowed)
				curUser:Disconnect() -- remove this line if you dont want the user disconnected
			end
		end
	end
end

exlepra

yes :),
by removing "," from here:

sBot = "-=Bot=-",

and

using this:

if curUser.iProfile == -1

thanks

[UK]Madman

Thanks you for pointing out silly errors, glad it works :o)

Anna

I dunno what I do wrong, but when I have it disconnect the users with the wrong settings, they dont get the message... just says:

connection reset by server

Any clues? I copy/pasted it from here and made the changes

If I remove the disconnect part they get the message..

bastya_elvtars

thats a client error, they disconnect too fast. sometimes annoying.
Everything could have been anything else and it would have just as much meaning.

Anna

aha, oki :D

any chance to put a delay in script or is it something thats out of control completely?

same client gets the message if I use robo nickchekck, but that timebans for 60 min... a bit 2 long if they just post as vips without being one

exlepra

I assume a for cycle before  curUser:Disconnect()
could solve the problem, but I have no idea how the exact delay time in secs could be set that way.

Anna

ok.. yes some sort of loop that takes time prolly works... but I have no idea how to make one in lua... :D

lua sort of aint my language...

NightLitch

my little coin into it.

-- simple isp tag check / NightLitch

-- have all prefixes in lowcase letters
iTag = {
["[vip]"] = 1,
["[reg]"] = 1,
["[telia]"] = 1,
["[bbb]"] = 1,

-- and so on
}

function NewUserConnected(user)
	local TagList = ""
	local _,_,UserTag = strfind(user, "^(%p%S+%p)%S+")
	if iTag[strlower(UserTag)] == nil or UserTag == nil then
		for tag,_ in iTag do TagList = TagList .. tag.."    " end
		user:SendData("*** Your ISP Tag is not correct or missing, use one of the following:\r\n\r\n\t"..TagList.."\r\n\r\n\t Lowercase / Uppercase letters is allowed.")
		user:Disconnect()
	end
end

don't know if it works did it in 3min going out now.
//NL

SMF spam blocked by CleanTalk