public Plugin[] GetLoadedPlugins() { Plugin[] ReturnArray = new Plugin[this.fPlugins.Values.Count]; this.fPlugins.Values.CopyTo(ReturnArray, 0); return ReturnArray; }
internal EventManager Fire(Plugin plugin, string eventName, EventPriority priority, object source, EventArgs args) { EventIdentity identity = new EventIdentity(eventName, priority); List<Task> tasks = new List<Task>(); if (_strongEvents.ContainsKey(identity)) { foreach (EventHandler handler in _strongEvents[identity]) { EventHandler localHandler = handler; tasks.Add(Task.Factory.StartNew(() => SafeFire(localHandler, source, args))); } } if (_weakEvents.ContainsKey(identity)) { foreach (EventHandler handler in _weakEvents[identity]) { EventHandler localHandler = handler; tasks.Add(Task.Factory.StartNew(() => SafeFire(localHandler, source, args))); } } Task.WaitAll(tasks.ToArray()); return this; }
/// <summary> /// Returns a Plugin array containing all the loaded plugins. /// </summary> public IEnumerable<Plugin> GetLoadedPlugins() { Plugin[] returnArray = new Plugin[_plugins.Values.Count]; _plugins.Values.CopyTo(returnArray, 0); return returnArray; }
/// <summary> /// Start a plugin. /// </summary> /// <param name = "plugin">The plugin object you wish to start.</param> internal PluginManager StartPlugin(Plugin plugin) { EventFirer eventFirer = CoreManager.ServerCore.EventManager.NewEventFirer(plugin); plugin.Start(eventFirer); plugin.StartedResetEvent.Set(); CoreManager.ServerCore.ConsoleManager.Notice("Plugin Manager", CoreManager.ServerCore.StringLocale.GetString("CORE:PLUGIN_STARTED", plugin.Name)); return this; }
public dynamic this[Plugin plugin, string name] { get { return this[plugin.Id + ':' + name]; } set { this[plugin.Id + ':' + name] = value; } }
/// <summary> /// Load and start a plugin with a relative path to the plugin directory. /// </summary> /// <param name="Filename">The filename of the plugin MINUS THE .dll!!</param> public PluginManager StartPlugin(Plugin Plugin) { if (!Plugin.IsRunning()) { Plugin.Start(); Plugin.fIsRunning = true; CoreManager.GetCore().GetStandardOut().PrintNotice("Plugin " + Plugin.GetName() + " has been started."); } return this; }
/// <summary> /// Start a plugin. /// </summary> /// <param name = "plugin">The plugin object you wish to start.</param> internal PluginManager StartPlugin(Plugin plugin) { plugin.Start(); plugin.StartedResetEvent.Set(); CoreManager.ServerCore.GetStandardOut().PrintNotice("Plugin " + plugin.Name + " has been started."); return this; }
internal EventFirer(Plugin plugin) { _plugin = plugin; }