Specify which item is causing a player to be disabled. Fixes #909.

This commit is contained in:
Enerdy 2015-05-02 03:03:41 +01:00
parent 03c1182f27
commit f4fa624936
2 changed files with 67 additions and 69 deletions

View file

@ -2294,12 +2294,12 @@ namespace TShockAPI
if (control[5]) if (control[5])
{ {
if (TShock.Itembans.ItemIsBanned(args.TPlayer.inventory[item].name, args.Player)) string itemName = args.TPlayer.inventory[item].name;
if (TShock.Itembans.ItemIsBanned(itemName, args.Player))
{ {
control[5] = false; control[5] = false;
args.Player.Disable("Using banned item"); args.Player.Disable("Using banned item ({0})".SFormat(itemName));
args.Player.SendErrorMessage("You cannot use {0} on this server. Your actions are being ignored.", args.Player.SendErrorMessage("You cannot use {0} on this server. Your actions are being ignored.", itemName);
args.TPlayer.inventory[item].name);
} }
if (args.TPlayer.inventory[item].name == "Mana Crystal" && args.Player.TPlayer.statManaMax <= 180) if (args.TPlayer.inventory[item].name == "Mana Crystal" && args.Player.TPlayer.statManaMax <= 180)
@ -2683,7 +2683,7 @@ namespace TShockAPI
return true; return true;
} }
if(type == 1 && TShock.Itembans.ItemIsBanned("Lava Bucket", args.Player)) if (type == 1 && TShock.Itembans.ItemIsBanned("Lava Bucket", args.Player))
{ {
args.Player.SendErrorMessage("You do not have permission to perform this action."); args.Player.SendErrorMessage("You do not have permission to perform this action.");
args.Player.Disable("Using banned lava bucket without permissions"); args.Player.Disable("Using banned lava bucket without permissions");
@ -2707,7 +2707,7 @@ namespace TShockAPI
return true; return true;
} }
if (type == 2 &&!(bucket == 3 || bucket == 0)) if (type == 2 && !(bucket == 3 || bucket == 0))
{ {
args.Player.SendErrorMessage("You do not have permission to perform this action."); args.Player.SendErrorMessage("You do not have permission to perform this action.");
args.Player.Disable("Spreading honey without holding a honey bucket"); args.Player.Disable("Spreading honey without holding a honey bucket");
@ -2817,17 +2817,17 @@ namespace TShockAPI
if ((Main.ServerSideCharacter) && (args.Player.sX > 0) && (args.Player.sY > 0) && (args.TPlayer.SpawnX > 0) && ((args.TPlayer.SpawnX != args.Player.sX) && (args.TPlayer.SpawnY != args.Player.sY))) if ((Main.ServerSideCharacter) && (args.Player.sX > 0) && (args.Player.sY > 0) && (args.TPlayer.SpawnX > 0) && ((args.TPlayer.SpawnX != args.Player.sX) && (args.TPlayer.SpawnY != args.Player.sY)))
{ {
args.Player.sX=args.TPlayer.SpawnX; args.Player.sX = args.TPlayer.SpawnX;
args.Player.sY=args.TPlayer.SpawnY; args.Player.sY = args.TPlayer.SpawnY;
if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == 79)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY -1))) if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == 79)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY - 1)))
args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) -48); args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) - 48);
} }
else if ((Main.ServerSideCharacter) && (args.Player.sX > 0) && (args.Player.sY > 0)) else if ((Main.ServerSideCharacter) && (args.Player.sX > 0) && (args.Player.sY > 0))
{ {
if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == 79)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY -1))) if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == 79)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY - 1)))
args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) -48); args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) - 48);
} }
args.Player.Dead = false; args.Player.Dead = false;
@ -2967,7 +2967,7 @@ namespace TShockAPI
if (TShock.CheckTilePermission(args.Player, x, y)) if (TShock.CheckTilePermission(args.Player, x, y))
{ {
args.Player.SendErrorMessage( "You do not have access to modify this area."); args.Player.SendErrorMessage("You do not have access to modify this area.");
args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY, args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY,
Convert.ToByte(Main.npc[id].homeless)); Convert.ToByte(Main.npc[id].homeless));
return true; return true;
@ -3232,8 +3232,7 @@ namespace TShockAPI
} }
if (TShock.Config.RangeChecks && if (TShock.Config.RangeChecks &&
TShock.CheckRangePermission(args.Player, (int) (Main.npc[id].position.X/16f), (int) (Main.npc[id].position.Y/16f), TShock.CheckRangePermission(args.Player, (int)(Main.npc[id].position.X / 16f), (int)(Main.npc[id].position.Y / 16f), 128))
128))
{ {
args.Player.SendData(PacketTypes.NpcUpdate, "", id); args.Player.SendData(PacketTypes.NpcUpdate, "", id);
return true; return true;

View file

@ -871,7 +871,6 @@ namespace TShockAPI
} }
player.IgnoreActionsForCheating = check; player.IgnoreActionsForCheating = check;
check = "none"; check = "none";
//todo: pretty sure we check every place a players inventory can change, so do we really need to do this?
foreach (Item item in player.TPlayer.armor) foreach (Item item in player.TPlayer.armor)
{ {
if (Itembans.ItemIsBanned(item.name, player)) if (Itembans.ItemIsBanned(item.name, player))