class SSCBot::User::MessageSender
@author Jonathan Bradley Whited @since 0.1.0
Constants
- DEFAULT_ESCAPE_STR
- DEFAULT_FLOOD_COUNT
- DEFAULT_FLOOD_MIN_SLEEP
- DEFAULT_FLOOD_SECS
- MM_AREA
- MM_BOUNTY
- MM_COORD
- MM_ENERGY
- MM_FLAGS
- MM_FREQ
- MM_KILLED
- MM_KILLER
- MM_RED
- MM_REDBOUNTY
- MM_REDFLAGS
- MM_REDNAME
- MM_SELFNAME
- MM_SQUAD
- MM_TICKNAME
Message Macros
-
In order of F1 Help box.
-
Attributes
escape_str[RW]
flood_count[RW]
flood_min_sleep[RW]
flood_secs[RW]
message_count[R]
message_time[R]
Public Class Methods
new(escape_percent: false,escape_space: true,escape_str: DEFAULT_ESCAPE_STR, flood_count: DEFAULT_FLOOD_COUNT,flood_min_sleep: DEFAULT_FLOOD_MIN_SLEEP, flood_secs: DEFAULT_FLOOD_SECS,staff: false)
click to toggle source
Calls superclass method
# File lib/ssc.bot/user/message_sender.rb, line 82 def initialize(escape_percent: false,escape_space: true,escape_str: DEFAULT_ESCAPE_STR, flood_count: DEFAULT_FLOOD_COUNT,flood_min_sleep: DEFAULT_FLOOD_MIN_SLEEP, flood_secs: DEFAULT_FLOOD_SECS,staff: false) super() @escape_percent = escape_percent @escape_space = escape_space @escape_str = escape_str @flood_count = flood_count @flood_min_sleep = flood_min_sleep @flood_secs = flood_secs @message_count = 0 @message_time = Time.now @staff = staff end
Public Instance Methods
escape_pub(message,escape_percent: @escape_percent,escape_space: @escape_space, escape_str: @escape_str,staff: @staff)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 98 def escape_pub(message,escape_percent: @escape_percent,escape_space: @escape_space, escape_str: @escape_str,staff: @staff) if escape_percent message = message.gsub('%','%%') end escape = false case message[0] when '#' escape = true else if escape_space && message[0] =~ /[[:space:]]/ escape = true else stripped_message = Util.u_lstrip(message) case stripped_message[0] when ':' if stripped_message.index(':',1) escape = true end when '/',"'",'"',';','=' escape = true when '?' if stripped_message[1] =~ /[[:alpha:]]/ escape = true end when '*','-' escape = true if staff end end end if escape message = "#{escape_str}#{message}" end return message end
prevent_flood()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 139 def prevent_flood @message_count += 1 if @message_count >= @flood_count diff_time = Time.now - @message_time if diff_time <= @flood_secs sleep_secs = (@flood_secs - diff_time).round(4) + 0.001 sleep_secs = @flood_min_sleep if sleep_secs < @flood_min_sleep else sleep_secs = @flood_min_sleep end sleep(sleep_secs) @message_count = 0 end @message_time = Time.now end
put(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 70 def put(message) raise AbstractMethodError,__method__ end
put_or_type(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 160 def put_or_type(message) put(message) end
send(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 164 def send(message) put(message) send_message end
send_chat(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 193 def send_chat(message) send_safe(";#{message}") end
send_chat_to(channel,message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 197 def send_chat_to(channel,message) send_safe(";#{channel};#{message}") end
send_freq(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 201 def send_freq(message) send_safe(%Q("#{message})) end
send_freq_eq(freq)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 205 def send_freq_eq(freq) send_safe("=#{freq}") end
send_message()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 74 def send_message raise AbstractMethodError,__method__ end
send_or_types(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 169 def send_or_types(message) send(message) end
send_or_types_safe(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 173 def send_or_types_safe(message) send_or_types(message) prevent_flood end
send_private(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 209 def send_private(message) send_safe("/#{message}") end
send_private_to(name,message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 213 def send_private_to(name,message) send_safe(":#{name}:#{message}") end
send_private_to_last(message,last=1)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 217 def send_private_to_last(message,last=1) put_or_type('::') while (last -= 1) > 0 put_or_type(':') end send_safe(message) end
send_pub(message,**kargs)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 227 def send_pub(message,**kargs) send_safe(escape_pub(message,**kargs)) end
send_q_chat()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 231 def send_q_chat send_safe('?chat') end
send_q_chat_eq(*names)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 235 def send_q_chat_eq(*names) send_safe("?chat=#{names.join(',')}") end
send_q_enter()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 239 def send_q_enter send_safe('?enter') end
send_q_find(player)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 243 def send_q_find(player) send_safe("?find #{player}") end
send_q_kill()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 247 def send_q_kill send_safe('?kill') end
send_q_leave()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 251 def send_q_leave send_safe('?leave') end
send_q_lines()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 283 def send_q_lines send_safe('?lines') end
send_q_lines_eq(lines)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 287 def send_q_lines_eq(lines) send_safe("?lines=#{lines}") end
send_q_loadmacro(filename)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 255 def send_q_loadmacro(filename) send_safe("?loadmacro #{filename}") end
send_q_log()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 259 def send_q_log send_safe('?log') end
send_q_log_to(filename)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 263 def send_q_log_to(filename) send_safe("?log #{filename}") end
send_q_logbuffer()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 267 def send_q_logbuffer send_safe('?logbuffer') end
send_q_logbuffer_to(filename)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 271 def send_q_logbuffer_to(filename) send_safe("?logbuffer #{filename}") end
send_q_namelen()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 275 def send_q_namelen send_safe('?namelen') end
send_q_namelen_eq(namelen)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 279 def send_q_namelen_eq(namelen) send_safe("?namelen=#{namelen}") end
send_q_savemacro(filename)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 291 def send_q_savemacro(filename) send_safe("?savemacro #{filename}") end
send_q_spec()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 295 def send_q_spec send_safe('?spec') end
send_q_team()
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 299 def send_q_team send_safe('?team') end
send_safe(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 178 def send_safe(message) send(message) prevent_flood end
send_squad(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 303 def send_squad(message) send_safe("##{message}") end
send_squad_to(squad,message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 307 def send_squad_to(squad,message) send_safe(":##{squad}:#{message}") end
send_team(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 311 def send_team(message) send_safe("//#{message}") end
send_team2(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 315 def send_team2(message) send_safe("'#{message}") end
type(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 78 def type(message) raise AbstractMethodError,__method__ end
types(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 183 def types(message) type(message) send_message end
types_safe(message)
click to toggle source
# File lib/ssc.bot/user/message_sender.rb, line 188 def types_safe(message) types(message) prevent_flood end