I am very strongly against this proposal as it currently stands.
We spend at least a few hours a month on finding active ban evasions, and have yet to find a month where there wasn't a case.
We have multiple individuals actively trying to circumvent the rules we have in our server, that use multiple accounts, as well as cases of players that would hop several countries in an unreasonable timespan.
If this system is removed, and there's no replacement for it that allows us to gather the same information we need now, we would have to rely on the LFS moderation team to take over that task for us.
Not only would that delay our execution in this even more, it would also put quite a lot more work on the moderation team, as i am sure we're not the only server keeping track of who is who's alt account.
It also wouldn't protect the targeted individuals, that's a task they need to put on themselves. If they are targeted, removing the IP from LFS would not suddenly stop them from being a target.
Imo this is the same as "don't click on links you don't trust", don't join servers where you don't trust the owners.
I think just removing the ips from view, would probably cause more problems than it solves.
In our case, no, the IP bans are not that useful, but the IPs are, as we use those to look up alts, and ban those users as well.
OutSim is limited to the user's car in multiplayer or the currently viewed car in singleplayer(replay), thus would be a bad approach if you also plan on driving yourself.
To have the AI driving while your player could also still drive, i guess the minimum would be a CompCar for the AI itself, possibly the whole MCI to make it also aware of other cars. Paths etc. in my opinion can be user implemented.
From my understanding, MCI is only available to those with admin password, which would limit the possibility for "server guests". this is false information, you need to set an interval when testing
I like this proposal, and it looks to me that it is simple enough in the current draft to allow for a lot of different possibilities.
To further describe what r3zp3k7 is talking about, I've attached a replay.
From the start, if you spectate Red. (Nirvaki.), TheDanishDude (JELLE 9990) is drifting on the parking spots.
You only hear the sound of TheDanishDude's car when he's close.
From my understanding, someone gets info about their ban length and reason once the ban is issued, so if the player is not online at that time, they will get the info the first time they try connecting again.
This is a system that should already be implemented and working.
What Flags did you set when Initializing insim, just ISF_LOCAL, or did you also set ISF_MSO_COLS?
Are you altering the NPL.PName or the MSO.Message at all before comparing them?
Are you using the InSimDotNet NuGet version or the last build from Github?
Maybe you can share some code if these hints don't help you in the right direction?
EDIT:
I've written a program that does lookup based on PName myself, this is what i do:
The class i store the user data in looks something like this:
class user{ public string Nickname {get;set;} public string CleanNickname => Clean(Nickname); //strips any escape characters left
private string Clean(string nickname) { Regex hashtag = new Regex(@"\^h"); //since the InSimDotNet NuGet version doesn't seem to catch this Regex cc = new Regex(@"\^\d"); //strip any color codes
And i guess your code for the message handling should look something like this.
private void OnMessage(InSim i, IS_MSO msg){ Regex moneySentQuery = new Regex(@"[/d/s/W]{1,3}has sent money to "); //should only hit on msgs with the matching string, any possible color codes are also handled string cleanMessage = msg.Msg.Substring(msg.TextStart); //we only want the text of the message
if(moneySentQuery.IsMatch(cleanMessage)){ //check if the MSO message has certain text string [] subStrings = moneySentQuery.Split(cleanMessage); //split message so we can extract users
//PlayerList is some List<user> you're maintaining somewhere in your program user FirstUser = PlayerList.SingleOrDefault(u=>u.CleanNickname == subStrings.First()); //should be Player A or null user SecondUser = PlayerList.SingleOrDefault(u=>u.CleanNickname == subStrings.Last()); //should be player B or null } }
It's pretty messy code, so I'm sure it has some false hits, or lack of hits, so it might need some altering to your specific use-case, but it should come close.
I hope this helps.
Last edited by kipieslim, .
Reason : added some example code
While trying 7E5, I've noticed that a mod that is out of limits is being reported in chat once, but subsequent pit leaves won't show the message again, I'm wondering if that's correct.
I've also noticed some mods that are published this week, that have both LOD2 and wheel warnings.