Jump to content

Chat, GUID, Stats and Mapstats Logger[1.1.0.1][BF3]


ImportBot

Recommended Posts

Originally Posted by ColColonCleaner*:

 

It's okay to release a patch for a different plugin (if the plugin-author agrees or is inactive/has no time), but I didn't like you wanting to bundle it with your plugin without releasing it here, as an "official" patch for everyone. Either have that for everyone, or no one, don't split up the plugin usage even more :ohmy:

Oh...well in that case i'll release the patch tonight.
* Restored post. It could be that the author is no longer active.
Link to comment
  • Replies 1.9k
  • Created
  • Last Reply

Top Posters In This Topic

  • ImportBot

    1934

Originally Posted by ColColonCleaner*:

 

could you post your patch here.

 

I was inactive for some time. So i could merge it to new version.

Yep working on it...i've added a little more so some testing is needed before posting. Still might be able to post tonight.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

@XPKiller

 

Releasing Patch Version 1.1.0.2

 

This patch in short allows other plugins to orchestrate how stat logger operates.

 

Details: A match command "GetStatus" is added on plugin load. Checking for this command lets other plugins know whether it exists. If the command exists but cannot be called it means stat logger is disabled, actions can then be taken accordingly. After manually or automatically enabling stat logger this command can be called from any other plugin passing a stringified JSON object containing the return location (plugin name, and plugin method).

 

When called it will return a stringified JSON object containing the following elements:

 

pluginVersion - Version of the plugin, currently 1.1.0.2

pluginEnabled - Whether the plugin is enabled, always true now that i realize plugin.call only works on enabled plugins.

DBHost - Hostname of the DB stat logger is using.

DBPort - Port of the DB stat logger is using.

DBName - Name of the DB stat logger is using.

DBTimeOffset - Time offset stat logger is using.

DBConnectionActive - A select is made on tbl_server with limit 1, on any return connection is deemed active.

ChatLoggingEnabled - Whether chat logging is enabled.

InstantChatLoggingEnabled - Whether Instant chat logging is enabled.

StatsLoggingEnabled - Whether stat logging is enabled.

DBliveScoreboardEnabled - Whether the live scoreboard is enabled in the database.

DebugMode - The current debug mode stat logger is in.

Error - Always False for now

 

This list is preliminary and only sends back what i need at the moment plus a couple others i thought could be nice.

 

The diff log between killer's current version (1.1.0.1) and this version (1.1.0.2) can be found in the AdKats repository here: https://github.com/ColColonCleaner/A...3c05677362e75c

 

The source for 1.1.0.2 can be found and downloaded from the AdKats repository here: https://raw.github.com/ColColonClean...tsLoggerBF3.cs

 

The section of code where AdKats 0.3.4.9 (unreleased) uses this can be found on line 10046 here: https://github.com/ColColonCleaner/A...Kats.cs#L10046

 

If you would like the source moved I will gladly do it, but this works best for modifications for now. This is for public release and usage using the link above, but a copy of this file will be released with AdKats 0.3.5.0 after testing is complete. Adkats 3.5 will refuse to start unless this patch is installed. Let me know what develops.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

@ColColonCleaner

 

its fine.

 

I will repack my plugin the next days.

I'm going to use your modded version of my stats as new base for bf4, if it is ok for you?

Perfect. Do you have a list of changes/features you are planning to make/add to the new version? Or will it just be compatibility with BF4?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

@XpKiller

 

I'm not seeing the section of code that updates player names in the database if they change their name, I'm probably just blind though. This was not happening in our servers, at least for some players. Their name in-game would not match the database even after several joins by that player. I added backup code in AdKats to make sure it changes, but i would like to make sure stat logger is doing this as well.

 

EDIT: Ah, i see where it is now, but it's only called on round end? So we can't rely on stat logger for any changes during the match aside from chat logs? I did not know this before, apparently my backup systems have been working harder than i thought...

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by lowstep*:

 

I talked to my provider and he said, i got the access and that remote connections are allowed.

 

My error : Error: System.TypeInitializationException: Der Typeninitialisierer für "MySql.Data.MySqlClient.MySqlPoolManager" hat eine Ausnahme verursacht. ---> System.Security.SecurityException: Fehler bei der Anforderung des Berechtigungstyps "System.Security.Permissions.SecurityPermissio n, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

bei MySql.Data.MySqlClient.MySqlPoolManager..cctor()

Die Aktion, bei der ein Fehler aufgetreten ist:

LinkDemand

Der Typ der ersten Berechtigung, bei der ein Fehler aufgetreten ist:

System.Security.Permissions.SecurityPermission

Die Zone der Assembly, bei der ein Fehler aufgetreten ist:

MyComputer

--- Ende der internen Ausnahmestapelüberwachung ---

bei MySql.Data.MySqlClient.MySqlPoolManager.GetPool(My SqlConnectionStringBuilder settings)

bei MySql.Data.MySqlClient.MySqlConnection.Open()

bei PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder( )

[15:03:17 12] Error: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

bei PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder( )

[15:03:17 14] Error: getUpdateServerID1: System.TypeInitializationException: Der Typeninitialisierer für "MySql.Data.MySqlClient.MySqlPoolManager" hat eine Ausnahme verursacht. ---> System.Security.SecurityException: Fehler bei der Anforderung des Berechtigungstyps "System.Security.Permissions.SecurityPermissio n, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

bei MySql.Data.MySqlClient.MySqlPoolManager..cctor()

Die Aktion, bei der ein Fehler aufgetreten ist:

LinkDemand

Der Typ der ersten Berechtigung, bei der ein Fehler aufgetreten ist:

System.Security.Permissions.SecurityPermission

Die Zone der Assembly, bei der ein Fehler aufgetreten ist:

MyComputer

--- Ende der internen Ausnahmestapelüberwachung ---

bei MySql.Data.MySqlClient.MySqlPoolManager.GetPool(My SqlConnectionStringBuilder settings)

bei MySql.Data.MySqlClient.MySqlConnection.Open()

bei PRoConEvents.CChatGUIDStatsLoggerBF3.getUpdateServ erID(CServerInfo csiServerInfo)

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by XpKiller*:

 

@lowstep

your error typical for a procon permission error.

 

you need to add your database host to the trusted host list in procon or the sandbox needs to be disabled.

 

I recommend to add the host to the trusted hosts list. Procon needs a restart to apply that settings.

 

In the most causes that step needs to be done by your layer provider.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

@XpKiller

 

Getting this error:

 

Error: Error in UnregisterAllCommands: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

at System.ThrowHelper.ThrowInvalidOperationException( ExceptionResource resource)

at System.Collections.Generic.Dictionary`2.Enumerator .MoveNext()

at PRoConEvents.CChatGUIDStatsLoggerBF3.UnregisterAll Commands()

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by lowstep*:

 

i dont think so, or procon needs a restart.

 

This sandbox related setting needs a restart of the proconlayer to apply.

I restartet the layer and the gameserver multiple times but i still get the error.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by XpKiller*:

 

I restartet the layer and the gameserver multiple times but i still get the error.

how did you change that setting? Did you modify the the procon.cfg of your layer?

 

Please note you cannot the sandbox setting with a client connected to the proconlayer. The setting show in your client is for your local procon.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by XpKiller*:

 

@XpKiller

 

Getting this error:

 

Error: Error in UnregisterAllCommands: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

at System.ThrowHelper.ThrowInvalidOperationException( ExceptionResource resource)

at System.Collections.Generic.Dictionary`2.Enumerator .MoveNext()

at PRoConEvents.CChatGUIDStatsLoggerBF3.UnregisterAll Commands()

this error is rised, if one thread is reading for a collection within UnregisterAllCommands() and at the same time an other thread is modifying that collection (eg. a list). I guess error is cause by your patch. You probably needed to add a lock object to avoid such situations.

 

Unfortunately i have no gameserver for development atm.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

this error is rised, if one thread is reading for a collection within UnregisterAllCommands() and at the same time an other thread is modifying that collection (eg. a list). I guess error is cause by your patch. You probably needed to add a lock object to avoid such situations.

 

Unfortunately i have no gameserver for development atm.

Alright, can you tell me which object to lock around (assuming one already exists)? I can go searching, but asking will probably be faster, lol.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by lowstep*:

 

how did you change that setting? Did you modify the the procon.cfg of your layer?

 

Please note you cannot the sandbox setting with a client connected to the proconlayer. The setting show in your client is for your local procon.

Where do i find it ? Its not in my procon ftp.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Jasonpb*:

 

this error is rised, if one thread is reading for a collection within UnregisterAllCommands() and at the same time an other thread is modifying that collection (eg. a list). I guess error is cause by your patch. You probably needed to add a lock object to avoid such situations.

 

Unfortunately i have no gameserver for development atm.

I have a spare 32x slot instance you can use if you want, at least for the next 2-3 weeks.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by anditfeels*:

 

Hello.

I asked my server support about InnoDB, they told me it is available and works properly.

Then I created db, user after this I checked the data by Navicat and connection was success.

So only after I entered all the data needed into plugin settings, and when I started it, procon showned me the error message:

Code:

[16:05:36 13] BF3 Chat, GUID and Stats Logger Enabled
[16:05:36 13] BF3 Chat, GUID and Stats Logger:  Floodprotection set to 10 Request per Round for each Player
[16:05:59 88] Error in Tablebuilder: 
[16:05:59 88] Message: Unable to connect to any of the specified MySQL hosts.
[16:05:59 88] Native: -2147467259
[16:05:59 88] Source: MySql.Data
[16:05:59 88] StackTrace:    at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder()
[16:05:59 88] InnerException: System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond *.***.*.***:3306
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at MySql.Data.Common.StreamCreator.CreateSocketStream(IPAddress ip, Boolean unix)
   at MySql.Data.Common.StreamCreator.GetStreamFromHost(String pipeName, String hostName, UInt32 timeout)
   at MySql.Data.Common.StreamCreator.GetStream(UInt32 timeout)
   at MySql.Data.MySqlClient.NativeDriver.Open()
[16:05:59 88] Error: System.NullReferenceException: Object reference not set to an instance of an object.
   at PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder()
[16:06:22 90] Error in Tablebuilder: 
[16:06:22 90] Message: Unable to connect to any of the specified MySQL hosts.
[16:06:22 90] Native: -2147467259
[16:06:22 90] Source: MySql.Data
[16:06:22 90] StackTrace:    at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder()
[16:06:22 90] InnerException: System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond *.***.*.***:3306
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at MySql.Data.Common.StreamCreator.CreateSocketStream(IPAddress ip, Boolean unix)
   at MySql.Data.Common.StreamCreator.GetStreamFromHost(String pipeName, String hostName, UInt32 timeout)
   at MySql.Data.Common.StreamCreator.GetStream(UInt32 timeout)
   at MySql.Data.MySqlClient.NativeDriver.Open()
[16:06:22 90] Error: System.NullReferenceException: Object reference not set to an instance of an object.
   at PRoConEvents.CChatGUIDStatsLoggerBF3.tablebuilder()
But I'm sure, the data base is available and all data there is correct. So what can be wrong?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by jking54*:

 

I have a spare 32x slot instance you can use if you want, at least for the next 2-3 weeks.

16 player server here as well if you need it, I'm using it for procon work getting ready for BF4.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by anditfeels*:

 

Could you post your connection info without password?

Your error is typical if the plugin cannot reach the mysql server.

I've made some restrictions by IP in my firewall and the strange thing is I wrote exact IP into the white list of firewall but the plugin tell me that it is not possible to connect to the server.

When I deleted the rule in firewall table, the plugin successfully was connected to the MySQLDB. Seems like I need to figure why firewall is blocking the plugin, because I'm sure the written IP was correct.

 

Can you tell me, is there any option in your plugin to make the stats simple?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

This plugin* will tell it for itself

Still not making sense. A lot of us analyze the data stored by this plugin without issue. What specific simple data were you looking for? Maybe we can let you know how to extract it.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ty_ger07*:

 

This plugin* will tell it for itself

Do you mean to say that you want the plugin to work and keep track of data without needing a database? SQL databases are very efficient and maintain good performance even with huge databases if properly designed. There is no way you could produce this quality of plugin without using a database. And the plugin can't create its own database since a database requires the correct environment which the plugin has no control over.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by anditfeels*:

 

MySQL database it is not a problem at all.

"Simple stats" meaning the stats with player data (guids, nicknames, ip and etc) and chat data only.

The other kind of data (kills, dogtags etc) will increase the database size and traffic on my server.

So is there any option to make the stats simple?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by ColColonCleaner*:

 

MySQL database it is not a problem at all.

"Simple stats" meaning the stats with player data (guids, nicknames, ip and etc) and chat data only.

The other kind of data (kills, dogtags etc) will increase the database size and traffic on my server.

So is there any option to make the stats simple?

Stats -> Enable Stat Logging -> False
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Skorpius*:

 

Hello all!! The pluggin has been working fine up until a few weeks ago. About the time the servers went from R38 to R39 then reverted back to R38. It seems to record all the stats for 1 round then stop. I restart my layer and it works again for 1 round and stop. Any ideas?

* Restored post. It could be that the author is no longer active.
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Our picks

    • Game Server Hosting:

      We're happy to announce that EZRCON will branch out into the game server provider scene. This is a big step for us so please having patience if something doesn't go right in this area. Now, what makes us different compared to other providers? Well, we're going with the idea of having a scaleable server hosting and providing more control in how you set up your server. For example, in Minecraft, you have the ability to control how many CPU cores you wish your server to have access to, how much RAM you want to use, how much disk space you want to use. This type of control can't be offered in a single service package so you're able to configure a custom package the way you want it.

      You can see all the available games here. Currently, we have the following games available.

      Valheim (From $1.50 USD)


      Rust (From $3.20 USD)


      Minecraft (Basic) (From $4.00 USD)


      Call of Duty 4X (From $7.00 USD)


      OpenTTD (From $4.00 USD)


      Squad (From $9.00 USD)


      Insurgency: Sandstorm (From $6.40 USD)


      Changes to US-East:

      Starting in January 2022, we will be moving to a different provider that has better support, better infrastructure, and better connectivity. We've noticed that the connection/routes to this location are not ideal and it's been hard getting support to correct this. Our contract for our two servers ends in March/April respectively. If you currently have servers in this location you will be migrated over to the new provider. We'll have more details when the time comes closer to January. The new location for this change will be based out of Atlanta, GA. If you have any questions/concerns please open a ticket and we'll do our best to answer them.
      • 5 replies
    • Hello All,

      I wanted to give an update to how EZRCON is doing. As of today we have 56 active customers using the services offered. I'm glad its doing so well and it hasn't been 1 year yet. To those that have services with EZRCON, I hope the service is doing well and if not please let us know so that we can improve it where possible. We've done quite a few changes behind the scenes to improve the performance hopefully. 

      We'll be launching a new location for hosting procon layers in either Los Angeles, USA or Chicago, IL. Still being decided on where the placement should be but these two locations are not set in stone yet. We would like to get feedback on where we should have a new location for hosting the Procon Layers, which you can do by replying to this topic. A poll will be created where people can vote on which location they would like to see.

      We're also looking for some suggestions on what else you would like to see for hosting provider options. So please let us know your thoughts on this matter.
      • 4 replies
    • Added ability to disable the new API check for player country info


      Updated GeoIP database file


      Removed usage sending stats


      Added EZRCON ad banner



      If you are upgrading then you may need to add these two lines to your existing installation in the file procon.cfg. To enable these options just change False to True.

      procon.private.options.UseGeoIpFileOnly False
      procon.private.options.BlockRssFeedNews False



       
      • 2 replies
    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 11 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 9 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.