Class: Warchat::Chat::Client
- Inherits:
-
Object
- Object
- Warchat::Chat::Client
- Defined in:
- lib/warchat/chat/client.rb
Instance Attribute Summary collapse
-
#character_name ⇒ Object
Returns the value of attribute character_name.
-
#character_realm ⇒ Object
Returns the value of attribute character_realm.
-
#on_chat_logout ⇒ Object
Returns the value of attribute on_chat_logout.
-
#on_establish ⇒ Object
Returns the value of attribute on_establish.
-
#on_fail ⇒ Object
Returns the value of attribute on_fail.
-
#on_logout ⇒ Object
Returns the value of attribute on_logout.
-
#on_message ⇒ Object
Returns the value of attribute on_message.
-
#on_message_afk ⇒ Object
Returns the value of attribute on_message_afk.
-
#on_message_dnd ⇒ Object
Returns the value of attribute on_message_dnd.
-
#on_message_guild_chat ⇒ Object
Returns the value of attribute on_message_guild_chat.
-
#on_message_motd ⇒ Object
Returns the value of attribute on_message_motd.
-
#on_message_officer_chat ⇒ Object
Returns the value of attribute on_message_officer_chat.
-
#on_message_whisper ⇒ Object
Returns the value of attribute on_message_whisper.
-
#on_presence ⇒ Object
Returns the value of attribute on_presence.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
Instance Method Summary collapse
- #chat(response) ⇒ Object
- #chat_login(response) ⇒ Object
- #chat_logout(response) ⇒ Object
- #close ⇒ Object
- #close_nonblock ⇒ Object
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #keep_alive ⇒ Object
- #login ⇒ Object
- #logout ⇒ Object
- #message(msg, chat_type = Message.CHAT_MSG_TYPE_GUILD_CHAT) ⇒ Object
- #session_error(response) ⇒ Object
- #session_establish(response) ⇒ Object
- #session_receive(response) ⇒ Object
- #start(username, password) ⇒ Object
- #whisper(msg, char_id) ⇒ Object
Constructor Details
Instance Attribute Details
#character_name ⇒ Object
Returns the value of attribute character_name.
6 7 8 |
# File 'lib/warchat/chat/client.rb', line 6 def character_name @character_name end |
#character_realm ⇒ Object
Returns the value of attribute character_realm.
6 7 8 |
# File 'lib/warchat/chat/client.rb', line 6 def character_realm @character_realm end |
#on_chat_logout ⇒ Object
Returns the value of attribute on_chat_logout.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def on_chat_logout @on_chat_logout end |
#on_establish ⇒ Object
Returns the value of attribute on_establish.
4 5 6 |
# File 'lib/warchat/chat/client.rb', line 4 def on_establish @on_establish end |
#on_fail ⇒ Object
Returns the value of attribute on_fail.
4 5 6 |
# File 'lib/warchat/chat/client.rb', line 4 def on_fail @on_fail end |
#on_logout ⇒ Object
Returns the value of attribute on_logout.
4 5 6 |
# File 'lib/warchat/chat/client.rb', line 4 def on_logout @on_logout end |
#on_message ⇒ Object
Returns the value of attribute on_message.
4 5 6 |
# File 'lib/warchat/chat/client.rb', line 4 def @on_message end |
#on_message_afk ⇒ Object
Returns the value of attribute on_message_afk.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_afk end |
#on_message_dnd ⇒ Object
Returns the value of attribute on_message_dnd.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_dnd end |
#on_message_guild_chat ⇒ Object
Returns the value of attribute on_message_guild_chat.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_guild_chat end |
#on_message_motd ⇒ Object
Returns the value of attribute on_message_motd.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_motd end |
#on_message_officer_chat ⇒ Object
Returns the value of attribute on_message_officer_chat.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_officer_chat end |
#on_message_whisper ⇒ Object
Returns the value of attribute on_message_whisper.
5 6 7 |
# File 'lib/warchat/chat/client.rb', line 5 def @on_message_whisper end |
#on_presence ⇒ Object
Returns the value of attribute on_presence.
4 5 6 |
# File 'lib/warchat/chat/client.rb', line 4 def on_presence @on_presence end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
8 9 10 |
# File 'lib/warchat/chat/client.rb', line 8 def session @session end |
Instance Method Details
#chat(response) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/warchat/chat/client.rb', line 57 def chat response response.extend(ChatResponse) if response.ack? elsif response. = Message.new(response) and .call() m = "on_message_#{.type}".to_sym send(m) and send(m).call() elsif response.presence? on_presence and on_presence.call(Presence.new(response)) else puts "unhandled chat type: #{response.chat_type}" end end |
#chat_login(response) ⇒ Object
52 53 54 55 |
# File 'lib/warchat/chat/client.rb', line 52 def chat_login response puts "Logged into chat" @chat_session_id = response["chatSessionId"] end |
#chat_logout(response) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/warchat/chat/client.rb', line 45 def chat_logout response puts 'Logged out of chat' @timer and @timer.stop on_chat_logout and on_chat_logout.call response session.close end |
#close ⇒ Object
78 79 80 81 |
# File 'lib/warchat/chat/client.rb', line 78 def close close_nonblock sleep(0.1) until session.is_closed? end |
#close_nonblock ⇒ Object
73 74 75 76 |
# File 'lib/warchat/chat/client.rb', line 73 def close_nonblock request = Warchat::Network::Request.new("/chat-logout",:chatSessionId=>@chat_session_id) session.send_request(request) end |
#keep_alive ⇒ Object
83 84 85 86 |
# File 'lib/warchat/chat/client.rb', line 83 def keep_alive request = Warchat::Network::Request.new("/ah-mail",:n=>character_name,:r=>character_realm) session.send_request(request) end |
#login ⇒ Object
35 36 37 38 39 |
# File 'lib/warchat/chat/client.rb', line 35 def login request = Warchat::Network::Request.new("/chat-login",:options=>{:mature_filter=>'false'},:n=>character_name,:r=>character_realm) session.send_request(request) @timer = Warchat::Timer.new(30,&method(:keep_alive)) end |
#logout ⇒ Object
41 42 43 |
# File 'lib/warchat/chat/client.rb', line 41 def logout request = Warchat::Network::Request.new('/chat-logout',:chatSessionId=>@chat_session_id) end |
#message(msg, chat_type = Message.CHAT_MSG_TYPE_GUILD_CHAT) ⇒ Object
88 89 90 91 |
# File 'lib/warchat/chat/client.rb', line 88 def (msg, chat_type = Message.CHAT_MSG_TYPE_GUILD_CHAT) request = Warchat::Network::Request.new("/chat-guild",:type=>chat_type,:body=>msg,:chatSessionId=>@chat_session_id) session.send_request(request) end |
#session_error(response) ⇒ Object
22 23 24 |
# File 'lib/warchat/chat/client.rb', line 22 def session_error response on_fail and on_fail.call(response["body"]) if response.target == "/chat-login" end |
#session_establish(response) ⇒ Object
26 27 28 |
# File 'lib/warchat/chat/client.rb', line 26 def session_establish response on_establish and on_establish.call(response) end |
#session_receive(response) ⇒ Object
30 31 32 33 |
# File 'lib/warchat/chat/client.rb', line 30 def session_receive response m = response.target.gsub('/','').underscore.to_sym send(m,response) if respond_to? m end |
#start(username, password) ⇒ Object
18 19 20 |
# File 'lib/warchat/chat/client.rb', line 18 def start username, password self.session.start(username,password) end |