diff --git a/SharpChat/ChannelManager.cs b/SharpChat/ChannelManager.cs
index 1edcbef..8911563 100644
--- a/SharpChat/ChannelManager.cs
+++ b/SharpChat/ChannelManager.cs
@@ -88,7 +88,7 @@ namespace SharpChat {
if(channel == null)
throw new ArgumentNullException(nameof(channel));
if(!Channels.Contains(channel))
- throw new ArgumentException(@"Provided channel is not registered with this manager.", nameof(channel));
+ throw new ArgumentException("Provided channel is not registered with this manager.", nameof(channel));
string prevName = channel.Name;
int prevHierarchy = channel.Rank;
diff --git a/SharpChat/ChatContext.cs b/SharpChat/ChatContext.cs
index 13e589a..894bf45 100644
--- a/SharpChat/ChatContext.cs
+++ b/SharpChat/ChatContext.cs
@@ -11,7 +11,7 @@ namespace SharpChat {
public UserManager Users { get; }
public ChatEventManager Events { get; }
- public string TargetName => @"@broadcast";
+ public string TargetName => "@broadcast";
public ChatContext() {
Users = new(this);
@@ -76,7 +76,7 @@ namespace SharpChat {
public void SwitchChannel(ChatUser user, ChatChannel chan, string password) {
if(user.CurrentChannel == chan) {
- //user.Send(true, @"samechan", chan.Name);
+ //user.Send(true, "samechan", chan.Name);
user.ForceChannel();
return;
}
@@ -133,7 +133,7 @@ namespace SharpChat {
foreach(ChatUserSession sess in timedOut) {
user.RemoveSession(sess);
sess.Dispose();
- Logger.Write($@"Nuked session {sess.Id} from {user.Username} (timeout)");
+ Logger.Write($"Nuked session {sess.Id} from {user.Username} (timeout)");
}
if(!user.HasSessions)
diff --git a/SharpChat/ChatUser.cs b/SharpChat/ChatUser.cs
index 4c77724..ae2a6fd 100644
--- a/SharpChat/ChatUser.cs
+++ b/SharpChat/ChatUser.cs
@@ -32,7 +32,7 @@ namespace SharpChat {
StringBuilder sb = new();
if(Status == ChatUserStatus.Away)
- sb.AppendFormat(@"<{0}>_", StatusMessage[..Math.Min(StatusMessage.Length, 5)].ToUpperInvariant());
+ sb.AppendFormat("<{0}>_", StatusMessage[..Math.Min(StatusMessage.Length, 5)].ToUpperInvariant());
if(string.IsNullOrWhiteSpace(Nickname))
sb.Append(Username);
@@ -62,7 +62,7 @@ namespace SharpChat {
sb.Append(Rank);
sb.Append(' ');
sb.Append(Can(ChatUserPermissions.KickUser) ? '1' : '0');
- sb.Append(@" 0 "); // view logs
+ sb.Append(" 0 "); // view logs
sb.Append(Can(ChatUserPermissions.SetOwnNickname) ? '1' : '0');
sb.Append(' ');
sb.Append(Can(ChatUserPermissions.CreateChannel | ChatUserPermissions.SetChannelPermanent, true) ? 2 : (
@@ -81,7 +81,7 @@ namespace SharpChat {
public readonly ChatRateLimiter RateLimiter = new();
- public string TargetName => @"@log";
+ public string TargetName => "@log";
public ChatChannel Channel {
get {
diff --git a/SharpChat/ChatUserSession.cs b/SharpChat/ChatUserSession.cs
index 4089e53..c6dc527 100644
--- a/SharpChat/ChatUserSession.cs
+++ b/SharpChat/ChatUserSession.cs
@@ -22,7 +22,7 @@ namespace SharpChat {
private int CloseCode { get; set; } = 1000;
- public string TargetName => @"@log";
+ public string TargetName => "@log";
private IPAddress _RemoteAddress = null;
@@ -30,9 +30,9 @@ namespace SharpChat {
public IPAddress RemoteAddress {
get {
if(_RemoteAddress == null) {
- if((Connection.ConnectionInfo.ClientIpAddress == @"127.0.0.1" || Connection.ConnectionInfo.ClientIpAddress == @"::1")
- && Connection.ConnectionInfo.Headers.ContainsKey(@"X-Real-IP"))
- _RemoteAddress = IPAddress.Parse(Connection.ConnectionInfo.Headers[@"X-Real-IP"]);
+ if((Connection.ConnectionInfo.ClientIpAddress == "127.0.0.1" || Connection.ConnectionInfo.ClientIpAddress == "::1")
+ && Connection.ConnectionInfo.Headers.ContainsKey("X-Real-IP"))
+ _RemoteAddress = IPAddress.Parse(Connection.ConnectionInfo.Headers["X-Real-IP"]);
else
_RemoteAddress = IPAddress.Parse(Connection.ConnectionInfo.ClientIpAddress);
}
diff --git a/SharpChat/Commands/AFKCommand.cs b/SharpChat/Commands/AFKCommand.cs
index 8ca49d6..41e2d4c 100644
--- a/SharpChat/Commands/AFKCommand.cs
+++ b/SharpChat/Commands/AFKCommand.cs
@@ -4,11 +4,11 @@ using System.Linq;
namespace SharpChat.Commands {
public class AFKCommand : IChatCommand {
- private const string DEFAULT = @"AFK";
+ private const string DEFAULT = "AFK";
private const int MAX_LENGTH = 5;
public bool IsMatch(string name) {
- return name == @"afk";
+ return name == "afk";
}
public IChatMessage Dispatch(IChatCommandContext context) {
diff --git a/SharpChat/Database.cs b/SharpChat/Database.cs
index 42baed6..cce4c27 100644
--- a/SharpChat/Database.cs
+++ b/SharpChat/Database.cs
@@ -14,9 +14,9 @@ namespace SharpChat {
=> !string.IsNullOrWhiteSpace(ConnectionString);
public static void ReadConfig() {
- if(!File.Exists(@"mariadb.txt"))
+ if(!File.Exists("mariadb.txt"))
return;
- string[] config = File.ReadAllLines(@"mariadb.txt");
+ string[] config = File.ReadAllLines("mariadb.txt");
if(config.Length < 4)
return;
Init(config[0], config[1], config[2], config[3]);
@@ -30,7 +30,7 @@ namespace SharpChat {
Database = database,
OldGuids = false,
TreatTinyAsBoolean = false,
- CharacterSet = @"utf8mb4",
+ CharacterSet = "utf8mb4",
SslMode = MySqlSslMode.None,
ForceSynchronous = true,
ConnectionTimeout = 5,
@@ -125,49 +125,49 @@ namespace SharpChat {
evt.SequenceId = GenerateId();
RunCommand(
- @"INSERT INTO `sqc_events` (`event_id`, `event_created`, `event_type`, `event_target`, `event_flags`, `event_data`"
- + @", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`)"
- + @" VALUES (@id, FROM_UNIXTIME(@created), @type, @target, @flags, @data"
- + @", @sender, @sender_name, @sender_colour, @sender_rank, @sender_nick, @sender_perms)",
- new MySqlParameter(@"id", evt.SequenceId),
- new MySqlParameter(@"created", evt.DateTime.ToUnixTimeSeconds()),
- new MySqlParameter(@"type", evt.GetType().FullName),
- new MySqlParameter(@"target", evt.Target.TargetName),
- new MySqlParameter(@"flags", (byte)evt.Flags),
- new MySqlParameter(@"data", JsonSerializer.SerializeToUtf8Bytes(evt, evt.GetType())),
- new MySqlParameter(@"sender", evt.Sender?.UserId < 1 ? null : (long?)evt.Sender.UserId),
- new MySqlParameter(@"sender_name", evt.Sender?.Username),
- new MySqlParameter(@"sender_colour", evt.Sender?.Colour.ToMisuzu()),
- new MySqlParameter(@"sender_rank", evt.Sender?.Rank),
- new MySqlParameter(@"sender_nick", evt.Sender?.Nickname),
- new MySqlParameter(@"sender_perms", evt.Sender?.Permissions)
+ "INSERT INTO `sqc_events` (`event_id`, `event_created`, `event_type`, `event_target`, `event_flags`, `event_data`"
+ + ", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`)"
+ + " VALUES (@id, FROM_UNIXTIME(@created), @type, @target, @flags, @data"
+ + ", @sender, @sender_name, @sender_colour, @sender_rank, @sender_nick, @sender_perms)",
+ new MySqlParameter("id", evt.SequenceId),
+ new MySqlParameter("created", evt.DateTime.ToUnixTimeSeconds()),
+ new MySqlParameter("type", evt.GetType().FullName),
+ new MySqlParameter("target", evt.Target.TargetName),
+ new MySqlParameter("flags", (byte)evt.Flags),
+ new MySqlParameter("data", JsonSerializer.SerializeToUtf8Bytes(evt, evt.GetType())),
+ new MySqlParameter("sender", evt.Sender?.UserId < 1 ? null : (long?)evt.Sender.UserId),
+ new MySqlParameter("sender_name", evt.Sender?.Username),
+ new MySqlParameter("sender_colour", evt.Sender?.Colour.ToMisuzu()),
+ new MySqlParameter("sender_rank", evt.Sender?.Rank),
+ new MySqlParameter("sender_nick", evt.Sender?.Nickname),
+ new MySqlParameter("sender_perms", evt.Sender?.Permissions)
);
}
public static void DeleteEvent(IChatEvent evt) {
RunCommand(
- @"UPDATE IGNORE `sqc_events` SET `event_deleted` = NOW() WHERE `event_id` = @id AND `event_deleted` IS NULL",
- new MySqlParameter(@"id", evt.SequenceId)
+ "UPDATE IGNORE `sqc_events` SET `event_deleted` = NOW() WHERE `event_id` = @id AND `event_deleted` IS NULL",
+ new MySqlParameter("id", evt.SequenceId)
);
}
private static IChatEvent ReadEvent(MySqlDataReader reader, IPacketTarget target = null) {
- Type evtType = Type.GetType(Encoding.ASCII.GetString((byte[])reader[@"event_type"]));
- IChatEvent evt = JsonSerializer.Deserialize(Encoding.ASCII.GetString((byte[])reader[@"event_data"]), evtType) as IChatEvent;
- evt.SequenceId = reader.GetInt64(@"event_id");
+ Type evtType = Type.GetType(Encoding.ASCII.GetString((byte[])reader["event_type"]));
+ IChatEvent evt = JsonSerializer.Deserialize(Encoding.ASCII.GetString((byte[])reader["event_data"]), evtType) as IChatEvent;
+ evt.SequenceId = reader.GetInt64("event_id");
evt.Target = target;
- evt.TargetName = target?.TargetName ?? Encoding.ASCII.GetString((byte[])reader[@"event_target"]);
- evt.Flags = (ChatMessageFlags)reader.GetByte(@"event_flags");
- evt.DateTime = DateTimeOffset.FromUnixTimeSeconds(reader.GetInt32(@"event_created"));
+ evt.TargetName = target?.TargetName ?? Encoding.ASCII.GetString((byte[])reader["event_target"]);
+ evt.Flags = (ChatMessageFlags)reader.GetByte("event_flags");
+ evt.DateTime = DateTimeOffset.FromUnixTimeSeconds(reader.GetInt32("event_created"));
- if(!reader.IsDBNull(reader.GetOrdinal(@"event_sender"))) {
+ if(!reader.IsDBNull(reader.GetOrdinal("event_sender"))) {
evt.Sender = new BasicUser {
- UserId = reader.GetInt64(@"event_sender"),
- Username = reader.GetString(@"event_sender_name"),
- Colour = ChatColour.FromMisuzu(reader.GetInt32(@"event_sender_colour")),
- Rank = reader.GetInt32(@"event_sender_rank"),
- Nickname = reader.IsDBNull(reader.GetOrdinal(@"event_sender_nick")) ? null : reader.GetString(@"event_sender_nick"),
- Permissions = (ChatUserPermissions)reader.GetInt32(@"event_sender_perms")
+ UserId = reader.GetInt64("event_sender"),
+ Username = reader.GetString("event_sender_name"),
+ Colour = ChatColour.FromMisuzu(reader.GetInt32("event_sender_colour")),
+ Rank = reader.GetInt32("event_sender_rank"),
+ Nickname = reader.IsDBNull(reader.GetOrdinal("event_sender_nick")) ? null : reader.GetString("event_sender_nick"),
+ Permissions = (ChatUserPermissions)reader.GetInt32("event_sender_perms")
};
}
@@ -179,17 +179,17 @@ namespace SharpChat {
try {
using MySqlDataReader reader = RunQuery(
- @"SELECT `event_id`, `event_type`, `event_flags`, `event_data`"
- + @", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`"
- + @", UNIX_TIMESTAMP(`event_created`) AS `event_created`"
- + @" FROM `sqc_events`"
- + @" WHERE `event_deleted` IS NULL AND `event_target` = @target"
- + @" AND `event_id` > @offset"
- + @" ORDER BY `event_id` DESC"
- + @" LIMIT @amount",
- new MySqlParameter(@"target", target.TargetName),
- new MySqlParameter(@"amount", amount),
- new MySqlParameter(@"offset", offset)
+ "SELECT `event_id`, `event_type`, `event_flags`, `event_data`"
+ + ", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`"
+ + ", UNIX_TIMESTAMP(`event_created`) AS `event_created`"
+ + " FROM `sqc_events`"
+ + " WHERE `event_deleted` IS NULL AND `event_target` = @target"
+ + " AND `event_id` > @offset"
+ + " ORDER BY `event_id` DESC"
+ + " LIMIT @amount",
+ new MySqlParameter("target", target.TargetName),
+ new MySqlParameter("amount", amount),
+ new MySqlParameter("offset", offset)
);
while(reader.Read()) {
@@ -207,12 +207,12 @@ namespace SharpChat {
public static IChatEvent GetEvent(long seqId) {
try {
using MySqlDataReader reader = RunQuery(
- @"SELECT `event_id`, `event_type`, `event_flags`, `event_data`, `event_target`"
- + @", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`"
- + @", UNIX_TIMESTAMP(`event_created`) AS `event_created`"
- + @" FROM `sqc_events`"
- + @" WHERE `event_id` = @id",
- new MySqlParameter(@"id", seqId)
+ "SELECT `event_id`, `event_type`, `event_flags`, `event_data`, `event_target`"
+ + ", `event_sender`, `event_sender_name`, `event_sender_colour`, `event_sender_rank`, `event_sender_nick`, `event_sender_perms`"
+ + ", UNIX_TIMESTAMP(`event_created`) AS `event_created`"
+ + " FROM `sqc_events`"
+ + " WHERE `event_id` = @id",
+ new MySqlParameter("id", seqId)
);
while(reader.Read()) {
diff --git a/SharpChat/Database_Migrations.cs b/SharpChat/Database_Migrations.cs
index 3b151a2..a92c0f2 100644
--- a/SharpChat/Database_Migrations.cs
+++ b/SharpChat/Database_Migrations.cs
@@ -5,55 +5,55 @@ namespace SharpChat {
public static partial class Database {
private static void DoMigration(string name, Action action) {
bool done = (long)RunQueryValue(
- @"SELECT COUNT(*) FROM `sqc_migrations` WHERE `migration_name` = @name",
- new MySqlParameter(@"name", name)
+ "SELECT COUNT(*) FROM `sqc_migrations` WHERE `migration_name` = @name",
+ new MySqlParameter("name", name)
) > 0;
if(!done) {
- Logger.Write($@"Running migration '{name}'...");
+ Logger.Write($"Running migration '{name}'...");
action();
RunCommand(
- @"INSERT INTO `sqc_migrations` (`migration_name`) VALUES (@name)",
- new MySqlParameter(@"name", name)
+ "INSERT INTO `sqc_migrations` (`migration_name`) VALUES (@name)",
+ new MySqlParameter("name", name)
);
}
}
private static void RunMigrations() {
RunCommand(
- @"CREATE TABLE IF NOT EXISTS `sqc_migrations` ("
- + @"`migration_name` VARCHAR(255) NOT NULL,"
- + @"`migration_completed` TIMESTAMP NOT NULL DEFAULT current_timestamp(),"
- + @"UNIQUE INDEX `migration_name` (`migration_name`),"
- + @"INDEX `migration_completed` (`migration_completed`)"
- + @") COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;"
+ "CREATE TABLE IF NOT EXISTS `sqc_migrations` ("
+ + "`migration_name` VARCHAR(255) NOT NULL,"
+ + "`migration_completed` TIMESTAMP NOT NULL DEFAULT current_timestamp(),"
+ + "UNIQUE INDEX `migration_name` (`migration_name`),"
+ + "INDEX `migration_completed` (`migration_completed`)"
+ + ") COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;"
);
- DoMigration(@"create_events_table", CreateEventsTable);
+ DoMigration("create_events_table", CreateEventsTable);
}
private static void CreateEventsTable() {
RunCommand(
- @"CREATE TABLE `sqc_events` ("
- + @"`event_id` BIGINT(20) NOT NULL,"
- + @"`event_sender` BIGINT(20) UNSIGNED NULL DEFAULT NULL,"
- + @"`event_sender_name` VARCHAR(255) NULL DEFAULT NULL,"
- + @"`event_sender_colour` INT(11) NULL DEFAULT NULL,"
- + @"`event_sender_rank` INT(11) NULL DEFAULT NULL,"
- + @"`event_sender_nick` VARCHAR(255) NULL DEFAULT NULL,"
- + @"`event_sender_perms` INT(11) NULL DEFAULT NULL,"
- + @"`event_created` TIMESTAMP NOT NULL DEFAULT current_timestamp(),"
- + @"`event_deleted` TIMESTAMP NULL DEFAULT NULL,"
- + @"`event_type` VARBINARY(255) NOT NULL,"
- + @"`event_target` VARBINARY(255) NOT NULL,"
- + @"`event_flags` TINYINT(3) UNSIGNED NOT NULL,"
- + @"`event_data` BLOB NULL DEFAULT NULL,"
- + @"PRIMARY KEY (`event_id`),"
- + @"INDEX `event_target` (`event_target`),"
- + @"INDEX `event_type` (`event_type`),"
- + @"INDEX `event_sender` (`event_sender`),"
- + @"INDEX `event_datetime` (`event_created`),"
- + @"INDEX `event_deleted` (`event_deleted`)"
- + @") COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;"
+ "CREATE TABLE `sqc_events` ("
+ + "`event_id` BIGINT(20) NOT NULL,"
+ + "`event_sender` BIGINT(20) UNSIGNED NULL DEFAULT NULL,"
+ + "`event_sender_name` VARCHAR(255) NULL DEFAULT NULL,"
+ + "`event_sender_colour` INT(11) NULL DEFAULT NULL,"
+ + "`event_sender_rank` INT(11) NULL DEFAULT NULL,"
+ + "`event_sender_nick` VARCHAR(255) NULL DEFAULT NULL,"
+ + "`event_sender_perms` INT(11) NULL DEFAULT NULL,"
+ + "`event_created` TIMESTAMP NOT NULL DEFAULT current_timestamp(),"
+ + "`event_deleted` TIMESTAMP NULL DEFAULT NULL,"
+ + "`event_type` VARBINARY(255) NOT NULL,"
+ + "`event_target` VARBINARY(255) NOT NULL,"
+ + "`event_flags` TINYINT(3) UNSIGNED NOT NULL,"
+ + "`event_data` BLOB NULL DEFAULT NULL,"
+ + "PRIMARY KEY (`event_id`),"
+ + "INDEX `event_target` (`event_target`),"
+ + "INDEX `event_type` (`event_type`),"
+ + "INDEX `event_sender` (`event_sender`),"
+ + "INDEX `event_datetime` (`event_created`),"
+ + "INDEX `event_deleted` (`event_deleted`)"
+ + ") COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;"
);
}
}
diff --git a/SharpChat/Events/ChatMessage.cs b/SharpChat/Events/ChatMessage.cs
index 83e2a3c..a01bf43 100644
--- a/SharpChat/Events/ChatMessage.cs
+++ b/SharpChat/Events/ChatMessage.cs
@@ -21,7 +21,7 @@ namespace SharpChat.Events {
[JsonIgnore]
public long SequenceId { get; set; }
- [JsonPropertyName(@"text")]
+ [JsonPropertyName("text")]
public string Text { get; set; }
public static string PackBotMessage(int type, string id, params string[] parts) {
diff --git a/SharpChat/Events/UserDisconnectEvent.cs b/SharpChat/Events/UserDisconnectEvent.cs
index b6cd52c..1705958 100644
--- a/SharpChat/Events/UserDisconnectEvent.cs
+++ b/SharpChat/Events/UserDisconnectEvent.cs
@@ -23,7 +23,7 @@ namespace SharpChat.Events {
[JsonIgnore]
public long SequenceId { get; set; }
- [JsonPropertyName(@"reason")]
+ [JsonPropertyName("reason")]
public UserDisconnectReason Reason { get; set; }
public UserDisconnectEvent() { }
diff --git a/SharpChat/Extensions.cs b/SharpChat/Extensions.cs
index cdffbad..a714e30 100644
--- a/SharpChat/Extensions.cs
+++ b/SharpChat/Extensions.cs
@@ -9,7 +9,7 @@ namespace SharpChat {
}
public static string GetSignedHash(this byte[] bytes, string key = null) {
- key ??= File.Exists(@"login_key.txt") ? File.ReadAllText(@"login_key.txt") : @"woomy";
+ key ??= File.Exists("login_key.txt") ? File.ReadAllText("login_key.txt") : "woomy";
StringBuilder sb = new();
@@ -17,14 +17,14 @@ namespace SharpChat {
byte[] hash = algo.ComputeHash(bytes);
foreach(byte b in hash)
- sb.AppendFormat(@"{0:x2}", b);
+ sb.AppendFormat("{0:x2}", b);
}
return sb.ToString();
}
public static string GetIdString(this byte[] buffer) {
- const string id_chars = @"abcdefghijklmnopqrstuvwxyz0123456789-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ const string id_chars = "abcdefghijklmnopqrstuvwxyz0123456789-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuilder sb = new();
foreach(byte b in buffer)
sb.Append(id_chars[b % id_chars.Length]);
diff --git a/SharpChat/Flashii/FlashiiAuthInfo.cs b/SharpChat/Flashii/FlashiiAuthInfo.cs
index 315b683..c1dbeb6 100644
--- a/SharpChat/Flashii/FlashiiAuthInfo.cs
+++ b/SharpChat/Flashii/FlashiiAuthInfo.cs
@@ -7,28 +7,28 @@ using System.Threading.Tasks;
namespace SharpChat.Flashii {
public class FlashiiAuthInfo {
- [JsonPropertyName(@"success")]
+ [JsonPropertyName("success")]
public bool Success { get; set; }
- [JsonPropertyName(@"reason")]
- public string Reason { get; set; } = @"none";
+ [JsonPropertyName("reason")]
+ public string Reason { get; set; } = "none";
- [JsonPropertyName(@"user_id")]
+ [JsonPropertyName("user_id")]
public long UserId { get; set; }
- [JsonPropertyName(@"username")]
+ [JsonPropertyName("username")]
public string Username { get; set; }
- [JsonPropertyName(@"colour_raw")]
+ [JsonPropertyName("colour_raw")]
public int ColourRaw { get; set; }
- [JsonPropertyName(@"hierarchy")]
+ [JsonPropertyName("hierarchy")]
public int Rank { get; set; }
- [JsonPropertyName(@"is_silenced")]
+ [JsonPropertyName("is_silenced")]
public DateTimeOffset SilencedUntil { get; set; }
- [JsonPropertyName(@"perms")]
+ [JsonPropertyName("perms")]
public ChatUserPermissions Permissions { get; set; }
private const string SIG_FMT = "verify#{0}#{1}#{2}";
@@ -50,7 +50,7 @@ namespace SharpChat.Flashii {
{ "ipaddr", ipAddr },
}),
Headers = {
- { @"X-SharpChat-Signature", sig.GetSignedHash() },
+ { "X-SharpChat-Signature", sig.GetSignedHash() },
},
};
diff --git a/SharpChat/Flashii/FlashiiBanInfo.cs b/SharpChat/Flashii/FlashiiBanInfo.cs
index 9f2a376..2b247b5 100644
--- a/SharpChat/Flashii/FlashiiBanInfo.cs
+++ b/SharpChat/Flashii/FlashiiBanInfo.cs
@@ -27,7 +27,7 @@ namespace SharpChat.Flashii {
[JsonPropertyName("user_name")]
public string UserName { get; set; }
- [JsonPropertyName(@"user_colour")]
+ [JsonPropertyName("user_colour")]
public int UserColourRaw { get; set; }
public bool HasExpired => !IsPermanent && DateTimeOffset.UtcNow >= ExpiresAt;
diff --git a/SharpChat/Logger.cs b/SharpChat/Logger.cs
index 071cc1c..c6e5548 100644
--- a/SharpChat/Logger.cs
+++ b/SharpChat/Logger.cs
@@ -5,7 +5,7 @@ using System.Text;
namespace SharpChat {
public static class Logger {
public static void Write(string str) {
- Console.WriteLine(string.Format(@"[{1}] {0}", str, DateTime.Now));
+ Console.WriteLine(string.Format("[{1}] {0}", str, DateTime.Now));
}
public static void Write(byte[] bytes) {
@@ -16,17 +16,17 @@ namespace SharpChat {
Write(obj?.ToString() ?? string.Empty);
}
- [Conditional(@"DEBUG")]
+ [Conditional("DEBUG")]
public static void Debug(string str) {
Write(str);
}
- [Conditional(@"DEBUG")]
+ [Conditional("DEBUG")]
public static void Debug(byte[] bytes) {
Write(bytes);
}
- [Conditional(@"DEBUG")]
+ [Conditional("DEBUG")]
public static void Debug(object obj) {
Write(obj);
}
diff --git a/SharpChat/Packet/AuthFailPacket.cs b/SharpChat/Packet/AuthFailPacket.cs
index 9f6cce0..b664e89 100644
--- a/SharpChat/Packet/AuthFailPacket.cs
+++ b/SharpChat/Packet/AuthFailPacket.cs
@@ -30,13 +30,13 @@ namespace SharpChat.Packet {
switch(Reason) {
case AuthFailReason.AuthInvalid:
default:
- sb.Append(@"authfail");
+ sb.Append("authfail");
break;
case AuthFailReason.MaxSessions:
- sb.Append(@"sockfail");
+ sb.Append("sockfail");
break;
case AuthFailReason.Banned:
- sb.Append(@"joinfail");
+ sb.Append("joinfail");
break;
}
diff --git a/SharpChat/Packet/ChatMessageAddPacket.cs b/SharpChat/Packet/ChatMessageAddPacket.cs
index 44fd750..826bb39 100644
--- a/SharpChat/Packet/ChatMessageAddPacket.cs
+++ b/SharpChat/Packet/ChatMessageAddPacket.cs
@@ -27,18 +27,18 @@ namespace SharpChat.Packet {
sb.Append('\t');
if(Message.Flags.HasFlag(ChatMessageFlags.Action))
- sb.Append(@"");
+ sb.Append("");
sb.Append(
Message.Text
- .Replace(@"<", @"<")
- .Replace(@">", @">")
- .Replace("\n", @"
")
- .Replace("\t", @" ")
+ .Replace("<", "<")
+ .Replace(">", ">")
+ .Replace("\n", "
")
+ .Replace("\t", " ")
);
if(Message.Flags.HasFlag(ChatMessageFlags.Action))
- sb.Append(@"");
+ sb.Append("");
sb.Append('\t');
sb.Append(SequenceId);
diff --git a/SharpChat/Packet/ContextMessagePacket.cs b/SharpChat/Packet/ContextMessagePacket.cs
index 117c115..b9d1b2d 100644
--- a/SharpChat/Packet/ContextMessagePacket.cs
+++ b/SharpChat/Packet/ContextMessagePacket.cs
@@ -31,10 +31,10 @@ namespace SharpChat.Packet {
sb.Append('\t');
sb.Append(
msg.Text
- .Replace(@"<", @"<")
- .Replace(@">", @">")
- .Replace("\n", @"
")
- .Replace("\t", @" ")
+ .Replace("<", "<")
+ .Replace(">", ">")
+ .Replace("\n", "
")
+ .Replace("\t", " ")
);
break;
@@ -62,17 +62,17 @@ namespace SharpChat.Packet {
switch(ude.Reason) {
case UserDisconnectReason.Flood:
- sb.Append(@"flood");
+ sb.Append("flood");
break;
case UserDisconnectReason.Kicked:
- sb.Append(@"kick");
+ sb.Append("kick");
break;
case UserDisconnectReason.TimeOut:
- sb.Append(@"timeout");
+ sb.Append("timeout");
break;
case UserDisconnectReason.Leave:
default:
- sb.Append(@"leave");
+ sb.Append("leave");
break;
}
diff --git a/SharpChat/Packet/LegacyCommandResponse.cs b/SharpChat/Packet/LegacyCommandResponse.cs
index 366e46a..879f2a4 100644
--- a/SharpChat/Packet/LegacyCommandResponse.cs
+++ b/SharpChat/Packet/LegacyCommandResponse.cs
@@ -68,41 +68,41 @@ namespace SharpChat.Packet {
// Abbreviated class name because otherwise shit gets wide
public static class LCR {
- public const string GENERIC_ERROR = @"generr";
- public const string COMMAND_NOT_FOUND = @"nocmd";
- public const string COMMAND_NOT_ALLOWED = @"cmdna";
- public const string COMMAND_FORMAT_ERROR = @"cmderr";
- public const string WELCOME = @"welcome";
- public const string BROADCAST = @"say";
- public const string IP_ADDRESS = @"ipaddr";
- public const string USER_NOT_FOUND = @"usernf";
- public const string SILENCE_SELF = @"silself";
- public const string SILENCE_HIERARCHY = @"silperr";
- public const string SILENCE_ALREADY = @"silerr";
- public const string TARGET_SILENCED = @"silok";
- public const string SILENCED = @"silence";
- public const string UNSILENCED = @"unsil";
- public const string TARGET_UNSILENCED = @"usilok";
- public const string NOT_SILENCED = @"usilerr";
- public const string UNSILENCE_HIERARCHY = @"usilperr";
- public const string NAME_IN_USE = @"nameinuse";
- public const string CHANNEL_INSUFFICIENT_HIERARCHY = @"ipchan";
- public const string CHANNEL_INVALID_PASSWORD = @"ipwchan";
- public const string CHANNEL_NOT_FOUND = @"nochan";
- public const string CHANNEL_ALREADY_EXISTS = @"nischan";
+ public const string GENERIC_ERROR = "generr";
+ public const string COMMAND_NOT_FOUND = "nocmd";
+ public const string COMMAND_NOT_ALLOWED = "cmdna";
+ public const string COMMAND_FORMAT_ERROR = "cmderr";
+ public const string WELCOME = "welcome";
+ public const string BROADCAST = "say";
+ public const string IP_ADDRESS = "ipaddr";
+ public const string USER_NOT_FOUND = "usernf";
+ public const string SILENCE_SELF = "silself";
+ public const string SILENCE_HIERARCHY = "silperr";
+ public const string SILENCE_ALREADY = "silerr";
+ public const string TARGET_SILENCED = "silok";
+ public const string SILENCED = "silence";
+ public const string UNSILENCED = "unsil";
+ public const string TARGET_UNSILENCED = "usilok";
+ public const string NOT_SILENCED = "usilerr";
+ public const string UNSILENCE_HIERARCHY = "usilperr";
+ public const string NAME_IN_USE = "nameinuse";
+ public const string CHANNEL_INSUFFICIENT_HIERARCHY = "ipchan";
+ public const string CHANNEL_INVALID_PASSWORD = "ipwchan";
+ public const string CHANNEL_NOT_FOUND = "nochan";
+ public const string CHANNEL_ALREADY_EXISTS = "nischan";
public const string CHANNEL_NAME_INVALID = "inchan";
- public const string CHANNEL_CREATED = @"crchan";
- public const string CHANNEL_DELETE_FAILED = @"ndchan";
- public const string CHANNEL_DELETED = @"delchan";
- public const string CHANNEL_PASSWORD_CHANGED = @"cpwdchan";
- public const string CHANNEL_HIERARCHY_CHANGED = @"cprivchan";
- public const string USERS_LISTING_ERROR = @"whoerr";
- public const string USERS_LISTING_CHANNEL = @"whochan";
- public const string USERS_LISTING_SERVER = @"who";
- public const string INSUFFICIENT_HIERARCHY = @"rankerr";
- public const string MESSAGE_DELETE_ERROR = @"delerr";
- public const string KICK_NOT_ALLOWED = @"kickna";
- public const string USER_NOT_BANNED = @"notban";
- public const string USER_UNBANNED = @"unban";
+ public const string CHANNEL_CREATED = "crchan";
+ public const string CHANNEL_DELETE_FAILED = "ndchan";
+ public const string CHANNEL_DELETED = "delchan";
+ public const string CHANNEL_PASSWORD_CHANGED = "cpwdchan";
+ public const string CHANNEL_HIERARCHY_CHANGED = "cprivchan";
+ public const string USERS_LISTING_ERROR = "whoerr";
+ public const string USERS_LISTING_CHANNEL = "whochan";
+ public const string USERS_LISTING_SERVER = "who";
+ public const string INSUFFICIENT_HIERARCHY = "rankerr";
+ public const string MESSAGE_DELETE_ERROR = "delerr";
+ public const string KICK_NOT_ALLOWED = "kickna";
+ public const string USER_NOT_BANNED = "notban";
+ public const string USER_UNBANNED = "unban";
}
}
diff --git a/SharpChat/Packet/UserDisconnectPacket.cs b/SharpChat/Packet/UserDisconnectPacket.cs
index 21fb98b..6bd69e8 100644
--- a/SharpChat/Packet/UserDisconnectPacket.cs
+++ b/SharpChat/Packet/UserDisconnectPacket.cs
@@ -34,16 +34,16 @@ namespace SharpChat.Packet {
switch(Reason) {
case UserDisconnectReason.Leave:
default:
- sb.Append(@"leave");
+ sb.Append("leave");
break;
case UserDisconnectReason.TimeOut:
- sb.Append(@"timeout");
+ sb.Append("timeout");
break;
case UserDisconnectReason.Kicked:
- sb.Append(@"kick");
+ sb.Append("kick");
break;
case UserDisconnectReason.Flood:
- sb.Append(@"flood");
+ sb.Append("flood");
break;
}
diff --git a/SharpChat/Program.cs b/SharpChat/Program.cs
index 2d170c4..c12309a 100644
--- a/SharpChat/Program.cs
+++ b/SharpChat/Program.cs
@@ -35,7 +35,7 @@ namespace SharpChat {
using HttpClient httpClient = new(new HttpClientHandler() {
UseProxy = false, // we will never and the initial resolving takes forever on linux
});
- httpClient.DefaultRequestHeaders.Add(@"User-Agent", @"SharpChat/20230206");
+ httpClient.DefaultRequestHeaders.Add("User-Agent", "SharpChat/20230206");
if(hasCancelled) return;
diff --git a/SharpChat/SharpChatWebSocketServer.cs b/SharpChat/SharpChatWebSocketServer.cs
index d9b516a..da986ec 100644
--- a/SharpChat/SharpChatWebSocketServer.cs
+++ b/SharpChat/SharpChatWebSocketServer.cs
@@ -32,7 +32,7 @@ namespace SharpChat {
Socket socket = new(_locationIP.AddressFamily, SocketType.Stream, ProtocolType.IP);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
- if(SupportDualStack && Type.GetType(@"Mono.Runtime") == null && RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
+ if(SupportDualStack && Type.GetType("Mono.Runtime") == null && RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
socket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
}
@@ -141,10 +141,10 @@ namespace SharpChat {
+ "Connection: close\r\n"
+ "\r\n"
+ "{2}";
- string responseBody = File.Exists(@"http-motd.txt") ? File.ReadAllText(@"http-motd.txt") : @"SharpChat";
+ string responseBody = File.Exists("http-motd.txt") ? File.ReadAllText("http-motd.txt") : "SharpChat";
clientSocket.Stream.Write(Encoding.UTF8.GetBytes(string.Format(
- responseMsg, DateTimeOffset.Now.ToString(@"r"), Encoding.UTF8.GetByteCount(responseBody), responseBody
+ responseMsg, DateTimeOffset.Now.ToString("r"), Encoding.UTF8.GetByteCount(responseBody), responseBody
)));
clientSocket.Close();
return null;
diff --git a/SharpChat/SockChatServer.cs b/SharpChat/SockChatServer.cs
index b65cc71..ab48c9f 100644
--- a/SharpChat/SockChatServer.cs
+++ b/SharpChat/SockChatServer.cs
@@ -29,7 +29,7 @@ namespace SharpChat {
public static ChatUser Bot { get; } = new ChatUser {
UserId = -1,
- Username = @"ChatBot",
+ Username = "ChatBot",
Rank = 0,
Colour = new ChatColour(),
};
@@ -61,16 +61,16 @@ namespace SharpChat {
Context = new ChatContext();
- Context.Channels.Add(new ChatChannel(@"Lounge"));
+ Context.Channels.Add(new ChatChannel("Lounge"));
#if DEBUG
- Context.Channels.Add(new ChatChannel(@"Programming"));
- Context.Channels.Add(new ChatChannel(@"Games"));
- Context.Channels.Add(new ChatChannel(@"Splatoon"));
- Context.Channels.Add(new ChatChannel(@"Password") { Password = @"meow", });
+ Context.Channels.Add(new ChatChannel("Programming"));
+ Context.Channels.Add(new ChatChannel("Games"));
+ Context.Channels.Add(new ChatChannel("Splatoon"));
+ Context.Channels.Add(new ChatChannel("Password") { Password = "meow", });
#endif
- Context.Channels.Add(new ChatChannel(@"Staff") { Rank = 5 });
+ Context.Channels.Add(new ChatChannel("Staff") { Rank = 5 });
- Server = new SharpChatWebSocketServer($@"ws://0.0.0.0:{port}");
+ Server = new SharpChatWebSocketServer($"ws://0.0.0.0:{port}");
}
public void Listen(ManualResetEvent mre) {
@@ -125,7 +125,7 @@ namespace SharpChat {
private void OnError(IWebSocketConnection conn, Exception ex) {
ChatUserSession sess = GetSession(conn);
string sessId = sess?.Id ?? new string('0', ChatUserSession.ID_LENGTH);
- Logger.Write($@"[{sessId} {conn.ConnectionInfo.ClientIpAddress}] {ex}");
+ Logger.Write($"[{sessId} {conn.ConnectionInfo.ClientIpAddress}] {ex}");
Context.Update();
}
@@ -225,7 +225,7 @@ namespace SharpChat {
try {
fai = await FlashiiAuthInfo.VerifyAsync(HttpClient, authMethod, authToken, ipAddr);
} catch(Exception ex) {
- Logger.Write($@"<{sess.Id}> Failed to authenticate: {ex}");
+ Logger.Write($"<{sess.Id}> Failed to authenticate: {ex}");
sess.Send(new AuthFailPacket(AuthFailReason.AuthInvalid));
sess.Dispose();
#if DEBUG
@@ -236,7 +236,7 @@ namespace SharpChat {
}
if(!fai.Success) {
- Logger.Debug($@"<{sess.Id}> Auth fail: {fai.Reason}");
+ Logger.Debug($"<{sess.Id}> Auth fail: {fai.Reason}");
sess.Send(new AuthFailPacket(AuthFailReason.AuthInvalid));
sess.Dispose();
return;
@@ -246,7 +246,7 @@ namespace SharpChat {
try {
fbi = await FlashiiBanInfo.CheckAsync(HttpClient, fai.UserId.ToString(), ipAddr);
} catch(Exception ex) {
- Logger.Write($@"<{sess.Id}> Failed auth ban check: {ex}");
+ Logger.Write($"<{sess.Id}> Failed auth ban check: {ex}");
sess.Send(new AuthFailPacket(AuthFailReason.AuthInvalid));
sess.Dispose();
#if DEBUG
@@ -257,7 +257,7 @@ namespace SharpChat {
}
if(fbi.IsBanned && !fbi.HasExpired) {
- Logger.Write($@"<{sess.Id}> User is banned.");
+ Logger.Write($"<{sess.Id}> User is banned.");
sess.Send(new AuthFailPacket(AuthFailReason.Banned, fbi));
sess.Dispose();
return;
@@ -284,10 +284,10 @@ namespace SharpChat {
aUser.AddSession(sess);
- sess.Send(new LegacyCommandResponse(LCR.WELCOME, false, $@"Welcome to Flashii Chat, {aUser.Username}!"));
+ sess.Send(new LegacyCommandResponse(LCR.WELCOME, false, $"Welcome to Flashii Chat, {aUser.Username}!"));
- if(File.Exists(@"welcome.txt")) {
- IEnumerable lines = File.ReadAllLines(@"welcome.txt").Where(x => !string.IsNullOrWhiteSpace(x));
+ if(File.Exists("welcome.txt")) {
+ IEnumerable lines = File.ReadAllLines("welcome.txt").Where(x => !string.IsNullOrWhiteSpace(x));
string line = lines.ElementAtOrDefault(RNG.Next(lines.Count()));
if(!string.IsNullOrWhiteSpace(line))
@@ -333,7 +333,7 @@ namespace SharpChat {
messageText = messageText.Trim();
#if DEBUG
- Logger.Write($@"<{sess.Id} {mUser.Username}> {messageText}");
+ Logger.Write($"<{sess.Id} {mUser.Username}> {messageText}");
#endif
IChatMessage message = null;
@@ -361,12 +361,12 @@ namespace SharpChat {
public IChatMessage HandleV1Command(string message, ChatUser user, ChatChannel channel, ChatUserSession sess) {
string[] parts = message[1..].Split(' ');
- string commandName = parts[0].Replace(@".", string.Empty).ToLowerInvariant();
+ string commandName = parts[0].Replace(".", string.Empty).ToLowerInvariant();
for(int i = 1; i < parts.Length; i++)
- parts[i] = parts[i].Replace(@"<", @"<")
- .Replace(@">", @">")
- .Replace("\n", @"
");
+ parts[i] = parts[i].Replace("<", "<")
+ .Replace(">", ">")
+ .Replace("\n", "
");
IChatCommand command = null;
foreach(IChatCommand cmd in Commands)
@@ -379,11 +379,11 @@ namespace SharpChat {
return command.Dispatch(new ChatCommandContext(parts, user, channel));
switch(commandName) {
- case @"nick": // sets a temporary nickname
+ case "nick": // sets a temporary nickname
bool setOthersNick = user.Can(ChatUserPermissions.SetOthersNickname);
if(!setOthersNick && !user.Can(ChatUserPermissions.SetOwnNickname)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -426,8 +426,8 @@ namespace SharpChat {
targetUser.Nickname = nickStr;
channel.Send(new UserUpdatePacket(targetUser, previousName));
break;
- case @"whisper": // sends a pm to another user
- case @"msg":
+ case "whisper": // sends a pm to another user
+ case "msg":
if(parts.Length < 3) {
user.Send(new LegacyCommandResponse(LCR.COMMAND_FORMAT_ERROR));
break;
@@ -458,12 +458,12 @@ namespace SharpChat {
Target = whisperUser,
TargetName = whisperUser.TargetName,
Sender = user,
- Text = $@"{whisperUser.DisplayName} {whisperStr}",
+ Text = $"{whisperUser.DisplayName} {whisperStr}",
Flags = ChatMessageFlags.Private,
}));
break;
- case @"action": // describe an action
- case @"me":
+ case "action": // describe an action
+ case "me":
if(parts.Length < 2)
break;
@@ -477,7 +477,7 @@ namespace SharpChat {
Text = actionMsg,
Flags = ChatMessageFlags.Action,
};
- case @"who": // gets all online users/online users in a channel if arg
+ case "who": // gets all online users/online users in a channel if arg
StringBuilder whoChanSB = new();
string whoChanStr = parts.Length > 1 && !string.IsNullOrEmpty(parts[1]) ? parts[1] : string.Empty;
@@ -502,7 +502,7 @@ namespace SharpChat {
whoChanSB.Append('>');
whoChanSB.Append(whoUser.DisplayName);
- whoChanSB.Append(@", ");
+ whoChanSB.Append(", ");
}
if(whoChanSB.Length > 2)
@@ -518,7 +518,7 @@ namespace SharpChat {
whoChanSB.Append('>');
whoChanSB.Append(whoUser.DisplayName);
- whoChanSB.Append(@", ");
+ whoChanSB.Append(", ");
}
if(whoChanSB.Length > 2)
@@ -531,18 +531,18 @@ namespace SharpChat {
// double alias for delchan and delmsg
// if the argument is a number we're deleting a message
// if the argument is a string we're deleting a channel
- case @"delete":
+ case "delete":
if(parts.Length < 2) {
user.Send(new LegacyCommandResponse(LCR.COMMAND_FORMAT_ERROR));
break;
}
if(parts[1].All(char.IsDigit))
- goto case @"delmsg";
- goto case @"delchan";
+ goto case "delmsg";
+ goto case "delchan";
// anyone can use these
- case @"join": // join a channel
+ case "join": // join a channel
if(parts.Length < 2)
break;
@@ -556,9 +556,9 @@ namespace SharpChat {
Context.SwitchChannel(user, joinChan, string.Join(' ', parts.Skip(2)));
break;
- case @"create": // create a new channel
+ case "create": // create a new channel
if(user.Can(ChatUserPermissions.CreateChannel)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -599,7 +599,7 @@ namespace SharpChat {
Context.SwitchChannel(user, createChan, createChan.Password);
user.Send(new LegacyCommandResponse(LCR.CHANNEL_CREATED, false, createChan.Name));
break;
- case @"delchan": // delete a channel
+ case "delchan": // delete a channel
if(parts.Length < 2 || string.IsNullOrWhiteSpace(parts[1])) {
user.Send(new LegacyCommandResponse(LCR.COMMAND_FORMAT_ERROR));
break;
@@ -621,10 +621,10 @@ namespace SharpChat {
Context.Channels.Remove(delChan);
user.Send(new LegacyCommandResponse(LCR.CHANNEL_DELETED, false, delChan.Name));
break;
- case @"password": // set a password on the channel
- case @"pwd":
+ case "password": // set a password on the channel
+ case "pwd":
if(!user.Can(ChatUserPermissions.SetChannelPassword) || channel.Owner != user) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -636,11 +636,11 @@ namespace SharpChat {
Context.Channels.Update(channel, password: chanPass);
user.Send(new LegacyCommandResponse(LCR.CHANNEL_PASSWORD_CHANGED, false));
break;
- case @"privilege": // sets a minimum hierarchy requirement on the channel
- case @"rank":
- case @"priv":
+ case "privilege": // sets a minimum hierarchy requirement on the channel
+ case "rank":
+ case "priv":
if(!user.Can(ChatUserPermissions.SetChannelHierarchy) || channel.Owner != user) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -653,19 +653,19 @@ namespace SharpChat {
user.Send(new LegacyCommandResponse(LCR.CHANNEL_HIERARCHY_CHANGED, false));
break;
- case @"say": // pretend to be the bot
+ case "say": // pretend to be the bot
if(!user.Can(ChatUserPermissions.Broadcast)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
Context.Send(new LegacyCommandResponse(LCR.BROADCAST, false, string.Join(' ', parts.Skip(1))));
break;
- case @"delmsg": // deletes a message
+ case "delmsg": // deletes a message
bool deleteAnyMessage = user.Can(ChatUserPermissions.DeleteAnyMessage);
if(!deleteAnyMessage && !user.Can(ChatUserPermissions.DeleteOwnMessage)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -683,12 +683,12 @@ namespace SharpChat {
Context.Events.Remove(delMsg);
break;
- case @"kick": // kick a user from the server
- case @"ban": // ban a user from the server, this differs from /kick in that it adds all remote address to the ip banlist
- bool isBanning = commandName == @"ban";
+ case "kick": // kick a user from the server
+ case "ban": // ban a user from the server, this differs from /kick in that it adds all remote address to the ip banlist
+ bool isBanning = commandName == "ban";
if(!user.Can(isBanning ? ChatUserPermissions.BanUser : ChatUserPermissions.KickUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -698,7 +698,7 @@ namespace SharpChat {
ChatUser banUser = null;
if(banUserTarget == null || (banUser = Context.Users.Get(banUserTarget)) == null) {
- user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, banUser == null ? @"User" : banUserTarget));
+ user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, banUser == null ? "User" : banUserTarget));
break;
}
@@ -746,10 +746,10 @@ namespace SharpChat {
Context.BanUser(banUser, duration);
}).Wait();
break;
- case @"pardon":
- case @"unban":
+ case "pardon":
+ case "unban":
if(!user.Can(ChatUserPermissions.BanUser | ChatUserPermissions.KickUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -784,10 +784,10 @@ namespace SharpChat {
user.Send(new LegacyCommandResponse(LCR.USER_NOT_BANNED, true, unbanUserTarget));
}).Wait();
break;
- case @"pardonip":
- case @"unbanip":
+ case "pardonip":
+ case "unbanip":
if(!user.Can(ChatUserPermissions.BanUser | ChatUserPermissions.KickUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -814,10 +814,10 @@ namespace SharpChat {
user.Send(new LegacyCommandResponse(LCR.USER_NOT_BANNED, true, unbanAddrTarget));
}).Wait();
break;
- case @"bans": // gets a list of bans
- case @"banned":
+ case "bans": // gets a list of bans
+ case "banned":
if(!user.Can(ChatUserPermissions.BanUser | ChatUserPermissions.KickUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -827,16 +827,16 @@ namespace SharpChat {
));
}).Wait();
break;
- case @"silence": // silence a user
+ case "silence": // silence a user
if(!user.Can(ChatUserPermissions.SilenceUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
ChatUser silUser;
if(parts.Length < 2 || (silUser = Context.Users.Get(parts[1])) == null) {
- user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? @"User" : parts[1]));
+ user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? "User" : parts[1]));
break;
}
@@ -870,16 +870,16 @@ namespace SharpChat {
silUser.Send(new LegacyCommandResponse(LCR.SILENCED, false));
user.Send(new LegacyCommandResponse(LCR.TARGET_SILENCED, false, silUser.DisplayName));
break;
- case @"unsilence": // unsilence a user
+ case "unsilence": // unsilence a user
if(!user.Can(ChatUserPermissions.SilenceUser)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
ChatUser unsilUser;
if(parts.Length < 2 || (unsilUser = Context.Users.Get(parts[1])) == null) {
- user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? @"User" : parts[1]));
+ user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? "User" : parts[1]));
break;
}
@@ -897,16 +897,16 @@ namespace SharpChat {
unsilUser.Send(new LegacyCommandResponse(LCR.UNSILENCED, false));
user.Send(new LegacyCommandResponse(LCR.TARGET_UNSILENCED, false, unsilUser.DisplayName));
break;
- case @"ip": // gets a user's ip (from all connections in this case)
- case @"whois":
+ case "ip": // gets a user's ip (from all connections in this case)
+ case "whois":
if(!user.Can(ChatUserPermissions.SeeIPAddress)) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, @"/ip"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, "/ip"));
break;
}
ChatUser ipUser;
if(parts.Length < 2 || (ipUser = Context.Users.Get(parts[1])) == null) {
- user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? @"User" : parts[1]));
+ user.Send(new LegacyCommandResponse(LCR.USER_NOT_FOUND, true, parts.Length < 2 ? "User" : parts[1]));
break;
}
@@ -914,10 +914,10 @@ namespace SharpChat {
user.Send(new LegacyCommandResponse(LCR.IP_ADDRESS, false, ipUser.Username, ip));
break;
- case @"shutdown":
- case @"restart":
+ case "shutdown":
+ case "restart":
if(user.UserId != 1) {
- user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $@"/{commandName}"));
+ user.Send(new LegacyCommandResponse(LCR.COMMAND_NOT_ALLOWED, true, $"/{commandName}"));
break;
}
@@ -925,7 +925,7 @@ namespace SharpChat {
break;
IsShuttingDown = true;
- if(commandName == @"restart")
+ if(commandName == "restart")
lock(SessionsLock)
Sessions.ForEach(s => s.PrepareForRestart());