From 81cb1381b44fdc16882da43ddb2df1f294277ba7 Mon Sep 17 00:00:00 2001 From: Ruby Rose Date: Wed, 7 Jun 2017 15:32:40 +0300 Subject: [PATCH] Add hooks for item/projectile/tile bans --- TShockAPI/DB/ItemManager.cs | 4 ++++ TShockAPI/DB/ProjectileManager.cs | 4 ++++ TShockAPI/DB/TileManager.cs | 4 ++++ TShockAPI/TSPlayer.cs | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/TShockAPI/DB/ItemManager.cs b/TShockAPI/DB/ItemManager.cs index 4ce43066..0ff89b40 100644 --- a/TShockAPI/DB/ItemManager.cs +++ b/TShockAPI/DB/ItemManager.cs @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Data; using System.Linq; using MySql.Data.MySqlClient; +using TShockAPI.Hooks; namespace TShockAPI.DB { @@ -200,6 +201,9 @@ namespace TShockAPI.DB if (ply.HasPermission(Permissions.usebanneditem)) return true; + if (PlayerHooks.OnPlayerItembanPermission(ply, this)) + return true; + var cur = ply.Group; var traversed = new List(); while (cur != null) diff --git a/TShockAPI/DB/ProjectileManager.cs b/TShockAPI/DB/ProjectileManager.cs index 3f736c9b..79bf9a37 100644 --- a/TShockAPI/DB/ProjectileManager.cs +++ b/TShockAPI/DB/ProjectileManager.cs @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Data; using System.Linq; using MySql.Data.MySqlClient; +using TShockAPI.Hooks; namespace TShockAPI.DB { @@ -205,6 +206,9 @@ namespace TShockAPI.DB if (ply.HasPermission(Permissions.canusebannedprojectiles)) return true; + if (PlayerHooks.OnPlayerProjbanPermission(ply, this)) + return true; + var cur = ply.Group; var traversed = new List(); while (cur != null) diff --git a/TShockAPI/DB/TileManager.cs b/TShockAPI/DB/TileManager.cs index 911bf27b..90a235f8 100644 --- a/TShockAPI/DB/TileManager.cs +++ b/TShockAPI/DB/TileManager.cs @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Data; using System.Linq; using MySql.Data.MySqlClient; +using TShockAPI.Hooks; namespace TShockAPI.DB { @@ -205,6 +206,9 @@ namespace TShockAPI.DB if (ply.HasPermission(Permissions.canusebannedtiles)) return true; + if (PlayerHooks.OnPlayerTilebanPermission(ply, this)) + return true; + var cur = ply.Group; var traversed = new List(); while (cur != null) diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index 43f7fe18..9b42d7b4 100644 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -1253,6 +1253,24 @@ namespace TShockAPI else return Group.HasPermission(permission); } + + /// + public bool HasPermission(ItemBan bannedItem) + { + return TShock.Itembans.ItemIsBanned(bannedItem.Name, this); + } + + /// + public bool HasPermission(ProjectileBan bannedProj) + { + return TShock.ProjectileBans.ProjectileIsBanned(bannedProj.ID, this); + } + + /// + public bool HasPermission(TileBan bannedTile) + { + return TShock.TileBans.TileIsBanned(bannedTile.ID, this); + } } public class TSRestPlayer : TSPlayer