Ban/kick on death if HardcoreOnly == true
This commit is contained in:
parent
d620493d7b
commit
1e66e1a256
5 changed files with 38 additions and 0 deletions
|
|
@ -61,5 +61,7 @@ namespace TShockAPI
|
||||||
public bool RememberLeavePos = false;
|
public bool RememberLeavePos = false;
|
||||||
|
|
||||||
public bool HardcoreOnly = false;
|
public bool HardcoreOnly = false;
|
||||||
|
public bool KickOnHardcoreOnlyDeath = false;
|
||||||
|
public bool BanOnHardcoreOnlyDeath = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -82,6 +82,8 @@ namespace TShockAPI
|
||||||
public static int originalSpawnY;
|
public static int originalSpawnY;
|
||||||
|
|
||||||
public static bool hardcoreOnly = false;
|
public static bool hardcoreOnly = false;
|
||||||
|
public static bool KickOnHardcoreDeath = false;
|
||||||
|
public static bool BanOnHardcoreDeath = false;
|
||||||
|
|
||||||
public static void ReadJsonConfiguration()
|
public static void ReadJsonConfiguration()
|
||||||
{
|
{
|
||||||
|
|
@ -128,6 +130,8 @@ namespace TShockAPI
|
||||||
Spawn_WorldID = cfg.Spawn_WorldID;
|
Spawn_WorldID = cfg.Spawn_WorldID;
|
||||||
RememberLeavePos = cfg.RememberLeavePos;
|
RememberLeavePos = cfg.RememberLeavePos;
|
||||||
hardcoreOnly = cfg.HardcoreOnly;
|
hardcoreOnly = cfg.HardcoreOnly;
|
||||||
|
KickOnHardcoreDeath = cfg.KickOnHardcoreOnlyDeath;
|
||||||
|
BanOnHardcoreDeath = cfg.BanOnHardcoreOnlyDeath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteJsonConfiguration()
|
public static void WriteJsonConfiguration()
|
||||||
|
|
@ -167,6 +171,8 @@ namespace TShockAPI
|
||||||
cfg.RememberLeavePos = RememberLeavePos;
|
cfg.RememberLeavePos = RememberLeavePos;
|
||||||
cfg.Spawn_WorldID = Spawn_WorldID;
|
cfg.Spawn_WorldID = Spawn_WorldID;
|
||||||
cfg.HardcoreOnly = hardcoreOnly;
|
cfg.HardcoreOnly = hardcoreOnly;
|
||||||
|
cfg.BanOnHardcoreOnlyDeath = BanOnHardcoreDeath;
|
||||||
|
cfg.KickOnHardcoreOnlyDeath = KickOnHardcoreDeath;
|
||||||
string json = JsonConvert.SerializeObject(cfg, Formatting.Indented);
|
string json = JsonConvert.SerializeObject(cfg, Formatting.Indented);
|
||||||
TextWriter tr = new StreamWriter(FileTools.ConfigPath);
|
TextWriter tr = new StreamWriter(FileTools.ConfigPath);
|
||||||
tr.Write(json);
|
tr.Write(json);
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ namespace TShockAPI
|
||||||
{PacketTypes.TileKill, HandleTileKill},
|
{PacketTypes.TileKill, HandleTileKill},
|
||||||
{PacketTypes.PlayerKillMe, HandlePlayerKillMe},
|
{PacketTypes.PlayerKillMe, HandlePlayerKillMe},
|
||||||
{PacketTypes.LiquidSet, HandleLiquidSet},
|
{PacketTypes.LiquidSet, HandleLiquidSet},
|
||||||
|
{PacketTypes.PlayerSpawn, HandleSpawn},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -448,5 +449,31 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool HandleSpawn(GetDataHandlerArgs args)
|
||||||
|
{
|
||||||
|
byte player = args.Data.ReadInt8();
|
||||||
|
int spawnx = args.Data.ReadInt32();
|
||||||
|
int spawny = args.Data.ReadInt32();
|
||||||
|
|
||||||
|
if (args.Player.InitSpawn)
|
||||||
|
{
|
||||||
|
if (ConfigurationManager.hardcoreOnly && (ConfigurationManager.KickOnHardcoreDeath || ConfigurationManager.BanOnHardcoreDeath))
|
||||||
|
if (args.TPlayer.selectedItem != 50)
|
||||||
|
{
|
||||||
|
if (ConfigurationManager.BanOnHardcoreDeath)
|
||||||
|
{
|
||||||
|
if (!Tools.Ban(args.Player, "Death results in a ban"))
|
||||||
|
Tools.ForceKick(args.Player, "Death results in a ban, but can't ban you");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Tools.ForceKick(args.Player, "Death results in a kick");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args.Player.InitSpawn = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ namespace TShockAPI
|
||||||
public DateTime LastPvpChange { get; protected set; }
|
public DateTime LastPvpChange { get; protected set; }
|
||||||
public Rectangle TempArea = new Rectangle();
|
public Rectangle TempArea = new Rectangle();
|
||||||
public DateTime LastExplosive { get; set; }
|
public DateTime LastExplosive { get; set; }
|
||||||
|
public bool InitSpawn = false;
|
||||||
|
|
||||||
public bool RealPlayer
|
public bool RealPlayer
|
||||||
{
|
{
|
||||||
|
|
@ -135,6 +136,7 @@ namespace TShockAPI
|
||||||
|
|
||||||
public bool Teleport(int tileX, int tileY)
|
public bool Teleport(int tileX, int tileY)
|
||||||
{
|
{
|
||||||
|
this.InitSpawn = false;
|
||||||
int spawnTileX = Main.spawnTileX;
|
int spawnTileX = Main.spawnTileX;
|
||||||
int spawnTileY = Main.spawnTileY;
|
int spawnTileY = Main.spawnTileY;
|
||||||
Main.spawnTileX = tileX;
|
Main.spawnTileX = tileX;
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,7 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
|
|
||||||
Players[ply] = player;
|
Players[ply] = player;
|
||||||
|
Players[ply].InitSpawn = false;
|
||||||
Netplay.spamCheck = ConfigurationManager.SpamChecks;
|
Netplay.spamCheck = ConfigurationManager.SpamChecks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue