1 Commits

Author SHA1 Message Date
Szymon Porwolik
d63c0fbfdf v0.3.6
MySQL database structure change - shall be less redundant.
2019-02-25 13:17:33 +01:00
5 changed files with 46 additions and 20 deletions

View File

@@ -17,7 +17,7 @@
-- ########### END OF SETTINGS ###########
-- Variable init
Perun.Version = "v0.3.5"
Perun.Version = "v0.3.6"
Perun.StatusData = {}
Perun.SlotsData = {}
Perun.MissionData = {}
@@ -164,8 +164,9 @@
data['player']= net.get_player_info(playerID, "name")
data['msg']=msg
data['all']=all
data['ucid']=net.get_player_info(playerID, 'ucid')
data['datetime']=os.date('%Y-%m-%d %H:%M:%S')
data['log_missionhash']=Perun.MissionHash
data['missionhash']=Perun.MissionHash
Perun.Send(50,data)
end
@@ -222,11 +223,11 @@
Perun.onSimulationStart = function()
Perun.MissionHash=DCS.getMissionName( ).."@"..os.date('%Y%m%d_%H%M%S');
Perun.LogEvent("SimStart",Perun.MissionHash);
Perun.LogEvent("SimStart","Mission" .. Perun.MissionHash .. " started");
end
Perun.onSimulationStop = function()
Perun.LogEvent("SimStop",Perun.MissionHash);
Perun.LogEvent("SimStop","Mission" .. Perun.MissionHash .. " finished");
end
Perun.onPlayerDisconnect= function(id, err_code)

View File

@@ -33,7 +33,7 @@
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>Perun.htm</WebPage>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>0.3.5.%2a</ApplicationVersion>
<ApplicationVersion>0.3.6.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted>

View File

@@ -33,7 +33,7 @@ using System.Runtime.InteropServices;
// Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki
// przy użyciu symbolu „*”, tak jak pokazano poniżej:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.3.5.0")]
[assembly: AssemblyFileVersion("0.3.5.0")]
[assembly: AssemblyVersion("0.3.6.0")]
[assembly: AssemblyFileVersion("0.3.6.0")]
[assembly: NeutralResourcesLanguage("en")]

View File

@@ -54,26 +54,32 @@ namespace Perun_v1
// Specific SQL
if (type == "50")
{
// Add entry to event log
sql = "INSERT INTO `pe_LogChat` (`pe_LogChat_id`,`pe_LogChat_datetime`, `pe_LogChat_playerid`, `pe_LogChat_msg`, `pe_LogChat_all`) VALUES (NULL,'" + udp_frame.payload.datetime + "', '" + udp_frame.payload.player + "', '" + udp_frame.payload.msg + "', '" + udp_frame.payload.all + "');";
// Add entry to chat log
sql = "INSERT INTO `pe_DataPlayers` (`pe_DataPlayers_ucid`) VALUES ('" + udp_frame.payload.ucid + "') ON DUPLICATE KEY UPDATE pe_DataPlayers_updated=CURRENT_TIMESTAMP(),pe_DataPlayers_lastname='"+ udp_frame.payload.player + "';";
sql = sql + "INSERT INTO `pe_DataMissionHashes` (`pe_DataMissionHashes_hash`) VALUES ('" + udp_frame.payload.missionhash + "') ON DUPLICATE KEY UPDATE pe_DataMissionHashes_datetime=CURRENT_TIMESTAMP();";
sql = sql+ "INSERT INTO `pe_LogChat` (`pe_LogChat_id`,`pe_LogChat_datetime`, `pe_LogChat_playerid`, `pe_LogChat_msg`, `pe_LogChat_all`,`pe_LogChat_missionhash_id`) VALUES (NULL,'" + udp_frame.payload.datetime + "', (SELECT pe_DataPlayers_id from pe_DataPlayers WHERE pe_DataPlayers_ucid = '"+ udp_frame.payload.ucid + "'), '" + udp_frame.payload.msg + "', '" + udp_frame.payload.all + "',(SELECT pe_DataMissionHashes_id FROM pe_DataMissionHashes WHERE pe_DataMissionHashes_hash = '" + udp_frame.payload.missionhash + "'));";
}
else if (type == "51")
{
// Add entry to event log
sql = "INSERT INTO `pe_LogEvent` (`pe_LogEvent_id`, `pe_LogEvent_datetime`, `pe_LogEvent_type`, `pe_LogEvent_content`,`pe_LogEvent_missionhash`) VALUES ( NULL, '" + udp_frame.payload.log_datetime + "', '" + udp_frame.payload.log_type + "', '" + udp_frame.payload.log_content + "', '" + udp_frame.payload.log_missionhash + "');";
sql = "INSERT INTO `pe_DataMissionHashes` (`pe_DataMissionHashes_hash`) VALUES ('" + udp_frame.payload.log_missionhash + "') ON DUPLICATE KEY UPDATE pe_DataMissionHashes_datetime=CURRENT_TIMESTAMP();";
sql = sql + "INSERT INTO `pe_LogEvent` (`pe_LogEvent_id`, `pe_LogEvent_datetime`, `pe_LogEvent_type`, `pe_LogEvent_content`,`pe_LogEvent_missionhash_id`) VALUES ( NULL, '" + udp_frame.payload.log_datetime + "', '" + udp_frame.payload.log_type + "', '" + udp_frame.payload.log_content + "', (SELECT pe_DataMissionHashes_id FROM pe_DataMissionHashes WHERE pe_DataMissionHashes_hash = '" + udp_frame.payload.log_missionhash + "'));";
}
else if (type == "52")
{
// Update user stats
payload = JsonConvert.SerializeObject(udp_frame.payload.stat_data);
sql = "INSERT INTO `pe_LogStats` (`pe_LogStats_datetime`, `pe_LogStats_ucid`, `pe_LogStats_debug`,`pe_LogStats_missionhash`) VALUES ('" + udp_frame.payload.stat_datetime + "', '" + udp_frame.payload.stat_ucid + "', JSON_QUOTE('" + payload + "'), '" + udp_frame.payload.stat_missionhash + "') ON DUPLICATE KEY UPDATE pe_LogStats_datetime='" + udp_frame.payload.stat_datetime + "',pe_LogStats_ucid = '" + udp_frame.payload.stat_ucid + "', pe_LogStats_debug=JSON_QUOTE('" + payload + "'), pe_LogStats_missionhash='" + udp_frame.payload.stat_missionhash + "'";
sql = "INSERT INTO `pe_DataMissionHashes` (`pe_DataMissionHashes_hash`) VALUES ('" + udp_frame.payload.stat_missionhash + "') ON DUPLICATE KEY UPDATE pe_DataMissionHashes_datetime=CURRENT_TIMESTAMP();";
sql = sql + "INSERT INTO `pe_DataPlayers` (`pe_DataPlayers_ucid`) VALUES ('" + udp_frame.payload.stat_ucid + "') ON DUPLICATE KEY UPDATE pe_DataPlayers_updated=CURRENT_TIMESTAMP();";
sql = sql+ "INSERT INTO `pe_LogStats` (`pe_LogStats_datetime`, `pe_LogStats_playerid`, `pe_LogStats_debug`,`pe_LogStats_missionhash_id`) VALUES ('" + udp_frame.payload.stat_datetime + "', (SELECT pe_DataPlayers_id from pe_DataPlayers WHERE pe_DataPlayers_ucid = '" + udp_frame.payload.stat_ucid + "'), JSON_QUOTE('" + payload + "'), (SELECT pe_DataMissionHashes_id FROM pe_DataMissionHashes WHERE pe_DataMissionHashes_hash = '" + udp_frame.payload.stat_missionhash + "')) ON DUPLICATE KEY UPDATE pe_LogStats_datetime='" + udp_frame.payload.stat_datetime + "',pe_LogStats_playerid = (SELECT pe_DataPlayers_id from pe_DataPlayers WHERE pe_DataPlayers_ucid = '" + udp_frame.payload.stat_ucid + "'), pe_LogStats_debug=JSON_QUOTE('" + payload + "'), pe_LogStats_missionhash_id=(SELECT pe_DataMissionHashes_id FROM pe_DataMissionHashes WHERE pe_DataMissionHashes_hash = '" + udp_frame.payload.stat_missionhash + "')";
}
else if (type == "53")
{
// User logged in to DCS server
payload = JsonConvert.SerializeObject(udp_frame.payload.stat_data);
sql = "INSERT INTO `pe_LogLogins` (`pe_LogLogins_datetime`, `pe_LogLogins_ucid`, `pe_LogLogins_name`, `pe_LogLogins_ip`) VALUES ('" + udp_frame.payload.login_datetime + "', '" + udp_frame.payload.login_ucid + "', '" + udp_frame.payload.login_name + "', '" + udp_frame.payload.login_ipaddr + "');";
sql = sql + "INSERT INTO `pe_DataPlayers` (`pe_DataPlayers_id`, `pe_DataPlayers_ucid`, `pe_DataPlayers_lastip`, `pe_DataPlayers_lastname`, `pe_DataPlayers_updated`) VALUES (NULL, '" + udp_frame.payload.login_ucid + "', '" + udp_frame.payload.login_ipaddr + "', '" + udp_frame.payload.login_name + "', '" + udp_frame.payload.login_datetime + "') ON DUPLICATE KEY UPDATE pe_DataPlayers_lastip='" + udp_frame.payload.login_ipaddr + "',pe_DataPlayers_lastname='" + udp_frame.payload.login_name + "',pe_DataPlayers_updated='" + udp_frame.payload.login_datetime + "'";
sql = "INSERT INTO `pe_DataPlayers` (`pe_DataPlayers_id`, `pe_DataPlayers_ucid`, `pe_DataPlayers_lastip`, `pe_DataPlayers_lastname`, `pe_DataPlayers_updated`) VALUES (NULL, '" + udp_frame.payload.login_ucid + "', '" + udp_frame.payload.login_ipaddr + "', '" + udp_frame.payload.login_name + "', '" + udp_frame.payload.login_datetime + "') ON DUPLICATE KEY UPDATE pe_DataPlayers_lastip='" + udp_frame.payload.login_ipaddr + "',pe_DataPlayers_lastname='" + udp_frame.payload.login_name + "',pe_DataPlayers_updated='" + udp_frame.payload.login_datetime + "';";
sql = sql + "INSERT INTO `pe_LogLogins` (`pe_LogLogins_datetime`, `pe_LogLogins_playerid`, `pe_LogLogins_name`, `pe_LogLogins_ip`) VALUES ('" + udp_frame.payload.login_datetime + "', (SELECT pe_DataPlayers_id from pe_DataPlayers WHERE pe_DataPlayers_ucid = '" + udp_frame.payload.login_ucid + "'), '" + udp_frame.payload.login_name + "', '" + udp_frame.payload.login_ipaddr + "');";
}
else
{
@@ -102,7 +108,7 @@ namespace Perun_v1
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
LogHistoryAdd(ref LogHistory, "ERROR: MySQL");
LogHistoryAdd(ref LogHistory, "ERROR MySQL: type " + type);
}
conn.Close();

View File

@@ -1,4 +1,5 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
@@ -18,6 +19,21 @@ USE `m1081_perun`;
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `pe_DataMissionHashes`
--
DROP TABLE IF EXISTS `pe_DataMissionHashes`;
CREATE TABLE IF NOT EXISTS `pe_DataMissionHashes` (
`pe_DataMissionHashes_id` bigint(20) NOT NULL AUTO_INCREMENT,
`pe_DataMissionHashes_hash` varchar(150) NOT NULL,
`pe_DataMissionHashes_datetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`pe_DataMissionHashes_id`),
UNIQUE KEY `UNIQUE_hash` (`pe_DataMissionHashes_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `pe_DataPlayers`
--
@@ -57,6 +73,7 @@ DROP TABLE IF EXISTS `pe_LogChat`;
CREATE TABLE IF NOT EXISTS `pe_LogChat` (
`pe_LogChat_id` bigint(20) NOT NULL AUTO_INCREMENT,
`pe_LogChat_datetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`pe_LogChat_missionhash_id` bigint(20) DEFAULT NULL,
`pe_LogChat_playerid` varchar(100) NOT NULL,
`pe_LogChat_msg` text NOT NULL,
`pe_LogChat_all` varchar(10) NOT NULL,
@@ -72,7 +89,7 @@ CREATE TABLE IF NOT EXISTS `pe_LogChat` (
DROP TABLE IF EXISTS `pe_LogEvent`;
CREATE TABLE IF NOT EXISTS `pe_LogEvent` (
`pe_LogEvent_id` bigint(20) NOT NULL AUTO_INCREMENT,
`pe_LogEvent_missionhash` varchar(150) DEFAULT NULL,
`pe_LogEvent_missionhash_id` bigint(20) DEFAULT NULL,
`pe_LogEvent_datetime` datetime DEFAULT CURRENT_TIMESTAMP,
`pe_LogEvent_type` varchar(100) NOT NULL,
`pe_LogEvent_content` text NOT NULL,
@@ -87,10 +104,12 @@ CREATE TABLE IF NOT EXISTS `pe_LogEvent` (
DROP TABLE IF EXISTS `pe_LogLogins`;
CREATE TABLE IF NOT EXISTS `pe_LogLogins` (
`pe_LogLogins_id` bigint(20) NOT NULL AUTO_INCREMENT,
`pe_LogLogins_datetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`pe_LogLogins_ucid` varchar(150) NOT NULL,
`pe_LogLogins_playerid` bigint(20) DEFAULT NULL,
`pe_LogLogins_name` varchar(150) NOT NULL,
`pe_LogLogins_ip` varchar(100) NOT NULL
`pe_LogLogins_ip` varchar(100) NOT NULL,
PRIMARY KEY (`pe_LogLogins_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -102,12 +121,12 @@ CREATE TABLE IF NOT EXISTS `pe_LogLogins` (
DROP TABLE IF EXISTS `pe_LogStats`;
CREATE TABLE IF NOT EXISTS `pe_LogStats` (
`pe_LogStats_id` bigint(20) NOT NULL AUTO_INCREMENT,
`pe_LogStats_missionhash` varchar(150) DEFAULT NULL,
`pe_LogStats_missionhash_id` bigint(20) DEFAULT NULL,
`pe_LogStats_datetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`pe_LogStats_ucid` varchar(200) NOT NULL,
`pe_LogStats_playerid` bigint(20) DEFAULT NULL,
`pe_LogStats_debug` text,
PRIMARY KEY (`pe_LogStats_id`),
UNIQUE KEY `UNIQUE_STATS_PER_MISSION_AND_UCID` (`pe_LogStats_ucid`,`pe_LogStats_missionhash`)
UNIQUE KEY `UNIQUE_STATS_PER_MISSION_AND_UCID` (`pe_LogStats_playerid`,`pe_LogStats_missionhash_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
COMMIT;