Move SendMultipleMatchError to TSPlayer.

This is a great method for a player to have and not for the Utils class
to have.
This commit is contained in:
Lucas Nicodemus 2017-12-29 08:15:04 -07:00
parent afdedee1c4
commit 48393d60c7
4 changed files with 54 additions and 54 deletions

View file

@ -73,6 +73,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
* Removed `Utils.ForceKick()`. (@hakusaro) * Removed `Utils.ForceKick()`. (@hakusaro)
* Removed `Utils.GetPlayerIP()`. (@hakusaro) * Removed `Utils.GetPlayerIP()`. (@hakusaro)
* Moved `Utils.Ban()` to `TSPlayer.Ban()`. (@hakusaro) * Moved `Utils.Ban()` to `TSPlayer.Ban()`. (@hakusaro)
* Moved `Utils.SendMultipleMatchError()` to `TSPlayer.SendMultipleMatchError`. (@hakusaro)
## TShock 4.3.25 ## TShock 4.3.25
* Fixed a critical exploit in the Terraria protocol that could cause massive unpreventable world corruption as well as a number of other problems. Thanks to @bartico6 for reporting. Fixed by the efforts of @QuiCM, @hakusaro, and tips in the right directioon from @bartico6. * Fixed a critical exploit in the Terraria protocol that could cause massive unpreventable world corruption as well as a number of other problems. Thanks to @bartico6 for reporting. Fixed by the efforts of @QuiCM, @hakusaro, and tips in the right directioon from @bartico6.

View file

@ -1199,7 +1199,7 @@ namespace TShockAPI
if (players.Count < 1) if (players.Count < 1)
args.Player.SendErrorMessage("Invalid player."); args.Player.SendErrorMessage("Invalid player.");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var message = new StringBuilder(); var message = new StringBuilder();
@ -1272,7 +1272,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else else
{ {
@ -1355,7 +1355,7 @@ namespace TShockAPI
// Bad case: Players contains more than 1 person so we can't ban them // Bad case: Players contains more than 1 person so we can't ban them
if (players.Count > 1) if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
return; return;
} }
@ -1666,7 +1666,7 @@ namespace TShockAPI
} }
else if (matchedPlayers.Count > 1) else if (matchedPlayers.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, matchedPlayers.Select(p => p.Name)); args.Player.SendMultipleMatchError(matchedPlayers.Select(p => p.Name));
return; return;
} }
@ -1699,7 +1699,7 @@ namespace TShockAPI
List<TSPlayer> players = TSPlayer.FindByNameOrID(args.Parameters[0]); List<TSPlayer> players = TSPlayer.FindByNameOrID(args.Parameters[0]);
if (players.Count > 1) if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
return; return;
} }
else if (players.Count == 0) else if (players.Count == 0)
@ -1786,7 +1786,7 @@ namespace TShockAPI
if (ply.Count > 1) if (ply.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, ply.Select(p => p.Account.Name)); args.Player.SendMultipleMatchError(ply.Select(p => p.Account.Name));
} }
if (!TShock.Groups.GroupExists(args.Parameters[1])) if (!TShock.Groups.GroupExists(args.Parameters[1]))
@ -2326,7 +2326,7 @@ namespace TShockAPI
} }
else if (npcs.Count > 1) else if (npcs.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})")); args.Player.SendMultipleMatchError(npcs.Select(n => $"{n.FullName}({n.type})"));
} }
else else
{ {
@ -2400,7 +2400,7 @@ namespace TShockAPI
if (players.Count == 0) if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var target = players[0]; var target = players[0];
@ -2431,7 +2431,7 @@ namespace TShockAPI
if (players2.Count == 0) if (players2.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players2.Count > 1) else if (players2.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players2.Select(p => p.Name)); args.Player.SendMultipleMatchError(players2.Select(p => p.Name));
else if (players1.Count == 0) else if (players1.Count == 0)
{ {
if (args.Parameters[0] == "*") if (args.Parameters[0] == "*")
@ -2471,7 +2471,7 @@ namespace TShockAPI
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
} }
else if (players1.Count > 1) else if (players1.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players1.Select(p => p.Name)); args.Player.SendMultipleMatchError(players1.Select(p => p.Name));
else else
{ {
var source = players1[0]; var source = players1[0];
@ -2544,7 +2544,7 @@ namespace TShockAPI
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
} }
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var plr = players[0]; var plr = players[0];
@ -2583,7 +2583,7 @@ namespace TShockAPI
if (matches.Count > 1) if (matches.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, matches.Select(n => $"{n.FullName}({n.whoAmI})")); args.Player.SendMultipleMatchError(matches.Select(n => $"{n.FullName}({n.whoAmI})"));
return; return;
} }
if (matches.Count == 0) if (matches.Count == 0)
@ -2612,7 +2612,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else else
{ {
@ -2774,7 +2774,7 @@ namespace TShockAPI
} }
else if (foundplr.Count > 1) else if (foundplr.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, foundplr.Select(p => p.Name)); args.Player.SendMultipleMatchError(foundplr.Select(p => p.Name));
return; return;
} }
@ -3265,7 +3265,7 @@ namespace TShockAPI
} }
else if (items.Count > 1) else if (items.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})"));
} }
else else
{ {
@ -3291,7 +3291,7 @@ namespace TShockAPI
} }
else if (items.Count > 1) else if (items.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})"));
} }
else else
{ {
@ -3336,7 +3336,7 @@ namespace TShockAPI
} }
else if (items.Count > 1) else if (items.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})"));
} }
else else
{ {
@ -3362,7 +3362,7 @@ namespace TShockAPI
} }
else if (items.Count > 1) else if (items.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})"));
} }
else else
{ {
@ -4083,7 +4083,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else else
{ {
@ -4936,7 +4936,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else if (players[0].HasPermission(Permissions.mute)) else if (players[0].HasPermission(Permissions.mute))
{ {
@ -4984,7 +4984,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else if (args.Player.mute) else if (args.Player.mute)
{ {
@ -5033,7 +5033,7 @@ namespace TShockAPI
if (players.Count == 0) if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var ply = players[0]; var ply = players[0];
@ -5053,7 +5053,7 @@ namespace TShockAPI
if (players.Count == 0) if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var ply = players[0]; var ply = players[0];
@ -5073,7 +5073,7 @@ namespace TShockAPI
if (players.Count == 0) if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
var ply = players[0]; var ply = players[0];
@ -5102,7 +5102,7 @@ namespace TShockAPI
if (players.Count == 0) if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!"); args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1) else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
else else
{ {
int type = 167; int type = 167;
@ -5273,7 +5273,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else else
{ {
@ -5304,7 +5304,7 @@ namespace TShockAPI
} }
else if (npcs.Count > 1) else if (npcs.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})")); args.Player.SendMultipleMatchError(npcs.Select(n => $"{n.FullName}({n.type})"));
return; return;
} }
else else
@ -5359,7 +5359,7 @@ namespace TShockAPI
} }
else if (matchedItems.Count > 1) else if (matchedItems.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, matchedItems.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(matchedItems.Select(i => $"{i.Name}({i.netID})"));
return; return;
} }
else else
@ -5389,7 +5389,7 @@ namespace TShockAPI
if (prefixIds.Count > 1) if (prefixIds.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, prefixIds.Select(p => p.ToString())); args.Player.SendMultipleMatchError(prefixIds.Select(p => p.ToString()));
return; return;
} }
else if (prefixIds.Count == 0) else if (prefixIds.Count == 0)
@ -5442,7 +5442,7 @@ namespace TShockAPI
} }
else if (npcs.Count > 1) else if (npcs.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, npcs.Select(n => $"{n.FullName}({n.type})")); args.Player.SendMultipleMatchError(npcs.Select(n => $"{n.FullName}({n.type})"));
return; return;
} }
else if (args.Parameters[1].Length > 200) else if (args.Parameters[1].Length > 200)
@ -5507,7 +5507,7 @@ namespace TShockAPI
} }
else if (items.Count > 1) else if (items.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, items.Select(i => $"{i.Name}({i.netID})")); args.Player.SendMultipleMatchError(items.Select(i => $"{i.Name}({i.netID})"));
} }
else else
{ {
@ -5538,7 +5538,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
} }
else else
{ {
@ -5585,7 +5585,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
return; return;
} }
else else
@ -5634,7 +5634,7 @@ namespace TShockAPI
} }
else if (found.Count > 1) else if (found.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, found.Select(f => Lang.GetBuffName(f))); args.Player.SendMultipleMatchError(found.Select(f => Lang.GetBuffName(f)));
return; return;
} }
id = found[0]; id = found[0];
@ -5670,7 +5670,7 @@ namespace TShockAPI
} }
else if (foundplr.Count > 1) else if (foundplr.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, foundplr.Select(p => p.Name)); args.Player.SendMultipleMatchError(foundplr.Select(p => p.Name));
return; return;
} }
else else
@ -5685,7 +5685,7 @@ namespace TShockAPI
} }
else if (found.Count > 1) else if (found.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, found.Select(b => Lang.GetBuffName(b))); args.Player.SendMultipleMatchError(found.Select(b => Lang.GetBuffName(b)));
return; return;
} }
id = found[0]; id = found[0];
@ -5802,7 +5802,7 @@ namespace TShockAPI
} }
else if (players.Count > 1) else if (players.Count > 1)
{ {
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name)); args.Player.SendMultipleMatchError(players.Select(p => p.Name));
return; return;
} }
else else

View file

@ -34,6 +34,7 @@ using TShockAPI.DB;
using TShockAPI.Hooks; using TShockAPI.Hooks;
using TShockAPI.Net; using TShockAPI.Net;
using Timer = System.Timers.Timer; using Timer = System.Timers.Timer;
using System.Linq;
namespace TShockAPI namespace TShockAPI
{ {
@ -1600,6 +1601,21 @@ namespace TShockAPI
return false; return false;
} }
/// <summary>
/// Sends the player an error message stating that more than one match was found
/// appending a csv list of the matches.
/// </summary>
/// <param name="matches">An enumerable list with the matches</param>
public void SendMultipleMatchError(IEnumerable<object> matches)
{
SendErrorMessage("More than one match found: ");
var lines = PaginationTools.BuildLinesFromTerms(matches.ToArray());
lines.ForEach(SendInfoMessage);
SendErrorMessage("Use \"my query\" for items with spaces.");
}
[Conditional("DEBUG")] [Conditional("DEBUG")]
private void LogStackFrame() private void LogStackFrame()
{ {

View file

@ -593,23 +593,6 @@ namespace TShockAPI
return ""; return "";
} }
/// <summary>
/// Sends the player an error message stating that more than one match was found
/// appending a csv list of the matches.
/// </summary>
/// <param name="ply">Player to send the message to</param>
/// <param name="matches">An enumerable list with the matches</param>
public void SendMultipleMatchError(TSPlayer ply, IEnumerable<object> matches)
{
ply.SendErrorMessage("More than one match found: ");
var lines = PaginationTools.BuildLinesFromTerms(matches.ToArray());
lines.ForEach(ply.SendInfoMessage);
ply.SendErrorMessage("Use \"my query\" for items with spaces.");
}
/// <summary> /// <summary>
/// Checks if world has hit the max number of chests /// Checks if world has hit the max number of chests
/// </summary> /// </summary>