Optimize some GetBy* methods, also fix up the project file.
This commit is contained in:
parent
2e2539a4d1
commit
500fc6b211
2 changed files with 43 additions and 79 deletions
|
|
@ -117,7 +117,7 @@
|
||||||
<Compile Include="PacketBufferer.cs" />
|
<Compile Include="PacketBufferer.cs" />
|
||||||
<Compile Include="Permissions.cs" />
|
<Compile Include="Permissions.cs" />
|
||||||
<Compile Include="RconHandler.cs" />
|
<Compile Include="RconHandler.cs" />
|
||||||
<Compile Include="DB\RememberPosManager.cs" />
|
<Compile Include="DB\RememberedPosManager.cs" />
|
||||||
<Compile Include="Resources.Designer.cs">
|
<Compile Include="Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
|
|
|
||||||
|
|
@ -243,42 +243,39 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Finds a TSPlayer based on name or id
|
/// Finds a TSPlayer based on name or ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ply">Player name</param>
|
/// <param name="plr">Player name or ID</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public List<TSPlayer> FindPlayer(string ply)
|
public List<TSPlayer> FindPlayer(string plr)
|
||||||
{
|
{
|
||||||
var found = new List<TSPlayer>();
|
var found = new List<TSPlayer>();
|
||||||
// Avoid errors caused by null search
|
// Avoid errors caused by null search
|
||||||
if (null == ply)
|
if (plr == null)
|
||||||
return found;
|
return found;
|
||||||
ply = ply.ToLower();
|
|
||||||
foreach (TSPlayer player in TShock.Players)
|
|
||||||
{
|
|
||||||
if (player == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
try
|
byte plrID;
|
||||||
|
if (byte.TryParse(plr, out plrID))
|
||||||
{
|
{
|
||||||
if (Convert.ToInt32(ply) == player.Index && player.Active)
|
TSPlayer player = TShock.Players[plrID];
|
||||||
|
if (player.Active)
|
||||||
{
|
{
|
||||||
return new List<TSPlayer> { player };
|
return new List<TSPlayer> { player };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ReSharper disable EmptyGeneralCatchClause
|
|
||||||
catch (Exception e)
|
|
||||||
// ReSharper restore EmptyGeneralCatchClause
|
|
||||||
{
|
|
||||||
// Conversion failed
|
|
||||||
}
|
|
||||||
|
|
||||||
string name = player.Name.ToLower();
|
string plrLower = plr.ToLower();
|
||||||
if (name.Equals(ply))
|
foreach (TSPlayer player in TShock.Players)
|
||||||
return new List<TSPlayer> {player};
|
{
|
||||||
if (name.Contains(ply))
|
if (player != null)
|
||||||
|
{
|
||||||
|
// Must be an EXACT match
|
||||||
|
if (player.Name == plr)
|
||||||
|
return new List<TSPlayer> { player };
|
||||||
|
if (player.Name.ToLower().StartsWith(plrLower))
|
||||||
found.Add(player);
|
found.Add(player);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -366,31 +363,17 @@ namespace TShockAPI
|
||||||
/// <returns>List of Items</returns>
|
/// <returns>List of Items</returns>
|
||||||
public List<Item> GetItemByName(string name)
|
public List<Item> GetItemByName(string name)
|
||||||
{
|
{
|
||||||
//Method #1 - must be exact match, allows support for different pickaxes/hammers/swords etc
|
|
||||||
for (int i = 1; i < Main.maxItemTypes; i++)
|
|
||||||
{
|
|
||||||
Item item = new Item();
|
|
||||||
item.SetDefaults(name);
|
|
||||||
if (item.name == name)
|
|
||||||
return new List<Item> {item};
|
|
||||||
}
|
|
||||||
//Method #2 - allows impartial matching
|
|
||||||
var found = new List<Item>();
|
var found = new List<Item>();
|
||||||
|
Item item = new Item();
|
||||||
|
string nameLower = name.ToLower();
|
||||||
for (int i = -24; i < Main.maxItemTypes; i++)
|
for (int i = -24; i < Main.maxItemTypes; i++)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
{
|
|
||||||
Item item = new Item();
|
|
||||||
item.netDefaults(i);
|
item.netDefaults(i);
|
||||||
if (item.name.ToLower() == name.ToLower())
|
if (item.name.ToLower() == nameLower)
|
||||||
return new List<Item> {item};
|
return new List<Item> {item};
|
||||||
if (item.name.ToLower().StartsWith(name.ToLower()))
|
if (item.name.ToLower().StartsWith(nameLower))
|
||||||
found.Add(item);
|
found.Add(item);
|
||||||
}
|
}
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -477,15 +460,16 @@ namespace TShockAPI
|
||||||
/// <returns>Matching list of buff ids</returns>
|
/// <returns>Matching list of buff ids</returns>
|
||||||
public List<int> GetBuffByName(string name)
|
public List<int> GetBuffByName(string name)
|
||||||
{
|
{
|
||||||
|
string nameLower = name.ToLower();
|
||||||
for (int i = 1; i < Main.maxBuffs; i++)
|
for (int i = 1; i < Main.maxBuffs; i++)
|
||||||
{
|
{
|
||||||
if (Main.buffName[i].ToLower() == name)
|
if (Main.buffName[i].ToLower() == nameLower)
|
||||||
return new List<int> {i};
|
return new List<int> {i};
|
||||||
}
|
}
|
||||||
var found = new List<int>();
|
var found = new List<int>();
|
||||||
for (int i = 1; i < Main.maxBuffs; i++)
|
for (int i = 1; i < Main.maxBuffs; i++)
|
||||||
{
|
{
|
||||||
if (Main.buffName[i].ToLower().StartsWith(name.ToLower()))
|
if (Main.buffName[i].ToLower().StartsWith(nameLower))
|
||||||
found.Add(i);
|
found.Add(i);
|
||||||
}
|
}
|
||||||
return found;
|
return found;
|
||||||
|
|
@ -517,33 +501,13 @@ namespace TShockAPI
|
||||||
string lowerName = name.ToLower();
|
string lowerName = name.ToLower();
|
||||||
var found = new List<int>();
|
var found = new List<int>();
|
||||||
for (int i = FirstItemPrefix; i <= LastItemPrefix; i++)
|
for (int i = FirstItemPrefix; i <= LastItemPrefix; i++)
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
item.prefix = (byte)i;
|
item.prefix = (byte)i;
|
||||||
string trimmed = item.AffixName().Trim();
|
string prefixName = item.AffixName().Trim().ToLower();
|
||||||
if (trimmed == name)
|
if (prefixName == lowerName)
|
||||||
{
|
return new List<int>() { i };
|
||||||
// Exact match
|
else if (prefixName.StartsWith(lowerName)) // Partial match
|
||||||
found.Add(i);
|
found.Add(i);
|
||||||
return found;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string trimmedLower = trimmed.ToLower();
|
|
||||||
if (trimmedLower == lowerName)
|
|
||||||
{
|
|
||||||
// Exact match (caseinsensitive)
|
|
||||||
found.Add(i);
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
else if (trimmedLower.StartsWith(lowerName)) // Partial match
|
|
||||||
found.Add(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
@ -650,9 +614,9 @@ namespace TShockAPI
|
||||||
if (!silent)
|
if (!silent)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(adminUserName))
|
if (string.IsNullOrWhiteSpace(adminUserName))
|
||||||
Broadcast(string.Format("{0} was {1}kicked for {2}", playerName, verb, reason.ToLower()));
|
Broadcast(string.Format("{0} was {1}kicked for {2}", playerName, verb, reason.ToLower()), Color.Green);
|
||||||
else
|
else
|
||||||
Broadcast(string.Format("{0} {1}kicked {2} for {3}", adminUserName, verb, playerName, reason.ToLower()));
|
Broadcast(string.Format("{0} {1}kicked {2} for {3}", adminUserName, verb, playerName, reason.ToLower()), Color.Green);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue