本文整理汇总了C#中fCraft.Player.NoRankMessage方法的典型用法代码示例。如果您正苦于以下问题:C# Player.NoRankMessage方法的具体用法?C# Player.NoRankMessage怎么用?C# Player.NoRankMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fCraft.Player
的用法示例。
在下文中一共展示了Player.NoRankMessage方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ZoneAdd
internal static void ZoneAdd( Player player, Command cmd ) {
string zoneName = cmd.Next();
if( zoneName == null ) {
cdZoneAdd.PrintUsage( player );
return;
}
Zone zone = new Zone();
if( zoneName.StartsWith( "+" ) ) {
PlayerInfo info;
if( !PlayerDB.FindPlayerInfo( zoneName.Substring( 1 ), out info ) ) {
player.Message( "More than one player found matching \"{0}\"", zoneName.Substring( 1 ) );
return;
}
if( info == null ) {
player.NoPlayerMessage( zoneName.Substring( 1 ) );
return;
}
zone.Name = info.Name;
zone.Controller.MinRank = info.Rank.NextRankUp ?? info.Rank;
zone.Controller.Include( info );
player.Message( "Zone: Creating a {0}+&S zone for player {1}&S. Place a block or type /mark to use your location.",
zone.Controller.MinRank.GetClassyName(), info.GetClassyName() );
player.SetCallback( 2, ZoneAddCallback, zone, cdZoneAdd.Permissions );
} else {
if( !World.IsValidName( zoneName ) ) {
player.Message( "\"{0}\" is not a valid zone name", zoneName );
return;
}
if( player.World.Map.FindZone( zoneName ) != null ) {
player.Message( "A zone with this name already exists. Use &H/zedit&S to edit." );
return;
}
zone.Name = zoneName;
string rankName = cmd.Next();
if( rankName == null ) {
player.Message( "No rank was specified. See &H/help zone" );
return;
}
Rank minRank = RankManager.ParseRank( rankName );
if( minRank != null ) {
string name;
while( (name = cmd.Next()) != null ) {
if( name.Length == 0 ) continue;
PlayerInfo info;
if( !PlayerDB.FindPlayerInfo( name.Substring( 1 ), out info ) ) {
player.Message( "More than one player found matching \"{0}\"", name.Substring( 1 ) );
return;
}
if( info == null ) {
player.NoPlayerMessage( name.Substring( 1 ) );
return;
}
if( name.StartsWith( "+" ) ) {
zone.Controller.Include( info );
} else if( name.StartsWith( "-" ) ) {
zone.Controller.Exclude( info );
}
}
zone.Controller.MinRank = minRank;
player.SetCallback( 2, ZoneAddCallback, zone, cdZoneAdd.Permissions );
player.Message( "Zone: Place a block or type /mark to use your location." );
} else {
player.NoRankMessage( rankName );
}
}
}
示例2: ZoneEdit
//.........这里部分代码省略.........
if( name.Length < 2 ) continue;
if( name.StartsWith( "+" ) ) {
PlayerInfo info;
if( !PlayerDB.FindPlayerInfo( name.Substring( 1 ), out info ) ) {
player.Message( "More than one player found matching \"{0}\"", name.Substring( 1 ) );
return;
}
if( info == null ) {
player.NoPlayerMessage( name.Substring( 1 ) );
return;
}
// prevent players from whitelisting themselves to bypass protection
if( !player.Info.Rank.AllowSecurityCircumvention && player.Info == info ) {
if( !zone.Controller.Check( info ) ) {
player.Message( "You must be {0}+&S to add yourself to this zone's whitelist.",
zone.Controller.MinRank.GetClassyName() );
continue;
}
}
switch( zone.Controller.Include( info ) ) {
case PermissionOverride.Deny:
player.Message( "{0}&S is no longer excluded from zone {1}",
info.GetClassyName(), zone.GetClassyName() );
changesWereMade = true;
break;
case PermissionOverride.None:
player.Message( "{0}&S is now included in zone {1}",
info.GetClassyName(), zone.GetClassyName() );
changesWereMade = true;
break;
case PermissionOverride.Allow:
player.Message( "{0}&S is already included in zone {1}",
info.GetClassyName(), zone.GetClassyName() );
break;
}
} else if( name.StartsWith( "-" ) ) {
PlayerInfo info;
if( !PlayerDB.FindPlayerInfo( name.Substring( 1 ), out info ) ) {
player.Message( "More than one player found matching \"{0}\"", name.Substring( 1 ) );
return;
}
if( info == null ) {
player.NoPlayerMessage( name.Substring( 1 ) );
return;
}
switch( zone.Controller.Exclude( info ) ) {
case PermissionOverride.Deny:
player.Message( "{0}&S is already excluded from zone {1}",
info.GetClassyName(), zone.GetClassyName() );
break;
case PermissionOverride.None:
player.Message( "{0}&S is now excluded from zone {1}",
info.GetClassyName(), zone.GetClassyName() );
changesWereMade = true;
break;
case PermissionOverride.Allow:
player.Message( "{0}&S is no longer included in zone {1}",
info.GetClassyName(), zone.GetClassyName() );
changesWereMade = true;
break;
}
} else {
Rank minRank = RankManager.ParseRank( name );
if( minRank != null ) {
// prevent players from lowering rank so bypass protection
if( !player.Info.Rank.AllowSecurityCircumvention &&
zone.Controller.MinRank > player.Info.Rank && minRank <= player.Info.Rank ) {
player.Message( "You are not allowed to lower the zone's rank." );
continue;
}
if( zone.Controller.MinRank != minRank ) {
zone.Controller.MinRank = minRank;
player.Message( "Permission for zone \"{0}\" changed to {1}+",
zone.Name,
minRank.GetClassyName() );
changesWereMade = true;
}
} else {
player.NoRankMessage( name );
}
}
if( changesWereMade ) {
zone.Edit( player.Info );
player.World.Map.ChangedSinceSave = true;
} else {
player.Message( "No changes were made to the zone." );
}
}
}
示例3: WorldBuild
//.........这里部分代码省略.........
if( world.BuildSecurity.CheckDetailed( info ) == SecurityCheckResult.RankTooHigh ||
world.BuildSecurity.CheckDetailed( info ) == SecurityCheckResult.RankTooLow ) {
player.Message( "{0}&S is already barred from building in {1}&S (by rank)",
info.GetClassyName(), world.GetClassyName() );
continue;
}
Player target = Server.FindPlayerExact( info );
if( target == player ) target = null; // to avoid duplicate messages
switch( world.BuildSecurity.Exclude( info ) ) {
case PermissionOverride.Deny:
player.Message( "{0}&S is already on build blacklist of {1}",
info.GetClassyName(), world.GetClassyName() );
break;
case PermissionOverride.None:
player.Message( "{0}&S is now barred from building in {1}",
info.GetClassyName(), world.GetClassyName() );
if( target != null ) {
target.Message( "&WYou were barred by {0}&W from building in world {1}",
player.GetClassyName(), world.GetClassyName() );
}
Logger.Log( "{0} added {1} to the build blacklist on world {2}", LogType.UserActivity,
player.Name, info.Name, world.Name );
changesWereMade = true;
break;
case PermissionOverride.Allow:
if( world.BuildSecurity.Check( info ) ) {
player.Message( "{0}&S is no longer on the build whitelist of {1}&S. " +
"Player is still allowed to build (by rank).",
info.GetClassyName(), world.GetClassyName() );
if( target != null ) {
target.Message( "You were removed from the build whitelist of world {0}&S by {1}&S. " +
"You are still allowed to build (by rank).",
player.GetClassyName(), world.GetClassyName() );
}
} else {
player.Message( "{0}&S is no longer allowed to build in {1}",
info.GetClassyName(), world.GetClassyName() );
if( target != null ) {
target.Message( "&WYou can no longer build in world {0}&W (removed from whitelist by {1}&W).",
world.GetClassyName(), player.GetClassyName() );
}
}
Logger.Log( "{0} removed {1} from the build whitelist on world {2}", LogType.UserActivity,
player.Name, info.Name, world.Name );
changesWereMade = true;
break;
}
// Setting minimum rank
} else {
Rank rank = RankManager.FindRank( name );
if( rank == null ) {
player.NoRankMessage( name );
} else if( !player.Info.Rank.AllowSecurityCircumvention &&
world.BuildSecurity.MinRank > rank &&
world.BuildSecurity.MinRank > player.Info.Rank ) {
player.Message( "&WYou must be ranked {0}&W+ to lower build restrictions for world {1}",
world.BuildSecurity.MinRank.GetClassyName(), world.GetClassyName() );
} else {
// list players who are redundantly blacklisted
SecurityController.PlayerListCollection lists = world.BuildSecurity.ExceptionList;
PlayerInfo[] noLongerExcluded = lists.Excluded.Where( excludedPlayer => excludedPlayer.Rank < rank ).ToArray();
if( noLongerExcluded.Length > 0 ) {
player.Message( "Following players no longer need to be blacklisted on world {0}&S: {1}",
world.GetClassyName(),
noLongerExcluded.JoinToClassyString() );
}
// list players who are redundantly whitelisted
PlayerInfo[] noLongerIncluded = lists.Included.Where( includedPlayer => includedPlayer.Rank >= rank ).ToArray();
if( noLongerIncluded.Length > 0 ) {
player.Message( "Following players no longer need to be whitelisted on world {0}&S: {1}",
world.GetClassyName(),
noLongerIncluded.JoinToClassyString() );
}
// apply changes
world.BuildSecurity.MinRank = rank;
changesWereMade = true;
if( world.BuildSecurity.MinRank == RankManager.LowestRank ) {
Server.SendToAll( "{0}&S allowed anyone to build on world {1}",
player.GetClassyName(), world.GetClassyName() );
} else {
Server.SendToAll( "{0}&S allowed only {1}+&S to build in world {2}",
player.GetClassyName(), world.BuildSecurity.MinRank.GetClassyName(), world.GetClassyName() );
}
Logger.Log( "{0} set build rank for world {1} to {2}+", LogType.UserActivity,
player.Name, world.Name, world.BuildSecurity.MinRank.Name );
}
}
} while( (name = cmd.Next()) != null );
if( changesWereMade ) {
WorldManager.SaveWorldList();
}
}
示例4: ImportRanks
static void ImportRanks( Player player, Command cmd ) {
string serverName = cmd.Next();
string fileName = cmd.Next();
string rankName = cmd.Next();
bool silent = (cmd.Next() != null);
// Make sure all parameters are specified
if( rankName == null ) {
cdImportRanks.PrintUsage( player );
return;
}
// Check if file exists
if( !File.Exists( fileName ) ) {
player.Message( "File not found: {0}", fileName );
return;
}
Rank targetRank = RankManager.ParseRank( rankName );
if( targetRank == null ) {
player.NoRankMessage( rankName );
return;
}
string[] names;
switch( serverName.ToLower() ) {
case "mcsharp":
case "mczall":
case "mclawl":
try {
names = File.ReadAllLines( fileName );
} catch( Exception ex ) {
Logger.Log( "Could not open \"{0}\" to import ranks: {1}", LogType.Error,
fileName,
ex );
return;
}
break;
default:
player.Message( "fCraft does not support importing from {0}", serverName );
return;
}
if( !cmd.IsConfirmed ) {
player.AskForConfirmation( cmd, "You are about to import {0} player ranks.", names.Length );
return;
}
string reason = "(import from " + serverName + ")";
foreach( string name in names ) {
PlayerInfo info = PlayerDB.FindPlayerInfoExact( name ) ??
PlayerDB.AddFakeEntry( name, RankChangeType.Promoted );
ModerationCommands.DoChangeRank( player, info, targetRank, reason, silent, false );
}
PlayerDB.Save();
}
示例5: SetInfo
internal static void SetInfo( Player player, Command cmd ) {
string targetName = cmd.Next();
string propertyName = cmd.Next();
string valName = cmd.NextAll();
if( targetName == null || propertyName == null ) {
cdSetInfo.PrintUsage( player );
return;
}
PlayerInfo info;
if( !PlayerDB.FindPlayerInfo( targetName, out info ) ) {
player.Message( "More than one player found matching \"{0}\"", targetName );
} else if( info == null ) {
player.NoPlayerMessage( targetName );
} else {
switch( propertyName.ToLower() ) {
case "timeskicked":
int oldTimesKicked = info.TimesKicked;
if( ValidateInt( valName, 0, 1000 ) ) {
info.TimesKicked = Int32.Parse( valName );
player.Message( "TimesKicked for {0}&S changed from {1} to {2}",
info.GetClassyName(),
oldTimesKicked,
info.TimesKicked );
} else {
player.Message( "Value not in valid range (0...1000)" );
}
return;
case "previousrank":
Rank newPreviousRank = RankManager.ParseRank( valName );
Rank oldPreviousRank = info.PreviousRank;
if( newPreviousRank != null ) {
info.PreviousRank = newPreviousRank;
player.Message( "PreviousRank for {0}&S changed from {1}&S to {2}",
info.GetClassyName(),
oldPreviousRank.GetClassyName(),
info.PreviousRank.GetClassyName() );
} else {
player.NoRankMessage( valName );
}
return;
case "totaltime":
TimeSpan newTotalTime;
TimeSpan oldTotalTime = info.TotalTime;
if( TimeSpan.TryParse( valName, out newTotalTime ) ) {
info.TotalTime = newTotalTime;
player.Message( "TotalTime for {0}&S changed from {1} to {2}",
info.GetClassyName(),
oldTotalTime.ToCompactString(),
info.TotalTime.ToCompactString() );
} else {
player.Message( "Could not parse time. Expected format: Days.HH:MM:SS" );
}
return;
case "rankchangetype":
RankChangeType oldType = info.RankChangeType;
foreach( string val in Enum.GetNames( typeof( RankChangeType ) ) ) {
if( val.Equals( valName, StringComparison.OrdinalIgnoreCase ) ) {
info.RankChangeType = (RankChangeType)Enum.Parse( typeof( RankChangeType ), valName, true );
player.Message( "RankChangeType for {0}&S changed from {1} to {2}",
info.GetClassyName(),
oldType,
info.RankChangeType );
return;
}
}
player.Message( "Could not parse RankChangeType. Allowed values: {0}",
String.Join( ", ", Enum.GetNames( typeof( RankChangeType ) ) ) );
return;
case "banreason":
string oldBanReason = info.BanReason;
info.BanReason = valName;
player.Message( "BanReason for {0}&S changed from \"{1}\" to \"{2}\"",
info.GetClassyName(),
oldBanReason,
info.BanReason );
return;
case "unbanreason":
string oldUnbanReason = info.UnbanReason;
info.UnbanReason = valName;
player.Message( "UnbanReason for {0}&S changed from \"{1}\" to \"{2}\"",
info.GetClassyName(),
oldUnbanReason,
info.UnbanReason );
return;
case "rankchangereason":
string oldRankChangeReason = info.RankChangeReason;
info.RankChangeReason = valName;
player.Message( "RankChangeReason for {0}&S changed from \"{1}\" to \"{2}\"",
info.GetClassyName(),
oldRankChangeReason,
info.RankChangeReason );
return;
//.........这里部分代码省略.........
示例6: MassRank
internal static void MassRank( Player player, Command cmd ) {
string fromRankName = cmd.Next();
string toRankName = cmd.Next();
bool silent = (cmd.Next() != null);
if( toRankName == null ) {
cdMassRank.PrintUsage( player );
return;
}
Rank fromRank = RankManager.ParseRank( fromRankName );
if( fromRank == null ) {
player.NoRankMessage( fromRankName );
return;
}
Rank toRank = RankManager.ParseRank( toRankName );
if( toRank == null ) {
player.NoRankMessage( toRankName );
return;
}
if( fromRank == toRank ) {
player.Message( "Ranks must be different" );
return;
}
int playerCount = PlayerDB.CountPlayersByRank( fromRank );
string verb = (fromRank > toRank ? "demot" : "promot");
if( !cmd.IsConfirmed ) {
player.AskForConfirmation( cmd, "About to {0}e {1} players.", verb, playerCount );
return;
}
player.Message( "MassRank: {0}ing {1} players...",
verb, playerCount );
int affected = PlayerDB.MassRankChange( player, fromRank, toRank, silent );
player.Message( "MassRank: done.", affected );
}
示例7: AutoRankAll
internal static void AutoRankAll( Player player, Command cmd ) {
bool silent = (cmd.Next() != null);
string rankName = cmd.Next();
Rank rank = null;
if( rankName != null ) {
rank = RankManager.ParseRank( rankName );
if( rank == null ) {
player.NoRankMessage( rankName );
return;
}
}
PlayerInfo[] list;
if( rank == null ) {
list = PlayerDB.GetPlayerListCopy();
} else {
list = PlayerDB.GetPlayerListCopy( rank );
}
DoAutoRankAll( player, list, silent, "~AutoRankAll" );
}