diff --git a/TShockAPI/DB/BanManager.cs b/TShockAPI/DB/BanManager.cs index 5afa69f9..082e5a41 100644 --- a/TShockAPI/DB/BanManager.cs +++ b/TShockAPI/DB/BanManager.cs @@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ using System; +using System.Collections.Generic; using System.Data; using System.IO; using MySql.Data.MySqlClient; @@ -67,6 +68,28 @@ throw new Exception("Could not find a database library (probably Sqlite3.dll)"); return null; } + public List GetBans() + { + List banlist = new List(); + try + { + using (var reader = database.QueryReader("SELECT * FROM Bans")) + { + while (reader.Read()) + { + banlist.Add(new Ban(reader.Get("IP"), reader.Get("Name"), reader.Get("Reason"))); + } + return banlist; + } + } + catch (Exception ex) + { + Log.Error(ex.ToString()); + Console.WriteLine(ex.StackTrace); + } + return null; + } + public Ban GetBanByName(string name, bool casesensitive = true) { if (!TShock.Config.EnableBanOnUsernames) diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs index b5a729c0..7a28a209 100644 --- a/TShockAPI/Rest/RestManager.cs +++ b/TShockAPI/Rest/RestManager.cs @@ -48,6 +48,7 @@ namespace TShockAPI Rest.Register(new RestCommand("/v2/bans/read", BanInfoV2) { RequiresToken = true }); Rest.Register(new RestCommand("/v2/bans/destroy", BanDestroyV2) { RequiresToken = true }); + Rest.Register(new RestCommand("/lists/bans", BanListIPs) { RequiresToken = true }); Rest.Register(new RestCommand("/lists/players", PlayerList) {RequiresToken = true}); Rest.Register(new RestCommand("/world/read", WorldRead) {RequiresToken = true}); @@ -252,6 +253,14 @@ namespace TShockAPI #region RestBanMethods + private object BanListIPs(RestVerbs verbs, IParameterCollection parameters) + { + RestObject returnItem = new RestObject("200"); + returnItem.Add("bans", TShock.Bans.GetBans()); + + return returnItem; + } + private object BanCreate(RestVerbs verbs, IParameterCollection parameters) { var returnBlock = new Dictionary();