Module | Net::IRC::Client::ChannelManager |
In: |
lib/net/irc/client/channel_manager.rb
|
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 136 136: def init_channel(channel) 137: @channels[channel] ||= { 138: :modes => [], 139: :users => [], 140: } 141: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 86 86: def on_join(m) 87: nick = m.prefix.nick 88: channel = m[0] 89: 90: @channels.synchronize do 91: init_channel(channel) 92: 93: @channels[channel][:users] << nick 94: @channels[channel][:users].uniq! 95: end 96: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 66 66: def on_kick(m) 67: users = m[1].split(",") 68: 69: @channels.synchronize do 70: m[0].split(",").each do |chan| 71: init_channel(chan) 72: info = @channels[chan] 73: if info 74: users.each do |nick| 75: info[:users].delete(nick) 76: info[:modes].delete_if {|u| 77: u[1] == nick 78: } 79: end 80: end 81: end 82: end 83: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 116 116: def on_mode(m) 117: channel = m[0] 118: @channels.synchronize do 119: init_channel(channel) 120: 121: modes = @server_config.mode_parser.parse(m) 122: modes[:negative].each do |mode| 123: @channels[channel][:modes].delete(mode) 124: end 125: 126: modes[:positive].each do |mode| 127: @channels[channel][:modes] << mode 128: end 129: 130: @channels[channel][:modes].uniq! 131: [modes[:negative], modes[:positive]] 132: end 133: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 99 99: def on_nick(m) 100: oldnick = m.prefix.nick 101: newnick = m[0] 102: 103: @channels.synchronize do 104: @channels.each do |channel, info| 105: info[:users].map! {|i| 106: (i == oldnick) ? newnick : i 107: } 108: info[:modes].map! {|mode, target| 109: (target == oldnick) ? [mode, newnick] : [mode, target] 110: } 111: end 112: end 113: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 35 35: def on_part(m) 36: nick = m.prefix.nick 37: channel = m[0] 38: init_channel(channel) 39: 40: @channels.synchronize do 41: info = @channels[channel] 42: if info 43: info[:users].delete(nick) 44: info[:modes].delete_if {|u| 45: u[1] == nick 46: } 47: end 48: end 49: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 52 52: def on_quit(m) 53: nick = m.prefix.nick 54: 55: @channels.synchronize do 56: @channels.each do |channel, info| 57: info[:users].delete(nick) 58: info[:modes].delete_if {|u| 59: u[1] == nick 60: } 61: end 62: end 63: end
For managing channel
# File lib/net/irc/client/channel_manager.rb, line 4 4: def on_rpl_namreply(m) 5: type = m[1] 6: channel = m[2] 7: init_channel(channel) 8: 9: @channels.synchronize do 10: m[3].split(" ").each do |u| 11: _, mode, nick = *u.match(/\A([@+]?)(.+)/) 12: 13: @channels[channel][:users] << nick 14: @channels[channel][:users].uniq! 15: 16: op = @server_config.mode_parser.mark_to_op(mode) 17: if op 18: @channels[channel][:modes] << [op, nick] 19: end 20: end 21: 22: case type 23: when "@" # secret 24: @channels[channel][:modes] << [:s, nil] 25: when "*" # private 26: @channels[channel][:modes] << [:p, nil] 27: when "=" # public 28: end 29: 30: @channels[channel][:modes].uniq! 31: end 32: end