Jump to content

Insane Limits V0.8/R1: Bad Name Kicker


ImportBot

Recommended Posts

Originally Posted by PapaCharlie9*:

 

Version: V0.8/R1

 

In this case, let's define a "bad name" to be one that is all digits. You can use some other pattern, like bad words or unusual characters that are hard to type, but for clarity this example will just look for players with all digit names like 00010110100101. This example also shows a variety of action settings, which include the Kick action as well as conventional Say, PRoConEvent and Log actions.

 

Set limit to evaluate OnJoin, set action to Say | PRoConEvent | Log | Kick.

 

Set first_check to this Expression:

 

Code:

( Regex.Match(player.Name, @"^[0-9]+$").Success )
Set the action specific settings to something like the following. This shows the settings for limit_1, but if your limit is a different number, for example "3", look for "limit_3_kick_message", etc.

 

Code:

limit_1_say_message             %p_fn% kicked for bad player name, all digits!
limit_1_say_audience            All
limit_1_say_delay               0
limit_1_procon_chat             True

limit_1_procon_event_text       Attempting to kick %p_fn% for bad player name, all digits
limit_1_procon_event_player     Insane Limits

limit_1_log_destination         Plugin
limit_1_log_message             [%date% %time%] %p_fn% kicked for bad name: all digits

limit_1_kick_message            bad player name: all digits
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Whoops, read a different way the title could mean "there's a bad player, call him a name and kick him!" I probably should have called this "Kick A Player With A Bad Name".

* Restored post. It could be that the author is no longer active.
Link to comment
  • 1 month later...

Originally Posted by PapaCharlie9*:

 

How can I use this to kick Players with the name exact name HITLER?

Change the first_check Expression to this:

 

Code:

( player.Name == "HITLER" )
* Restored post. It could be that the author is no longer active.
Link to comment
  • 11 months later...

Originally Posted by IAF-SDS*:

 

Hi Papa.

 

I have received many complaints about a particular group that's consistently bothering our players in trying to recruit them to their server while they are on our servers, and I don't want to have to worry about this anymore in our servers.

 

I need a limit for IL that will kick/ban a player for having certain characters in their name. I would also like an option to kick or ban certain clan tags when they add clan tags in the clan field.

 

Example for Name: XXXXXX?Name as in HITLER?Henry

Example for Tag: [JERK]PlayerName

 

Some add the tags as part of their name, and I want it to to kick or ban any name when it has XXX_Name where XXX or XXX? appear anywhere in the name.

 

How would I set up one limit where I could simply add more than one type of partial name and tag to kick and the same for a second limit to ban more than one type of partial name and tag?

 

Bad Tag/Partial Name KICK limit

Bad Tag/Partial Name BAN limit

 

 

For the Bad Tag/Partial Name BAN limit, I would want it to ban by GUID but with the %player_name% included in the reason field to let us know who was banned like this:

 

%player_name% BAN for Persona Non Grata.

 

 

Finally, when it kicks or bans, I would like it to only send a reason to the kicked/banned player only, and not in chat in the server if possible. It would be okay to have it also send it to procon chat window and the log the way I think you already have it set up above.

 

 

Thanks for your anticipated help with this Papa.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Thanks dyn.

 

The link you provided is only for clan tags.

 

Im wondering if Papa can incorporate it together with the partial name kickers above, or if I should use them in different limits.

 

Let's see if Papa can adjust the limit above for me so we don't have multiple limits to synchronize.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

How would I set up one limit where I could simply add more than one type of partial name and tag to kick and the same for a second limit to ban more than one type of partial name and tag?

The easy part first. First work on the Kick limit and get it working the way you want, then copy it to a Ban limit and change the Action parameters. That's how you get ban by GUID. The message you provide for the kick or ban only goes to the player (and to micovery if you enabled Tweeting). Remove the Say Action if you don't want anyone else to see those messages.

 

Now the hard part: I need more detail on the patterns of characters you want to detect. What you described isn't specific enough to translate into code. Even with a more specific description, keep in mind that there is a fairly high probability of a false positive. For example, say you want to kick anyone with the hacker clan AA? prefix to their name. Well, if an innocent player comes along with a name that starts with WAA_, they might get kicked also. It's often not possible to exclude every combination of good player name while triggering on the bad player name.

 

It would be safest to use the entire name of the player you want to kick, but I understand that that can be tedious to maintain and is a never ending job. But you don't want to kick/ban innocent players, right?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

The name or letters I want to ban are unique enough to not trigger a false positive in this particular instance (Example: CGXKZ_Name), but I now understand that I will have to be very careful with this for future names because it could ban the wrong people. If the partial name is common in characters such that it could include innocent players, then I'll have to include the whole name like you said.

 

Is there something we can insert at the beginning of a partial name to tell it that it must start exactly with the specific letters only? In other words, from your example, to avoid banning WAA? when inserting a ban for AA? , could we tell it to look only for letters that begin with AA? and thus ignore WAA? ?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Is there something we can insert at the beginning of a partial name to tell it that it must start exactly with the specific letters only? In other words, from your example, to avoid banning WAA? when inserting a ban for AA? , could we tell it to look only for letters that begin with AA? and thus ignore WAA? ?

Yes, but there are literally dozens of cases like that. Any one specific hole can be plugged, but plugging them all is difficult. For example, I saw one hacker clan that uses either a prefix or a suffix and sometimes all caps and sometimes mixed, no doubt to limit the effectiveness of limits just like the one you are trying to set up.

 

Let's try some simple patterns first and see if this is good enough.

 

* Always use @ before your string, e.g., @"^AA_"

* For a prefix, start the string with ^, e.g., @"^CGXKZ_"

* For a suffix, end the string with $, e.g., @"-AA$"

* For an infix (not prefix and not suffix), bracket the string with ., e.g. for infix hack use @".hack.".

* Case is sensitive, so if you need ^AA? and ^Aa? and ^aa_, you must do separate Add lines for each

 

Change the first_check to Code and use this:

 

Code:

/* Add your patterns to the following list */
List<String> suspects = new List<String>();
suspects.Add(@"^CGXKZ");
suspects.Add(@"micovery"); // an example full name
suspects.Add(@"--eXaMpLe$"); // an example suffix
// ... put more suspects.Add lines here

foreach (String s in suspects) {
    if (Regex.Match(player.Name, s).Success) return true;
}
return false;
This only works for player names. If you want to test clan tags, you should use a separate limit.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Yes, but there are literally dozens of cases like that. Any one specific hole can be plugged, but plugging them all is difficult. For example, I saw one hacker clan that uses either a prefix or a suffix and sometimes all caps and sometimes mixed, no doubt to limit the effectiveness of limits just like the one you are trying to set up.

 

Let's try some simple patterns first and see if this is good enough.

 

* Always use @ before your string, e.g., @"^AA_"

* For a prefix, start the string with ^, e.g., @"^CGXKZ_"

* For a suffix, end the string with $, e.g., @"-AA$"

* For an infix (not prefix and not suffix), bracket the string with ., e.g. for infix hack use @".hack.".

* Case is sensitive, so if you need ^AA? and ^Aa? and ^aa_, you must do separate Add lines for each

 

Change the first_check to Code and use this:

 

Code:

/* Add your patterns to the following list */
List<String> suspects = new List<String>();
suspects.Add(@"^CGXKZ");
suspects.Add(@"micovery"); // an example full name
suspects.Add(@"--eXaMpLe$"); // an example suffix
// ... put more suspects.Add lines here

foreach (String s in suspects) {
    if (Regex.Match(player.Name, s).Success) return true;
}
return false;
This only works for player names. If you want to test clan tags, you should use a separate limit.
Great thank you Papa.

 

Im going to try this, but I will go ahead and just use BAN for now.

 

Please confirm the way I set up the following will work as we discussed above, includig that it:

1) sends a ban reason to only the banned player and only to admins, but not in open chat to others in the server

2) bans by EA GUID with the player name included in the reason field to let us know who was banned like this:

%p_fn% BANNED for Persona Non Grata

 

To accomplish 1) above, in the "limit_3_say_audience" line, I changed "All" to "Admin" but Im not sure if that's correct. I also changed the word "kick" to "ban" as shown in blue.

 

The blue and teal parts below show modifications to the original code from the first post together with your revised version, and the following is exactly how I will add this limit if you say it's okay:

 

 

 

Set limit to evaluate OnJoin, set action to Say | PRoConEvent | Log | Ban

 

Set first_check to this Code:

 

Code:

/*  NOTES for BAD NAME KICKER  */
/*  Always use @ before your string as shown in examples below  */
/*  For a prefix, start the string with ^ as in @"^CGXKZ_"  */
/*  For an infix (not prefix and not suffix), bracket the string with . as in @".hacker."  */
/*  For a suffix, end the string with $ as in @"_CGXKZ$"  */
/*  Case is sensitive, so if you need ^AA_ and ^Aa_ and ^aa_ you must do separate suspects.Add lines for each  */

/* Add your patterns to the following list */
List<String> suspects = new List<String>();
suspects.Add(@"^CGXKZ_"); // an example case sensitive prefix for "CGXKZ_Name"
suspects.Add(@".hacker."); // an example case sensitive infix for "XXXhackerXXX"
suspects.Add(@"_CGXKZ$"); // an example case sensitive suffix for "Name_CGXKZ"
suspects.Add(@"BestHackerAround"); // an example case sensitive full name for "BestHackerAround"
// ... put more suspects.Add lines here:


foreach (String s in suspects) {
    if (Regex.Match(player.Name, s).Success) return true;
}
return false;
Set the action specific settings to something like the following. This shows the settings for limit_3, but if your limit is a different number, for example "1", look for "limit_1_ban_message", etc.

 

Code:

limit_3_say_message             %p_fn% BANNED for Persona Non Grata.
limit_3_say_audience            Admin
limit_3_say_delay               0
limit_3_procon_chat             True

limit_1_procon_event_text       Attempting to BAN %p_fn% for Persona Non Grata.
limit_1_procon_event_player     Insane Limits

limit_1_log_destination         Plugin
limit_1_log_message             [%date% %time%] %p_fn% BANNED for Persona Non Grata.

limit_1_ban_message             %p_fn% BAN for Persona Non Grata.
Assuming the above limit is correct, how do we tweak the same thing for use in another clan tags limit as you mentioned?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

To accomplish 1) above, in the "limit_3_say_audience" line, I changed "All" to "Admin" but Im not sure if that's correct.

No, not correct. That's an option micovery hoped to implement some day but never did. Just remove the Say action.

 

The rest looks spot on, though using ".hacker." will ban a bunch of people. That's a fairly popular infix name.

 

To do clan tag, create a custom list "badtags", put the tags you want to ban in a comma separated list in it, then create a new limit with first_code Expression:

 

Code:

(plugin.isInList(player.Tag, "badtags"))
Then the Actions are pretty much the same as your other limit.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

No, not correct. That's an option micovery hoped to implement some day but never did. Just remove the Say action.

Would I remove all three say lines?

 

What about the limit_3_procon_chat line to have it show in ProCon's chat? Would that require to leave limit_3_say_message and limit_3_say_delay while only deleting limit_3_say_audience?

 

Or to have it show up in ProCon's chat only would it require leaving all of the say lines and simply changing the say limit_3_say_audience to something else instead of "all" ?

 

 

Code:

limit_3_say_message             %p_fn% BANNED for Persona Non Grata.
limit_3_say_audience            ProCon Chat _
limit_3_say_delay               0
limit_3_procon_chat             True

limit_1_procon_event_text       Attempting to BAN %p_fn% for Persona Non Grata.
limit_1_procon_event_player     Insane Limits

limit_1_log_destination         Plugin
limit_1_log_message             [%date% %time%] %p_fn% BANNED for Persona Non Grata.

limit_1_ban_message             %p_fn% BAN for Persona Non Grata.
Once I get clarification on this, I'll put it all together with another clan tags limit for your okay.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Would I remove all three say lines?

 

What about the limit_3_procon_chat line to have it show in ProCon's chat? Would that require to leave limit_3_say_message and limit_3_say_delay while only deleting limit_3_say_audience?

 

Or to have it show up in ProCon's chat only would it require leaving all of the say lines and simply changing the say limit_3_say_audience to something else instead of "all" ?

...

Once I get clarification on this, I'll put it all together with another clan tags limit for your okay.

None of the above.

 

Select the _action line on the left. On the same row, open the multiline text box on the right (down pointing arrow control extreme right). Delete the actions and separators you don't need, e.g., "Say |". Close the text box or hit CNTL-ENTER (closes it). Voila, all the say? parameters are now gone.

 

Those parameters are controlled by what you enter into the _action box. The _new_action menu adds stuff to the _action box for you so you don't have to remember how to spell things, including the separator character |.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Superseded by the post below.

 

I cannot delete my post in this particular thread/forum, but I can delete my posts in other threads/forums.

 

I would appreciate a fix if not too much trouble please.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Okay, I set up the Bad NAME Kicker limit and the Bad TAG kicker limit with its badtag list as you instructed above.

 

I removed the Say action, but I added PRoConChat as an action and changed Ban to EABan (since that's what it requires).

 

Is there any particular order to the actions that is required?

(I rearranged the limit_3_action selections into the order they appear by default below.)

 

Also, this is a little trivial, but should the limit_3_procon_event_text remain with the word "Attempting" or should I just remove that word? I guess it would make sense to leave "Attempting" if that gets followed up by another event showing it happened, but Im not sure.

 

 

Here's the final action that I used for both the Bad NAME Kicker limit as well as the Bad TAG Kicker limit. Please confirm I got it right for both the name and tag limits:

 

Code:

limit_3_action:  [b]EABan | PRoConChat | PRoConEvent | Log[/b]

[3]     [ ----EABan Action----]
limit_3_ea_ban_type                       [b]EA_GUID[/b]
limit_3_ea_ban_duration                  [b]Permanent[/b]
limit_3_ea_ban_message                 [b]%p_fn% BAN for Persona Non Grata.[/b]

[3]     [ ----PRoConChat Action----]
limit_3_procon_chat_text                 [b]%p_fn% BANNED for Persona Non Grata.[/b]

[3]     [ ----PRoConEvent Action----]
limit_3_procon_event_text               [b]Attempting to BAN %p_fn% for Persona Non Grata.[/b]
limit_3_procon_event_player            [b]Insane Limits[/b]

[3]     [ ----Log Action----]
limit_3_log_destination                   [b]Plugin[/b]
limit_3_log_message                      [b][%date% %time%] %p_fn% BANNED for Persona Non Grata.[/b]
Thanks Papa for all your help again.

 

 

 

 

 

EDIT for UPDATE on Testing "Bad NAME Kicker"

 

I tested the Bad NAME Kicker, and there are some interesting issues. Here's what happens:

 

When I enter the server, I see the ProCon chat messages (no messages in server which is what we want) show that I have been banned (shown below in orange), but I remain in the server and can play.

 

It repeats this message as you will see in the log below many times over many minutes, and each time it shows in ProCon chat that I have been banned, ProCon also loses connection to the server for two to five seconds. This is no coincidence, because I tested it and confirmed that the loss in connection between the master ProCon running on my VDS and the server occurs every time the ProCon chat banned messages show (in orange below).

 

When the master ProCon on the VDS loses connection when this banned message is flashed, the majority of the time I see this message:

Connection error: Object reference not set to an instance of an object.

 

Sometimes, maybe ten percent of the time, it will give me this message:

Connection error: Unable to read data from the transport connection . . .

 

 

Eventually, after about 15 minutes, it actually banned me at the point shown in red below and I was booted from the server.

 

Not until this event shown below in red is the ban actually entered into the BanList.txt on the server, but it still does not show up in ProCon's ban list. The ban does not show up in ProCon's ban list on map changes either, even though it has been entered into the server's BanList.txt file.

 

It will not show up in ProCon's banlist tab unless I restart ProCon or unless I click on the two green arrows in ProCon's Banlist tab to reload the bans from the server's BanList.txt file.

 

Code:

[02:01:03] The-Mud-Fart >  pretty stupid to go inmid road
[02:01:22] AdminIn_and_SpawnMsg > Admin (IAF_SDS) joined the game!
[02:01:46] GamerElite89 -  > soflam up!!!
[02:01:47] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:02:34] TexasMercenary -  - Alpha > lmao!!!!
[02:02:40] BrotherNick16 -  - Alpha > hahaha
[02:03:11] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:03:39] sakasakakun > wtf
[02:03:41] USMC_Storm84 > <3 Nick, lol
[02:04:29] sevor1189 -  > my bad
[02:04:32] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:04:43] BrotherNick16 > hahaha, don't love you.
[02:04:46] USMC_Storm84 -  > they are on the flag
[02:04:47] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:04:54] USMC_Storm84 > aww :'(
[02:05:22] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:06:06] HeimdalI -  > lol, thx
[02:06:18] M311Y -  > sorry
[02:06:23] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:07:56] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:08:22] DECYCU > fucking spawm noob
[02:08:57] BrotherNick16 -  - Alpha > sorry :D
[02:09:10] BrotherNick16 -  - Alpha > we were launching.
[02:09:14] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:09:26] EX-Shelf -  - Foxtrot > /1
[02:09:34] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:09:37] Nidamir > sorry.. 
[02:09:41] BrotherNick16 -  - Alpha > LOL
[02:09:43] TexasMercenary -  - Alpha > wtf lolol
[02:09:45] TwistedKing420 > /1
[02:10:06] TexasMercenary -  > lets use our chooper to get the flag
[02:10:10] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:10:25] Punkrawks88 > mother fucker
[02:10:50] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:11:02] Nidamir > u was too close
[02:11:07] sakasakakun > yeah.
[02:11:10] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:11:52] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:12:11] GamerElite89 -  > !punish
[02:12:15] painkiller8181 > sorry
[02:12:43] IAF_SDS BANNED for Persona Non Grata.     <Connection error happens here>
[02:13:11] BrotherNick16 -  - Alpha > that's how we're supposed to fight, suppressive and flank.
[02:13:22] TexasMercenary -  - Alpha > yeah i saw that
[02:14:00] -cM-vipe > haha
[02:14:01] The-Mud-Fart >  horse shit
[02:14:07] TexasMercenary -  > get their tank
[02:14:14] IAF_SDS BANNED for Persona Non Grata.     
[02:14:15] AdminIn_and_SpawnMsg > IAF_SDS REMOVED for: IAF_SDS BAN for Persona Non Grata.(Permanent)
EDIT for UPDATE on Testing "Bad TAG Kicker"

 

Bad TAG Kicker does not work. No messages nor action of any kind, like it is off.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Superseded by the post below.

 

I cannot delete my post in this particular thread/forum, but I can delete my posts in other threads/forums.

 

I would appreciate a fix if not too much trouble please.

You'll have to ask a forum admin, I don't have access to groups.

 

EDIT: as for the other question and issues ...

 

Sorry you are having such a hard time. Stuff that should be simple sometimes isn't.

 

The order of actions is up to you. I think the order you have is fine.

 

The lack of the update to the ban tab is a known issue. Other plugins have the same problem. There's a magic incantation for getting Procon to update, but I don't think it is implemented in IL.

 

Was your server busy at the time of this test? That would explain some of the problems.

 

The Object reference error sounds like a bug in IL. I'll need the full exception dump information from your InsaneLimits.dump file to debug.

 

As a workaround for some of the above, try changing both (all 4_) limits to OnSpawn rather than OnJoin. An OnJoin limit is executed as part of stats fetching, and as you know that can have problems if the server is heavily loaded. OnSpawn is less complicated.

 

For the bad tag kicker, are you sure it was Enabled? That's the usual problem people have when something has no function at all.

 

If you are sure it is set up right, change the first_check to this Code for debugging:

 

Code:

if (plugin.isInList(player.Tag, "badtags")) {
    plugin.ConsoleWrite(player.FullName + " should be kicked by tag kicker");
    return true;
} else {
    plugin.ConsoleWrite(player.FullName + " nice tag, no kick!");
}
return false;
Then your plugin log should have one or the other message for every player that spawns. It will be spammy, but at least you will know if it should be working or not. Once you confirm it is working (or we fix it), revert to the prior Expression, should just change the choice item back to Expression and it will remember the previous value.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

There's a magic incantation for getting Procon to update, but I don't think it is implemented in IL.

Please consider adding this magic incantation to the next version of IL.

 

Was your server busy at the time of this test?

Yes, it was busy.

 

I'll need the full exception dump information from your InsaneLimits.dump file to debug.

My IL debug level is at 2 now. Do you want it at 3 or 4? Also, I used to have an InsaneLimits.dump file but when I downgraded to 1.4.0.6 with a new install, it has not recreated this InsaneLimits.dump file.

 

...try changing both (all 4_) limits to OnSpawn rather than OnJoin.

I will change it to OnSpawn and report back. Right now, each server has two limits: one for Bad NAME Kicker and one for Bad TAG Kicker. Also, there is a custom list called badtags.

 

For the bad tag kicker, are you sure it was Enabled?

Yes, Im positive. I will change the first_check for debugging as you show.

 

 

By the way, thanks for the help. I hate that something so simple is taking up more of your time than it should.

 

 

 

UPDATE

 

Changing OnJoin to OnSpawn worked to make Bad NAME Kicker function properly! Nice, easy fix. I don't see any connection errors as it booted me right away as soon as I spawned. Only thing missing is to get it to show the ban in the ProCon ban list, otherwise we don't know a ban happened unless we go into the server's BanList.txt and check every so often.

 

As for Bad TAG Kicker, it is not working and here's the plugin log after I inserted your debug code:

 

Code:

Plugin logging started: Monday, 18 March 2013 19:46:57
[19:47:04] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 4 secs
[19:47:09] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:47:44] [Insane Limits] Compiling Limit #3 - Bad NAME Kicker - OnSpawn
[19:48:16] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 2 still in queue, took a total of 6 secs
[19:48:25] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 1 still in queue, took a total of 4 secs
[19:48:27] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 1 secs
[19:49:11] [Insane Limits] Compiling Limit #4 - Bad TAG Kicker - OnSpawn
[19:49:11] [Insane Limits] WARNING: first_check_code is empty for Limit #4
[19:49:21] [Insane Limits] Compiling Limit #4 - Bad TAG Kicker - OnSpawn
[19:49:25] [Insane Limits] jonn2x nice tag, no kick!
[19:49:25] [Insane Limits] BlindDingo nice tag, no kick!
[19:49:28] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:49:29] [Insane Limits] jimbowone nice tag, no kick!
[19:49:31] [Insane Limits] Compiling Limit #4 - Bad TAG Kicker - OnSpawn
[19:49:32] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:49:35] [Insane Limits] SackOfWine nice tag, no kick!
[19:49:38] [Insane Limits] Brushstroke nice tag, no kick!
[19:49:43] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:50:08] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:50:10] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:50:12] [Insane Limits] fuoifg nice tag, no kick!
[19:50:13] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:50:13] [Insane Limits] WarhammerTX nice tag, no kick!
[19:50:26] [Insane Limits] SharenChron420 nice tag, no kick!
[19:50:34] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 5 secs
[19:50:41] [Insane Limits] SackOfWine nice tag, no kick!
[19:50:42] [Insane Limits] Shutso nice tag, no kick!
[19:50:46] [Insane Limits] Hypnotoad12 nice tag, no kick!
[19:50:50] [Insane Limits] jonn2x nice tag, no kick!
[19:50:58] [Insane Limits] redfight11 nice tag, no kick!
[19:51:03] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:51:03] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:51:03] [Insane Limits] SackOfWine nice tag, no kick!
[19:51:03] [Insane Limits] drxd139 nice tag, no kick!
[19:51:10] [Insane Limits] Shutso nice tag, no kick!
[19:51:15] [Insane Limits] Venousblade nice tag, no kick!
[19:51:18] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:51:18] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:51:30] [Insane Limits] IAF_SDS nice tag, no kick!
[19:51:32] [Insane Limits] BlkHeartWolf nice tag, no kick!
[19:51:34] [Insane Limits] sluippa nice tag, no kick!
[19:51:47] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:51:51] [Insane Limits] mpaulson11 nice tag, no kick!
[19:51:51] [Insane Limits] redfight11 nice tag, no kick!
[19:51:58] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:52:00] [Insane Limits] SharenChron420 nice tag, no kick!
[19:52:01] [Insane Limits] btnSnooze nice tag, no kick!
[19:52:09] [Insane Limits] SgtACYork nice tag, no kick!
[19:52:10] [Insane Limits] asiansky72 nice tag, no kick!
[19:52:18] [Insane Limits] sluippa nice tag, no kick!
[19:52:18] [Insane Limits] Cydd_Viscious nice tag, no kick!
[19:52:22] [Insane Limits] PrincessDhugg nice tag, no kick!
[19:52:28] [Insane Limits] btnSnooze nice tag, no kick!
[19:52:34] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:52:34] [Insane Limits] Shutso nice tag, no kick!
[19:52:34] [Insane Limits] Venousblade nice tag, no kick!
[19:52:41] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 6 secs
[19:52:42] [Insane Limits] evansketch nice tag, no kick!
[19:52:46] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:52:50] [Insane Limits] Brushstroke nice tag, no kick!
[19:52:55] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:52:59] [Insane Limits] SharenChron420 nice tag, no kick!
[19:53:06] [Insane Limits] drxd139 nice tag, no kick!
[19:53:13] [Insane Limits] Wantedcells nice tag, no kick!
[19:53:14] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:53:19] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:53:24] [Insane Limits] sluippa nice tag, no kick!
[19:53:24] [Insane Limits] Sirouss nice tag, no kick!
[19:53:33] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:53:33] [Insane Limits] BlkHeartWolf nice tag, no kick!
[19:53:34] [Insane Limits] DarkTemplar420 nice tag, no kick!
[19:53:38] [Insane Limits] btnSnooze nice tag, no kick!
[19:53:45] [Insane Limits] IAF_SDS nice tag, no kick!
[19:53:48] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:53:53] [Insane Limits] DTOWNPLAYER214 nice tag, no kick!
[19:54:02] [Insane Limits] death-to-all-50 nice tag, no kick!
[19:54:02] [Insane Limits] Tridant518 nice tag, no kick!
[19:54:04] [Insane Limits] ShuricanX nice tag, no kick!
[19:54:08] [Insane Limits] btnSnooze nice tag, no kick!
[19:54:12] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:54:14] [Insane Limits] jimbowone nice tag, no kick!
[19:54:14] [Insane Limits] BlkHeartWolf nice tag, no kick!
[19:54:17] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:54:21] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:54:23] [Insane Limits] sluippa nice tag, no kick!
[19:54:26] [Insane Limits] evansketch nice tag, no kick!
[19:54:27] [Insane Limits] DarkTemplar420 nice tag, no kick!
[19:54:30] [Insane Limits] SgtACYork nice tag, no kick!
[19:54:31] [Insane Limits] Sirouss nice tag, no kick!
[19:54:41] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 2 still in queue, took a total of 3 secs
[19:54:42] [Insane Limits] KirigakureZaiSou nice tag, no kick!
[19:54:46] [Insane Limits] IAF_SDS nice tag, no kick!
[19:54:46] [Insane Limits] PrincessDhugg nice tag, no kick!
[19:54:46] [Insane Limits] krosbonez nice tag, no kick!
[19:54:51] [Insane Limits] btnSnooze nice tag, no kick!
[19:54:52] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 1 still in queue, took a total of 0 secs
[19:54:53] [Insane Limits] redfight11 nice tag, no kick!
[19:54:54] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 1 secs
[19:54:55] [Insane Limits] Hypnotoad12 nice tag, no kick!
[19:55:02] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:55:03] [Insane Limits] reaperdogab nice tag, no kick!
[19:55:12] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 4 secs
[19:55:12] [Insane Limits] MasterVyper nice tag, no kick!
[19:55:18] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:55:19] [Insane Limits] Enma-Jirou nice tag, no kick!
[19:55:24] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 4 secs
[19:55:25] [Insane Limits] Granpa_jo nice tag, no kick!
[19:55:25] [Insane Limits] drxd139 nice tag, no kick!
[19:55:25] [Insane Limits] jonn2x nice tag, no kick!
[19:55:25] [Insane Limits] zhan0777 nice tag, no kick!
[19:55:25] [Insane Limits] BlkHeartWolf nice tag, no kick!
[19:55:25] [Insane Limits] SharenChron420 nice tag, no kick!
[19:55:25] [Insane Limits] leiguanghao nice tag, no kick!
[19:55:28] [Insane Limits] GUNS4WORK nice tag, no kick!
[19:55:35] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:55:36] [Insane Limits] Yaneeks nice tag, no kick!
[19:55:37] [Insane Limits] cherrythief1989 nice tag, no kick!
[19:55:38] [Insane Limits] Sirouss nice tag, no kick!
[19:55:40] [Insane Limits] Cydd_Viscious nice tag, no kick!
[19:55:57] [Insane Limits] Stryker2241 nice tag, no kick!
[19:55:59] [Insane Limits] Shutso nice tag, no kick!
[19:56:01] [Insane Limits] evansketch nice tag, no kick!
[19:56:12] [Insane Limits] DTOWNPLAYER214 nice tag, no kick!
[19:56:17] [Insane Limits] jimbowone nice tag, no kick!
[19:56:18] [Insane Limits] LoakySuperDank nice tag, no kick!
[19:56:19] [Insane Limits] SgtACYork nice tag, no kick!
[19:56:19] [Insane Limits] QQHunter nice tag, no kick!
[19:56:21] [Insane Limits] LostReb86 nice tag, no kick!
[19:56:29] [Insane Limits] Granpa_jo nice tag, no kick!
[19:56:30] [Insane Limits] WarhammerTX nice tag, no kick!
[19:56:33] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 2 secs
[19:56:34] [Insane Limits] DTOWNPLAYER214 nice tag, no kick!
[19:56:37] [Insane Limits] DarkSniper_USMC nice tag, no kick!
[19:56:39] [Insane Limits] Stryker2241 nice tag, no kick!
[19:56:39] [Insane Limits] Venousblade nice tag, no kick!
[19:56:39] [Insane Limits] Brushstroke nice tag, no kick!
[19:56:44] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 3 secs
[19:56:50] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 5 secs
[19:56:56] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 4 secs
[19:57:15] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 4 secs
Plugin logging stopped: Monday, 18 March 2013 19:57:32
For clarity and confirmation, here is exactly how I have Bad TAG Kicker configured:

 

Code:

Limit #4 - Bad TAG Kicker
limit_4_hide:  (Show)
limit_4_state:  Enabled
limit_4_name:  Bad TAG Kicker
limit_4_evaluation:  OnSpawn
limit_4_first_check:  Code
limit_4_first_check_code:

if (plugin.isInList(player.Tag, "badtags")) {
    plugin.ConsoleWrite(player.FullName + " should be kicked by tag kicker");
    return true;
} else {
    plugin.ConsoleWrite(player.FullName + " nice tag, no kick!");
}
return false;

limit_4_second_check:  Disabled
limit_4_new_action:  ...
limit_4_action:  EABan | PRoConChat | PRoConEvent | Log

[4]     [ ----EABan Action----]
limit_4_ea_ban_type		EA_GUID
limit_4_ea_ban_duration		Permanent
limit_4_ea_ban_message		%p_fn% BAN for Persona Non Grata.

[4]     [ ----PRoConChat Action----]
limit_4_procon_chat_text		%p_fn% BANNED for Persona Non Grata.

[4]     [ ----PRoConEvent Action----]
limit_4_procon_event_text		Attempting to BAN %p_fn% for Persona Non Grata.
limit_4_procon_event_player	Insane Limits

[4]     [ ----Log Action----]
limit_4_log_destination		Plugin
limit_4_log_message		[%date% %time%] %p_fn% BANNED for Persona Non Grata.


[i]Add Bad TAGS in new "List #1 - badtags" with a comma separating each tag:[/i]

List #1 - badtags
list_1_hide:  (Show)
list_1_state:  Enabled
list_1_name:  badtags
list_1_comparison:  CaseInsensitive
list_1_data:  IAF, ADMN
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

As for Bad TAG Kicker, it is not working and here's the plugin log after I inserted your debug code:

 

Code:

[19:51:30] [Insane Limits] IAF_SDS nice tag, no kick!
Well, according to that log, you don't have a tag!

 

By "tag", IL means the tag a player sets up in Battlelog. For example, mine is [LGN]. Since no players in the log have a tag (would show up as [TAG]name in the log), my guess is thatyou don't have stats fetching enabled. Stats fetching is required if you want to base limits on tags.

 

That said, there are some clans that eschew the Battlelog tag in favor of a prefix or suffix, but those are already being caught by your bad name limit, right?

 

Was it your intention to base limits on tags, whether from Battlelog or prefixed/suffixed to a name? If so, I misunderstood. I thought you really meant "bad name" all along, not bad tag combined with name. I use different code for extracting a tag that is combined with a name. Both limits could be combined into one "bad tag" limit, though again, any tags defined in Battlelog will only be available if stats fetching is enabled.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Yes, I did have a tag on for testing but stats fetching is off in my Insane Limits, which I now see is why it wasn't working.

 

Should I also enable use_slow_weapon_stats?

Will this slow down the rate request described below and if so, how much does use_slow_weapon_stats slow down the requests?

 

I ask because Im running TB and CD on three servers and it might not be worth adding this load for a tag kicker.

 

I see from this thread showthread....ht=15+requests* that IL stats requests to Battlelog stay below 5 requests in 20 seconds, which is lower than the max limit of 15 requests in 20 seconds currently in force. I also see that it's adaptive, to reduce requests even more if errors occur.

 

 

Whether they have just a bad TAG, just a bad NAME, or both a bad TAG and a bad NAME, it shouldn't matter because one or both of the limits should catch it right?

 

I tested the TAG kicker and it worked perfectly with stats fetching enabled.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Should I also enable use_slow_weapon_stats?

Will this slow down the rate request described below and if so, how much does use_slow_weapon_stats slow down the requests?

Generally, no, do not enable use_slow_weapon_stats. Only if you are using Hexacanon's damage hack detector or similar limits where it is required. It is very slow and can easily quadruple or more the time to fetch stats per player.

 

Whether they have just a bad TAG, just a bad NAME, or both a bad TAG and a bad NAME, it shouldn't matter because one or both of the limits should catch it right?

Right. It's just professional pride on my part -- when I can do two things with one piece of code better than two separately, I'd prefer to do that. :smile: The benefit to you would be you would just put everything into the "badtags" list (which you could rename "bad prefixes suffixes") instead of having to change code in one and add tags to a list in another.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Initially, that's what I wanted, one limit to handle both.

 

But Im glad I have it broken down into two limits, because I can enable the NAME kicker and disable the TAG kicker for the purpose of avoiding turning on stats fetching just for tags if I want to.

 

 

Im trying to run some numbers here to see how I fall within the 15 requests in 20 seconds rule. Please help me answer these two questions:

 

1) When TB is set to check 1 stat at each interval (your addition to TB), how many seconds equal an interval?

 

2) You said it could quadruple or more the time of the fetch rate if use_slow_weapon_stats is enabled, but do you know what it actually changes the fetch rate to for IL?

 

 

IL = 5 stats every 20 secs = .250 stat every second x 20 seconds = 5 stats every 20 seconds (actually even less if it senses errors)

+

CD = 1 stat every 30 secs = .033 stat every second x 20 seconds = 0.67 stat every 20 seconds

+

TB = 1 stat each interval =? stat every second x 20 seconds =? stats every 20 seconds

 

 

I might be better served enabling use_slow_weapon_stats as you can see from running part of the numbers above. I don't see why it would be more important to have tag kicker run more stats per second compared to how many Cheat Detector runs per second for example. But I can't be sure on the numbers until we answer the two questions above.

 

Thanks Papa for your time and help.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

1) When TB is set to check 1 stat at each interval (your addition to TB), how many seconds equal an interval?

 

2) You said it could quadruple or more the time of the fetch rate if use_slow_weapon_stats is enabled, but do you know what it actually changes the fetch rate to for IL?

I'll answer your questions, but I should also warn you that the situation is very complex and difficult to calculate from first principles. Whatever number you come up with probably won't come close to what you actually see happen. You will get a more accurate measurement by using an HTTP proxy and logging all the requests to Battlelog.

 

1) When TB is set to 1 it means that only one player will be processed per OnPlayerList event. The default interval for that is 1 every 30 seconds, but other plugins (like Insane Limits) issue their own commands that generate OnPlayerList events, so the more plugins you run, the more frequently OnPlayerList events will happen.

 

2) use_slow_weapon_stats adds an additional Battlelog request per player and the request result is huge. A typical request result is a few tens of kilobytes, the result for weapon stats is over a megabyte. The raw network transfer time is noticeable for weapon stats.

 

Further complicating the equation is the fact that one player may result in 2, 3 or 4 requests to Battlelog, depending on usage. One is the minimum but two is typical, since you need one to map the soldier name to a persona ID and then another to do whatever it is you are trying to do, like get overview stats. TB does 2 requests per player. IL also does 2 requests per player, unless you enable use_slow_weapon_stats, in which case it does 3.

 

If you enable use_slow_weapon_stats, the processing time of a single request easily exceeds 20 seconds, so it's true that at least for IL, the rate of Battlelog requests will actually go down from nominal. But that also means it takes 4x or more longer to process your whole player list when you enable the plugin. IL doesn't really work well until all the players have been processed. So optimizing Battlelog rate is not really the objective, shortening the time between player join and IL completion of processing is more important. Until processing is done, a player doesn't even exist as far as IL limits are concerned.

 

It's unknown whether Battlelog throttles all requests, regardless of URL, or if it throttles certain requests, like stats, more than others. I've assumed that all requests are throttled.

 

Then there's BattlelogCache. If you have that enabled, IL doesn't do any Battlelog requests, but BattlelogCache does on behalf of IL. Initially BC has no affect, the rate of requests is the same a doing it directly, but over time and assuming a reasonable player return rate on the server, the average number of requests should fall below the nominal number (2). The more plugins that use the cache, the lower the average rate for all.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

There's a magic incantation for getting Procon to update, but I don't think it is implemented in IL.

Please consider adding this magic incantation to the next version of IL.

Doubtful. It's complicated -- naturally, or else it would have been done already, right?

 

That said, there is something you can try that might help. How many bans do you have in your list? More than 100? If less than a hundred, you are in luck.

 

You will have to move the ban action into Code (you can leave the logging actions as Actions). Then you will use a second_check Code that looks like this:

Code:

plugin.EABanPlayerWithMessage(EABanType.GUID, EABanDuration.Permanent, player.Name, 0, plugin.R("%p_fn% BAN for Persona Non Grata."));
plugin.ServerCommand("banList.list", "0");
return true;
That will force the first 100 bans to be sent to Procon. As long as the new ban that was added was less than the 100th, it should show up in the tab.

 

If you have more than 100, it's more complicated, since you can only ask for 100 at a time. For each additional 100, add another line of code, specifying the starting ban number to list from. For example, if you have more than 200 bans but less than 300, you would use:

 

Code:

plugin.EABanPlayerWithMessage(EABanType.GUID, EABanDuration.Permanent, player.Name, 0, plugin.R("%p_fn% BAN for Persona Non Grata."));
plugin.ServerCommand("banList.list", "0"); // 0 through 99
plugin.ServerCommand("banList.list", "100"); // 100 through 199
plugin.ServerCommand("banList.list", "200"); // 200 through 299
return true;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Thanks for explaining all of this. It's good knowledge to have.

 

After your explanation, my perception that use_slow_weapons_stats would reduce the load was wrong. It's actually the opposite, yikes.

 

Running the numbers (I understand it's more complicated than this and may not be what actually happens), I see that Cheat Detector and True Balancer have the same load and are in reality nominal compared to Insane Limits. Only 0.67 stat for each server every 20 seconds, which is far below the 15 requests every 20 seconds throttle limit. Insane Limits is at 5 requests every 20 seconds (or less if it encounters errors).

 

Something to consider for the next version of Insane Limits would be to add an option to be able to choose how many requests you want to send per instance or per 30 seconds, the way you added in line one for TrueBalancer. The same will be useful and helpful if added to MULTIbalancer too, and I have posted same in that thread for convenience.

 

If Cheat Detector and True Balancer can work at 1 per 30, something simple as a TAG Kicker for IL should be able to work as well at 1 per 30 and not require 7.5 requests every 30 seconds (.250 x 30).

 

This is very useful information, thank you again. Without IL in the equation, I see I could easily bump up TB requests from 1 to 3 if I wanted to and still fall well below the limit, but since TB is working fine at 1 per 30, I 'll leave it alone or try 2 to see if I notice any benefit. In conclusion, it looks like I'll leave Bad TAG Kicker disabled for now and only use Bad NAME Kicker since the TAG kicker requires IL's request of 7.5 stats per 30 seconds (or 7.5 times more than CD and TB). With IL at 5 request per 20 seconds, I would hit the 15 requests per 20 seconds limit with three servers (but then IL would reduce the rate itself after it encountered errors).

 

With Cheat Detector and True Balancer at 1 request per 30 seconds, I won't get anywhere near the 15 requests per 20 seconds limit since collectively for three servers they are at 4 requests every 20 seconds (.67x2 x3). If I had the option to set IL at 1 request every 30 secs the way TB has, I would set that of course.

 

IL = 5 stats every 20 secs means .250 stat every second x 20 seconds = 5 stats every 20 seconds (actually even less if it senses errors)

+

CD = 1 stat every 30 secs means .033 stat every second x 20 seconds = 0.67 stat every 20 seconds

+

TB = 1 stat every 30 secs means .033 stat every second x 20 seconds = 0.67 stat every 20 seconds

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

Regarding the bans for Bad NAME Kicker not showing up, I noticed something interesting yesterday.

 

For Bad NAME Kicker, when it bans for the bad name, the ban goes to the BanList.txt on the server, but does not show up on ProCon's Ban List as we know, unless you refresh the bans with the two semi circle green arrows or restart ProCon.

 

But, and here's the interesting part, with Bad TAG Kicker, when it bans, it sends the ban to the server's BanList.txt file, AND it also properly shows it in ProCon's Ban List tab.

 

I wonder why Bad TAG Kicker is showing the ban properly in ProCon's Ban List tab when Bad NAME kicker is not.

 

As for the code you show to have it send every 100 bans, I assume I could set it up now to a high number like this to not think about it again:

 

Code:

plugin.EABanPlayerWithMessage(EABanType.GUID, EABanDuration.Permanent, player.Name, 0, plugin.R("%p_fn% BAN for Persona Non Grata."));
plugin.ServerCommand("banList.list", "0"); // 0 through 99
plugin.ServerCommand("banList.list", "100"); // 100 through 199
plugin.ServerCommand("banList.list", "200"); // 200 through 299
plugin.ServerCommand("banList.list", "300"); // 300 through 399
plugin.ServerCommand("banList.list", "400"); // 400 through 499
plugin.ServerCommand("banList.list", "500"); // 500 through 599
plugin.ServerCommand("banList.list", "600"); // 600 through 699
plugin.ServerCommand("banList.list", "700"); // 700 through 799
plugin.ServerCommand("banList.list", "800"); // 800 through 899
plugin.ServerCommand("banList.list", "900"); // 900 through 999
plugin.ServerCommand("banList.list", "1000"); // 1000 through 1099
plugin.ServerCommand("banList.list", "1100"); // 1100 through 1199
plugin.ServerCommand("banList.list", "1200"); // 1200 through 1299
plugin.ServerCommand("banList.list", "1300"); // 1300 through 1399
plugin.ServerCommand("banList.list", "1400"); // 1400 through 1499
plugin.ServerCommand("banList.list", "1500"); // 1500 through 1599
plugin.ServerCommand("banList.list", "1600"); // 1600 through 1699
plugin.ServerCommand("banList.list", "1700"); // 1700 through 1799
plugin.ServerCommand("banList.list", "1800"); // 1800 through 1899
plugin.ServerCommand("banList.list", "1900"); // 1900 through 1999
plugin.ServerCommand("banList.list", "2000"); // 2000 through 2099
plugin.ServerCommand("banList.list", "2100"); // 2100 through 2199
plugin.ServerCommand("banList.list", "2200"); // 2200 through 2299
plugin.ServerCommand("banList.list", "2300"); // 2300 through 2399
plugin.ServerCommand("banList.list", "2400"); // 2400 through 2499
plugin.ServerCommand("banList.list", "2500"); // 2500 through 2599
plugin.ServerCommand("banList.list", "2600"); // 2600 through 2699
plugin.ServerCommand("banList.list", "2700"); // 2700 through 2799
plugin.ServerCommand("banList.list", "2800"); // 2800 through 2899
plugin.ServerCommand("banList.list", "2900"); // 2900 through 2999
return true;
Thanks again Papa!

 

I hope our discussion above has helped both IL and MULTIbalancer if some of the things discussed are helpful when added to them (e.g. option to control how many stats fetched per 30 secs).

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Without IL in the equation, I see I could easily bump up TB requests from 1 to 3 if I wanted to and still fall well below the limit,

So again, optimizing BL request rate should be the least of your worries ...

 

The main reason TB defaults to 1 is to avoid lagging Procon. The higher you set the number, the more Procon lag you will get. The lag is unrelated to BL requests, it has to do with the way TB is coded. Stats fetching is done synchronously, which means, Procon can't do anything else, like respond to your GUI interations, until TB is done. If fetching a single player's stats takes 6 seconds (pretty typical), Procon is locked up for 6 seconds. If you make the setting be 3, that's 3 x 6 = 18 seconds that Procon is locked up.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

I wonder why Bad TAG Kicker is showing the ban properly in ProCon's Ban List tab when Bad NAME kicker is not.

Which method of banning are you using in each? Did you change one of them to use Code, or are they still both using Actions? Are the Actions or Code identical, apart from the message?

 

As for the code you show to have it send every 100 bans, I assume I could set it up now to a high number like this to not think about it again:

You are just adding server lag. Each one of those extra commands is a round-trip to the game server and all it does is return an error. You could go a couple 100 above your current max, but I wouldn't do more than that.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

I understand what you mean about keeping TB requests at 1 per instance. I'll leave it at one.

Thanks for explaining that to me.

 

 

Which method of banning are you using in each? Did you change one of them to use Code, or are they still both using Actions? Are the Actions or Code identical, apart from the message?

If I can help you figure out why TAG kicker automatically shows the ban in ProCon's Ban List (unlike NAME kicker), then adding the extra code to send every 100 bans won't be necessary and perhaps you could use this to solve the same issue for other limits in the future.

 

Here is exactly how I have NAME Kicker and TAG Kicker set up for the test to confirm both kickers work:

 

 

Code:

Bad NAME Kicker

Limit #3 - Bad NAME Kicker
limit_3_hide:  (Show)
limit_3_state:  Enabled
limit_3_name:  Bad NAME Kicker
limit_3_evaluation:  OnSpawn
limit_3_first_check:  Code
limit_3_first_check_code:  

/* Version 3 - Bad NAME Kicker modified by SDS */
// Always use @ before your string as shown in examples below
// For a prefix, start the string with ^ as in @"^CGXKZ_"
// For an infix (not prefix and not suffix), bracket the string with . as in @".hacker."
// For a suffix, end the string with $ as in @"_CGXKZ$"
// Case is sensitive, so if you need ^AA_ and ^Aa_ and ^aa_ you must do separate suspects.Add lines for each

/* Add your patterns to the following list */
List<String> suspects = new List<String>();
// suspects.Add(@"^CGXKZ_"); // an example case sensitive prefix for "CGXKZ_Name"
// suspects.Add(@".hacker."); // an example case sensitive infix for "XXXhackerXXX"
// suspects.Add(@"_CGXKZ$"); // an example case sensitive suffix for "Name_CGXKZ"
// suspects.Add(@"BestHackerAround"); // an example case sensitive full name for "BestHackerAround" 
// ... put more suspects.Add lines here:
suspects.Add(@"^IAF_");


foreach (String s in suspects) {
    if (Regex.Match(player.Name, s).Success) return true;
}
return false;


limit_3_second_check:  Disabled
limit_3_new_action:  ...
limit_3_action:  EABan | PRoConChat | PRoConEvent | Log

[3]     [ ----EABan Action----]
limit_3_ea_ban_type		EA_GUID
limit_3_ea_ban_duration		Permanent
limit_3_ea_ban_message		%p_fn% BAN for Persona Non Grata.

[3]     [ ----PRoConChat Action----]
limit_3_procon_chat_text		%p_fn% BANNED for Persona Non Grata.

[3]     [ ----PRoConEvent Action----]
limit_3_procon_event_text		Attempting to BAN %p_fn% for Persona Non Grata.
limit_3_procon_event_player	Insane Limits

[3]     [ ----Log Action----]
limit_3_log_destination		Plugin
limit_3_log_message		[%date% %time%] %p_fn% BANNED for Persona Non Grata.
Code:
Bad TAG Kicker

Limit #4 - Bad TAG Kicker

use_direct_fetch:  True
use_slow_weapon_stats:  False

limit_4_hide:  (Show)
limit_4_state:  Enabled
limit_4_name:  Bad TAG Kicker
limit_4_evaluation:  OnSpawn
limit_4_first_check:  Expression
limit_4_first_check_code:  (plugin.isInList(player.Tag, "badtags"))

limit_4_second_check:  Disabled
limit_4_new_action:  ...
limit_4_action:  EABan | PRoConChat | PRoConEvent | Log

[4]     [ ----EABan Action----]
limit_4_ea_ban_type		EA_GUID
limit_4_ea_ban_duration		Permanent
limit_4_ea_ban_message		%p_fn% BAN for Persona Non Grata.

[4]     [ ----PRoConChat Action----]
limit_4_procon_chat_text		%p_fn% BANNED for Persona Non Grata.

[4]     [ ----PRoConEvent Action----]
limit_4_procon_event_text		Attempting to BAN %p_fn% for Persona Non Grata.
limit_4_procon_event_player	Insane Limits

[4]     [ ----Log Action----]
limit_4_log_destination		Plugin
limit_4_log_message		[%date% %time%] %p_fn% BANNED for Persona Non Grata.



Add Bad TAGS in new "List #1 - badtags" with a comma separating each tag:

List #1 - badtags
list_1_hide:  (Show)
list_1_state:  Enabled
list_1_name:  badtags
list_1_comparison:  CaseInsensitive
list_1_data:  IAF
* Restored post. It could be that the author is no longer active.
Link to comment

Archived

This topic is now archived and is closed to further replies.



  • Our picks

    • Game Server Hosting:

      We're happy to announce that EZRCON will branch out into the game server provider scene. This is a big step for us so please having patience if something doesn't go right in this area. Now, what makes us different compared to other providers? Well, we're going with the idea of having a scaleable server hosting and providing more control in how you set up your server. For example, in Minecraft, you have the ability to control how many CPU cores you wish your server to have access to, how much RAM you want to use, how much disk space you want to use. This type of control can't be offered in a single service package so you're able to configure a custom package the way you want it.

      You can see all the available games here. Currently, we have the following games available.

      Valheim (From $1.50 USD)


      Rust (From $3.20 USD)


      Minecraft (Basic) (From $4.00 USD)


      Call of Duty 4X (From $7.00 USD)


      OpenTTD (From $4.00 USD)


      Squad (From $9.00 USD)


      Insurgency: Sandstorm (From $6.40 USD)


      Changes to US-East:

      Starting in January 2022, we will be moving to a different provider that has better support, better infrastructure, and better connectivity. We've noticed that the connection/routes to this location are not ideal and it's been hard getting support to correct this. Our contract for our two servers ends in March/April respectively. If you currently have servers in this location you will be migrated over to the new provider. We'll have more details when the time comes closer to January. The new location for this change will be based out of Atlanta, GA. If you have any questions/concerns please open a ticket and we'll do our best to answer them.
      • 5 replies
    • Hello All,

      I wanted to give an update to how EZRCON is doing. As of today we have 56 active customers using the services offered. I'm glad its doing so well and it hasn't been 1 year yet. To those that have services with EZRCON, I hope the service is doing well and if not please let us know so that we can improve it where possible. We've done quite a few changes behind the scenes to improve the performance hopefully. 

      We'll be launching a new location for hosting procon layers in either Los Angeles, USA or Chicago, IL. Still being decided on where the placement should be but these two locations are not set in stone yet. We would like to get feedback on where we should have a new location for hosting the Procon Layers, which you can do by replying to this topic. A poll will be created where people can vote on which location they would like to see.

      We're also looking for some suggestions on what else you would like to see for hosting provider options. So please let us know your thoughts on this matter.
      • 4 replies
    • Added ability to disable the new API check for player country info


      Updated GeoIP database file


      Removed usage sending stats


      Added EZRCON ad banner



      If you are upgrading then you may need to add these two lines to your existing installation in the file procon.cfg. To enable these options just change False to True.

      procon.private.options.UseGeoIpFileOnly False
      procon.private.options.BlockRssFeedNews False



       
      • 2 replies
    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 11 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 9 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.