Circed::Services::IRCService
Inherits Reference / Object
Constants
CHANNEL_MODE_ORDER = {'p', 's', 'i', 'm', 'n', 't', 'k', 'l', 'b'}
SELF_USER_MODES = {'i', 'w'}
Constructors
new(user_repository : Repositories::UserRepository, channel_repository : Repositories::ChannelRepository, notification_service : NotificationService)
SourceInstance methods
change_mode(client : Client, target : String, mode_string : String, mode_params : Array(String) = [] of String, parameter_index : Int32 = 0) : Bool
Change channel or user modes with network sync
change_nickname(client : Client, new_nickname : String) : Bool
Handle user nickname changes with network sync
connect_server(client : Client, host : String, port : Int32 | Nil = nil, remote_server : String | Nil = nil) : Bool
Sourcedie(client : Client, reason : String) : Bool
Sourcejoin_channel(client : Client, channel_name : String, password : String | Nil = nil) : Bool
User joins a channel with proper validation, notifications, and network sync
kick_user(client : Client, channel_name : String, target_nickname : String, reason : String | Nil = nil) : Bool
Sourcekill_user(client : Client, target_nickname : String, reason : String) : Bool
Sourceline_ban(client : Client, type : String, params : Array(String)) : Bool
Sourceoper(client : Client, oper_name : String, password : String) : Bool
Sourcepart_channel(client : Client, channel_name : String, reason : String | Nil = nil) : Bool
User parts from a channel with network sync
query_mode(client : Client, target : String) : Bool
Sourcequery_topic(client : Client, channel_name : String) : Bool
Sourcequit_user(client : Client, reason : String | Nil = nil) : Bool
Handle user quit with network sync
rehash(client : Client) : Bool
Sourcerestart(client : Client, reason : String) : Bool
Sourceroute_message(sender : Client, target : String, message : String) : Bool
Route messages to local or remote targets
route_notice(sender : Client, target : String, message : String) : Bool
Sourcesend_names_reply(client : Client, channel : Domain::Channel) : Nil
Sourcesquit_server(client : Client, server_name : String, comment : String) : Bool
Sourceupdate_topic(client : Client, channel_name : String, topic : String) : Bool
Set channel topic with validation and network sync