Added a new Disable method with flags to determine where the message is logged to.

Obsoleted the old disable method
Added a config option to disable OnSecondUpdate logs (disable message is written only to console if set to true)
Updated all instances of the obsolete Disable method to the new Disable method
This commit is contained in:
White 2015-09-12 11:33:17 +09:30
parent 2e5eaae0b3
commit 33739c4f07
4 changed files with 142 additions and 93 deletions

View file

@ -875,7 +875,7 @@ namespace TShockAPI
{
if (player.TileKillThreshold >= Config.TileKillThreshold)
{
player.Disable("Reached TileKill threshold.");
player.Disable("Reached TileKill threshold.", DisableFlags.WriteToLogAndConsole);
TSPlayer.Server.RevertTiles(player.TilesDestroyed);
player.TilesDestroyed.Clear();
}
@ -891,7 +891,7 @@ namespace TShockAPI
{
if (player.TilePlaceThreshold >= Config.TilePlaceThreshold)
{
player.Disable("Reached TilePlace threshold");
player.Disable("Reached TilePlace threshold", DisableFlags.WriteToLogAndConsole);
TSPlayer.Server.RevertTiles(player.TilesCreated);
player.TilesCreated.Clear();
}
@ -932,7 +932,7 @@ namespace TShockAPI
if (player.TileLiquidThreshold >= Config.TileLiquidThreshold)
{
player.Disable("Reached TileLiquid threshold");
player.Disable("Reached TileLiquid threshold", DisableFlags.WriteToLogAndConsole);
}
if (player.TileLiquidThreshold > 0)
{
@ -941,7 +941,7 @@ namespace TShockAPI
if (player.ProjectileThreshold >= Config.ProjectileThreshold)
{
player.Disable("Reached projectile threshold");
player.Disable("Reached projectile threshold", DisableFlags.WriteToLogAndConsole);
}
if (player.ProjectileThreshold > 0)
{
@ -950,7 +950,7 @@ namespace TShockAPI
if (player.PaintThreshold >= Config.TilePaintThreshold)
{
player.Disable("Reached paint threshold");
player.Disable("Reached paint threshold", DisableFlags.WriteToLogAndConsole);
}
if (player.PaintThreshold > 0)
{
@ -961,80 +961,80 @@ namespace TShockAPI
{
player.Spawn();
}
string check = "none";
foreach (Item item in player.TPlayer.inventory)
if (!Main.ServerSideCharacter || (Main.ServerSideCharacter && player.IsLoggedIn))
{
if (!player.Group.HasPermission(Permissions.ignorestackhackdetection) && (item.stack > item.maxStack || item.stack < 0) &&
item.type != 0)
string check = "none";
foreach (Item item in player.TPlayer.inventory)
{
check = "Remove item " + item.name + " (" + item.stack + ") exceeds max stack of " + item.maxStack;
player.SendErrorMessage(check);
break;
if (!player.Group.HasPermission(Permissions.ignorestackhackdetection) && (item.stack > item.maxStack || item.stack < 0) &&
item.type != 0)
{
check = "Remove item " + item.name + " (" + item.stack + ") exceeds max stack of " + item.maxStack;
player.SendErrorMessage(check);
break;
}
}
}
player.IgnoreActionsForCheating = check;
check = "none";
// Please don't remove this for the time being; without it, players wearing banned equipment will only get debuffed once
foreach (Item item in player.TPlayer.armor)
{
if (Itembans.ItemIsBanned(item.name, player))
player.IgnoreActionsForCheating = check;
check = "none";
// Please don't remove this for the time being; without it, players wearing banned equipment will only get debuffed once
foreach (Item item in player.TPlayer.armor)
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove armor/accessory " + item.name;
if (Itembans.ItemIsBanned(item.name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove armor/accessory " + item.name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
}
}
}
foreach (Item item in player.TPlayer.dye)
{
if (Itembans.ItemIsBanned(item.name, player))
foreach (Item item in player.TPlayer.dye)
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove dye " + item.name;
if (Itembans.ItemIsBanned(item.name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove dye " + item.name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
}
}
}
foreach (Item item in player.TPlayer.miscEquips)
{
if (Itembans.ItemIsBanned(item.name, player))
foreach (Item item in player.TPlayer.miscEquips)
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove misc equip " + item.name;
if (Itembans.ItemIsBanned(item.name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove misc equip " + item.name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
}
}
}
foreach (Item item in player.TPlayer.miscDyes)
{
if (Itembans.ItemIsBanned(item.name, player))
foreach (Item item in player.TPlayer.miscDyes)
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove misc dye " + item.name;
if (Itembans.ItemIsBanned(item.name, player))
{
player.SetBuff(BuffID.Frozen, 330, true);
player.SetBuff(BuffID.Stoned, 330, true);
player.SetBuff(BuffID.Webbed, 330, true);
check = "Remove misc dye " + item.name;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
player.SendErrorMessage("You are wearing banned equipment. {0}", check);
break;
}
}
player.IgnoreActionsForDisabledArmor = check;
if (CheckIgnores(player) || Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player))
{
DisableFlags flags = Config.DisableSecondUpdateLogs ? DisableFlags.WriteToConsole : DisableFlags.WriteToLogAndConsole;
player.Disable("check ignores failed in OnSecondUpdate()", flags);
}
}
player.IgnoreActionsForDisabledArmor = check;
if (CheckIgnores(player))
{
player.Disable("check ignores failed in OnSecondUpdate()", false);
}
else if (Itembans.ItemIsBanned(player.TPlayer.inventory[player.TPlayer.selectedItem].name, player))
{
player.SetBuff(23, 120); //Cursed
}
var oldRegion = player.CurrentRegion;
@ -1044,12 +1044,12 @@ namespace TShockAPI
{
if (oldRegion != null)
{
Hooks.RegionHooks.OnRegionLeft(player, oldRegion);
RegionHooks.OnRegionLeft(player, oldRegion);
}
if (player.CurrentRegion != null)
{
Hooks.RegionHooks.OnRegionEntered(player, player.CurrentRegion);
RegionHooks.OnRegionEntered(player, player.CurrentRegion);
}
}
}