本文整理汇总了C#中Plugin类的典型用法代码示例。如果您正苦于以下问题:C# Plugin类的具体用法?C# Plugin怎么用?C# Plugin使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Plugin类属于命名空间,在下文中一共展示了Plugin类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: loadXML
private void loadXML()
{
XmlDocument store = new XmlDocument();
try
{
store.Load("store.xml");
}
catch(Exception e)
{
MessageBox.Show("Impossible d'ouvrir le fichier : store.xml\nVeuillez mettre à jour votre liste de plugins.");
return;
}
XmlNode plugins = store.DocumentElement.SelectSingleNode("/plugins");
foreach(XmlNode node in plugins.ChildNodes)
{
Plugin p = new Plugin();
p.Creator = node.SelectSingleNode("creator").InnerText;
p.Description = node.SelectSingleNode("description").InnerText;
p.Name = node.SelectSingleNode("name").InnerText;
p.Url = node.SelectSingleNode("url").InnerText;
p.Version = node.SelectSingleNode("version").InnerText;
p.Download = node.SelectSingleNode("download").InnerText;
this.plugins.Add(p);
listBox1.Items.Add(p.Name);
}
}
示例2: OnConnection
/// <summary>
/// Implements the OnConnection method of the IDTExtensibility2 interface.
/// Receives notification that the Add-in is being loaded.
/// </summary>
/// <param name="application">The application.</param>
/// <param name="connectMode">The connect mode.</param>
/// <param name="addInInst">The add in inst.</param>
/// <param name="custom">The custom.</param>
/// <seealso class="IDTExtensibility2"/>
public void OnConnection(object application, ext_ConnectMode connectMode,
object addInInst, ref Array custom)
{
if (_gitPlugin == null)
{
var cultureInfo = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = cultureInfo;
_gitPlugin =
new Plugin((DTE2)application, (AddIn)addInInst, "GitExtensions", "GitPlugin.Connect");
}
switch (connectMode)
{
case ext_ConnectMode.ext_cm_UISetup:
// Install CommandBar permanently (only runs once per AddIn)
GitPluginUISetup();
break;
case ext_ConnectMode.ext_cm_Startup:
// The add-in was marked to load on startup
// Do nothing at this point because the IDE may not be fully initialized
// Visual Studio will call OnStartupComplete when fully initialized
GitPluginUIUpdate();
break;
case ext_ConnectMode.ext_cm_AfterStartup:
// The add-in was loaded by hand after startup using the Add-In Manager
// Initialize it in the same way that when is loaded on startup
GitPluginInit();
break;
}
}
示例3: PluginViewModel
public PluginViewModel(Plugin plugin)
{
this.Plugin = plugin;
var notifiers = plugin.OfType<INotifier>().ToArray();
if (notifiers.Length >= 1) this.notifier = new AggregateNotifier(notifiers);
}
示例4: Run
public static bool Run(Plugin plugin, ICore core)
{
var gcList = from Geocache gc in core.Geocaches
where gc.FoundDate!=null
&& ((DateTime)gc.FoundDate).Month == gc.PublishedTime.Month
&& ((DateTime)gc.FoundDate).Day == gc.PublishedTime.Day
select gc;
//mass update, so within begin and end
core.Geocaches.BeginUpdate();
//reset current selection
foreach (Geocache gc in core.Geocaches)
{
gc.Selected = false;
}
//set the intended selection
foreach (Geocache gc in gcList)
{
gc.Selected = true;
}
core.Geocaches.EndUpdate();
return true;
}
示例5: AddChatCommand
public void AddChatCommand(string name, Plugin plugin, string callback_name)
{
var command_name = name.ToLowerInvariant();
ChatCommand cmd;
if (chatCommands.TryGetValue(command_name, out cmd))
{
var previous_plugin_name = cmd.Plugin?.Name ?? "an unknown plugin";
var new_plugin_name = plugin?.Name ?? "An unknown plugin";
var msg = $"{new_plugin_name} has replaced the '{command_name}' chat command previously registered by {previous_plugin_name}";
Interface.Oxide.LogWarning(msg);
}
cmd = new ChatCommand(command_name, plugin, callback_name);
// Add the new command to collections
chatCommands[command_name] = cmd;
var commandAttribute = new CommandAttribute("/" + command_name, string.Empty);
var action = (Action<CommandInfo>)Delegate.CreateDelegate(typeof(Action<CommandInfo>), this, GetType().GetMethod("HandleCommand", BindingFlags.NonPublic | BindingFlags.Instance));
commandAttribute.Method = action;
if (CommandManager.RegisteredCommands.ContainsKey(command_name))
{
var new_plugin_name = plugin?.Name ?? "An unknown plugin";
var msg = $"{new_plugin_name} has replaced the '{command_name}' chat command";
Interface.Oxide.LogWarning(msg);
}
CommandManager.RegisteredCommands[command_name] = commandAttribute;
// Hook the unload event
if (plugin) plugin.OnRemovedFromManager += plugin_OnRemovedFromManager;
}
示例6: WebRequest
/// <summary>
/// Initializes a new instance of the WebRequest class
/// </summary>
/// <param name="url"></param>
/// <param name="callback"></param>
/// <param name="owner"></param>
public WebRequest(string url, Action<int, string> callback, Plugin owner)
{
URL = url;
Callback = callback;
Owner = owner;
removedFromManager = Owner?.OnRemovedFromManager.Add(owner_OnRemovedFromManager);
}
示例7: Run
public static bool Run(Plugin plugin, ICore core)
{
DateTime dt = DateTime.Now.AddDays(-7);
var gcList = from Geocache gc in core.Geocaches
where gc.DataFromDate < dt
select gc;
//mass update, so within begin and end
core.Geocaches.BeginUpdate();
//reset current selection
foreach (Geocache gc in core.Geocaches)
{
gc.Selected = false;
}
//set the intended selection
foreach (Geocache gc in gcList)
{
gc.Selected = true;
}
if (MessageBox.Show(LanguageSupport.Instance.GetTranslation("Automatically archive selected geocaches?"),LanguageSupport.Instance.GetTranslation("Archive"), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)== DialogResult.Yes)
{
foreach (Geocache gc in gcList)
{
gc.Archived = true;
gc.Available = false;
}
}
core.Geocaches.EndUpdate();
return true;
}
示例8: GameServer
public GameServer(ref Config uc, ref GameData gd, ref Plugin[] plugs, ref ExtensionHandler ext)
{
UserConfig = uc;
gameData = gd;
Plugins = plugs;
extensions = ext;
}
示例9: AddConsoleCommand
public void AddConsoleCommand(string name, Plugin plugin, string callback_name)
{
// Hook the unload event
if (plugin) plugin.OnRemovedFromManager += plugin_OnRemovedFromManager;
var full_name = name.Trim();
ConsoleCommand cmd;
if (consoleCommands.TryGetValue(full_name, out cmd))
{
// This is a custom command which was already registered by another plugin
var previous_plugin_name = cmd.PluginCallbacks[0].Plugin?.Name ?? "An unknown plugin";
var new_plugin_name = plugin?.Name ?? "An unknown plugin";
var msg = $"{new_plugin_name} has replaced the {name} console command which was previously registered by {previous_plugin_name}";
Interface.Oxide.LogWarning(msg);
consoleCommands.Remove(full_name);
}
// The command either does not already exist or is replacing a previously registered command
cmd = new ConsoleCommand(full_name);
cmd.AddCallback(plugin, callback_name);
// Add the new command to collections
consoleCommands[full_name] = cmd;
}
示例10: RegisteredCommand
/// <summary>
/// Initializes a new instance of the RegisteredCommand class
/// </summary>
/// <param name="source"></param>
/// <param name="command"></param>
/// <param name="callback"></param>
public RegisteredCommand(Plugin source, string command, string callback)
{
// Store fields
Source = source;
Command = command;
Callback = callback;
}
示例11: LoadPlugins
// --- functions ---
/// <summary>Loads all non-runtime plugins.</summary>
internal static void LoadPlugins()
{
UnloadPlugins();
string folder = Program.FileSystem.GetDataFolder("Plugins");
string[] files = Directory.GetFiles(folder);
List<Plugin> list = new List<Plugin>();
foreach (string file in files) {
if (file.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) {
try {
Plugin plugin = new Plugin(file);
Assembly assembly = Assembly.LoadFile(file);
Type[] types = assembly.GetTypes();
foreach (Type type in types) {
if (type.IsSubclassOf(typeof(OpenBveApi.Textures.TextureInterface))) {
plugin.Texture = (OpenBveApi.Textures.TextureInterface)assembly.CreateInstance(type.FullName);
}
if (type.IsSubclassOf(typeof(OpenBveApi.Sounds.SoundInterface))) {
plugin.Sound = (OpenBveApi.Sounds.SoundInterface)assembly.CreateInstance(type.FullName);
}
if (type.IsSubclassOf(typeof(OpenBveApi.Objects.ObjectInterface))) {
plugin.Object = (OpenBveApi.Objects.ObjectInterface)assembly.CreateInstance(type.FullName);
}
}
if (plugin.Texture != null | plugin.Sound != null | plugin.Object != null) {
plugin.Load();
list.Add(plugin);
}
} catch {
// TODO //
}
}
}
LoadedPlugins = list.ToArray();
}
示例12: RequestBootstrapFile
/// <summary>
/// Requests the bootstrap file.
/// </summary>
/// <param name="projectService">The project service.</param>
/// <param name="plugin">The plugin.</param>
internal void RequestBootstrapFile(
IProjectService projectService,
Plugin plugin)
{
TraceService.WriteLine("PluginService::RequestBootstrapFile plugin=" + plugin.FriendlyName);
string bootstrapFileName = plugin.FriendlyName + "PluginBootstrap.cs";
//// check if the file already exists
IProjectItemService projectItemService = projectService.GetProjectItem(bootstrapFileName);
if (projectItemService == null)
{
//// get the currently requested plugins.
string currentPlugins = this.settingsService.PluginsToAdd;
string newPlugins = currentPlugins + "+" + bootstrapFileName;
//// and now save the new requested plugins.
this.settingsService.PluginsToAdd = newPlugins;
TraceService.WriteLine("***plugins for" + projectService.Name + " " + newPlugins);
}
}
示例13: EnqueuePost
public void EnqueuePost(string url, string postdata, string callback, Plugin owner, Dictionary<string, string> headers = null)
{
Interface.Oxide.GetLibrary<WebRequests>("WebRequests").EnqueuePost(url, postdata, (a, b) =>
{
owner.CallHook(callback, a, b);
}, owner, headers);
}
示例14: UnRegister
public static void UnRegister(Plugin plugin)
{
if (Find(plugin) == null)
throw new Exception("This plugin doesnt have this event registered!");
else
events.Remove(Find(plugin));
}
示例15: WebRequest
/// <summary>
/// Initializes a new instance of the WebRequest class
/// </summary>
/// <param name="url"></param>
/// <param name="callback"></param>
/// <param name="owner"></param>
public WebRequest(string url, Action<int, string> callback, Plugin owner)
{
URL = url;
Callback = callback;
Owner = owner;
if (Owner != null) Owner.OnRemovedFromManager += owner_OnRemovedFromManager;
}