Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple interface to World of Warcraft Remote Guild Chat in Ruby based off Eike Siewertsen's C# implementation

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 warchat.gemspec
README.rdoc

Warchat

This project aims to create a simple ruby interface for connecting to Blizzard's Mobile Guild Chat.

Features

  • SRP authentication

  • Guild Chat

  • Officer Chat

  • Whispers

  • Presence notifications

Acknowledgements

A big thanks to Eike Siewertsen (www.github.com/fry), without whom this probably wouldn't be possible.

Simple Usage example

This is a simple chat client that will let you talk in guild chat and receive messages.

require 'rubygems'
require 'warchat'

USERNAME = ''
PASSWORD = ''
CHARACTER_NAME = ''
CHARACTER_REALM = ''
HOST = "m.us.wowarmory.com" 
#HOST = "m.eu.wowarmory.com"
#HOST = "m.kr.wowarmory.com"
PORT = 8780

client = Warchat::Chat::Client.new

client.on_establish = Proc.new do |response|
  client.login CHARACTER_NAME,CHARACTER_REALM
end

client.on_message = Proc.new do |message|
  case message.type
    when Warchat::Chat::Message::CHAT_MSG_TYPE_GUILD_CHAT
      puts "[Guild] #{message.character.name}: #{message.body}"
    when Warchat::Chat::Message::CHAT_MSG_TYPE_GUILD_MOTD
      puts "MOTD: #{message.body}"
    when Warchat::Chat::Message::CHAT_MSG_TYPE_OFFICER_CHAT
      puts "[Officer] #{message.character.name}: #{message.body}"
    when Warchat::Chat::Message::CHAT_MSG_TYPE_WHISPER
      puts "[Whisper] #{message.character.name}: #{message.body}"
  end
end

begin
  client.start(USERNAME,PASSWORD,HOST,PORT)
  loop do 
    msg = gets.chomp 
    client.message msg,Warchat::Chat::Message::CHAT_MSG_TYPE_GUILD_CHAT
  end
rescue Interrupt => e
  client.close
end
Something went wrong with that request. Please try again.