From 87dcfb587fff366af1e12bf781f596ce46a1d832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20H=C3=A4rter?= Date: Sun, 12 Nov 2023 19:32:18 +0100 Subject: [PATCH] Base code for using plugins. --- TelegramBot.pm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/TelegramBot.pm b/TelegramBot.pm index d5a56d4..1373a89 100644 --- a/TelegramBot.pm +++ b/TelegramBot.pm @@ -47,6 +47,21 @@ sub new { # whitelist $Self->{Whitelist} = $Param{Whitelist}; + # include plugins + my @Plugins = glob("$FindBin::Bin/Plugins/*"); + if ( @Plugins ) { + use File::Basename; + PLUGIN: + for my $PluginPath ( @Plugins ) { + my $PluginName = basename($PluginPath); + my $PluginObject = require("$FindBin::Bin/Plugins/${PluginName}/Core.pm"); + if( !$PluginObject ) { + $Self->{LogObject}->error("Couldn't load plugin $PluginName"); + next PLUGIN; + } + } + } + return $Self; }