Skip to content

Commit 0aaf58d

Browse files
committed
Update the database schema to allow emoji characters, 4 byte UTF8 characters.
1 parent a06ce82 commit 0aaf58d

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

DatabaseManager.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class DatabaseManager
1919
private string TableInstance;
2020
private string TableServer;
2121
internal ushort InstanceID { get; private set; }
22-
public static readonly uint DatabaseSchemaVersion = 3;
22+
public static readonly uint DatabaseSchemaVersion = 4;
2323
public static readonly uint DatabaseInterfaceVersion = 2;
2424

2525
// Initialization section.
@@ -259,6 +259,17 @@ private void CheckVersion(ushort version, MySqlCommand command)
259259
command.ExecuteNonQuery();
260260
Logger.LogWarning("Finished.");
261261
}
262+
if (version < 4)
263+
{
264+
updatingVersion = 4;
265+
// Updating tables to handle Special UTF8 characters(like emoji characters.)
266+
Logger.LogWarning("Updating Playerinfo DB to version: " + updatingVersion);
267+
command.CommandText = "ALTER TABLE `" + Table + "` MODIFY `SteamName` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, MODIFY `CharName` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;" +
268+
"ALTER TABLE `"+ TableInstance + "` MODIFY `ServerInstance` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, MODIFY `ServerName` VARCHAR(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;" +
269+
"REPAIR TABLE `" + Table + "`, `" + TableInstance + "`;" +
270+
"UPDATE `" + TableConfig + "` SET `value` = '4' WHERE `key` = 'version';";
271+
command.ExecuteNonQuery();
272+
}
262273
}
263274
catch (MySqlException ex)
264275
{
@@ -291,7 +302,7 @@ private bool CreateConnection(int count = 1)
291302
Connection = null;
292303
if (PlayerInfoLib.Instance.Configuration.Instance.DatabasePort == 0)
293304
PlayerInfoLib.Instance.Configuration.Instance.DatabasePort = 3306;
294-
Connection = new MySqlConnection(string.Format("SERVER={0};DATABASE={1};UID={2};PASSWORD={3};PORT={4};", PlayerInfoLib.Instance.Configuration.Instance.DatabaseAddress, PlayerInfoLib.Instance.Configuration.Instance.DatabaseName, PlayerInfoLib.Instance.Configuration.Instance.DatabaseUserName, PlayerInfoLib.Instance.Configuration.Instance.DatabasePassword, PlayerInfoLib.Instance.Configuration.Instance.DatabasePort));
305+
Connection = new MySqlConnection(string.Format("SERVER={0};DATABASE={1};UID={2};PASSWORD={3};PORT={4};CHARSET=utf8mb4", PlayerInfoLib.Instance.Configuration.Instance.DatabaseAddress, PlayerInfoLib.Instance.Configuration.Instance.DatabaseName, PlayerInfoLib.Instance.Configuration.Instance.DatabaseUserName, PlayerInfoLib.Instance.Configuration.Instance.DatabasePassword, PlayerInfoLib.Instance.Configuration.Instance.DatabasePort));
295306
Connection.Open();
296307
return true;
297308
}

Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.3.0.1")]
36-
[assembly: AssemblyFileVersion("1.3.0.1")]
35+
[assembly: AssemblyVersion("1.3.0.2")]
36+
[assembly: AssemblyFileVersion("1.3.0.2")]

0 commit comments

Comments
 (0)