@Override
	public void onDisable() {
		if (StatisticianPlugin.singleton == null || !StatisticianPlugin.singleton.equals(this)) return;

		this.dataProcessorTimer.cancel();

		if (this.edhPlayer != null) {
			for (Player player : this.getServer().getOnlinePlayers()) {
				this.edhPlayer.PlayerQuit(player);
			}
		}

		if (this.playerData != null) {
			this.playerData._processData();
		}

		if (this.database != null) {
			this.database.callStoredProcedure("pluginShutdown", null);
			this.database = null;
		}

		StatisticianPlugin.singleton = null;

		if (this.executorService != null) {
			this.executorService.shutdown();
		}
	}