No such player or name exsists

players cant kick member when he is offline

Kick him from where, already offline ?.

from the clan

I also encountered this problem and hope to solve it

Go into the code and replace 

  private BasePlayer findPlayerByPartialName(string name)
{
if (string.IsNullOrEmpty(name))
return null;
BasePlayer player = null;
name = name.ToLower();
var allPlayers = BasePlayer.activePlayerList.ToArray();

foreach (var p in allPlayers) {
if (p.displayName == name) {
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayers) {
if (p.displayName.ToLower().IndexOf(name) >= 0) {
if (player != null)
return null; // Not unique
player = p;
}
}
return player;
}

section with 

private BasePlayer findPlayerByPartialName(string name)
{
if (string.IsNullOrEmpty(name))
return null;
BasePlayer player = null;
name = name.ToLower();
var allPlayers = BasePlayer.activePlayerList.ToArray();
var allPlayersOffline = BasePlayer.sleepingPlayerList.ToArray();

foreach (var p in allPlayersOffline)
{
if (p.displayName == name)
{
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayersOffline)
{
if (p.displayName.ToLower().IndexOf(name) >= 0)
{
if (player != null)
return null; // Not unique
player = p;
}
}

foreach (var p in allPlayers)
{
if (p.displayName == name)
{
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayers)
{
if (p.displayName.ToLower().IndexOf(name) >= 0)
{
if (player != null)
return null; // Not unique
player = p;
}
}

}

The problem it has, is when you call to kick a player, instead of checking everyone (sleepers included), it just check the active online players. I added a code that checks for both online and offline players!

 



Merged post

Go into the code and replace 

private BasePlayer findPlayerByPartialName(string name)
{
if (string.IsNullOrEmpty(name))
return null;
BasePlayer player = null;
name = name.ToLower();
var allPlayers = BasePlayer.activePlayerList.ToArray();

foreach (var p in allPlayers)
{
if (p.displayName == name)
{
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayers)
{
if (p.displayName.ToLower().IndexOf(name) >= 0)
{
if (player != null)
return null; // Not unique
player = p;
}
}
return player;
}

section with

private BasePlayer findPlayerByPartialName(string name)
{
if (string.IsNullOrEmpty(name))
return null;
BasePlayer player = null;
name = name.ToLower();
var allPlayers = BasePlayer.activePlayerList.ToArray();
var allPlayersOffline = BasePlayer.sleepingPlayerList.ToArray();

foreach (var p in allPlayersOffline)
{
if (p.displayName == name)
{
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayersOffline)
{
if (p.displayName.ToLower().IndexOf(name) >= 0)
{
if (player != null)
return null; // Not unique
player = p;
}
}
return player;

foreach (var p in allPlayers)
{
if (p.displayName == name)
{
if (player != null)
return null; // Not unique
player = p;
}
}
if (player != null)
return player;

foreach (var p in allPlayers)
{
if (p.displayName.ToLower().IndexOf(name) >= 0)
{
if (player != null)
return null; // Not unique
player = p;
}
}
return player;

}

The problem it has, is when you call to kick a player, instead of checking everyone (sleepers included), it just check the active online players. I added a code that checks for both online and offline players!