Exemple #1
0
        private void addServerPlugin_Click(object sender, EventArgs e)
        {
            OpenFileDialog fd = new OpenFileDialog();

            fd.Title  = "Import server plugin";
            fd.Filter = "Plugin|*.js";

            DialogResult dr = fd.ShowDialog();

            if (dr == DialogResult.OK)
            {
                string target = serverPluginsLocation + fd.SafeFileName;

                //Check if plugin already exists

                if (File.Exists(target))
                {
                    File.Delete(target);
                }

                //Copy plugin file

                File.Copy(fd.FileName, target);

                //Create settings

                PluginSystem.SavePluginSettings(
                    target.Substring(0, target.LastIndexOf('.')) + ".settings.js",
                    true,
                    PluginSystem.ReadPlugin(target).properties
                    );

                //Refresh client plugins

                ReloadServerPlugins();
            }
        }
Exemple #2
0
        private void ReloadServerPlugins()
        {
            try
            {
                //Read all server plugins

                string[] serverFiles =
                    Directory.GetFiles(serverPluginsLocation)
                    .Where(name => name.IndexOf(".settings.js") == -1).ToArray();

                //Clear plugin list

                serverPlugins.Items.Clear();

                //Create new server plugin array

                serverPluginsArray = new Plugin[serverFiles.Length];

                //Handle all plugins

                foreach (string file in serverFiles)
                {
                    //Read plugin

                    Plugin plugin = PluginSystem.ReadPlugin(file);
                    if (plugin == null)
                    {
                        continue;
                    }

                    //Create settings location

                    string settingsLoc = file.Substring(0, file.LastIndexOf('.')) + ".settings.js";

                    //Check if settings exist

                    if (!File.Exists(settingsLoc))
                    {
                        if (!File.Exists(settingsLoc))
                        {
                            PluginSystem.SavePluginSettings(
                                settingsLoc,
                                true,
                                plugin.properties
                                );
                        }
                    }

                    //Read if enabled or not

                    bool enabled = ReadEnabledSettings(settingsLoc);

                    //Add plugin

                    serverPlugins.Items.Add(plugin.name, enabled);
                    serverPluginsArray[serverPlugins.Items.Count - 1] = plugin;
                }
            }
            catch (Exception exc)
            {
                Logger.Error("Could not reload server plugins: ", exc);
            }
        }
Exemple #3
0
        private void Properties_DoubleClick(object sender, EventArgs e)
        {
            if (properties.SelectedIndex == -1)
            {
                return;
            }

            switch (plugin.properties[properties.SelectedIndex])
            {
            //String property

            case PluginStringProperty psp:
                TextInput ti = new TextInput(
                    "Edit '" + psp.name + "'",
                    "Change the property value",
                    psp.value
                    );
                if (ti.ShowDialog() == DialogResult.OK)
                {
                    psp.value = ti.GetResult();
                }
                break;

            //Number property

            case PluginNumberProperty pnp:
                NumberInput ni = new NumberInput(
                    "Edit '" + pnp.name + "'",
                    "Change the property value",
                    pnp.value
                    );
                if (ni.ShowDialog() == DialogResult.OK)
                {
                    pnp.value = ni.GetResult();
                }
                break;

            //Bool property

            case PluginBoolProperty pbp:
                BoolInput bi = new BoolInput(
                    "Edit '" + pbp.name + "'",
                    "Change the property value",
                    pbp.value
                    );
                if (bi.ShowDialog() == DialogResult.OK)
                {
                    pbp.value = bi.GetResult();
                }
                break;
            }

            //Save new settings

            PluginSystem.SavePluginSettings(
                settingsLocation,
                enabled,
                plugin.properties
                );

            //Reload properties

            LoadProperties();
        }