aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2009-08-17 19:48:32 +0100
committerJustin Clark-Casey (justincc)2009-08-17 19:48:32 +0100
commiteb78ac343e68d36a84fdc7fec47797233699cccc (patch)
tree93e29213d4e32167566569186ea88b4c44fe20ae
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-eb78ac343e68d36a84fdc7fec47797233699cccc.zip
opensim-SC_OLD-eb78ac343e68d36a84fdc7fec47797233699cccc.tar.gz
opensim-SC_OLD-eb78ac343e68d36a84fdc7fec47797233699cccc.tar.bz2
opensim-SC_OLD-eb78ac343e68d36a84fdc7fec47797233699cccc.tar.xz
Apply http://opensimulator.org/mantis/view.php?id=3538
Add ability to silence IRC relay of region joins and quits from certain users This is useful for admins who wish to remain hidden, or service bots. Thanks RemedyTomm
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Chat/ChannelState.cs10
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs12
-rw-r--r--bin/OpenSim.ini.example25
3 files changed, 33 insertions, 14 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/ChannelState.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/ChannelState.cs
index f03e5fc..b61959f 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/ChannelState.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/ChannelState.cs
@@ -83,6 +83,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
83 83
84 internal string _accessPassword = String.Empty; 84 internal string _accessPassword = String.Empty;
85 internal Regex AccessPasswordRegex = null; 85 internal Regex AccessPasswordRegex = null;
86 internal List<string> ExcludeList = new List<string>();
86 internal string AccessPassword 87 internal string AccessPassword
87 { 88 {
88 get { return _accessPassword; } 89 get { return _accessPassword; }
@@ -210,8 +211,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
210 m_log.DebugFormat("[IRC-Channel-{0}] PingDelay : <{1}>", cs.idn, cs.PingDelay); 211 m_log.DebugFormat("[IRC-Channel-{0}] PingDelay : <{1}>", cs.idn, cs.PingDelay);
211 cs.AccessPassword = Substitute(rs, config.GetString("access_password", cs.AccessPassword)); 212 cs.AccessPassword = Substitute(rs, config.GetString("access_password", cs.AccessPassword));
212 m_log.DebugFormat("[IRC-Channel-{0}] AccessPassword : <{1}>", cs.idn, cs.AccessPassword); 213 m_log.DebugFormat("[IRC-Channel-{0}] AccessPassword : <{1}>", cs.idn, cs.AccessPassword);
213 214 string[] excludes = config.GetString("exclude_list", "").Trim().Split(new Char[] { ',' });
214 215 cs.ExcludeList = new List<string>(excludes.Length);
216 foreach(string name in excludes)
217 {
218 cs.ExcludeList.Add(name.Trim().ToLower());
219 }
220
215 // Fail if fundamental information is still missing 221 // Fail if fundamental information is still missing
216 222
217 if (cs.Server == null || cs.IrcChannel == null || cs.BaseNickname == null || cs.User == null) 223 if (cs.Server == null || cs.IrcChannel == null || cs.BaseNickname == null || cs.User == null)
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
index 203948e..c49d942 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
@@ -145,7 +145,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
145 if (enabled && (cs.irc.Enabled) && (cs.irc.Connected) && (cs.ClientReporting)) 145 if (enabled && (cs.irc.Enabled) && (cs.irc.Connected) && (cs.ClientReporting))
146 { 146 {
147 m_log.InfoFormat("[IRC-Region {0}]: {1} has left", Region, client.Name); 147 m_log.InfoFormat("[IRC-Region {0}]: {1} has left", Region, client.Name);
148 cs.irc.PrivMsg(cs.NoticeMessageFormat, cs.irc.Nick, Region, String.Format("{0} has left", client.Name)); 148 //Check if this person is excluded from IRC
149 if (!cs.ExcludeList.Contains(client.Name.ToLower()))
150 {
151 cs.irc.PrivMsg(cs.NoticeMessageFormat, cs.irc.Nick, Region, String.Format("{0} has left", client.Name));
152 }
149 } 153 }
150 client.OnLogout -= OnClientLoggedOut; 154 client.OnLogout -= OnClientLoggedOut;
151 client.OnConnectionClosed -= OnClientLoggedOut; 155 client.OnConnectionClosed -= OnClientLoggedOut;
@@ -209,7 +213,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
209 { 213 {
210 string clientName = String.Format("{0} {1}", presence.Firstname, presence.Lastname); 214 string clientName = String.Format("{0} {1}", presence.Firstname, presence.Lastname);
211 m_log.DebugFormat("[IRC-Region {0}] {1} has arrived", Region, clientName); 215 m_log.DebugFormat("[IRC-Region {0}] {1} has arrived", Region, clientName);
212 cs.irc.PrivMsg(cs.NoticeMessageFormat, cs.irc.Nick, Region, String.Format("{0} has arrived", clientName)); 216 //Check if this person is excluded from IRC
217 if (!cs.ExcludeList.Contains(clientName.ToLower()))
218 {
219 cs.irc.PrivMsg(cs.NoticeMessageFormat, cs.irc.Nick, Region, String.Format("{0} has arrived", clientName));
220 }
213 } 221 }
214 } 222 }
215 } 223 }
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 166f2c6..9a17c58 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -679,16 +679,21 @@
679 ;relay_chat = true 679 ;relay_chat = true
680 ;access_password = foobar 680 ;access_password = foobar
681 681
682 ;fallback_region = name of "default" region 682 ;;fallback_region = name of "default" region
683 ;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message 683 ;;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
684 ; must start with "PRIVMSG {0} : " or irc server will get upset 684 ;; must start with "PRIVMSG {0} : " or irc server will get upset
685 ;for <bot>:<user in region> :<message> 685 ;;for <bot>:<user in region> :<message>
686 ;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}" 686 ;;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
687 ;for <bot>:<message> - <user of region> : 687 ;;for <bot>:<message> - <user of region> :
688 msgformat = "PRIVMSG {0} : {3} - {1} of {2}" 688 ;msgformat = "PRIVMSG {0} : {3} - {1} of {2}"
689 ;for <bot>:<message> - from <user> : 689 ;;for <bot>:<message> - from <user> :
690 ;msgformat = "PRIVMSG {0} : {3} - from {1}" 690 ;;msgformat = "PRIVMSG {0} : {3} - from {1}"
691 691
692 ;; exclude_list allows you to stop the IRC connector from announcing the
693 ;;arrival and departure of certain users. For example: admins, bots.
694
695 ;exclude_list=User 1,User 2,User 3
696
692 697
693;[CMS] 698;[CMS]
694 ;enabled = true 699 ;enabled = true