Changeset 373
- Timestamp:
- 04/15/08 00:23:42 (9 months ago)
- Location:
- TwitterIrcGateway/TwitterIrcGatewayCore
- Files:
-
- 2 added
- 3 modified
-
Group.cs (modified) (5 diffs)
-
IRCClient/ChannelMode.cs (added)
-
IRCClient/ChannelModeTypes.cs (added)
-
Session.cs (modified) (4 diffs)
-
TwitterIrcGatewayCore.csproj (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
TwitterIrcGateway/TwitterIrcGatewayCore/Group.cs
r359 r373 6 6 using System.IO; 7 7 using System.Xml; 8 using Misuzilla.Net.Irc; 8 9 9 10 namespace Misuzilla.Applications.TwitterIrcGateway … … 54 55 retGroups[group.Name] = group; 55 56 group.IsJoined = false; 57 group.ChannelModes = group.ChannelModes == null ? new List<ChannelMode>() : group.ChannelModes; 56 58 } 57 59 … … 67 69 public Boolean IsJoined { get; set; } 68 70 public String Topic { get; set; } 71 public List<ChannelMode> ChannelModes { get; set; } 69 72 70 73 public Group() 71 74 { 75 ChannelModes = new List<ChannelMode>(); 72 76 } 73 77 … … 80 84 Name = name; 81 85 Members = new List<string>(); 86 ChannelModes = new List<ChannelMode>(); 82 87 } 83 88 … … 110 115 } 111 116 117 public Boolean IgnoreEchoBack 118 { 119 get 120 { 121 return ChannelModes.Exists(mode => mode.Mode == ChannelModeTypes.Private); 122 } 123 } 124 112 125 #region IComparable �����o 113 126 -
TwitterIrcGateway/TwitterIrcGatewayCore/Session.cs
r369 r373 66 66 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_LIST); 67 67 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_TIGGC); 68 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_ TOPIC);68 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_MODE); 69 69 70 70 _groups = new Groups(); … … 413 413 SendNumericReply(NumericReply.RPL_ENDOFNAMES, channelName, "End of NAMES list"); 414 414 group.IsJoined = true; 415 416 // mode 417 foreach (ChannelMode mode in group.ChannelModes) 418 { 419 Send(new ModeMessage(channelName, mode.ToString())); 420 } 415 421 416 422 // Set topic of client, if topic was set … … 736 742 foreach (Group group in _groups.Values) 737 743 { 738 if (group.IsJoined && String.Compare(message.Receiver, group.Name, true) != 0)744 if (group.IsJoined && !group.IgnoreEchoBack && String.Compare(message.Receiver, group.Name, true) != 0) 739 745 { 740 746 if (_server.BroadcastUpdateMessageIsNotice) … … 866 872 } 867 873 } 868 874 875 void MessageRecieved_MODE(object sender, MessageRecievedEventArgs e) 876 { 877 if (String.Compare(e.Message.Command, "MODE", true) != 0) return; 878 ModeMessage modeMsg = e.Message as ModeMessage; 879 // チャンネルターゲットのみ 880 if (modeMsg.CommandParams[0].StartsWith("#")) 881 { 882 String channel = modeMsg.CommandParams[0]; 883 String modeArgs = modeMsg.CommandParams[1]; 884 Group group; 885 if (!_groups.TryGetValue(channel, out group)) 886 { 887 SendErrorReply(ErrorReply.ERR_NOSUCHCHANNEL); 888 } 889 890 foreach (ChannelMode mode in ChannelMode.Parse(modeArgs)) 891 { 892 foreach (ChannelMode mode2 in new List<ChannelMode>(group.ChannelModes)) 893 { 894 if (mode2.Mode == mode.Mode && mode2.Parameter == mode.Parameter) 895 { 896 if (mode.IsRemove) 897 { 898 // すでにあって削除 899 group.ChannelModes.Remove(mode2); 900 } 901 else 902 { 903 // すでにある 904 goto NEXT; 905 } 906 } 907 } 908 909 if (!mode.IsRemove) 910 { 911 group.ChannelModes.Add(mode); 912 } 913 SendServer(new ModeMessage(channel, mode.ToString())); 914 SaveGroups(); 915 NEXT: 916 ; 917 } 918 } 919 } 869 920 #endregion 870 921 -
TwitterIrcGateway/TwitterIrcGatewayCore/TwitterIrcGatewayCore.csproj
r358 r373 3 3 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 4 4 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 5 <ProductVersion> 8.0.50727</ProductVersion>5 <ProductVersion>9.0.21022</ProductVersion> 6 6 <SchemaVersion>2.0</SchemaVersion> 7 7 <ProjectGuid>{8A256703-BDC7-4E96-8AC3-89A56A2AFB86}</ProjectGuid> … … 43 43 <Compile Include="Filter.cs" /> 44 44 <Compile Include="Group.cs" /> 45 <Compile Include="IRCClient\ChannelMode.cs" /> 46 <Compile Include="IRCClient\ChannelModeTypes.cs" /> 45 47 <Compile Include="IRCClient\Converter.cs" /> 46 48 <Compile Include="IRCClient\ErrorReply.cs" />
