Sha256: 5546b277157e77236cbb967604f99580eec62fcea1475bfad77b120250cfb2fd

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

hook(type: :ujoin) do |dat|
  dat[:plug].users[dat[:nick]] = {} unless dat[:plug].users[dat[:nick]]
  u = dat[:plug].users[dat[:nick]]
  u[:nick] = dat[:nick]
  u[:user] = dat[:user]
  u[:host] = dat[:host]

  unless dat[:plug].chans[dat[:channel]]
    dat[:plug].chans[dat[:channel]] = {}
    dat[:plug].chans[dat[:channel]][:users] = []
  end

  dat[:plug].chans[dat[:channel]][:users] << u[:nick] unless
    dat[:plug].chans[dat[:channel]][:users].include? u[:nick]
end

hook(type: :upart) do |dat|
  dat[:plug].users[dat[:nick]] = {} unless dat[:plug].users[dat[:nick]]
  u = dat[:plug].users[dat[:nick]]
  u[:nick] = dat[:nick]
  u[:user] = dat[:user]
  u[:host] = dat[:host]

  unless dat[:plug].chans[dat[:channel]]
    dat[:plug].chans[dat[:channel]] = {}
    dat[:plug].chans[dat[:channel]][:users] = []
  end

  dat[:plug].chans[dat[:channel]][:users].delete u[:nick] if
    dat[:plug].chans[dat[:channel]][:users].include? u[:nick]

  if dat[:nick] == dat[:plug].nick && /requested by .*/.match(dat[:message])
    dat[:plug].join(dat[:channel])
  elsif dat[:nick] == dat[:plug].nick
    dat[:plug].chans.delete(dat[:channel])
  end
end

hook(type: :uquit) do |dat|
  dat[:plug].chans.each do |chan|
    chan[:users].delete(dat[:nick]) if chan[:users]
  end
  dat[:plug].users.delete(dat[:nick])
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
protonbot-0.3.5 lib/protonbot/core_plugin/hooks/joinpart.rb