コード例 #1
0
ファイル: VoiceConsole.cs プロジェクト: niel/radegast
        public VoiceConsole(RadegastInstance instance)
        {
            InitializeComponent();
            Disposed += new EventHandler(VoiceConsole_Disposed);

            this.instance = instance;

            // Callbacks
            netcom.ClientLoginStatus += new EventHandler<LoginProgressEventArgs>(netcom_ClientLoginStatus);

            this.instance.MainForm.Load += new EventHandler(MainForm_Load);

            config = instance.GlobalSettings["voice"] as OSDMap;
            if (config == null)
            {
                config = new OSDMap();
                config["enabled"] = new OSDBoolean(false);
                instance.GlobalSettings["voice"] = config;
                instance.GlobalSettings.Save();
            }

            chkVoiceEnable.Checked = config["enabled"].AsBoolean();
            if (chkVoiceEnable.Checked)
                Start();
        }
コード例 #2
0
        public void DeserializeBoolean()
        {
            OSD        theSD    = null;
            OSDArray   array    = null;
            OSDBoolean tempBool = null;

            String testSD = @"<?xml version='1.0' encoding='UTF-8'?>
            <llsd>
                <array>
                    <boolean>1</boolean>
                    <boolean>true</boolean>
                    <boolean>0</boolean>
                    <boolean>false</boolean>
                    <boolean/>
                </array>
            </llsd>";

            //Deserialize the string
            byte[] bytes = Encoding.UTF8.GetBytes(testSD);
            theSD = OSDParser.DeserializeLLSDXml(bytes);

            Assert.IsTrue(theSD is OSDArray);
            array = (OSDArray)theSD;

            Assert.AreEqual(OSDType.Boolean, array[0].Type);
            tempBool = (OSDBoolean)array[0];
            Assert.AreEqual(true, tempBool.AsBoolean());

            Assert.AreEqual(OSDType.Boolean, array[1].Type);
            tempBool = (OSDBoolean)array[1];
            Assert.AreEqual(true, tempBool.AsBoolean());

            Assert.AreEqual(OSDType.Boolean, array[2].Type);
            tempBool = (OSDBoolean)array[2];
            Assert.AreEqual(false, tempBool.AsBoolean());

            Assert.AreEqual(OSDType.Boolean, array[3].Type);
            tempBool = (OSDBoolean)array[3];
            Assert.AreEqual(false, tempBool.AsBoolean());

            Assert.AreEqual(OSDType.Boolean, array[4].Type);
            tempBool = (OSDBoolean)array[4];
            Assert.AreEqual(false, tempBool.AsBoolean());
        }
コード例 #3
0
        private OSDMap SetHomeLocation(OSDMap map)
        {
            OSDMap resp = new OSDMap();
            IAgentInfoService agentService = m_registry.RequestModuleInterface<IAgentInfoService>();
            IGridService gridService = m_registry.RequestModuleInterface<IGridService>();
            UserInfo userinfo = (map.ContainsKey("User") && agentService != null) ? agentService.GetUserInfo(map["User"].AsString()) : null;

            if (!map.ContainsKey("User"))
            {
                resp["Failed"] = new OSDString("No user specified");
            }
            else if (!map.ContainsKey("RegionID") && !map.ContainsKey("Position") && !map.ContainsKey("LookAt"))
            {
                resp["Failed"] = new OSDString("No position info specified");
            }
            else if (agentService == null)
            {
                resp["Failed"] = new OSDString("Could not get IAgentInfoService");
            }
            else if (gridService == null)
            {
                resp["Failed"] = new OSDString("Could not get IGridService");
            }
            else if (userinfo == null)
            {
                resp["Failed"] = new OSDString("Could not find user");
            }
            else
            {
                UUID scopeID = UUID.Zero;
                UUID regionID = UUID.Zero;
                Vector3 position = Vector3.Zero;
                Vector3 lookAt = Vector3.Zero;

                List<string> fail = new List<string>();

                if (map.ContainsKey("ScopeID") && !UUID.TryParse(map["ScopeID"].AsString(), out scopeID))
                {
                    fail.Add("ScopeID was specified but was not a valid UUID");
                }
                if (map.ContainsKey("RegionID") && !UUID.TryParse(map["RegionID"].AsString(), out regionID))
                {
                    fail.Add("RegionID was specified but was not valid UUID");
                }
                if (map.ContainsKey("Position") && !Vector3.TryParse(map["Position"].AsString(), out position))
                {
                    fail.Add("Position was specified but was not valid Vector3");
                }
                if (map.ContainsKey("LookAt") && !Vector3.TryParse(map["LookAt"].AsString(), out lookAt))
                {
                    fail.Add("LookAt was specified but was not valid Vector3");
                }

                if (regionID == UUID.Zero)
                {
                    regionID = userinfo.HomeRegionID;
                }
                if (gridService.GetRegionByUUID(UUID.Zero, regionID) == null)
                {
                    fail.Add("region does not exist");
                }

                if (regionID == UUID.Zero && (map.ContainsKey("Position") || map.ContainsKey("LookAt")))
                {
                    fail.Add("Cannot change home location without specifying a region");
                }

                if (fail.Count > 0)
                {
                    resp["Failed"] = new OSDString(string.Join(". ", fail.ToArray()));
                    return resp;
                }

                userinfo.HomeRegionID = regionID;
                if (map.ContainsKey("Position"))
                {
                    userinfo.HomePosition = position;
                }
                if (map.ContainsKey("LookAt"))
                {
                    userinfo.HomeLookAt = lookAt;
                }

                resp["Success"] = new OSDBoolean(agentService.SetHomePosition(userinfo.UserID, userinfo.HomeRegionID, userinfo.HomePosition, userinfo.HomeLookAt));
            }

            return resp;
        }
コード例 #4
0
        public RelayConsole(RadegastInstance instance)
            : base(instance)
        {
            InitializeComponent();
            Disposed += RelayConsole_Disposed;

            textPrinter = new RichTextBoxPrinter(rtbChatText);

            // Get configuration settings, and initialize if not found.
            config = instance.GlobalSettings["plugin.irc"] as OSDMap;

            if (config == null)
            {
                config                   = new OSDMap();
                config["server"]         = new OSDString("irc.freenode.net");
                config["port"]           = new OSDInteger(6667);
                config["nick"]           = new OSDString(string.Empty);
                config["channel"]        = new OSDString("#");
                config["send_delay"]     = new OSDInteger(200);
                config["auto_reconnect"] = new OSDBoolean(true);
                config["ctcp_version"]   = new OSDString("Radegast IRC");
                instance.GlobalSettings["plugin.irc"] = config;
            }

            if (!config.ContainsKey("server"))
            {
                config["server"] = new OSDString("irc.freenode.net");
            }
            if (!config.ContainsKey("port"))
            {
                config["port"] = new OSDInteger(6667);
            }
            if (!config.ContainsKey("nick"))
            {
                config["nick"] = new OSDString(instance.Client.Self.Name);
            }
            if (!config.ContainsKey("channel"))
            {
                config["channel"] = new OSDString("#");
            }
            if (!config.ContainsKey("send_delay"))
            {
                config["send_delay"] = new OSDInteger(200);
            }
            if (!config.ContainsKey("auto_reconnect"))
            {
                config["auto_reconnect"] = new OSDBoolean(true);
            }
            if (!config.ContainsKey("ctcp_version"))
            {
                config["ctcp_version"] = new OSDString("Radegast IRC");
            }

            txtChan.Text   = config["channel"].AsString();
            txtNick.Text   = config["nick"].AsString();
            txtPort.Text   = config["port"].AsString();
            txtServer.Text = config["server"].AsString();

            irc               = new IrcClient();
            irc.SendDelay     = config["send_delay"].AsInteger();
            irc.AutoReconnect = config["auto_reconnect"].AsBoolean();
            irc.CtcpVersion   = config["ctcp_version"].AsString();
            irc.Encoding      = Encoding.UTF8;

            TC.OnTabAdded        += TC_OnTabAdded;
            TC.OnTabRemoved      += TC_OnTabRemoved;
            irc.OnError          += irc_OnError;
            irc.OnRawMessage     += irc_OnRawMessage;
            irc.OnChannelMessage += irc_OnChannelMessage;
            irc.OnConnected      += irc_OnConnected;
            irc.OnDisconnected   += irc_OnDisconnected;

            client.Self.IM += Self_IM;
            client.Self.ChatFromSimulator += Self_ChatFromSimulator;

            UpdateGui();

            RefreshGroups();
        }
コード例 #5
0
        private OSDMap EditGroupNotice(OSDMap map, UUID requestingAgentID)
        {
            OSDMap resp = new OSDMap();
            UUID noticeID = map.ContainsKey("NoticeID") ? UUID.Parse(map["NoticeID"]) : UUID.Zero;
            IGroupsServiceConnector groups = Aurora.DataManager.DataManager.RequestPlugin<IGroupsServiceConnector>();
            GroupNoticeData GND = noticeID != UUID.Zero && groups != null ? groups.GetGroupNoticeData(requestingAgentID, noticeID) : null;
            GroupNoticeInfo notice = GND != null ? groups.GetGroupNotice(requestingAgentID, GND.NoticeID) : null;

            if (noticeID == UUID.Zero)
            {
                resp["Failed"] = new OSDString("No notice ID was specified");
            }
            else if (groups == null)
            {
                resp["Failed"] = new OSDString("Could not find IGroupsServiceConnector");
            }
            else if (GND == null || notice == null)
            {
                resp["Failed"] = new OSDString("Could not find group notice with specified ID");
            }
            else if (!map.ContainsKey("Subject") && !map.ContainsKey("Message"))
            {
                resp["Success"] = new OSDBoolean(false);
                resp["Note"] = new OSDString("No changes were made to the group notice");
            }
            else
            {
                resp["Success"] = groups.EditGroupNotice(requestingAgentID, notice.GroupID, GND.NoticeID, map.ContainsKey("Subject") ? map["Subject"].ToString() : GND.Subject, map.ContainsKey("Message") ? map["Message"].ToString() : notice.Message);
            }

            return resp;
        }
コード例 #6
0
        private OSDMap ResetAvatar(OSDMap map)
        {
            OSDMap resp = new OSDMap();
            UUID user = UUID.Zero;

            if (!map.ContainsKey("User"))
            {
                resp["Failed"] = new OSDString("User not specified.");
            }
            else if (!UUID.TryParse(map["User"].AsString(), out user))
            {
                resp["Failed"] = new OSDString("User specified but was not valid UUID.");
            }
            else
            {
                IAvatarService avatarService = m_registry.RequestModuleInterface<IAvatarService>();

                if (avatarService == null)
                {
                    resp["Failed"] = new OSDString("Avatar service could not be fetched.");
                }
                else
                {
                    resp["Success"] = new OSDBoolean(avatarService.ResetAvatar(user));
                }
            }

            return resp;
        }
コード例 #7
0
ファイル: Settings.cs プロジェクト: OliveiraLands/Radegast
        public frmSettings(RadegastInstance instance)
            : base(instance)
        {
            if (settingInitialized)
            {
                frmSettings.InitSettigs(instance.GlobalSettings, instance.MonoRuntime);
            }

            InitializeComponent();
            AutoSavePosition = true;
            InitColorSettings();

            s = instance.GlobalSettings;
            tbpGraphics.Controls.Add(new Radegast.Rendering.GraphicsPreferences(instance));
            cbChatTimestamps.Checked = s["chat_timestamps"].AsBoolean();

            cbIMTimeStamps.Checked = s["im_timestamps"].AsBoolean();

            cbChatTimestamps.CheckedChanged += new EventHandler(cbChatTimestamps_CheckedChanged);
            cbIMTimeStamps.CheckedChanged   += new EventHandler(cbIMTimeStamps_CheckedChanged);

            cbTrasactDialog.Checked = s["transaction_notification_dialog"].AsBoolean();
            cbTrasactChat.Checked   = s["transaction_notification_chat"].AsBoolean();

            cbFriendsNotifications.Checked         = s["show_friends_online_notifications"].AsBoolean();
            cbFriendsNotifications.CheckedChanged += new EventHandler(cbFriendsNotifications_CheckedChanged);

            cbAutoReconnect.Checked         = s["auto_reconnect"].AsBoolean();
            cbAutoReconnect.CheckedChanged += new EventHandler(cbAutoReconnect_CheckedChanged);

            cbResolveURIs.Checked         = s["resolve_uris"].AsBoolean();
            cbResolveURIs.CheckedChanged += new EventHandler(cbResolveURIs_CheckedChanged);;

            cbHideLoginGraphics.Checked         = s["hide_login_graphics"].AsBoolean();
            cbHideLoginGraphics.CheckedChanged += new EventHandler(cbHideLoginGraphics_CheckedChanged);

            cbRLV.Checked         = s["rlv_enabled"].AsBoolean();
            cbRLV.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_enabled"] = new OSDBoolean(cbRLV.Checked);
            };

            cbRLVDebug.Checked         = s["rlv_debugcommands"].AsBoolean();
            cbRLVDebug.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_debugcommands"] = new OSDBoolean(cbRLVDebug.Checked);
            };

            cbMUEmotes.Checked         = s["mu_emotes"].AsBoolean();
            cbMUEmotes.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["mu_emotes"] = new OSDBoolean(cbMUEmotes.Checked);
            };

            if (!s.ContainsKey("minimize_to_tray"))
            {
                s["minimize_to_tray"] = OSD.FromBoolean(false);
            }
            cbMinToTrey.Checked         = s["minimize_to_tray"].AsBoolean();
            cbMinToTrey.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["minimize_to_tray"] = OSD.FromBoolean(cbMinToTrey.Checked);
            };


            cbNoTyping.Checked         = s["no_typing_anim"].AsBoolean();
            cbNoTyping.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["no_typing_anim"] = OSD.FromBoolean(cbNoTyping.Checked);
            };

            txtAutoResponse.Text         = s["auto_response_text"];
            txtAutoResponse.TextChanged += (object sender, EventArgs e) =>
            {
                s["auto_response_text"] = txtAutoResponse.Text;
            };
            AutoResponseType art = (AutoResponseType)s["auto_response_type"].AsInteger();

            switch (art)
            {
            case AutoResponseType.WhenBusy: rbAutobusy.Checked = true; break;

            case AutoResponseType.WhenFromNonFriend: rbAutoNonFriend.Checked = true; break;

            case AutoResponseType.Always: rbAutoAlways.Checked = true; break;
            }

            cbSyntaxHighlight.Checked         = s["script_syntax_highlight"].AsBoolean();
            cbSyntaxHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["script_syntax_highlight"] = OSD.FromBoolean(cbSyntaxHighlight.Checked);
            };

            switch ((NameMode)s["display_name_mode"].AsInteger())
            {
            case NameMode.Standard: rbDNOff.Checked = true; break;

            case NameMode.Smart: rbDNSmart.Checked = true; break;

            case NameMode.DisplayNameAndUserName: rbDNDandUsernme.Checked = true; break;

            case NameMode.OnlyDisplayName: rbDNOnlyDN.Checked = true; break;
            }

            txtReconnectTime.Text = s["reconnect_time"].AsInteger().ToString();

            txtResolveURITime.Text = s["resolve_uri_time"].AsInteger().ToString();

            cbRadegastClientTag.Checked         = s["send_rad_client_tag"];
            cbRadegastClientTag.CheckedChanged += (sender, e) =>
            {
                s["send_rad_client_tag"] = cbRadegastClientTag.Checked;
                instance.SetClientTag();
            };

            cbOnInvOffer.SelectedIndex         = s["inv_auto_accept_mode"].AsInteger();
            cbOnInvOffer.SelectedIndexChanged += (sender, e) =>
            {
                s["inv_auto_accept_mode"] = cbOnInvOffer.SelectedIndex;
            };

            cbRadegastLogToFile.Checked = s["log_to_file"];

            cbDisableChatIMLog.Checked         = s["disable_chat_im_log"];
            cbDisableChatIMLog.CheckedChanged += (sender, e) =>
            {
                s["disable_chat_im_log"] = cbDisableChatIMLog.Checked;
            };

            cbDisableLookAt.Checked         = s["disable_look_at"];
            cbDisableLookAt.CheckedChanged += (sender, e) =>
            {
                s["disable_look_at"] = cbDisableLookAt.Checked;
            };

            cbConfirmExit.Checked         = s["confirm_exit"];
            cbConfirmExit.CheckedChanged += (sender, e) =>
            {
                s["confirm_exit"] = cbConfirmExit.Checked;
            };

            cbThemeCompatibilityMode.Checked         = s["theme_compatibility_mode"];
            cbThemeCompatibilityMode.CheckedChanged += (sender, e) =>
            {
                s["theme_compatibility_mode"] = cbThemeCompatibilityMode.Checked;
            };

            cbTaskBarHighLight.Checked         = s["taskbar_highlight"];
            cbTaskBarHighLight.CheckedChanged += (sender, e) =>
            {
                s["taskbar_highlight"] = cbTaskBarHighLight.Checked;
                UpdateEnabled();
            };

            cbFriendsHighlight.Checked         = s["friends_notification_highlight"].AsBoolean();
            cbFriendsHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["friends_notification_highlight"] = new OSDBoolean(cbFriendsHighlight.Checked);
            };

            cbHighlightChat.Checked         = s["highlight_on_chat"];
            cbHighlightChat.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_chat"] = cbHighlightChat.Checked;
            };

            cbHighlightIM.Checked         = s["highlight_on_im"];
            cbHighlightIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_im"] = cbHighlightIM.Checked;
            };

            cbHighlightGroupIM.Checked         = s["highlight_on_group_im"];
            cbHighlightGroupIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_group_im"] = cbHighlightGroupIM.Checked;
            };

            // disable_av_name_link
            if (instance.MonoRuntime)
            {
                cbNameLinks.Visible = false;
            }
            else
            {
                cbNameLinks.Checked         = s["av_name_link"];
                cbNameLinks.CheckedChanged += (sender, e) =>
                {
                    s["av_name_link"] = cbNameLinks.Checked;
                };
            }

            cbDisableHTTPInventory.Checked         = s["disable_http_inventory"];
            cbDisableHTTPInventory.CheckedChanged += (sender, e) =>
            {
                s["disable_http_inventory"] = cbDisableHTTPInventory.Checked;
            };

            cbShowScriptErrors.Checked         = s["show_script_errors"];
            cbShowScriptErrors.CheckedChanged += (sender, e) =>
            {
                s["show_script_errors"] = cbShowScriptErrors.Checked;
            };

            autoSitPrefsUpdate();
            pseudoHomePrefsUpdated();
            LSLHelperPrefsUpdate();

            cbAutoScriptPermission.Text = s["on_script_question"];

            ckUseProxy.Checked = s["use_proxy"];

            txtProxyURL.Text      = s["proxy_url"];
            txtProxyPort.Text     = s["proxy_port"];
            txtProxyUser.Text     = s["proxy_user"];
            txtProxyPassword.Text = s["proxy_password"];

            /*
             * RadeProxy proxy = new RadeProxy();
             *
             * if (ckUseProxy.Checked)
             * {
             *  proxy.SetProxy(ckUseProxy.Checked, txtProxyURL.Text, txtProxyPort.Text, txtProxyUser.Text, txtProxyPassword.Text);
             * }
             * else
             * {
             *  RadeProxy.DisableProxy();
             * }
             */

            UpdateEnabled();

            Radegast.GUI.GuiHelpers.ApplyGuiFixes(this);
        }
コード例 #8
0
ファイル: Settings.cs プロジェクト: OliveiraLands/Radegast
        public static void InitSettigs(Settings s, bool mono)
        {
            if (s["im_timestamps"].Type == OSDType.Unknown)
            {
                s["im_timestamps"] = OSD.FromBoolean(true);
            }

            if (s["rlv_enabled"].Type == OSDType.Unknown)
            {
                s["rlv_enabled"] = new OSDBoolean(false);
            }

            if (s["rlv_debugcommands"].Type == OSDType.Unknown)
            {
                s["rlv_debugcommands"] = new OSDBoolean(false);
            }

            if (s["mu_emotes"].Type == OSDType.Unknown)
            {
                s["mu_emotes"] = new OSDBoolean(false);
            }

            if (s["friends_notification_highlight"].Type == OSDType.Unknown)
            {
                s["friends_notification_highlight"] = new OSDBoolean(true);
            }

            if (!s.ContainsKey("no_typing_anim"))
            {
                s["no_typing_anim"] = OSD.FromBoolean(false);
            }

            if (!s.ContainsKey("auto_response_type"))
            {
                s["auto_response_type"] = (int)AutoResponseType.WhenBusy;
                s["auto_response_text"] = "The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed.  Your message will still be shown in their IM panel for later viewing.";
            }

            if (!s.ContainsKey("script_syntax_highlight"))
            {
                s["script_syntax_highlight"] = OSD.FromBoolean(true);
            }

            if (!s.ContainsKey("display_name_mode"))
            {
                s["display_name_mode"] = (int)NameMode.Smart;
            }

            // Convert legacy settings from first last name to username
            if (!s.ContainsKey("username") && (s.ContainsKey("first_name") && s.ContainsKey("last_name")))
            {
                s["username"] = s["first_name"] + " " + s["last_name"];
                s.Remove("first_name");
                s.Remove("last_name");
            }

            if (!s.ContainsKey("reconnect_time"))
            {
                s["reconnect_time"] = 120;
            }

            if (!s.ContainsKey("resolve_uri_time"))
            {
                s["resolve_uri_time"] = 100;
            }

            if (!s.ContainsKey("resolve_uris"))
            {
                s["resolve_uris"] = true;
            }

            if (!s.ContainsKey("transaction_notification_chat"))
            {
                s["transaction_notification_chat"] = true;
            }

            if (!s.ContainsKey("transaction_notification_dialog"))
            {
                s["transaction_notification_dialog"] = true;
            }

            if (!s.ContainsKey("minimize_to_tray"))
            {
                s["minimize_to_tray"] = false;
            }

            if (!s.ContainsKey("scene_window_docked"))
            {
                s["scene_window_docked"] = true;
            }

            if (!s.ContainsKey("taskbar_highlight"))
            {
                s["taskbar_highlight"] = true;
            }

            if (!s.ContainsKey("rendering_occlusion_culling_enabled2"))
            {
                s["rendering_occlusion_culling_enabled2"] = false;
            }

            if (!s.ContainsKey("rendering_use_vbo"))
            {
                s["rendering_use_vbo"] = true;
            }

            if (!s.ContainsKey("send_rad_client_tag"))
            {
                s["send_rad_client_tag"] = true;
            }

            if (!s.ContainsKey("log_to_file"))
            {
                s["log_to_file"] = true;
            }

            if (!s.ContainsKey("disable_chat_im_log"))
            {
                s["disable_chat_im_log"] = false;
            }

            if (!s.ContainsKey("disable_look_at"))
            {
                s["disable_look_at"] = false;
            }

            if (!s.ContainsKey("confirm_exit"))
            {
                s["confirm_exit"] = false;
            }

            if (!s.ContainsKey("highlight_on_chat"))
            {
                s["highlight_on_chat"] = true;
            }

            if (!s.ContainsKey("highlight_on_im"))
            {
                s["highlight_on_im"] = true;
            }

            if (!s.ContainsKey("highlight_on_group_im"))
            {
                s["highlight_on_group_im"] = true;
            }

            if (!s.ContainsKey("av_name_link"))
            {
                s["av_name_link"] = false;
            }

            if (!s.ContainsKey("disable_http_inventory"))
            {
                s["disable_http_inventory"] = false;
            }

            if (!s.ContainsKey("on_script_question"))
            {
                s["on_script_question"] = "Ask";
            }

            if (!s.ContainsKey("use_proxy"))
            {
                s["use_proxy"] = false;
            }

            if (!s.ContainsKey("proxy_url"))
            {
                s["proxy_url"] = "";
            }
            if (!s.ContainsKey("proxy_port"))
            {
                s["proxy_port"] = "";
            }
            if (!s.ContainsKey("proxy_user"))
            {
                s["proxy_user"] = "";
            }
            if (!s.ContainsKey("proxy_password"))
            {
                s["proxy_password"] = "";
            }
        }
コード例 #9
0
ファイル: PluginControl.cs プロジェクト: nooperation/radegast
        /// <summary>
        /// Plugin start-up entry.
        /// </summary>
        /// <param name="inst"></param>
        /// <remarks>Called by Radegast at start-up</remarks>
        public void StartPlugin(RadegastInstance inst)
        {
            instance = inst;

            // Get configuration settings, and initialize if not found.
            config = instance.GlobalSettings["plugin.speech"] as OSDMap;

            if (config == null)
            {
                config = new OSDMap();
                config["enabled"] = new OSDBoolean(false);
                config["voices"] = new OSDMap();
                config["properties"] = new OSDMap();
                config["substitutions"] = new OSDMap();
                instance.GlobalSettings["plugin.speech"] = config;
            }

            if (!config.ContainsKey("enabled_for_inventory"))
            {
                config["enabled_for_inventory"] = true;
            }

            if (!config.ContainsKey("enabled_for_objects"))
            {
                config["enabled_for_objects"] = true;
            }

            if (!config.ContainsKey("enabled_for_friends"))
            {
                config["enabled_for_friends"] = true;
            }

            OSDMap props = (OSDMap)config["properties"];
            if (props["voice_speed"] == "")
            {
                props["voice_speed"] = "medium";
            }

            #region Buttons on the plugin menu
            // SpeechButton = new ToolStripMenuItem("Speech", null, OnSpeechMenuButtonClicked);
            SpeechButton = new ToolStripMenuItem("Speech");
            instance.MainForm.PluginsMenu.DropDownItems.Add(SpeechButton);

            SpeechButton.Checked = config["enabled"].AsBoolean();

            // Enabled sub menu
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Enabled", null, (sender, e) =>
                {
                    OnSpeechMenuButtonClicked(SpeechButton, EventArgs.Empty);
                    ((ToolStripMenuItem)sender).Checked = SpeechButton.Checked;
                });

                button.Checked = SpeechButton.Checked;

                SpeechButton.DropDownItems.Add(button);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // Voice rate
            {
                ToolStripMenuItem slowButton = new ToolStripMenuItem("Slow");
                slowButton.Name = "slow";
                if (props["voice_speed"] == "slow") slowButton.Checked = true;

                ToolStripMenuItem mediumButton = new ToolStripMenuItem("Medium");
                if (props["voice_speed"] == "medium") mediumButton.Checked = true;
                mediumButton.Name = "medium";

                ToolStripMenuItem fastButton = new ToolStripMenuItem("Fast");
                if (props["voice_speed"] == "fast") fastButton.Checked = true;
                fastButton.Name = "fast";

                slowButton.Click += (sender, e) =>
                {
                    slowButton.Checked = !slowButton.Checked;
                    if (slowButton.Checked)
                    {
                        props["voice_speed"] = "slow";
                        mediumButton.Checked = false;
                        fastButton.Checked = false;
                    }
                };

                mediumButton.Click += (sender, e) =>
                {
                    mediumButton.Checked = !mediumButton.Checked;
                    if (mediumButton.Checked)
                    {
                        props["voice_speed"] = "medium";
                        slowButton.Checked = false;
                        fastButton.Checked = false;
                    }
                };

                fastButton.Click += (sender, e) =>
                {
                    fastButton.Checked = !fastButton.Checked;
                    if (fastButton.Checked)
                    {
                        props["voice_speed"] = "fast";
                        slowButton.Checked = false;
                        mediumButton.Checked = false;
                    }
                };

                SpeechButton.DropDownItems.Add(slowButton);
                SpeechButton.DropDownItems.Add(mediumButton);
                SpeechButton.DropDownItems.Add(fastButton);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // Enable / disable for inventory tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Inventory", null, (sender, e) =>
                {
                    var me = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_inventory"] = me.Checked;
                });
                button.Name = "speech_for_inventory";
                button.AccessibleName = "Speech for inventory";
                button.Checked = config["enabled_for_inventory"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            // Enable / disable for objects tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Objects", null, (sender, e) =>
                {
                    var me = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_objects"] = me.Checked;
                });
                button.Name = "speech_for_objects";
                button.AccessibleName = "Speech for objects";
                button.Checked = config["enabled_for_objects"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            // Enable / disable for friends tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Friends", null, (sender, e) =>
                {
                    var me = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_friends"] = me.Checked;
                });
                button.Name = "speech_for_friends";
                button.AccessibleName = "Speech for friends";
                button.Checked = config["enabled_for_friends"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // 3D Sound sub menu
            {
                ToolStripMenuItem button = new ToolStripMenuItem("3D Sound", null, (sender, e) =>
                {
                    var me = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["3d_sound"] = me.Checked;
                    instance.GlobalSettings.Save();
                    Radegast.Media.Speech.Surround = me.Checked;
                });

                button.Checked = config["3d_sound"].AsBoolean();
                Radegast.Media.Speech.Surround = button.Checked;

                SpeechButton.DropDownItems.Add(button);
            }
            #endregion Buttons on the plugin menu

            if (SpeechButton.Checked)
            {
                Initialize();
            }

            instance.GlobalSettings.Save();

            instance.MainForm.KeyDown += MainForm_KeyDown;
        }
コード例 #10
0
        public string Store(AssetBase asset)
        {
            if (asset.Local)
            {
                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }

                try {
                    // it is also possible to disable Surabaya. I'd favor to configure
                    // Surabaya in the CAPS Section of the OpenSim.ini but right now with still some
                    // old Viwers which do not support http getTexture() I stick to this hack.
                    if (surabayaServerEnabled)
                    {
                        // Create an XML of the Texture in order to transport the Asset to Surabaya.
                        if (asset.Type == (sbyte)AssetType.Texture)
                        {
                            XmlSerializer xs           = new XmlSerializer(typeof(AssetBase));
                            byte[]        result       = ServerUtils.SerializeResult(xs, asset);
                            string        resultString = Util.UTF8.GetString(result);
                            // AKIDO: remove commented code
                            //m_log.DebugFormat("Dump of XML: {0}", resultString);
                            OSDMap serializedAssetCaps = new OSDMap();
                            serializedAssetCaps.Add("assetID", asset.ID);
                            if (asset.Temporary)
                            {
                                serializedAssetCaps.Add("temporary", "true");
                            }
                            else
                            {
                                serializedAssetCaps.Add("temporary", "false");
                            }
                            serializedAssetCaps.Add("serializedAsset", resultString);

                            int tickstart = Util.EnvironmentTickCount();

                            OSDMap surabayaAnswer = WebUtil.PostToService(surabayaServerURI + "/cachetexture", serializedAssetCaps, 3000);

                            if (surabayaAnswer != null)
                            {
                                // m_log.InfoFormat("Caching baked Texture: {0}",surabayaAnswer.ToString());
                                OSDBoolean isSuccess = (OSDBoolean)surabayaAnswer["Success"];
                                if (isSuccess)
                                {
                                    OSDMap answer         = (OSDMap)surabayaAnswer["_Result"];
                                    string surabayaResult = answer["result"];
                                    if (!surabayaResult.Equals("ok"))
                                    {
                                        m_log.ErrorFormat("Error PostingAgent Data: {0}", surabayaAnswer["reason"]);
                                    }
                                    else
                                    {
                                        m_log.InfoFormat("Caching baked Texture {0} was successful in {1}ms", asset.ID, Util.EnvironmentTickCountSubtract(tickstart));
                                    }
                                }
                                else
                                {
                                    m_log.InfoFormat("Caching baked Texture {0} was not successful: {1}", asset.ID, surabayaAnswer["Message"]);
                                }
                            }
                            else
                            {
                                m_log.ErrorFormat("Caching baked texture {0} to Surabaya returned NULL after {1}ms", asset.ID, Util.EnvironmentTickCountSubtract(tickstart));
                            }
                        }
                    }
                } catch (Exception ex) {
                    m_log.Error("Exception while caching baked texture to Surabaya: ", ex);
                }

                return(asset.ID);
            }

            string uri = m_ServerURI + "/assets/";

            string newID = string.Empty;

            try
            {
                newID = SynchronousRestObjectRequester.
                        MakeRequest <AssetBase, string>("POST", uri, asset);
            }
            catch (Exception e)
            {
                m_log.WarnFormat("[ASSET CONNECTOR]: Unable to send asset {0} to asset server. Reason: {1}", asset.ID, e.Message);
            }

            if (newID != String.Empty)
            {
                // Placing this here, so that this work with old asset servers that don't send any reply back
                // SynchronousRestObjectRequester returns somethins that is not an empty string
                if (newID != null)
                {
                    asset.ID = newID;
                }

                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }
            }
            return(newID);
        }
コード例 #11
0
        /// <summary>
        /// Plugin start-up entry.
        /// </summary>
        /// <param name="inst"></param>
        /// <remarks>Called by Radegast at start-up</remarks>
        public void StartPlugin(RadegastInstance inst)
        {
            instance = inst;

            // Get configuration settings, and initialize if not found.
            config = instance.GlobalSettings["plugin.speech"] as OSDMap;

            if (config == null)
            {
                config                  = new OSDMap();
                config["enabled"]       = new OSDBoolean(false);
                config["voices"]        = new OSDMap();
                config["properties"]    = new OSDMap();
                config["substitutions"] = new OSDMap();
                instance.GlobalSettings["plugin.speech"] = config;
            }

            if (!config.ContainsKey("enabled_for_inventory"))
            {
                config["enabled_for_inventory"] = true;
            }

            if (!config.ContainsKey("enabled_for_objects"))
            {
                config["enabled_for_objects"] = true;
            }

            if (!config.ContainsKey("enabled_for_friends"))
            {
                config["enabled_for_friends"] = true;
            }

            OSDMap props = (OSDMap)config["properties"];

            if (props["voice_speed"] == "")
            {
                props["voice_speed"] = "medium";
            }

            #region Buttons on the plugin menu
            // SpeechButton = new ToolStripMenuItem("Speech", null, OnSpeechMenuButtonClicked);
            SpeechButton = new ToolStripMenuItem("Speech");
            instance.MainForm.PluginsMenu.DropDownItems.Add(SpeechButton);

            SpeechButton.Checked = config["enabled"].AsBoolean();

            // Enabled sub menu
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Enabled", null, (sender, e) =>
                {
                    OnSpeechMenuButtonClicked(SpeechButton, EventArgs.Empty);
                    ((ToolStripMenuItem)sender).Checked = SpeechButton.Checked;
                });

                button.Checked = SpeechButton.Checked;

                SpeechButton.DropDownItems.Add(button);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // Voice rate
            {
                ToolStripMenuItem slowButton = new ToolStripMenuItem("Slow");
                slowButton.Name = "slow";
                if (props["voice_speed"] == "slow")
                {
                    slowButton.Checked = true;
                }

                ToolStripMenuItem mediumButton = new ToolStripMenuItem("Medium");
                if (props["voice_speed"] == "medium")
                {
                    mediumButton.Checked = true;
                }
                mediumButton.Name = "medium";

                ToolStripMenuItem fastButton = new ToolStripMenuItem("Fast");
                if (props["voice_speed"] == "fast")
                {
                    fastButton.Checked = true;
                }
                fastButton.Name = "fast";

                slowButton.Click += (sender, e) =>
                {
                    slowButton.Checked = !slowButton.Checked;
                    if (slowButton.Checked)
                    {
                        props["voice_speed"] = "slow";
                        mediumButton.Checked = false;
                        fastButton.Checked   = false;
                    }
                };

                mediumButton.Click += (sender, e) =>
                {
                    mediumButton.Checked = !mediumButton.Checked;
                    if (mediumButton.Checked)
                    {
                        props["voice_speed"] = "medium";
                        slowButton.Checked   = false;
                        fastButton.Checked   = false;
                    }
                };

                fastButton.Click += (sender, e) =>
                {
                    fastButton.Checked = !fastButton.Checked;
                    if (fastButton.Checked)
                    {
                        props["voice_speed"] = "fast";
                        slowButton.Checked   = false;
                        mediumButton.Checked = false;
                    }
                };

                SpeechButton.DropDownItems.Add(slowButton);
                SpeechButton.DropDownItems.Add(mediumButton);
                SpeechButton.DropDownItems.Add(fastButton);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // Enable / disable for inventory tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Inventory", null, (sender, e) =>
                {
                    var me     = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_inventory"] = me.Checked;
                });
                button.Name           = "speech_for_inventory";
                button.AccessibleName = "Speech for inventory";
                button.Checked        = config["enabled_for_inventory"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            // Enable / disable for objects tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Objects", null, (sender, e) =>
                {
                    var me     = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_objects"] = me.Checked;
                });
                button.Name           = "speech_for_objects";
                button.AccessibleName = "Speech for objects";
                button.Checked        = config["enabled_for_objects"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            // Enable / disable for friends tab
            {
                ToolStripMenuItem button = new ToolStripMenuItem("Friends", null, (sender, e) =>
                {
                    var me     = (ToolStripMenuItem)sender;
                    me.Checked = !me.Checked;
                    config["enabled_for_friends"] = me.Checked;
                });
                button.Name           = "speech_for_friends";
                button.AccessibleName = "Speech for friends";
                button.Checked        = config["enabled_for_friends"].AsBoolean();

                SpeechButton.DropDownItems.Add(button);
            }

            SpeechButton.DropDownItems.Add(new ToolStripSeparator());

            // 3D Sound sub menu
            {
                ToolStripMenuItem button = new ToolStripMenuItem("3D Sound", null, (sender, e) =>
                {
                    var me             = (ToolStripMenuItem)sender;
                    me.Checked         = !me.Checked;
                    config["3d_sound"] = me.Checked;
                    instance.GlobalSettings.Save();
                    Radegast.Media.Speech.Surround = me.Checked;
                });

                button.Checked = config["3d_sound"].AsBoolean();
                Radegast.Media.Speech.Surround = button.Checked;

                SpeechButton.DropDownItems.Add(button);
            }
            #endregion Buttons on the plugin menu

            if (SpeechButton.Checked)
            {
                Initialize();
            }

            instance.GlobalSettings.Save();

            instance.MainForm.KeyDown += MainForm_KeyDown;
        }
コード例 #12
0
ファイル: VoiceConsole.cs プロジェクト: niel/radegast
        /// <summary>
        /// Start and stop the voice functions.
        /// </summary>
        private void chkVoiceEnable_Click(object sender, EventArgs e)
        {
            this.BeginInvoke(new MethodInvoker(delegate()
            {
                config["enabled"] = new OSDBoolean(chkVoiceEnable.Checked);
                instance.GlobalSettings.Save();

                if (chkVoiceEnable.Checked)
                {
                    Start();
                }
                else
                {
                    Stop();
                }
            }));
        }
コード例 #13
0
        public override byte[] Handle(string path, Stream requestData, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
        {
            httpResponse.ContentType = "text/plain";

            string methodPath = path.Substring(httpPath.Length).Trim();
            if (methodPath != string.Empty && methodPath.Substring(0, 1) == "/")
            {
                methodPath = methodPath.Substring(1);
            }

            string[] parts = new string[0];
            if (methodPath != string.Empty)
            {
                parts = methodPath.Split('/');
            }
            for (int i = 0; i < parts.Length; ++i)
            {
                parts[i] = HttpUtility.UrlDecode(parts[i]);
            }

            if (parts.Length == 0)
            {
                return new byte[0];
            }

            string method = string.Empty;
            OSD resp = null;
            try
            {
                method = parts[0];
                if (APIMethods.ContainsKey(method))
                {
                    resp = (OSD)APIMethods[method].Invoke(this, new object[1]{ parts });
                }
                else
                {
                    MainConsole.Instance.TraceFormat("[MapAPI] Unsupported method called ({0})", method);
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.TraceFormat("[MapAPI] Exception thrown: " + e.ToString());
            }
            if (resp == null)
            {
                resp = new OSDBoolean(false);
            }
            UTF8Encoding encoding = new UTF8Encoding();
            httpResponse.ContentType = "application/json";
            return encoding.GetBytes(OSDParser.SerializeJsonString(resp, true));
        }
コード例 #14
0
ファイル: Settings.cs プロジェクト: CasperTech/radegast
        public frmSettings(METAboltInstance instance)
            : base(instance)
        {
            if (settingInitialized)
            {
                frmSettings.InitSettigs(instance.GlobalSettings, instance.MonoRuntime);
            }

            InitializeComponent();
            AutoSavePosition = true;

            s = instance.GlobalSettings;
            tbpGraphics.Controls.Add(new METAbolt.Rendering.GraphicsPreferences(instance));
            cbChatTimestamps.Checked = s["chat_timestamps"].AsBoolean();

            cbIMTimeStamps.Checked = s["im_timestamps"].AsBoolean();

            cbChatTimestamps.CheckedChanged += new EventHandler(cbChatTimestamps_CheckedChanged);
            cbIMTimeStamps.CheckedChanged   += new EventHandler(cbIMTimeStamps_CheckedChanged);

            cbTrasactDialog.Checked = s["transaction_notification_dialog"].AsBoolean();
            cbTrasactChat.Checked   = s["transaction_notification_chat"].AsBoolean();

            cbFriendsNotifications.Checked         = s["show_friends_online_notifications"].AsBoolean();
            cbFriendsNotifications.CheckedChanged += new EventHandler(cbFriendsNotifications_CheckedChanged);

            cbAutoReconnect.Checked         = s["auto_reconnect"].AsBoolean();
            cbAutoReconnect.CheckedChanged += new EventHandler(cbAutoReconnect_CheckedChanged);

            cbHideLoginGraphics.Checked         = s["hide_login_graphics"].AsBoolean();
            cbHideLoginGraphics.CheckedChanged += new EventHandler(cbHideLoginGraphics_CheckedChanged);

            cbRLV.Checked         = s["rlv_enabled"].AsBoolean();
            cbRLV.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_enabled"] = new OSDBoolean(cbRLV.Checked);
            };

            cbMUEmotes.Checked         = s["mu_emotes"].AsBoolean();
            cbMUEmotes.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["mu_emotes"] = new OSDBoolean(cbMUEmotes.Checked);
            };

            if (s["chat_font_size"].Type != OSDType.Real)
            {
                s["chat_font_size"] = OSD.FromReal(((ChatConsole)instance.TabConsole.Tabs["chat"].Control).cbxInput.Font.Size);
            }

            cbFontSize.Text = s["chat_font_size"].AsReal().ToString(System.Globalization.CultureInfo.InvariantCulture);

            if (!s.ContainsKey("minimize_to_tray"))
            {
                s["minimize_to_tray"] = OSD.FromBoolean(false);
            }
            cbMinToTrey.Checked         = s["minimize_to_tray"].AsBoolean();
            cbMinToTrey.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["minimize_to_tray"] = OSD.FromBoolean(cbMinToTrey.Checked);
            };


            cbNoTyping.Checked         = s["no_typing_anim"].AsBoolean();
            cbNoTyping.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["no_typing_anim"] = OSD.FromBoolean(cbNoTyping.Checked);
            };

            txtAutoResponse.Text         = s["auto_response_text"];
            txtAutoResponse.TextChanged += (object sender, EventArgs e) =>
            {
                s["auto_response_text"] = txtAutoResponse.Text;
            };
            AutoResponseType art = (AutoResponseType)s["auto_response_type"].AsInteger();

            switch (art)
            {
            case AutoResponseType.WhenBusy: rbAutobusy.Checked = true; break;

            case AutoResponseType.WhenFromNonFriend: rbAutoNonFriend.Checked = true; break;

            case AutoResponseType.Always: rbAutoAlways.Checked = true; break;
            }

            cbSyntaxHighlight.Checked         = s["script_syntax_highlight"].AsBoolean();
            cbSyntaxHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["script_syntax_highlight"] = OSD.FromBoolean(cbSyntaxHighlight.Checked);
            };

            switch ((NameMode)s["display_name_mode"].AsInteger())
            {
            case NameMode.Standard: rbDNOff.Checked = true; break;

            case NameMode.Smart: rbDNSmart.Checked = true; break;

            case NameMode.DisplayNameAndUserName: rbDNDandUsernme.Checked = true; break;

            case NameMode.OnlyDisplayName: rbDNOnlyDN.Checked = true; break;
            }

            txtReconnectTime.Text = s["reconnect_time"].AsInteger().ToString();

            cbMETAboltClientTag.Checked         = s["send_rad_client_tag"];
            cbMETAboltClientTag.CheckedChanged += (sender, e) =>
            {
                s["send_rad_client_tag"] = cbMETAboltClientTag.Checked;
                instance.SetClientTag();
            };

            cbOnInvOffer.SelectedIndex         = s["inv_auto_accept_mode"].AsInteger();
            cbOnInvOffer.SelectedIndexChanged += (sender, e) =>
            {
                s["inv_auto_accept_mode"] = cbOnInvOffer.SelectedIndex;
            };

            cbMETAboltLogToFile.Checked = s["log_to_file"];

            cbDisableChatIMLog.Checked         = s["disable_chat_im_log"];
            cbDisableChatIMLog.CheckedChanged += (sender, e) =>
            {
                s["disable_chat_im_log"] = cbDisableChatIMLog.Checked;
            };

            cbDisableLookAt.Checked         = s["disable_look_at"];
            cbDisableLookAt.CheckedChanged += (sender, e) =>
            {
                s["disable_look_at"] = cbDisableLookAt.Checked;
            };

            cbTaskBarHighLight.Checked         = s["taskbar_highlight"];
            cbTaskBarHighLight.CheckedChanged += (sender, e) =>
            {
                s["taskbar_highlight"] = cbTaskBarHighLight.Checked;
                UpdateEnabled();
            };

            cbFriendsHighlight.Checked         = s["friends_notification_highlight"].AsBoolean();
            cbFriendsHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["friends_notification_highlight"] = new OSDBoolean(cbFriendsHighlight.Checked);
            };

            cbHighlightChat.Checked         = s["highlight_on_chat"];
            cbHighlightChat.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_chat"] = cbHighlightChat.Checked;
            };

            cbHighlightIM.Checked         = s["highlight_on_im"];
            cbHighlightIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_im"] = cbHighlightIM.Checked;
            };

            cbHighlightGroupIM.Checked         = s["highlight_on_group_im"];
            cbHighlightGroupIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_group_im"] = cbHighlightGroupIM.Checked;
            };

            // disable_av_name_link
            if (instance.MonoRuntime)
            {
                cbNameLinks.Visible = false;
            }
            else
            {
                cbNameLinks.Checked         = s["av_name_link"];
                cbNameLinks.CheckedChanged += (sender, e) =>
                {
                    s["av_name_link"] = cbNameLinks.Checked;
                };
            }

            cbDisableHTTPInventory.Checked         = s["disable_http_inventory"];
            cbDisableHTTPInventory.CheckedChanged += (sender, e) =>
            {
                s["disable_http_inventory"] = cbDisableHTTPInventory.Checked;
            };

            cbShowScriptErrors.Checked         = s["show_script_errors"];
            cbShowScriptErrors.CheckedChanged += (sender, e) =>
            {
                s["show_script_errors"] = cbShowScriptErrors.Checked;
            };

            autoSitPrefsUpdate();
            pseudoHomePrefsUpdated();
            LSLHelperPrefsUpdate();

            cbAutoScriptPermission.Text = s["on_script_question"];

            UpdateEnabled();
        }
コード例 #15
0
ファイル: Settings.cs プロジェクト: Booser/radegast
        public frmSettings(RadegastInstance instance)
            : base(instance)
        {
            if (settingInitialized)
            {
                frmSettings.InitSettigs(instance.GlobalSettings, instance.MonoRuntime);
            }

            InitializeComponent();
            AutoSavePosition = true;

            s = instance.GlobalSettings;
            tbpGraphics.Controls.Add(new Radegast.Rendering.GraphicsPreferences(instance));
            cbChatTimestamps.Checked = s["chat_timestamps"].AsBoolean();

            cbIMTimeStamps.Checked = s["im_timestamps"].AsBoolean();

            cbChatTimestamps.CheckedChanged += new EventHandler(cbChatTimestamps_CheckedChanged);
            cbIMTimeStamps.CheckedChanged += new EventHandler(cbIMTimeStamps_CheckedChanged);

            cbTrasactDialog.Checked = s["transaction_notification_dialog"].AsBoolean();
            cbTrasactChat.Checked = s["transaction_notification_chat"].AsBoolean();

            cbFriendsNotifications.Checked = s["show_friends_online_notifications"].AsBoolean();
            cbFriendsNotifications.CheckedChanged += new EventHandler(cbFriendsNotifications_CheckedChanged);

            cbAutoReconnect.Checked = s["auto_reconnect"].AsBoolean();
            cbAutoReconnect.CheckedChanged += new EventHandler(cbAutoReconnect_CheckedChanged);

            cbResolveURIs.Checked = s["resolve_uris"].AsBoolean();
            cbResolveURIs.CheckedChanged += new EventHandler(cbResolveURIs_CheckedChanged); ;

            cbHideLoginGraphics.Checked = s["hide_login_graphics"].AsBoolean();
            cbHideLoginGraphics.CheckedChanged += new EventHandler(cbHideLoginGraphics_CheckedChanged);

            cbRLV.Checked = s["rlv_enabled"].AsBoolean();
            cbRLV.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_enabled"] = new OSDBoolean(cbRLV.Checked);
            };

            cbRLVDebug.Checked = s["rlv_debugcommands"].AsBoolean();
            cbRLVDebug.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_debugcommands"] = new OSDBoolean(cbRLVDebug.Checked);
            };

            cbMUEmotes.Checked = s["mu_emotes"].AsBoolean();
            cbMUEmotes.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["mu_emotes"] = new OSDBoolean(cbMUEmotes.Checked);
            };

            if (s["chat_font_size"].Type != OSDType.Real)
            {
                s["chat_font_size"] = OSD.FromReal(((ChatConsole)instance.TabConsole.Tabs["chat"].Control).cbxInput.Font.Size);
            }

            cbFontSize.Text = s["chat_font_size"].AsReal().ToString(System.Globalization.CultureInfo.InvariantCulture);

            if (!s.ContainsKey("minimize_to_tray")) s["minimize_to_tray"] = OSD.FromBoolean(false);
            cbMinToTrey.Checked = s["minimize_to_tray"].AsBoolean();
            cbMinToTrey.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["minimize_to_tray"] = OSD.FromBoolean(cbMinToTrey.Checked);
            };

            cbNoTyping.Checked = s["no_typing_anim"].AsBoolean();
            cbNoTyping.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["no_typing_anim"] = OSD.FromBoolean(cbNoTyping.Checked);
            };

            txtAutoResponse.Text = s["auto_response_text"];
            txtAutoResponse.TextChanged += (object sender, EventArgs e) =>
            {
                s["auto_response_text"] = txtAutoResponse.Text;
            };
            AutoResponseType art = (AutoResponseType)s["auto_response_type"].AsInteger();
            switch (art)
            {
                case AutoResponseType.WhenBusy: rbAutobusy.Checked = true; break;
                case AutoResponseType.WhenFromNonFriend: rbAutoNonFriend.Checked = true; break;
                case AutoResponseType.Always: rbAutoAlways.Checked = true; break;
            }

            cbSyntaxHighlight.Checked = s["script_syntax_highlight"].AsBoolean();
            cbSyntaxHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["script_syntax_highlight"] = OSD.FromBoolean(cbSyntaxHighlight.Checked);
            };

            switch ((NameMode)s["display_name_mode"].AsInteger())
            {
                case NameMode.Standard: rbDNOff.Checked = true; break;
                case NameMode.Smart: rbDNSmart.Checked = true; break;
                case NameMode.DisplayNameAndUserName: rbDNDandUsernme.Checked = true; break;
                case NameMode.OnlyDisplayName: rbDNOnlyDN.Checked = true; break;
            }

            txtReconnectTime.Text = s["reconnect_time"].AsInteger().ToString();

            txtResolveURITime.Text = s["resolve_uri_time"].AsInteger().ToString();

            cbRadegastClientTag.Checked = s["send_rad_client_tag"];
            cbRadegastClientTag.CheckedChanged += (sender, e) =>
            {
                s["send_rad_client_tag"] = cbRadegastClientTag.Checked;
                instance.SetClientTag();
            };

            cbOnInvOffer.SelectedIndex = s["inv_auto_accept_mode"].AsInteger();
            cbOnInvOffer.SelectedIndexChanged += (sender, e) =>
            {
                s["inv_auto_accept_mode"] = cbOnInvOffer.SelectedIndex;
            };

            cbRadegastLogToFile.Checked = s["log_to_file"];

            cbDisableChatIMLog.Checked = s["disable_chat_im_log"];
            cbDisableChatIMLog.CheckedChanged += (sender, e) =>
            {
                s["disable_chat_im_log"] = cbDisableChatIMLog.Checked;
            };

            cbDisableLookAt.Checked = s["disable_look_at"];
            cbDisableLookAt.CheckedChanged += (sender, e) =>
            {
                s["disable_look_at"] = cbDisableLookAt.Checked;
            };

            cbConfirmExit.Checked = s["confirm_exit"];
            cbConfirmExit.CheckedChanged += (sender, e) =>
            {
                s["confirm_exit"] = cbConfirmExit.Checked;
            };

            cbTaskBarHighLight.Checked = s["taskbar_highlight"];
            cbTaskBarHighLight.CheckedChanged += (sender, e) =>
            {
                s["taskbar_highlight"] = cbTaskBarHighLight.Checked;
                UpdateEnabled();
            };

            cbFriendsHighlight.Checked = s["friends_notification_highlight"].AsBoolean();
            cbFriendsHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["friends_notification_highlight"] = new OSDBoolean(cbFriendsHighlight.Checked);
            };

            cbHighlightChat.Checked = s["highlight_on_chat"];
            cbHighlightChat.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_chat"] = cbHighlightChat.Checked;
            };

            cbHighlightIM.Checked = s["highlight_on_im"];
            cbHighlightIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_im"] = cbHighlightIM.Checked;
            };

            cbHighlightGroupIM.Checked = s["highlight_on_group_im"];
            cbHighlightGroupIM.CheckedChanged += (sender, e) =>
            {
                s["highlight_on_group_im"] = cbHighlightGroupIM.Checked;
            };

            // disable_av_name_link
            if (instance.MonoRuntime)
            {
                cbNameLinks.Visible = false;
            }
            else
            {
                cbNameLinks.Checked = s["av_name_link"];
                cbNameLinks.CheckedChanged += (sender, e) =>
                {
                    s["av_name_link"] = cbNameLinks.Checked;
                };
            }

            cbDisableHTTPInventory.Checked = s["disable_http_inventory"];
            cbDisableHTTPInventory.CheckedChanged += (sender, e) =>
            {
                s["disable_http_inventory"] = cbDisableHTTPInventory.Checked;
            };

            cbShowScriptErrors.Checked = s["show_script_errors"];
            cbShowScriptErrors.CheckedChanged += (sender, e) =>
            {
                s["show_script_errors"] = cbShowScriptErrors.Checked;
            };

            autoSitPrefsUpdate();
            pseudoHomePrefsUpdated();
            LSLHelperPrefsUpdate();

            cbAutoScriptPermission.Text = s["on_script_question"];

            UpdateEnabled();
        }
コード例 #16
0
ファイル: Settings.cs プロジェクト: robincornelius/radegast
        public static void InitSettigs(Settings s)
        {
            if (s["im_timestamps"].Type == OSDType.Unknown)
            {
                s["im_timestamps"] = OSD.FromBoolean(true);
            }

            if (s["rlv_enabled"].Type == OSDType.Unknown)
            {
                s["rlv_enabled"] = new OSDBoolean(false);
            }

            if (s["mu_emotes"].Type == OSDType.Unknown)
            {
                s["mu_emotes"] = new OSDBoolean(false);
            }

            if (s["friends_notification_highlight"].Type == OSDType.Unknown)
            {
                s["friends_notification_highlight"] = new OSDBoolean(true);
            }

            if (!s.ContainsKey("no_typing_anim")) s["no_typing_anim"] = OSD.FromBoolean(false);

            if (!s.ContainsKey("auto_response_type"))
            {
                s["auto_response_type"] = (int)AutoResponseType.WhenBusy;
                s["auto_response_text"] = "The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed.  Your message will still be shown in their IM panel for later viewing.";
            }

            if (!s.ContainsKey("script_syntax_highlight")) s["script_syntax_highlight"] = OSD.FromBoolean(true);

            if (!s.ContainsKey("display_name_mode")) s["display_name_mode"] = (int)NameMode.Smart;

            // Convert legacy settings from first last name to username
            if (!s.ContainsKey("username") && (s.ContainsKey("first_name") && s.ContainsKey("last_name")))
            {
                s["username"] = s["first_name"] + " " + s["last_name"];
                s.Remove("first_name");
                s.Remove("last_name");
            }

            if (!s.ContainsKey("reconnect_time")) s["reconnect_time"] = 120;

            if (!s.ContainsKey("transaction_notification_chat")) s["transaction_notification_chat"] = true;

            if (!s.ContainsKey("transaction_notification_dialog")) s["transaction_notification_dialog"] = true;

            if (!s.ContainsKey("minimize_to_tray")) s["minimize_to_tray"] = false;

            if (!s.ContainsKey("scene_window_docked")) s["scene_window_docked"] = true;

            if (!s.ContainsKey("taskbar_highlight")) s["taskbar_highlight"] = true;

            if (!s.ContainsKey("rendering_occlusion_culling_enabled")) s["rendering_occlusion_culling_enabled"] = true;

            if (!s.ContainsKey("rendering_use_vbo")) s["rendering_use_vbo"] = true;

            if (!s.ContainsKey("send_rad_client_tag")) s["send_rad_client_tag"] = true;

            if (!s.ContainsKey("log_to_file")) s["log_to_file"] = true;
        }
コード例 #17
0
ファイル: PluginControl.cs プロジェクト: niel/radegast
        /// <summary>
        /// Plugin start-up entry.
        /// </summary>
        /// <param name="inst"></param>
        /// <remarks>Called by Radegast at start-up</remarks>
        public void StartPlugin(RadegastInstance inst)
        {
            instance = inst;

            // Get configuration settings, and initialize if not found.
            config = instance.GlobalSettings["plugin.speech"] as OSDMap;

            if (config == null)
            {
                config = new OSDMap();
                config["enabled"] = new OSDBoolean(false);
                config["voices"] = new OSDMap();
                config["properties"] = new OSDMap();
                config["substitutions"] = new OSDMap();
                instance.GlobalSettings["plugin.speech"] = config;
                instance.GlobalSettings.Save();
            }

            // Add our enable/disable item to the Plugin Menu.
            ToolsMenu = instance.MainForm.PluginsMenu;

            SpeechButton = new ToolStripMenuItem("Speech", null, OnSpeechMenuButtonClicked);
            ToolsMenu.DropDownItems.Add(SpeechButton);

            SpeechButton.Checked = config["enabled"].AsBoolean();

            ToolsMenu.Visible = true;

            if (SpeechButton.Checked)
            {
                Initialize();
            }
        }
コード例 #18
0
ファイル: Settings.cs プロジェクト: robincornelius/radegast
        public frmSettings(RadegastInstance instance)
        {
            if (settingInitialized)
            {
                frmSettings.InitSettigs(instance.GlobalSettings);
            }

            InitializeComponent();

            s = instance.GlobalSettings;
            tbpGraphics.Controls.Add(new Radegast.Rendering.GraphicsPreferences(instance));
            cbChatTimestamps.Checked = s["chat_timestamps"].AsBoolean();

            cbIMTimeStamps.Checked = s["im_timestamps"].AsBoolean();

            cbChatTimestamps.CheckedChanged += new EventHandler(cbChatTimestamps_CheckedChanged);
            cbIMTimeStamps.CheckedChanged += new EventHandler(cbIMTimeStamps_CheckedChanged);

            cbTrasactDialog.Checked = s["transaction_notification_dialog"].AsBoolean();
            cbTrasactChat.Checked = s["transaction_notification_chat"].AsBoolean();

            cbFriendsNotifications.Checked = s["show_friends_online_notifications"].AsBoolean();
            cbFriendsNotifications.CheckedChanged += new EventHandler(cbFriendsNotifications_CheckedChanged);

            cbAutoReconnect.Checked = s["auto_reconnect"].AsBoolean();
            cbAutoReconnect.CheckedChanged += new EventHandler(cbAutoReconnect_CheckedChanged);

            cbHideLoginGraphics.Checked = s["hide_login_graphics"].AsBoolean();
            cbHideLoginGraphics.CheckedChanged += new EventHandler(cbHideLoginGraphics_CheckedChanged);

            cbRLV.Checked = s["rlv_enabled"].AsBoolean();
            cbRLV.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["rlv_enabled"] = new OSDBoolean(cbRLV.Checked);
            };

            cbMUEmotes.Checked = s["mu_emotes"].AsBoolean();
            cbMUEmotes.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["mu_emotes"] = new OSDBoolean(cbMUEmotes.Checked);
            };

            cbFriendsHighlight.Checked = s["friends_notification_highlight"].AsBoolean();
            cbFriendsHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["friends_notification_highlight"] = new OSDBoolean(cbFriendsHighlight.Checked);
            };

            if (s["chat_font_size"].Type != OSDType.Real)
            {
                s["chat_font_size"] = OSD.FromReal(((ChatConsole)instance.TabConsole.Tabs["chat"].Control).cbxInput.Font.Size);
            }

            cbFontSize.Text = s["chat_font_size"].AsReal().ToString(System.Globalization.CultureInfo.InvariantCulture);

            if (!s.ContainsKey("minimize_to_tray")) s["minimize_to_tray"] = OSD.FromBoolean(false);
            cbMinToTrey.Checked = s["minimize_to_tray"].AsBoolean();
            cbMinToTrey.CheckedChanged += (object sender, EventArgs e) =>
                {
                    s["minimize_to_tray"] = OSD.FromBoolean(cbMinToTrey.Checked);
                };

            cbNoTyping.Checked = s["no_typing_anim"].AsBoolean();
            cbNoTyping.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["no_typing_anim"] = OSD.FromBoolean(cbNoTyping.Checked);
            };

            txtAutoResponse.Text = s["auto_response_text"];
            txtAutoResponse.TextChanged += (object sender, EventArgs e) =>
                {
                    s["auto_response_text"] = txtAutoResponse.Text;
                };
            AutoResponseType art = (AutoResponseType)s["auto_response_type"].AsInteger();
            switch (art)
            {
                case AutoResponseType.WhenBusy: rbAutobusy.Checked = true; break;
                case AutoResponseType.WhenFromNonFriend: rbAutoNonFriend.Checked = true; break;
                case AutoResponseType.Always: rbAutoAlways.Checked = true; break;
            }

            cbSyntaxHighlight.Checked = s["script_syntax_highlight"].AsBoolean();
            cbSyntaxHighlight.CheckedChanged += (object sender, EventArgs e) =>
            {
                s["script_syntax_highlight"] = OSD.FromBoolean(cbSyntaxHighlight.Checked);
            };

            switch ((NameMode)s["display_name_mode"].AsInteger())
            {
                case NameMode.Standard: rbDNOff.Checked = true; break;
                case NameMode.Smart: rbDNSmart.Checked = true; break;
                case NameMode.DisplayNameAndUserName: rbDNDandUsernme.Checked = true; break;
                case NameMode.OnlyDisplayName: rbDNOnlyDN.Checked = true; break;
            }

            txtReconnectTime.Text = s["reconnect_time"].AsInteger().ToString();

            cbTaskBarHighLight.Checked = s["taskbar_highlight"];
            cbTaskBarHighLight.CheckedChanged += (sender, e) =>
            {
                s["taskbar_highlight"] = cbTaskBarHighLight.Checked;
            };

            cbRadegastClientTag.Checked = s["send_rad_client_tag"];
            cbRadegastClientTag.CheckedChanged += (sender, e) =>
            {
                s["send_rad_client_tag"] = cbRadegastClientTag.Checked;
                instance.SetClientTag();
            };

            cbOnInvOffer.SelectedIndex = s["inv_auto_accept_mode"].AsInteger();
            cbOnInvOffer.SelectedIndexChanged += (sender, e) =>
            {
                s["inv_auto_accept_mode"] = cbOnInvOffer.SelectedIndex;
            };

            cbRadegastLogToFile.Checked = s["log_to_file"];
        }
コード例 #19
0
ファイル: RelayConsole.cs プロジェクト: Booser/radegast
        public RelayConsole(RadegastInstance instance)
            : base(instance)
        {
            InitializeComponent();
            Disposed += RelayConsole_Disposed;

            textPrinter = new RichTextBoxPrinter(rtbChatText);

            // Get configuration settings, and initialize if not found.
            config = instance.GlobalSettings["plugin.irc"] as OSDMap;

            if (config == null)
            {
                config = new OSDMap();
                config["server"] = new OSDString("irc.freenode.net");
                config["port"] = new OSDInteger(6667);
                config["nick"] = new OSDString(string.Empty);
                config["channel"] = new OSDString("#");
                config["send_delay"] = new OSDInteger(200);
                config["auto_reconnect"] = new OSDBoolean(true);
                config["ctcp_version"] = new OSDString("Radegast IRC");
                instance.GlobalSettings["plugin.irc"] = config;
            }

            if (!config.ContainsKey("server"))
                config["server"] = new OSDString("irc.freenode.net");
            if (!config.ContainsKey("port"))
                config["port"] = new OSDInteger(6667);
            if (!config.ContainsKey("nick"))
                config["nick"] = new OSDString(instance.Client.Self.Name);
            if (!config.ContainsKey("channel"))
                config["channel"] = new OSDString("#");
            if (!config.ContainsKey("send_delay"))
                config["send_delay"] = new OSDInteger(200);
            if (!config.ContainsKey("auto_reconnect"))
                config["auto_reconnect"] = new OSDBoolean(true);
            if (!config.ContainsKey("ctcp_version"))
                config["ctcp_version"] = new OSDString("Radegast IRC");

            txtChan.Text = config["channel"].AsString();
            txtNick.Text = config["nick"].AsString();
            txtPort.Text = config["port"].AsString();
            txtServer.Text = config["server"].AsString();

            irc = new IrcClient();
            irc.SendDelay = config["send_delay"].AsInteger();
            irc.AutoReconnect = config["auto_reconnect"].AsBoolean();
            irc.CtcpVersion = config["ctcp_version"].AsString();
            irc.Encoding = Encoding.UTF8;

            TC.OnTabAdded += TC_OnTabAdded;
            TC.OnTabRemoved += TC_OnTabRemoved;
            irc.OnError += irc_OnError;
            irc.OnRawMessage += irc_OnRawMessage;
            irc.OnChannelMessage += irc_OnChannelMessage;
            irc.OnConnected += irc_OnConnected;
            irc.OnDisconnected += irc_OnDisconnected;

            client.Self.IM += Self_IM;
            client.Self.ChatFromSimulator += Self_ChatFromSimulator;

            UpdateGui();

            RefreshGroups();
        }