本文整理汇总了C#中fCraft.PlayerInfo.GuessRankChangeType方法的典型用法代码示例。如果您正苦于以下问题:C# PlayerInfo.GuessRankChangeType方法的具体用法?C# PlayerInfo.GuessRankChangeType怎么用?C# PlayerInfo.GuessRankChangeType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fCraft.PlayerInfo
的用法示例。
在下文中一共展示了PlayerInfo.GuessRankChangeType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadOldFormat
internal static PlayerInfo LoadOldFormat( string[] fields, bool convertDatesToUtc ) {
PlayerInfo info = new PlayerInfo { Name = fields[0] };
if( fields[1].Length == 0 || !IPAddress.TryParse( fields[1], out info.LastIP ) ) { // LEGACY
info.LastIP = IPAddress.None;
}
info.Rank = RankManager.ParseRank( fields[2] ) ?? RankManager.DefaultRank;
DateTimeUtil.TryParseLocalDate( fields[3], out info.RankChangeDate );
info.RankChangedBy = fields[4];
if( info.RankChangedBy == "-" ) info.RankChangedBy = "";
info.Banned = (fields[5] == "b");
// ban information
if( DateTimeUtil.TryParseLocalDate( fields[6], out info.BanDate ) ) {
info.BannedBy = fields[7];
info.BanReason = UnescapeOldFormat( fields[10] );
if( info.BanReason == "-" ) info.BanReason = "";
}
// unban information
if( DateTimeUtil.TryParseLocalDate( fields[8], out info.UnbanDate ) ) {
info.UnbannedBy = fields[9];
info.UnbanReason = UnescapeOldFormat( fields[11] );
if( info.UnbanReason == "-" ) info.UnbanReason = "";
}
// failed logins
if( fields[12].Length > 1 ) {
DateTimeUtil.TryParseLocalDate( fields[12], out info.LastFailedLoginDate );
}
if( fields[13].Length > 1 || !IPAddress.TryParse( fields[13], out info.LastFailedLoginIP ) ) { // LEGACY
info.LastFailedLoginIP = IPAddress.None;
}
if( fields[14].Length > 0 ) info.FailedLoginCount = Int32.Parse( fields[14] );
// login/logout times
DateTimeUtil.TryParseLocalDate( fields[15], out info.FirstLoginDate );
DateTimeUtil.TryParseLocalDate( fields[16], out info.LastLoginDate );
TimeSpan.TryParse( fields[17], out info.TotalTime );
// stats
if( fields[18].Length > 0 ) Int32.TryParse( fields[18], out info.BlocksBuilt );
if( fields[19].Length > 0 ) Int32.TryParse( fields[19], out info.BlocksDeleted );
Int32.TryParse( fields[20], out info.TimesVisited );
if( fields[20].Length > 0 ) Int32.TryParse( fields[21], out info.LinesWritten );
// fields 22-23 are no longer in use
if( fields.Length > MinFieldCount ) {
if( fields[24].Length > 0 ) info.PreviousRank = RankManager.ParseRank( fields[24] );
if( fields[25].Length > 0 ) info.RankChangeReason = UnescapeOldFormat( fields[25] );
Int32.TryParse( fields[26], out info.TimesKicked );
Int32.TryParse( fields[27], out info.TimesKickedOthers );
Int32.TryParse( fields[28], out info.TimesBannedOthers );
if( fields.Length > 29 ) {
info.ID = Int32.Parse( fields[29] );
if( info.ID < 256 )
info.ID = PlayerDB.GetNextID();
int rankChangeTypeCode;
if( Int32.TryParse( fields[30], out rankChangeTypeCode ) ) {
info.RankChangeType = (RankChangeType)rankChangeTypeCode;
if( !Enum.IsDefined( typeof( RankChangeType ), rankChangeTypeCode ) ) {
info.GuessRankChangeType();
}
} else {
info.GuessRankChangeType();
}
DateTimeUtil.TryParseLocalDate( fields[31], out info.LastKickDate );
if( !DateTimeUtil.TryParseLocalDate( fields[32], out info.LastSeen ) || info.LastSeen < info.LastLoginDate ) {
info.LastSeen = info.LastLoginDate;
}
Int64.TryParse( fields[33], out info.BlocksDrawn );
info.LastKickBy = fields[34];
info.LastKickReason = UnescapeOldFormat( fields[35] );
} else {
info.ID = PlayerDB.GetNextID();
info.GuessRankChangeType();
info.LastSeen = info.LastLoginDate;
}
if( fields.Length > 36 ) {
DateTimeUtil.TryParseLocalDate( fields[36], out info.BannedUntil );
info.IsFrozen = (fields[37] == "f");
info.FrozenBy = UnescapeOldFormat( fields[38] );
DateTimeUtil.TryParseLocalDate( fields[39], out info.FrozenOn );
DateTimeUtil.TryParseLocalDate( fields[40], out info.MutedUntil );
info.MutedBy = UnescapeOldFormat( fields[41] );
info.Password = UnescapeOldFormat( fields[42] );
// fields[43] is "online", and is ignored
}
if( fields.Length > 44 ) {
if( fields[44].Length != 0 ) {
info.BandwidthUseMode = (BandwidthUseMode)Int32.Parse( fields[44] );
}
}
}
//.........这里部分代码省略.........
示例2: Load
internal static PlayerInfo Load( string[] fields ) {
PlayerInfo info = new PlayerInfo { Name = fields[0] };
if( fields[1].Length == 0 || !IPAddress.TryParse( fields[1], out info.LastIP ) ) { // LEGACY
info.LastIP = IPAddress.None;
}
info.Rank = RankManager.ParseRank( fields[2] ) ?? RankManager.DefaultRank;
fields[3].ToDateTime( ref info.RankChangeDate );
info.RankChangedBy = fields[4];
info.Banned = (fields[5] == "b");
// ban information
if( fields[6].ToDateTime( ref info.BanDate ) ) {
info.BannedBy = Unescape( fields[7] );
info.BanReason = Unescape( fields[10] );
}
// unban information
if( fields[8].ToDateTime( ref info.UnbanDate ) ) {
info.UnbannedBy = Unescape( fields[9] );
info.UnbanReason = Unescape( fields[11] );
}
// failed logins
fields[12].ToDateTime( ref info.LastFailedLoginDate );
if( fields[13].Length > 1 || !IPAddress.TryParse( fields[13], out info.LastFailedLoginIP ) ) { // LEGACY
info.LastFailedLoginIP = IPAddress.None;
}
if( fields[14].Length > 0 ) info.FailedLoginCount = Int32.Parse( fields[14] );
fields[15].ToDateTime( ref info.FirstLoginDate );
// login/logout times
fields[16].ToDateTime( ref info.LastLoginDate );
fields[17].ToTimeSpan( ref info.TotalTime );
// stats
if( fields[18].Length > 0 ) Int32.TryParse( fields[18], out info.BlocksBuilt );
if( fields[19].Length > 0 ) Int32.TryParse( fields[19], out info.BlocksDeleted );
Int32.TryParse( fields[20], out info.TimesVisited );
if( fields[20].Length > 0 ) Int32.TryParse( fields[21], out info.LinesWritten );
// fields 22-23 are no longer in use
if( fields[24].Length > 0 ) info.PreviousRank = RankManager.ParseRank( fields[24] );
if( fields[25].Length > 0 ) info.RankChangeReason = Unescape( fields[25] );
Int32.TryParse( fields[26], out info.TimesKicked );
Int32.TryParse( fields[27], out info.TimesKickedOthers );
Int32.TryParse( fields[28], out info.TimesBannedOthers );
info.ID = Int32.Parse( fields[29] );
if( info.ID < 256 )
info.ID = PlayerDB.GetNextID();
int rankChangeTypeCode;
if( Int32.TryParse( fields[30], out rankChangeTypeCode ) ) {
info.RankChangeType = (RankChangeType)rankChangeTypeCode;
if( !Enum.IsDefined( typeof( RankChangeType ), rankChangeTypeCode ) ) {
info.GuessRankChangeType();
}
} else {
info.GuessRankChangeType();
}
fields[31].ToDateTime( ref info.LastKickDate );
if( !fields[32].ToDateTime( ref info.LastSeen ) || info.LastSeen < info.LastLoginDate ) {
info.LastSeen = info.LastLoginDate;
}
Int64.TryParse( fields[33], out info.BlocksDrawn );
info.LastKickBy = Unescape( fields[34] );
info.LastKickReason = Unescape( fields[35] );
fields[36].ToDateTime( ref info.BannedUntil );
info.IsFrozen = (fields[37] == "f");
info.FrozenBy = Unescape( fields[38] );
fields[39].ToDateTime( ref info.FrozenOn );
fields[40].ToDateTime( ref info.MutedUntil );
info.MutedBy = Unescape( fields[41] );
info.Password = Unescape( fields[42] );
// fields[43] is "online", and is ignored
int bandwidthUseModeCode;
if( Int32.TryParse( fields[44], out bandwidthUseModeCode ) ) {
info.BandwidthUseMode = (BandwidthUseMode)bandwidthUseModeCode;
if( !Enum.IsDefined( typeof( BandwidthUseMode ), bandwidthUseModeCode ) ) {
info.BandwidthUseMode = BandwidthUseMode.Default;
}
} else {
info.BandwidthUseMode = BandwidthUseMode.Default;
}
if( info.LastSeen < info.FirstLoginDate ) {
info.LastSeen = info.FirstLoginDate;
}
if( info.LastLoginDate < info.FirstLoginDate ) {
info.LastLoginDate = info.FirstLoginDate;
}
//.........这里部分代码省略.........