From 9ee692d93f8cabe6b53ebd9c8a0a6fef24f12261 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 6 May 2018 14:45:31 +0200 Subject: [PATCH] Implement IDisposable on RegionHandler --- TShockAPI/RegionHandler.cs | 12 +++++++++++- TShockAPI/TShock.cs | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/TShockAPI/RegionHandler.cs b/TShockAPI/RegionHandler.cs index 5aab5253..b3972fc1 100644 --- a/TShockAPI/RegionHandler.cs +++ b/TShockAPI/RegionHandler.cs @@ -26,7 +26,7 @@ namespace TShockAPI /// Represents TShock's Region subsystem. This subsystem is in charge of executing region related logic, such as /// setting temp points or invoking region events. /// - internal sealed class RegionHandler + internal sealed class RegionHandler : IDisposable { private readonly RegionManager _regionManager; @@ -43,6 +43,16 @@ namespace TShockAPI GetDataHandlers.TileEdit += OnTileEdit; } + /// + /// Disposes the region handler. + /// + public void Dispose() + { + GetDataHandlers.GemLockToggle -= OnGemLockToggle; + GetDataHandlers.PlayerUpdate -= OnPlayerUpdate; + GetDataHandlers.TileEdit -= OnTileEdit; + } + private void OnGemLockToggle(object sender, GetDataHandlers.GemLockToggleEventArgs e) { if (TShock.Config.RegionProtectGemLocks) diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index d8a5991e..f839019d 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -436,6 +436,8 @@ namespace TShockAPI RestApi.Dispose(); Log.Dispose(); + + RegionSystem.Dispose(); } base.Dispose(disposing); }