Anope IRC Services

Anope Development => Modules => Topic started by: Alex22 on November 22, 2014, 08:45:24 PM

Title: Module Request
Post by: Alex22 on November 22, 2014, 08:45:24 PM
Hi,

Just moved our webchat network over to Anope.

I was wondering if someone with module-writing experience could write this, what I think is, simple'ish module for us?

We should have a string of banned words in nicknames in the .conf
Code: [Select]
BannedWords "Word1 Word2 Word3 ..."
If a user joins any channel with with a nickname that contains a BannedWord then they should be kicked and a ban set in format
Code: [Select]
nickname!*@*
AKICK is not an option here, we need the ban to be
Code: [Select]
nickname!*@* not
Code: [Select]
*bannedword*!*@* so every users sees the reason in kick.

We have 6,000~ webchat users at any point.

Thanks,
Title: Re: Module Request
Post by: katsklaw on November 22, 2014, 09:39:29 PM
Disallowing nicknames is the job of the ircd, not services. Something like this: https://www.unrealircd.org/files/docs/unreal32docs.html#bannickblock or https://wiki.inspircd.org/Configuration#.3Cbadnick.3E

If an user attempts to change their nick to a wild carded match to the banned nick, it fails. Channel bans/akicks will be a moot point since the usage of the bad nick is impossible.
Title: Re: Module Request
Post by: Alex22 on November 23, 2014, 04:45:55 PM
Want services to do it so webchat sees a real kick and ban.

Thanks
Title: Re: Module Request
Post by: katsklaw on November 23, 2014, 08:07:10 PM
Want services to do it so webchat sees a real kick and ban.

Thanks

That's not necessary.  Because, again, if the ircd controls the bad nick list, no bad nicks will ever exist in the first place so there is nothing to kick/ban.

The IRCd keeps track of both the real and fake host, so if you ban the fake host, the real one is banned too. For security reasons, users and Channel Ops are not shown the real host.

What you are asking for will open a huge security hole. If ChanOps are granted access to real hosts then all one has to do is creat a new channel and start /whois'ing people to get their real IP. This effectively renders host manging totally useless.
Title: Re: Module Request
Post by: Alex22 on November 23, 2014, 08:10:56 PM
... What?
Title: Re: Module Request
Post by: katsklaw on November 23, 2014, 08:39:53 PM
... What?

Sorry you don't understand. The IRCd already does what you are requesting and this will likely not get coded as a module because its a huge security risk.

Best of Luck.
Title: Re: Module Request
Post by: Alex22 on November 24, 2014, 06:07:25 PM
I understand what I want, I don't think you do

No mention of fake real IP addresses in my request so no idea what you're going off on one about lol

Anyway can't do it no need to reply or at least understand first

Thx!
Title: Re: Module Request
Post by: Adam on November 24, 2014, 06:12:10 PM
Why isn't akick an option? Akick bans with the mask you give it, so if you gave it nick!*@* it would ban nick!*@*
Title: Re: Module Request
Post by: katsklaw on November 24, 2014, 07:47:13 PM
I understand what I want, I don't think you do

No mention of fake real IP addresses in my request so no idea what you're going off on one about lol

Anyway can't do it no need to reply or at least understand first

Thx!

You're right. I did misread it, sorry. Perhaps if you supplied a detailed reason why services needs to do the kick/ban it would make more sense as to why an akick or the ircd controlling nick usage won't work because given the information provided, a module coder may see no reason to waste time coding something that's potentially redundant.
Title: Re: Module Request
Post by: Alex22 on November 24, 2014, 07:48:57 PM
Why isn't akick an option? Akick bans with the mask you give it, so if you gave it nick!*@* it would ban nick!*@*

Adam, Hi, :-)

Because, I add *Fuck*!*@* to AKICK,  Fucker30 joins, ChanServ bans *Fuck*!*@*, later Fucker40 can't join

Each bad nickname should see a kick message

So Fucker20 -> banned Fucker20!*@* -> kicked
And Fucker30 -> banned Fucker30!*@* -> kicked

(Sorry about all the swearing ;-))

I need every user to see a kick so they understand and choose a new nickname, otherwise they don't see a kick and leave our site.

This is v important for us, we're having like 50 or 60 nicks banned per HOUR on our site, we can't afford to just "block" these users without explaining

Btw, we'll pay for this, fine :-)
Title: Re: Module Request
Post by: Alex22 on November 27, 2014, 02:42:57 PM
guess noone wriets anope mods anymore
Title: Re: Module Request
Post by: Azander on November 27, 2014, 03:08:19 PM
No, several still write them.

Your request just doesn't make much sense to those that do.  You are asking to create an auto-kick for something that already exists both in chanserv (akick) and at the ircd level (bans/blocked nicks).

Your reasoning is so that people 'see' the kick instead of actually prohibiting the profane nick.  If the nick is prevented from even being used in the first place, like it should be, then you would never see them in the first place.

Which webchat program do you use that doesn't pass the "this is a prohibited nick" type error message back to the user when they try to connect using such a nick, and doesn't pass a "this is a prohibited nick" to the user when they try to change to one?

Title: Re: Module Request
Post by: Alex22 on November 29, 2014, 08:37:32 PM
Would it be simpler than a module to just modify AKICK source

and instead of banning AKICK entry, ban nick that triggered AKICK entry

since it should work like this in all channels

?
Title: Re: Module Request
Post by: katsklaw on November 29, 2014, 09:56:17 PM
Would it be simpler than a module to just modify AKICK source

and instead of banning AKICK entry, ban nick that triggered AKICK entry

since it should work like this in all channels

?

In your case, yes it would be simpler.

However, no one here will explain how to do it or do it for you. Modifying the source will void all support. This means that if you modify the source code, you are on your own when it comes to fixing/trouble shooting  issues.

Anope was created as a modular application for the intended purpose of not having to modify the source to have special and unique features.

Good Luck.
Title: Re: Module Request
Post by: Alex22 on December 04, 2014, 03:18:59 PM
Ok so it must be a module.

Where are the docs?

i.e. "If you want to hook a user joining a channel do X" etc.

Unreal has a list, does Anope have similar?
Title: Re: Module Request
Post by: katsklaw on December 04, 2014, 10:25:07 PM
http://anope.org/doxy/2.0/