#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
8eae46895e
7512 changed files with 416187 additions and 0 deletions
207
Scripts/Misc/NameVerification.cs
Normal file
207
Scripts/Misc/NameVerification.cs
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Commands;
|
||||
|
||||
namespace Server.Misc
|
||||
{
|
||||
public class NameVerification
|
||||
{
|
||||
public static readonly char[] SpaceDashPeriodQuote = new char[]
|
||||
{
|
||||
' ', '-', '.', '\''
|
||||
};
|
||||
|
||||
public static readonly char[] Empty = new char[0];
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
CommandSystem.Register( "ValidateName", AccessLevel.Administrator, new CommandEventHandler( ValidateName_OnCommand ) );
|
||||
}
|
||||
|
||||
[Usage( "ValidateName" )]
|
||||
[Description( "Checks the result of NameValidation on the specified name." )]
|
||||
public static void ValidateName_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
if ( Validate( e.ArgString, 2, 16, true, false, true, 1, SpaceDashPeriodQuote ) )
|
||||
e.Mobile.SendMessage( 0x59, "That name is considered valid." );
|
||||
else
|
||||
e.Mobile.SendMessage( 0x22, "That name is considered invalid." );
|
||||
}
|
||||
|
||||
public static bool Validate( string name, int minLength, int maxLength, bool allowLetters, bool allowDigits, bool noExceptionsAtStart, int maxExceptions, char[] exceptions )
|
||||
{
|
||||
return Validate( name, minLength, maxLength, allowLetters, allowDigits, noExceptionsAtStart, maxExceptions, exceptions, m_Disallowed, m_StartDisallowed );
|
||||
}
|
||||
|
||||
public static bool Validate( string name, int minLength, int maxLength, bool allowLetters, bool allowDigits, bool noExceptionsAtStart, int maxExceptions, char[] exceptions, string[] disallowed, string[] startDisallowed )
|
||||
{
|
||||
if ( name == null || name.Length < minLength || name.Length > maxLength )
|
||||
return false;
|
||||
|
||||
int exceptCount = 0;
|
||||
|
||||
name = name.ToLower();
|
||||
|
||||
if ( !allowLetters || !allowDigits || (exceptions.Length > 0 && (noExceptionsAtStart || maxExceptions < int.MaxValue)) )
|
||||
{
|
||||
for ( int i = 0; i < name.Length; ++i )
|
||||
{
|
||||
char c = name[i];
|
||||
|
||||
if ( c >= 'a' && c <= 'z' )
|
||||
{
|
||||
if ( !allowLetters )
|
||||
return false;
|
||||
|
||||
exceptCount = 0;
|
||||
}
|
||||
else if ( c >= '0' && c <= '9' )
|
||||
{
|
||||
if ( !allowDigits )
|
||||
return false;
|
||||
|
||||
exceptCount = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool except = false;
|
||||
|
||||
for ( int j = 0; !except && j < exceptions.Length; ++j )
|
||||
if ( c == exceptions[j] )
|
||||
except = true;
|
||||
|
||||
if ( !except || (i == 0 && noExceptionsAtStart) )
|
||||
return false;
|
||||
|
||||
if ( exceptCount++ == maxExceptions )
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ( int i = 0; i < disallowed.Length; ++i )
|
||||
{
|
||||
int indexOf = name.IndexOf( disallowed[i] );
|
||||
|
||||
if ( indexOf == -1 )
|
||||
continue;
|
||||
|
||||
bool badPrefix = ( indexOf == 0 );
|
||||
|
||||
for ( int j = 0; !badPrefix && j < exceptions.Length; ++j )
|
||||
badPrefix = ( name[indexOf - 1] == exceptions[j] );
|
||||
|
||||
if ( !badPrefix )
|
||||
continue;
|
||||
|
||||
bool badSuffix = ( (indexOf + disallowed[i].Length) >= name.Length );
|
||||
|
||||
for ( int j = 0; !badSuffix && j < exceptions.Length; ++j )
|
||||
badSuffix = ( name[indexOf + disallowed[i].Length] == exceptions[j] );
|
||||
|
||||
if ( badSuffix )
|
||||
return false;
|
||||
}
|
||||
|
||||
for ( int i = 0; i < startDisallowed.Length; ++i )
|
||||
{
|
||||
if ( name.StartsWith( startDisallowed[i] ) )
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static string[] StartDisallowed { get { return m_StartDisallowed; } }
|
||||
public static string[] Disallowed { get { return m_Disallowed; } }
|
||||
|
||||
private static string[] m_StartDisallowed = new string[]
|
||||
{
|
||||
"seer",
|
||||
"counselor",
|
||||
"gm",
|
||||
"admin",
|
||||
"lady",
|
||||
"lord"
|
||||
};
|
||||
|
||||
private static string[] m_Disallowed = new string[]
|
||||
{
|
||||
"jigaboo",
|
||||
"chigaboo",
|
||||
"wop",
|
||||
"kyke",
|
||||
"kike",
|
||||
"tit",
|
||||
"spic",
|
||||
"prick",
|
||||
"piss",
|
||||
"lezbo",
|
||||
"lesbo",
|
||||
"felatio",
|
||||
"dyke",
|
||||
"dildo",
|
||||
"chinc",
|
||||
"chink",
|
||||
"cunnilingus",
|
||||
"cum",
|
||||
"cocksucker",
|
||||
"cock",
|
||||
"clitoris",
|
||||
"clit",
|
||||
"ass",
|
||||
"hitler",
|
||||
"penis",
|
||||
"nigga",
|
||||
"nigger",
|
||||
"klit",
|
||||
"kunt",
|
||||
"jiz",
|
||||
"jism",
|
||||
"jerkoff",
|
||||
"jackoff",
|
||||
"goddamn",
|
||||
"fag",
|
||||
"blowjob",
|
||||
"bitch",
|
||||
"asshole",
|
||||
"dick",
|
||||
"pussy",
|
||||
"snatch",
|
||||
"cunt",
|
||||
"twat",
|
||||
"shit",
|
||||
"fuck",
|
||||
"tailor",
|
||||
"smith",
|
||||
"scholar",
|
||||
"rogue",
|
||||
"novice",
|
||||
"neophyte",
|
||||
"merchant",
|
||||
"medium",
|
||||
"master",
|
||||
"mage",
|
||||
"lb",
|
||||
"journeyman",
|
||||
"grandmaster",
|
||||
"fisherman",
|
||||
"expert",
|
||||
"chef",
|
||||
"carpenter",
|
||||
"british",
|
||||
"blackthorne",
|
||||
"blackthorn",
|
||||
"beggar",
|
||||
"archer",
|
||||
"apprentice",
|
||||
"adept",
|
||||
"gamemaster",
|
||||
"frozen",
|
||||
"squelched",
|
||||
"invulnerable",
|
||||
"osi",
|
||||
"origin"
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue