Added a hook AccountHooks.AccountGroupUpdate.
This commit is contained in:
parent
22d8575e01
commit
8a0920b6ea
1 changed files with 52 additions and 0 deletions
|
|
@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System.ComponentModel;
|
||||
using TShockAPI.DB;
|
||||
namespace TShockAPI.Hooks
|
||||
{
|
||||
|
|
@ -39,6 +40,37 @@ namespace TShockAPI.Hooks
|
|||
}
|
||||
}
|
||||
|
||||
public abstract class AccountGroupUpdateEventArgs : HandledEventArgs
|
||||
{
|
||||
public string AccountName { get; private set; }
|
||||
public Group Group { get; set; }
|
||||
|
||||
public AccountGroupUpdateEventArgs(string accountName, Group group)
|
||||
{
|
||||
this.AccountName = accountName;
|
||||
this.Group = group;
|
||||
}
|
||||
}
|
||||
|
||||
public class AccountGroupUpdateByPluginEventArgs : AccountGroupUpdateEventArgs
|
||||
{
|
||||
public AccountGroupUpdateByPluginEventArgs(string accountName, Group group) : base(accountName, group)
|
||||
{
|
||||
}
|
||||
}
|
||||
public class AccountGroupUpdateByPlayerEventArgs : AccountGroupUpdateEventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The player who updated the user's group
|
||||
/// </summary>
|
||||
public TSPlayer Player { get; private set; }
|
||||
|
||||
public AccountGroupUpdateByPlayerEventArgs(TSPlayer player, string accountName, Group group) : base(accountName, group)
|
||||
{
|
||||
this.Player = player;
|
||||
}
|
||||
}
|
||||
|
||||
public class AccountHooks
|
||||
{
|
||||
public delegate void AccountCreateD(AccountCreateEventArgs e);
|
||||
|
|
@ -62,5 +94,25 @@ namespace TShockAPI.Hooks
|
|||
|
||||
AccountDelete(new AccountDeleteEventArgs(u));
|
||||
}
|
||||
|
||||
public delegate void AccountGroupUpdateD(AccountGroupUpdateEventArgs e);
|
||||
public static event AccountGroupUpdateD AccountGroupUpdate;
|
||||
|
||||
public static bool OnAccountGroupUpdate(UserAccount account, TSPlayer author, ref Group group)
|
||||
{
|
||||
AccountGroupUpdateEventArgs args = new AccountGroupUpdateByPlayerEventArgs(author, account.Name, group);
|
||||
AccountGroupUpdate?.Invoke(args);
|
||||
group = args.Group;
|
||||
|
||||
return args.Handled;
|
||||
}
|
||||
public static bool OnAccountGroupUpdate(UserAccount account, ref Group group)
|
||||
{
|
||||
AccountGroupUpdateEventArgs args = new AccountGroupUpdateByPluginEventArgs(account.Name, group);
|
||||
AccountGroupUpdate?.Invoke(args);
|
||||
group = args.Group;
|
||||
|
||||
return args.Handled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue