Skip to content

Commit

Permalink
Update metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
leonardosnt committed Mar 18, 2016
1 parent 67352c6 commit 8c9c58f
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 15 deletions.
61 changes: 47 additions & 14 deletions src/Analytics/Metrics.cs
Expand Up @@ -2,8 +2,8 @@
using System.Net;
using System.Text;
using System.Threading;
using Essentials.Api;
using SDG.Unturned;
using System.IO;

// ReSharper disable InconsistentNaming

Expand All @@ -14,18 +14,20 @@ namespace Essentials.Analytics
/// </summary>
internal class Metrics
{
internal const string REPORT_URL = "http://ess-metrics.ga/?report";
internal const string REPORT_URL = "http://leofl.cf/metrics/?t={0}";

private static bool working;

internal static void Init()
{
working = true;
var osType = "undefined";
var arch = "undefined";
var gamemode = Provider.mode.ToString();
var appId = Provider.APP_ID.m_AppId.ToString();
var pvp = Provider.PvP.ToString().ToLower();
var version = Provider.Version;
var cameraMode = Provider.camera.ToString();
var lang = Provider.language;
var port = Provider.ServerPort.ToString();

try
{
Expand All @@ -43,20 +45,18 @@ internal static void Init()
{
try
{
var httpRequest = (HttpWebRequest) WebRequest.Create( REPORT_URL );
var httpRequest = (HttpWebRequest) WebRequest.Create( string.Format( REPORT_URL, 1 ) );
var dataBuilder = new StringBuilder( "data=" );
dataBuilder.Append( string.Join( ";", new[]
{
dataBuilder.Append( string.Join( ";", new[] {
osType,
arch,
gamemode,
appId,
pvp,
version,
cameraMode,
lang
lang,
port
}) );
var data = Encoding.ASCII.GetBytes( dataBuilder.ToString() );
Expand All @@ -71,12 +71,45 @@ internal static void Init()
}
}
catch (Exception ex)
{
EssProvider.Logger.LogWarning( $"Could not connect to metrics server, error: {ex.Message}" );
EssProvider.Logger.LogWarning( "If possible, report to developer at " +
"https://github.com/uEssentials/uEssentials/issues" );
{
}
} ).Start();
}

internal static void ReportPlayer( Rocket.Unturned.Player.UnturnedPlayer player )
{
if ( player == null || !working )
{
return;
}

new Thread(() =>
{
try
{
var httpRequest = (HttpWebRequest) WebRequest.Create( string.Format( REPORT_URL, 2 ) );
var dataBuilder = new StringBuilder("data=");
dataBuilder.Append( string.Join(";", new[] {
player.CSteamID.ToString()
}) );
var data = Encoding.ASCII.GetBytes( dataBuilder.ToString() );
httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.ContentLength = data.Length;
using (var stream = httpRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
catch (Exception ex)
{
}
}).Start();
}
}
}
2 changes: 2 additions & 0 deletions src/Core/EssCore.cs
Expand Up @@ -329,6 +329,8 @@ select type
} ).Delay( 500 ).Go();

CommandWindow.ConsoleInput.onInputText += ReloadCallback;

Analytics.Metrics.Init();
}

protected override void Unload()
Expand Down
8 changes: 7 additions & 1 deletion src/Event/Handling/EssentialsEventHandler.cs
Expand Up @@ -158,6 +158,12 @@ void OnPlayerRespawn( UnturnedPlayer player, Vector3 vect, byte angle )
});
}

[SubscribeEvent(EventType.PLAYER_CONNECTED)]
void OnPlayerConnected( UnturnedPlayer player )
{
Analytics.Metrics.ReportPlayer( player );
}

[SubscribeEvent( EventType.PLAYER_DISCONNECTED )]
void OnPlayerDisconnect( UnturnedPlayer player )
{
Expand Down Expand Up @@ -197,7 +203,7 @@ void OnPlayerDisconnect( UnturnedPlayer player )
private DateTime lastUpdateCheck = DateTime.Now;

[SubscribeEvent( EventType.PLAYER_CONNECTED )]
void UpdaterAlertOnJoin( UnturnedPlayer player )
void UpdateAlert( UnturnedPlayer player )
{
if ( !player.IsAdmin || lastUpdateCheck > DateTime.Now ) return;

Expand Down

0 comments on commit 8c9c58f

Please sign in to comment.