class SSCBot::User::JRobotMessageSender
@author Jonathan Bradley Whited @since 0.1.0
Attributes
clipboard[RW]
msg_key[RW]
os[RW]
robot[RW]
shortcut_paste[RW]
shortcut_paste_default[RW]
shortcut_paste_macos[RW]
warn_user_key[RW]
warn_user_sleep[RW]
Public Class Methods
new(auto_delay: 110,msg_key: nil,os: Util::OS,warn_user: false, warn_user_key: KeyEvent::VK_BACK_SPACE,warn_user_sleep: 0.747,**kargs)
click to toggle source
Calls superclass method
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 51 def initialize(auto_delay: 110,msg_key: nil,os: Util::OS,warn_user: false, warn_user_key: KeyEvent::VK_BACK_SPACE,warn_user_sleep: 0.747,**kargs) super(**kargs) @clipboard = Toolkit.getDefaultToolkit.getSystemClipboard @msg_key = msg_key @os = os @robot = Robot.new @warn_user = warn_user @warn_user_key = warn_user_key @warn_user_sleep = warn_user_sleep @robot.setAutoDelay(auto_delay) @shortcut_paste = lambda do |ms| if ms.os == :macos @shortcut_paste_macos.call(ms) else @shortcut_paste_default.call(ms) end end @shortcut_paste_default = ->(ms) { ms.roll_keys(KeyEvent::VK_CONTROL,KeyEvent::VK_V) } @shortcut_paste_macos = ->(ms) { ms.roll_keys(KeyEvent::VK_META,KeyEvent::VK_V) } end
Public Instance Methods
backspace()
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 76 def backspace return type_key(KeyEvent::VK_BACK_SPACE) end
copy(str)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 80 def copy(str) @clipboard.setContents(StringSelection.new(str),nil) return self end
enter()
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 86 def enter return type_key(KeyEvent::VK_ENTER) end
paste(str=nil)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 90 def paste(str=nil) copy(str) unless str.nil? @shortcut_paste.call(self) return self end
press_key(*key_codes)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 98 def press_key(*key_codes) key_codes.each do |key_code| @robot.keyPress(key_code) end return self end
put(message)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 106 def put(message) # If do type_msg_key() and then warn_user(), then a backspace from # warn_user() will cancel out the msg key. # Could do type_msg_key().warn_user().type_msg_key(), but then if the # client is in windowed mode and msg key is a tab, then a backspace # from warn_user() will do nothing. return warn_user. type_msg_key. paste(message) end
release_key(*key_codes)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 117 def release_key(*key_codes) key_codes.each do |key_code| @robot.keyRelease(key_code) end return self end
roll_keys(*key_codes)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 125 def roll_keys(*key_codes) key_codes.each do |key_code| @robot.keyPress(key_code) end (key_codes.length - 1).downto(0) do |i| @robot.keyRelease(key_codes[i]) end return self end
send_message()
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 137 def send_message enter end
type(message)
click to toggle source
TODO: implement type(message)
Calls superclass method
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 142 def type(message) # TODO: implement type(message) super(message) end
type_key(*key_codes)
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 147 def type_key(*key_codes) key_codes.each do |key_code| @robot.keyPress(key_code) @robot.keyRelease(key_code) end return self end
type_msg_key()
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 156 def type_msg_key if @msg_key if @msg_key.respond_to?(:call) @msg_key.call(self) else type_key(@msg_key) end end return self end
warn_user()
click to toggle source
# File lib/ssc.bot/user/jrobot_message_sender.rb, line 168 def warn_user if @warn_user if @warn_user_key.respond_to?(:call) @warn_user_key.call(self) else press_key(@warn_user_key) sleep(@warn_user_sleep) release_key(@warn_user_key) end end return self end