Make Kick/BanOnMediumcoreDeath behave like their Hardcore equvivalents

fixes #1618
This commit is contained in:
Egor 2018-04-27 05:44:22 +03:00
parent 691aa043a9
commit 9ac3dfa228
2 changed files with 14 additions and 28 deletions

View file

@ -2380,16 +2380,21 @@ namespace TShockAPI
}
}
if (args.TPlayer.difficulty == 2 && (TShock.Config.KickOnHardcoreDeath || TShock.Config.BanOnHardcoreDeath))
if (args.TPlayer.difficulty != 0)
{
if (TShock.Config.BanOnHardcoreDeath)
{
if (!args.Player.Ban(TShock.Config.HardcoreBanReason, false, "hardcore-death"))
bool mediumcore = args.TPlayer.difficulty == 1;
bool shouldBan = mediumcore ? TShock.Config.BanOnMediumcoreDeath : TShock.Config.BanOnHardcoreDeath;
bool shouldKick = mediumcore ? TShock.Config.KickOnMediumcoreDeath : TShock.Config.KickOnHardcoreDeath;
string banReason = mediumcore ? TShock.Config.MediumcoreBanReason : TShock.Config.HardcoreBanReason;
string kickReason = mediumcore ? TShock.Config.MediumcoreKickReason : TShock.Config.HardcoreKickReason;
string banAdminName = mediumcore ? "mediumcore-death" : "hardcore-death";
if(shouldBan) {
if (!args.Player.Ban(banReason, false, banAdminName))
args.Player.Kick("You died! Normally, you'd be banned.", true, true);
}
else
{
args.Player.Kick(TShock.Config.HardcoreKickReason, true, true, null, false);
else if(shouldKick) {
args.Player.Kick(kickReason, true, true, null, false);
}
}
@ -2440,27 +2445,7 @@ namespace TShockAPI
if (OnPlayerSpawn(args.Player, args.Data, player, spawnx, spawny))
return true;
if (args.Player.InitSpawn && args.TPlayer.inventory[args.TPlayer.selectedItem].type != 50)
{
if (args.TPlayer.difficulty == 1 && (TShock.Config.KickOnMediumcoreDeath || TShock.Config.BanOnMediumcoreDeath))
{
if (args.TPlayer.selectedItem != 50)
{
if (TShock.Config.BanOnMediumcoreDeath)
{
if (!args.Player.Ban(TShock.Config.MediumcoreBanReason, false, "mediumcore-death"))
args.Player.Kick("You died! Normally, you'd be banned.", true, true);
}
else
{
args.Player.Kick(TShock.Config.MediumcoreKickReason, true, true, null, false);
}
return true;
}
}
}
else
args.Player.InitSpawn = true;
args.Player.InitSpawn = true;
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)))
{