diff --git a/TShockAPI/DB/UserManager.cs b/TShockAPI/DB/UserManager.cs old mode 100644 new mode 100755 index 07b94f63..a1c8e819 --- a/TShockAPI/DB/UserManager.cs +++ b/TShockAPI/DB/UserManager.cs @@ -76,6 +76,8 @@ namespace TShockAPI.DB if (1 > ret) throw new UserExistsException(user.Name); + + Hooks.AccountHooks.OnAccountCreate(user); } /// @@ -90,6 +92,8 @@ namespace TShockAPI.DB if (affected < 1) throw new UserNotExistException(user.Name); + + Hooks.AccountHooks.OnAccountDelete(user); } catch (Exception ex) { diff --git a/TShockAPI/Hooks/AccountHooks.cs b/TShockAPI/Hooks/AccountHooks.cs new file mode 100755 index 00000000..e9bf76d2 --- /dev/null +++ b/TShockAPI/Hooks/AccountHooks.cs @@ -0,0 +1,66 @@ +/* +TShock, a server mod for Terraria +Copyright (C) 2011-2015 Nyx Studios (fka. The TShock Team) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +using TShockAPI.DB; +namespace TShockAPI.Hooks +{ + public class AccountDeleteEventArgs + { + public User User { get; set; } + + public AccountDeleteEventArgs(User user) + { + this.User = user; + } + } + + public class AccountCreateEventArgs + { + public User User { get; set; } + + public AccountCreateEventArgs(User user) + { + this.User = user; + } + } + + public class AccountHooks + { + public delegate void AccountCreateD(AccountCreateEventArgs e); + public static event AccountCreateD AccountCreate; + + public static void OnAccountCreate(User u) + { + if (AccountCreate == null) + return; + + AccountCreate(new AccountCreateEventArgs(u)); + } + + public delegate void AccountDeleteD(AccountDeleteEventArgs e); + public static event AccountDeleteD AccountDelete; + + public static void OnAccountDelete(User u) + { + if (AccountDelete == null) + return; + + AccountDelete(new AccountDeleteEventArgs(u)); + } + } +} diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj index 75ef9782..4072b8ed 100644 --- a/TShockAPI/TShockAPI.csproj +++ b/TShockAPI/TShockAPI.csproj @@ -75,6 +75,7 @@ + @@ -181,7 +182,7 @@ - +