Skip to content

Commit

Permalink
1.5.0 Beta: Added whitelist with config, country filter, and much more
Browse files Browse the repository at this point in the history
Also contains multiple small fixes and improvements.
This is a beta version. It was quickly tested, and WILL probably contain bugs.
Download the latest stable release if you're not ok with that.
  • Loading branch information
azalty committed Oct 5, 2021
1 parent 931d2b4 commit 57eb032
Show file tree
Hide file tree
Showing 4 changed files with 422 additions and 78 deletions.
96 changes: 96 additions & 0 deletions configs/no_dupe_account.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// This is a NDA (No Dupe Account) config file.
// Don't forget about the cvars config file located here: /csgo/cfg/sourcemod/no_dupe_account.cfg
// Double slashes '//' indicate everything after is a comment, and will not be read of by the game.
"no_dupe_account"
{
"Players" // Players whitelist
{
// Format:
// "SteamID2 (starting with STEAM_1)" "methods to disable, separated by ';'"
// "IP" "methods to disable, separated by ';'"
// "flag" "methods to disable, separated by ';'"
// "$country code" "methods to disable, separated by ';'"
//
// List of methods: (you can select them all with 'all')
// Other: vpn, country (check below)
// CSGO: csgo_level, csgo_playtime, prime, csgo_playtime, csgo_coin
// Steam: steam_level, steam_age, bans_vac, bans_game, bans_community, bans_total, bans_recent
//
// Examples:
// "STEAM_1:0:11101" "vpn;csgo_playtime;bans_vac;bans_game;bans_total" // prevents this user from being checked/verified by these methods
// "STEAM_1:0:11101" "all" // removes all verifications for this user (Example: don't do any verification on GabeN)
// "1.1.1.1" "vpn" // removes vpn method for this IP
// "a" "csgo_playtime" // removes the playtime check/requirement for every user that has the 'a' flag
// "cd" "vpn" // removes the vpn method for every user that has both 'c' and 'd' flags
// "z" "all" // removes all verifications for root users
// "$FR" "csgo_coin" // removes csgo_coin method for IPs located in France
// START ADDING YOUR PLAYERS HERE
}
"Countries" // Countries blacklist
{
// This config part uses GeoIP, bundled with SourceMod by default.
// To update GeoIP and have correct results, you can update SourceMod every month.
// Watch out: IP localization can be imprecise. I would not advise banning people.
// If your server only allows a specific language, it might be a good idea to block other countries.
// It's also a good idea to block countries that are only used by people with VPNs to circumvent bans.
//
// False-positive? You can whitelist some players/IPs using the 'Players' config part at the top of the file! Method name: 'country'.
//
// Format:
// "Country 2 letter code" (can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)
// {
// "time" "0" // -1 = kick | any positive integer = ban this amount of minutes | 0 = ban permanently
// "reason" "This country is blacklisted!" // the reason that will be used. Will be displayed to the user!
//
// "command" "sm_ban {userid} {time} {reason}" // OPTIONAL! Allows you to use different commands, this way we support pretty much any banning/kicking system.
// // supported variables (optional, you can manually write your command yourself):
// // {userid} = client userid with # before (ex: #103)
// // {steamid} = client SteamID2, starting with STEAM_1 (ex: "STEAM_1:1:57298004")
// // {time} = what you entered in 'time'.
// // {reason} = what you entered in 'reason'. Avoids any problem with the double quotes character. (Ex: "This country is blacklisted!")
// // If double quotes aren't supported (like for the default sm_ban command, enter "command" yourself.)
//
// // So "command" "sm_ban {userid} 1440 This country is blacklisted!" will also work! (in case your plugin allows reasons that aren't entered within double quotes)
// // -> "command" "sm_ban {steamid} {time} {reason}" will send: sm_ban "STEAM_1:1:57298004" 0 "This country is blacklisted!"
//
// // "command" is also supported for kicking, although not recommended, and works the exact same way, except {time} variable doesn't work.
// // Not specifying any command with "time" "-1" will use the built-in kicking method which allows longer reasons and doesn't trigger double quote bug.
// // Specifying "time" isn't required.
// }
//
// If no country is found for an IP, the country code will be "XX".
//
// Examples:
// "FR" // block French people
// {
// "time" "1440" // ban them for a day
// "reason" "French people are not allowed on this server"
// }
// "US" // block United States people
// {
// "time" "-1" // This is optional, since we specify the command ourselves
// "reason" "United States people are not allowed on this server"
// }
// "DE" // block German people
// {
// "time" "30" // ban them for 30 mins
// "reason" "Sorry, but your country is not allowed on this server"
// "command" "sm_tempban {time} {steamid} {reason}" // invented command for the example
// }
// "XX" // block IPs that have no country assigned to it (outdated GeoIP table, but is common for VPNs)
// {
// "time" "-1" // This is optional, since we specify the command ourselves
// "reason" "Unable to verify your country. Please make sure you dont use a VPN, else, contact the admins"
// }
// If whitelist is enabled: time, reason and command will have to be entered on this level, not inside a contry 2 letter code.
"whitelist" "0" // If set to 1, this becomes a whitelist instead of a blacklist (meaning only the countries that are specified here can connect).
// START ADDING YOUR COUNTRIES HERE
}
}
Binary file modified plugins/no_dupe_account.smx
Binary file not shown.
Binary file removed scripting/no_dupe_account.smx
Binary file not shown.
Loading

0 comments on commit 57eb032

Please sign in to comment.