Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Stem.privilege returns wrong privilege level #35

Open
alolis opened this Issue · 5 comments

1 participant

Alexander Lolis
Alexander Lolis

I have implemented on my leaf the someone_did_join_channel event and I have noticed the following:

  1. Channel Founder (+q) or Channel Admin (+a) joins the channel and gets the user mode from chanserv.
  2. someone_did_join_channel() is called and the first method i am calling inside the event is stem.privilege(channel, nick) which i would expect to return :channel_owner or :admin symbol but instead i am getting :unvoiced

I really do not understand at what point the users get updated with their proper channel levels. This is very confusing

Alexander Lolis

Some further info. If the user is a channel operator (+o) the whole thing works as expected. I can see the problem with admins and channel owners only. Here is the difference when a channel operator joins and when owner/admin joins:

OPERATOR CASE:

  • THEBOT gives channel operator status to arekanderu

OWNER/ADMIN CASE:

  • THEBOT sets mode +q #somechannel arekanderu
  • THEBOT gives channel operator status to arekanderu
Alexander Lolis

I have some further info regarding this issue. I was able to reproduce the problem with channel operators as well. If the channel operator has a greet message then I can see the problem. Example of channel operator with greet message joining channel:

  • THEBOT [arekanderu] This is a test message
  • THEBOT gives channel operator status to arekanderu

In addition, i have set type: op for one of my leafs in leaves.yml and implemented a method which uses authentication as follows:

def test_command(stem, sender, reply_to, message)
    # do stuff
end
ann :test_command, :protected => true

The bot will return "Only an op can do that" if one of the cases i described occur. It will work normal if the user is a channel operator without a greet message.

Alexander Lolis

I have some more info. I though that if it's a channel operator without a greet message it will work properly but it seems that I didn't took under consideration that I had a sleep(2) before I make the call to stem.privilege. If i remove the sleep the problem is 100% reproducible. Looks like that the users are not refreshed on time/properly but if I add the sleep the users refresh completes on time.

This is the code which I have and it only works properly with chan ops without greet message:

def someone_did_join_channel(stem, sender, channel)
   sleep(2)
   privilege = stem.privilege(channel, sender[:nick])
end

Waiting for your comments Tim and hopefully for a solution. This is causing way too much headache for me at the moment.

Alexander Lolis

Any updates on the issue? =/

Alexander Lolis

Over a month and still no reply...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.