A Platform For Experiments
-
<edited because I am way too longwinded wtf>
It is probably possible to @hook the page command so that a person who has a given attribute like "_douchebag=game name(s)" can't page someone on that game, and then channel locks and if you remove their &_game attribute , +jobs code doesn't work for them and they can't access your OOC lobby or use your channels.I personally feel like if someones' that much of an asshole that they need to go away forever a siteban is not effective (because you have proxies and changing IP addresses) and other means are necessary in the first place. I have only MU*ed since 2008 so I could be totally wrong and ignorant, but of the two people I've ACTUALLY had to force to leave, I didn't use a siteban to do it. Both of them took about twenty to thirty minutes to confront and handle. Both of them got dramatic but it was nothing that @disable logins for 20 minutes didn't fix permanently.
-
It doesn't work for people who know how the heck to get around it, but most mushers are not that technically apt (see: you providing this service because omg shell account scary). I had to siteban someone from my tiny little friends and family site, pretty much everyone is going to have someone like this eventually.
So, instead of a siteban (if that doesn't work in your opinion), what sort of thing are you going to do to help protect people from harassment? Hooking it onto a specific bit is not an effective solution when people can just create a new bit.
I'm soooo not trying to be discouraging with this at all, or challenging, or anything else. This is a wonderful amazing idea and I encourage it 110%, this is just something I never thought about for my site until it came up. (I still don't have a graceful solution, myself.)
-
I get it, it's a valid thing to need to think about!
Well, where there's a will, there's a way. IDK if you saw the original post I edited since it was too long but the too long wasn't some kind of like HOW DARE YOU QUESTION ME I SHIT EXCELLENCE, it was me rambling about this one time I stumbled onto Ratkin anal sex, and I edited it out since it was ... wildly not on topic.
Honestly to me, if you get sitebanned, you should ... just... be sitebanned. Like if you're that much of an asshole you really just don't need to be on here. Too bad, so sad, really. I guess this isn't a feeling everybody has, but, that's how I feel about it. If you shoplift from a single store at a mall, you are banned from the whole mall, as far as I know. The other stores aren't like "oh no, give them a chance."
-
I agree with you completely. I'm handling it the same way, but my place is much more informal than yours is shaping up to be. I would just want some sort of process in place from you for the site itself that says: this is, ultimately, the process you need to follow if you have a problem. Having a 'hey, GJ isn't around' red button to push would probably also help, dunno what it should do, though.
Then of course there's the 'I think this guy is a problem, major, but I'm actually the one that's a psycho' thing. So while it's mostly hands off for you having some sort of structure there in advance saves you from the headsplody of on-the-spot.
Thank you for editing out the Ratkin anal sex. Ratkin anal sex should probably always be edited out of anything. This is making me laugh far, far more than I should.
-
@Sunny Oh, right, that. Yeah, I forgot that there is a +jail command. It puts you in a room and makes you unable to use channels and unable to leave and logs your commands and notifies you that your commands are being logged. It should can also make you unable to page people. It doesn't right now, just, I know how I would make it happen.
I'll think about it!
Some of y'all asked me "what can I do, I can't code but I want to help," well,
This here
https://docs.google.com/document/d/1D2QLOc4fC2EEdo0fsn8mXPa3C91Ff2IDbMnrwuhAqMI/edit?usp=sharing
is instructions on data entry I need to make shit happen faster.
-
It would need some hacking. The ?col() functions are just for coloration. The hasauthority() function needs to be replaced with a function to check if someone should be able to siteban. You'd also need to provide a means of running @restart after modifying the list.
@create Site Banninator=5 &META_AUTHOR Site Banninator=Sponge/#4 &META_PURPOSE Site Banninator=Enable people other than #1 to add/remove sitebans &META_UPDATED_BY Site Banninator=Sponge/#4 &META_NEEDS_FLAGS Site Banninator=inherit &META_NEEDS_OBJS Site Banninator=#10 #3 #1774 &DATA_DB Site Banninator=#1774 &CMND_SITEBANS_LIST Site Banninator=$+sitebans/list:@switch [hasauthority(%#,SITEBAN)]=0*,@pemit %#=You do not have the proper authority to manage sitebans.,1,@pemit %#=u(UFUN_LIST_SITEBANS) &UFUN_FMT_RECORD Site Banninator=[setq(I,extract(%0,1,1,|))][setq(U,extract(%0,2,1,|))][setq(T,extract(%0,3,1,|))][setq(C,extract(%0,4,50,|,|))][ljust(IP: %qI, 24)][ljust(By: %qU,25)][ljust(On: [mid(convsecs(%qT),0,11)][mid(convsecs(%qT),20,4)],24)]%rWhy: %qC &UFUN_LIST_SITEBANS Site Banninator=[header(Sitebans)]%r[iter(lattr(v(DATA_DB)/DATA_BAN_*),u(UFUN_FMT_RECORD,get(v(DATA_DB)/##)),\ ,%r)]%r[footer()] &CMND_SITEBANS_REMOVE Site Banninator=$+sitebans/remove *:@switch [hasauthority(%#,SITEBAN)][hasattr(v(DATA_DB),DATA_BAN_[u(UFUN_IP_TO_LABEL,%0)])] &UFUN_IP_TO_LABEL Site Banninator=edit(before(%0,/),.,_) &UFUN_VALIDATE_IP_CHARS Site Banninator=not(strip(%0,0123456789./)) &UFUN_FOLD_OCTET Site Banninator=add(shl(%0,8),%1) &UFUN_VALIDATE_IP_RANGE Site Banninator=[setq(I,u(UFUN_IP_TO_INT,before(%0,/)))]and(gte(%qI,u(UFUN_IP_TO_INT,1.0.0.0)),lt(%qI,u(UFUN_IP_TO_INT,224.0.0.0))) &UFUN_IP_TO_INT Site Banninator=fold(UFUN_FOLD_OCTET,edit(%0,.,%b)) &UFUN_VALIDATE_IP_OCTETS Site Banninator=not(edit(iter(%0,gt(##,255),.),%b,)) &UFUN_IP_VALIDATE Site Banninator=not(strmatch(iter(lattr(me/UFUN_VALIDATE_*),u(##,%0)),*0*)) &UFUN_LIST_BANIPS Site Banninator=iter(lattr(v(DATA_DB)/DATA_BAN_*),before(get(v(DATA_DB)/##),|)) &CMND_SITEBANS_DELETE Site Banninator=$+sitebans/delete *:@switch [hasauthority(%#,SITEBAN)][u(UFUN_IP_BANNED,%0)]=0*,@pemit %#=scol(You do not have the proper authority to manage sitebans.),10*,@pemit %#=scol(No such IP ban found. Try +sitebans/list.),11,{&DATA_BAN_[u(UFUN_IP_TO_LABEL,%0)] [v(DATA_DB)]=;@pemit %#=pcol(Ban for %0 cleared. You'll have to @restart for the changes to take effect.)} &UFUN_IP_BANNED Site Banninator=hasattr(v(DATA_DB),DATA_BAN_[u(UFUN_IP_TO_LABEL,%0)]) &CMND_SITEBANS_ADD Site Banninator=$+sitebans/add *=*:@switch [hasauthority(%#,SITEBAN)][u(UFUN_IP_VALIDATE,%0)]=0*,@pemit %#=scol(You do not have the proper authority to manage sitebans.),10*,@pemit %#=scol('%0' does not appear to be an acceptable IP to ban.),11,{&DATA_BAN_[u(UFUN_IP_TO_LABEL,%0)] [v(DATA_DB)]=[if(strmatch(%0,*/*),%0,%0/32)]|%N/%#|[secs()]|%1;@pemit %#=pcol(Added '%0' to sitebans list. Remember to @restart for changes to take effect.)} &CMND_SITEBANS_ADDPLAYER Site Banninator=$+sitebans/player *=*:@switch [hasauthority(%#,SITEBAN)][t(setr(P,pmatch(%0)))]=0*,@pemit %#=scol(You do not have the proper authority to manage sitebans.),10*,@pemit %#=scol(Couldn't find player '%0'.),11,{@fo %#[setq(I,get(%qP/LASTIP))]=+sitebans/add %qI=%1} @set Site Banninator=INHERIT @set Site Banninator=SAFE
and
@Startup Wizard=@dolist u(#1773/UFUN_LIST_BANIPS)=@admin forbid_site=##
On NPM/CoH, #1773 is the Site Banninator and #1774 is an arbitrary THING to hold the siteban data.
Crazy spongecode aside, maybe ZONES could help here? I've never played with them.