tgstation-server 6.5.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
Public Member Functions | Properties | List of all members
Tgstation.Server.Api.Models.IrcConnectionStringBuilder Class Reference

ChatConnectionStringBuilder for ChatProvider.Irc. More...

Inheritance diagram for Tgstation.Server.Api.Models.IrcConnectionStringBuilder:
Inheritance graph
[legend]
Collaboration diagram for Tgstation.Server.Api.Models.IrcConnectionStringBuilder:
Collaboration graph
[legend]

Public Member Functions

 IrcConnectionStringBuilder ()
 Initializes a new instance of the IrcConnectionStringBuilder class. More...
 
 IrcConnectionStringBuilder (string connectionString)
 Initializes a new instance of the IrcConnectionStringBuilder class. More...
 
override string ToString ()
 Gets the ChatBotSettings.ConnectionString associated with the ChatConnectionStringBuilder.
Returns
The ChatBotSettings.ConnectionString associated with the ChatConnectionStringBuilder.
More...
 
abstract override string ToString ()
 Gets the ChatBotSettings.ConnectionString associated with the ChatConnectionStringBuilder. More...
 

Properties

override bool Valid [get]
 
string? Address [get, set]
 The IP address or URL of the IRC server. More...
 
ushort? Port [get, set]
 The port the server runs on. More...
 
string? Nickname [get, set]
 The nickname for the bot to use. More...
 
bool? UseSsl [get, set]
 If the connection should be made using SSL. More...
 
IrcPasswordTypePasswordType [get, set]
 The optional IrcPasswordType to use. More...
 
string? Password [get, set]
 The optional password to use. More...
 
- Properties inherited from Tgstation.Server.Api.Models.Internal.ChatConnectionStringBuilder
abstract bool Valid [get]
 If the ChatConnectionStringBuilder evaluates to a valid ChatBotSettings.ConnectionString. More...
 

Detailed Description

ChatConnectionStringBuilder for ChatProvider.Irc.

Definition at line 12 of file IrcConnectionStringBuilder.cs.

Constructor & Destructor Documentation

◆ IrcConnectionStringBuilder() [1/2]

Tgstation.Server.Api.Models.IrcConnectionStringBuilder.IrcConnectionStringBuilder ( )

Initializes a new instance of the IrcConnectionStringBuilder class.

Definition at line 50 of file IrcConnectionStringBuilder.cs.

51 {
52 }

◆ IrcConnectionStringBuilder() [2/2]

Tgstation.Server.Api.Models.IrcConnectionStringBuilder.IrcConnectionStringBuilder ( string  connectionString)

Initializes a new instance of the IrcConnectionStringBuilder class.

Parameters
connectionStringThe connection string.

Definition at line 58 of file IrcConnectionStringBuilder.cs.

59 {
60 if (connectionString == null)
61 throw new ArgumentNullException(nameof(connectionString));
62 var splits = connectionString.Split(';');
63
64 Address = splits[0];
65
66 if (splits.Length < 2)
67 return;
68
69 if (UInt16.TryParse(splits[1], out var port))
70 Port = port;
71
72 if (splits.Length < 3)
73 return;
74
75 Nickname = splits[2];
76
77 if (splits.Length < 4)
78 return;
79
80 if (Int32.TryParse(splits[3], out var intSsl))
81 UseSsl = Convert.ToBoolean(intSsl);
82
83 if (splits.Length < 5)
84 return;
85 if (Enum.TryParse<IrcPasswordType>(splits[4], out var passwordType))
86 switch (passwordType)
87 {
88 case IrcPasswordType.NickServ:
89 case IrcPasswordType.Sasl:
90 case IrcPasswordType.Server:
91 PasswordType = passwordType;
92 break;
93 default:
94 break;
95 }
96
97 if (splits.Length < 6)
98 return;
99
100 var rest = new List<string>(splits);
101 rest.RemoveRange(0, 5);
102 Password = String.Join(";", rest);
103 }
IrcPasswordType? PasswordType
The optional IrcPasswordType to use.
string? Address
The IP address or URL of the IRC server.
bool? UseSsl
If the connection should be made using SSL.
IrcPasswordType
Represents the type of a password for a ChatProvider.Irc.

References Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Address, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Nickname, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Password, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.PasswordType, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Port, and Tgstation.Server.Api.Models.IrcConnectionStringBuilder.UseSsl.

Member Function Documentation

◆ ToString()

override string Tgstation.Server.Api.Models.IrcConnectionStringBuilder.ToString ( )
virtual

Gets the ChatBotSettings.ConnectionString associated with the ChatConnectionStringBuilder.

Returns
The ChatBotSettings.ConnectionString associated with the ChatConnectionStringBuilder.

Implements Tgstation.Server.Api.Models.Internal.ChatConnectionStringBuilder.

Definition at line 106 of file IrcConnectionStringBuilder.cs.

107 {
108 var sb = new StringBuilder();
109 sb.Append(Address);
110 sb.Append(';');
111 sb.Append(Port);
112 sb.Append(';');
113 sb.Append(Nickname);
114 sb.Append(';');
115
116 if (UseSsl.HasValue)
117 sb.Append(Convert.ToInt32(UseSsl.Value));
118
119 if (PasswordType.HasValue)
120 {
121 sb.Append(';');
122 sb.Append((int)PasswordType);
123 sb.Append(';');
124 sb.Append(Password);
125 }
126
127 return sb.ToString();
128 }

References Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Address, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Nickname, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Password, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.PasswordType, Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Port, and Tgstation.Server.Api.Models.IrcConnectionStringBuilder.UseSsl.

Property Documentation

◆ Address

string? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Address
getset

◆ Nickname

string? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Nickname
getset

◆ Password

string? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Password
getset

◆ PasswordType

IrcPasswordType? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.PasswordType
getset

◆ Port

ushort? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Port
getset

◆ UseSsl

bool? Tgstation.Server.Api.Models.IrcConnectionStringBuilder.UseSsl
getset

◆ Valid

override bool Tgstation.Server.Api.Models.IrcConnectionStringBuilder.Valid
get

Definition at line 15 of file IrcConnectionStringBuilder.cs.


The documentation for this class was generated from the following file: