Jump to content

Teamspeak 3 Sync


ImportBot

Recommended Posts

Originally Posted by Jaythegreat1*:

 

Hmmm must not have something set up right.

 

I have two staging channels with two different query admins. It doesn't pickup any players from the pickup channels unless the Team threshold is met.

* Restored post. It could be that the author is no longer active.
Link to comment
  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

  • ImportBot

    1233

Originally Posted by Imisnew2*:

 

Hmmm must not have something set up right.

 

I have two staging channels with two different query admins. It doesn't pickup any players from the pickup channels unless the Team threshold is met.

It's specifically set up to not move people from pickup channels to the staging channel. Sorry about the confusion. It will only move them when it needs to, ie team or squad swapping.

 

Sent from my SCH-R530M using Tapatalk

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

Originally Posted by Imisnew2*:

 

Darn... I might not be able to use this anymore then. Most of my guys don't like it when it sorts into teams with low count :sad:.

It's simple enough to modify it to allow for this yourself:

 

In "public void checkClientForSwap(MasterClient client)" (around line 2382 of TeamspeakSync.cs), you'll see the following:

 

Code:

public void checkClientForSwap(MasterClient client)
        {
            // Do not proceed if the client is not in either server or if the client is a spectator.
            if (!client.HasGmClient || !client.HasTsClient || client.GmClient.TeamId == 0)
                return;

            // Used for debug print.
            Int32 channelId = client.TsClient.medChannelId.Value;

            // Move To Staging Channel If:
            //   Team Based swapping is off, or
            //   The number of players is lower than the team swapping threshold, or
            //   Intermission swapping is on and the game is in intermission.
            if (!synTeamBasedSwapping || getPlayersOnBothServers().Count < synTeamBasedThreshold || (synIntermissionSwapping && mBetweenRounds))
            {
                // Don't move players from pickup channels to the staging channel.
                foreach (TeamspeakChannel tsChannel in mPickupChannels)
                    if (tsChannel.tsId == client.TsClient.medChannelId) {
                        debugWrite(dbgSwapping, "[Swapping] - Staging Mode - Skipping Client ({0}) because he/she is in Ch.{1}.", client.TsClient.tsName, client.TsClient.medChannelId);
                        return;
                    }

                // Move the client to the staging channel.
                if (client.TsClient.medChannelId != mStagingChannel.tsId)
                {
You want to remove this portion:

 

Code:

// Don't move players from pickup channels to the staging channel.
                foreach (TeamspeakChannel tsChannel in mPickupChannels)
                    if (tsChannel.tsId == client.TsClient.medChannelId) {
                        debugWrite(dbgSwapping, "[Swapping] - Staging Mode - Skipping Client ({0}) because he/she is in Ch.{1}.", client.TsClient.tsName, client.TsClient.medChannelId);
                        return;
                    }
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

Sweet, that seems to have done the trick. Now just gotta figure out a way to make it teams that only have 1 player stay in the staging channel.

Team Swapping Threshold? That's per-team (as per the plugin details tab).
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

The plugin isn't showing in my procon anymore....thoughts?

Are other plugins showing? Is the plugin file in the correct folder? Is this on a layer or your local machine? Is there any output in the plugin console?

 

Sent from my SCH-R530M using Tapatalk

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

Originally Posted by Jaythegreat1*:

 

Team Swapping Threshold? That's per-team (as per the plugin details tab).

Never seemed like it worked that way. It wouldn't split players up until that many players were in the Staging Channel and in the server. But then again.. might be user error :/
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

Never seemed like it worked that way. It wouldn't split players up until that many players were in the Staging Channel and in the server. But then again.. might be user error :/

I could be wrong. But that's what I remember. Looking at the code...

 

Code:

// Move To Staging Channel If:
//   Team Based swapping is off, or
//   The number of players is lower than the team swapping threshold, or
//   Intermission swapping is on and the game is in intermission.
if (!synTeamBasedSwapping
   || getPlayersOnBothServers().Count < synTeamBasedThreshold
   || (synIntermissionSwapping && mBetweenRounds))
{ /* ... */ }

// Move To Team Channel If:
//   Squad Based swapping is off, or
//   The number of players is less than the squad swapping threshold, or
//   The player is not in a squad, or
//   The number of players in the squad is less than the squad swapping minimum.
else if (!synSquadBasedSwapping
      || getPlayersOnBothServersOnTeam(client.GmClient.TeamId).Count < synSquadBasedThreshold
      || client.GmClient.SquadId == 0
      || getPlayersOnBothServersOnSquad(client.GmClient.TeamId, client.GmClient.SquadId).Count < synSquadSizeMinimum)
{ /* ... */ }

// Move To Squad Channel If:
//   Well, all other scenarios are out, so it must be this.
else
{ /* ... */ }
This seems to suggest that it's NOT a per team thing, however. You could add support for this by changing

Code:

getPlayersOnBothServers().Count < synTeamBasedThreshold
to

Code:

getPlayersOnBothServersOnTeam(client.GmClient.TeamId).Count < SOME_NUMBER_HERE
Where SOME_NUMBER_HERE is the number you want it to start moving people into team channels at (per team). I might just add this as an option, although it seems a little odd to me.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by npggefvert*:

 

So I have this configured and the plugin is definitely working right, but for some reason the TS server is banning the Procon layer even though it's IP is added to the whitelist. I have been scouring the web for info on the IP whitelist in TS because of the following issue:

 

1. TS3 running on Windows

2. Neither query_ip_blacklist.txt or query_ip_whitelist.txt existed in the TS directory, so I added them and added the Procon Layer's IP to the whitelist.

 

Even with restarting the TS server, TS is banning the procon layer. If I telnet from the server running the procon layer after this happens it verifies the IP is banned.

 

Has anyone seen this issue before?

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

Originally Posted by Jaythegreat1*:

 

I could be wrong. But that's what I remember. Looking at the code...

 

Code:

// Move To Staging Channel If:
//   Team Based swapping is off, or
//   The number of players is lower than the team swapping threshold, or
//   Intermission swapping is on and the game is in intermission.
if (!synTeamBasedSwapping
   || getPlayersOnBothServers().Count < synTeamBasedThreshold
   || (synIntermissionSwapping && mBetweenRounds))
{ /* ... */ }

// Move To Team Channel If:
//   Squad Based swapping is off, or
//   The number of players is less than the squad swapping threshold, or
//   The player is not in a squad, or
//   The number of players in the squad is less than the squad swapping minimum.
else if (!synSquadBasedSwapping
      || getPlayersOnBothServersOnTeam(client.GmClient.TeamId).Count < synSquadBasedThreshold
      || client.GmClient.SquadId == 0
      || getPlayersOnBothServersOnSquad(client.GmClient.TeamId, client.GmClient.SquadId).Count < synSquadSizeMinimum)
{ /* ... */ }

// Move To Squad Channel If:
//   Well, all other scenarios are out, so it must be this.
else
{ /* ... */ }
This seems to suggest that it's NOT a per team thing, however. You could add support for this by changing

Code:

getPlayersOnBothServers().Count < synTeamBasedThreshold
to

Code:

getPlayersOnBothServersOnTeam(client.GmClient.TeamId).Count < SOME_NUMBER_HERE
Where SOME_NUMBER_HERE is the number you want it to start moving people into team channels at (per team). I might just add this as an option, although it seems a little odd to me.
I guess it would sound odd depending on how you had things set up, if you let people non in the server join the staging channel, it would have some use.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

So I have this configured and the plugin is definitely working right, but for some reason the TS server is banning the Procon layer even though it's IP is added to the whitelist. I have been scouring the web for info on the IP whitelist in TS because of the following issue:

 

1. TS3 running on Windows

2. Neither query_ip_blacklist.txt or query_ip_whitelist.txt existed in the TS directory, so I added them and added the Procon Layer's IP to the whitelist.

 

Even with restarting the TS server, TS is banning the procon layer. If I telnet from the server running the procon layer after this happens it verifies the IP is banned.

 

Has anyone seen this issue before?

  • Well, first off make sure you didn't add the ip to the BLACKLIST :ohmy:
  • Make sure that you specify EXACTLY the ip you're using (e.g. if you connect to "localhost", then "localhost" has to be whitelisted instead of 127.0.0.1).
  • Double check that the IP of your procon layer/instance is what you think it is (this is what usually causes most problems).
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Jaythegreat1*:

 

Ummm... just about

 

So I have

 

Channel for players to join to be moved.

Server 1 (Setup as a staging channel)

Server 2 (Setup as a staging channel)

 

At the moment, players would join the first channel to be moved to their respective server. If the player ends up leaving, they would stay in the one of the two server channels. Doesn't look like this plugin has the ability in its current state to move a player to a specified channel should they leave. Though i've seen a few "customized" plugins have a drop-off channel function.

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

Originally Posted by Imisnew2*:

 

Ummm... just about

 

So I have

 

Channel for players to join to be moved.

Server 1 (Setup as a staging channel)

Server 2 (Setup as a staging channel)

 

At the moment, players would join the first channel to be moved to their respective server. If the player ends up leaving, they would stay in the one of the two server channels. Doesn't look like this plugin has the ability in its current state to move a player to a specified channel should they leave. Though i've seen a few "customized" plugins have a drop-off channel function.

No, the plugin doesn't support a "drop-off" channel. That defaults to the staging channel... although if you're up for mode code-munging, you could also set this to whatever you want fairly simply:

 

Under "public void checkClientForRemove(MasterClient client)" (around line 2482):

Code:

public void checkClientForRemove(MasterClient client)
        {
            // Do not proceed if the client is in the game server or not in teamspeak.
            if (client.HasGmClient || !client.HasTsClient)
                return;

            // Used for debug print.
            Int32 channelId = client.TsClient.medChannelId.Value;

            // Only attempt to remove the client if they are not in the whitelist.
            if (!mClientWhitelist.Contains(client.TsClient.medDatabaseId.Value))
            {
                // I don't know if this can ever happen, but might as well be safe.
                // Don't move players from pickup channels to the staging channel.
                foreach (TeamspeakChannel tsChannel in mPickupChannels)
                    if (tsChannel.tsId == client.TsClient.medChannelId) {
                        debugWrite(dbgSwapping, "[Swapping] - Remove Client - Skipping Client ({0}) because he/she is in Ch.{1}.", client.TsClient.tsName, client.TsClient.medChannelId);
                        return;
                    }

                // Move the client to the staging channel.
                if (client.TsClient.medChannelId != mStagingChannel.tsId)
                {
                    sendTeamspeakQuery(TeamspeakQuery.buildClientMoveQuery(client.TsClient.tsId.Value, mStagingChannel.tsId.Value));
                    if (!performResponseHandling(Queries.CheckRemove)) return;
                    client.TsClient.medChannelId = mStagingChannel.tsId;
                    debugWrite(dbgSwapping, "[Swapping] - Remove Client - Client ({0}) from Ch.{1} to Ch.{2}.", client.TsClient.tsName, channelId, client.TsClient.medChannelId);

                    // Delete the channel if the remove option is enabled.
                    if (chnRemoveOnEmpty)
                        removeChannels();
                }
            }
        }
You'll want to change:

Code:

sendTeamspeakQuery(TeamspeakQuery.buildClientMoveQuery(client.TsClient.tsId.Value, mStagingChannel.tsId.Value));
if (!performResponseHandling(Queries.CheckRemove)) return;
client.TsClient.medChannelId = mStagingChannel.tsId;
To:

Code:

sendTeamspeakQuery(TeamspeakQuery.buildClientMoveQuery(client.TsClient.tsId.Value, SOME_CHANNEL_ID_HERE));
if (!performResponseHandling(Queries.CheckRemove)) return;
client.TsClient.medChannelId = SOME_CHANNEL_ID_HERE;
This might be a little confusing as a channel's ID is not visible in Teamspeak. However, you can turn on NETWORK debugging and wait for a "[DataSent] channellist" command and see the following "[DataReceived]" response, then find your channel. The channel id will be the value for "cid=".
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by tonnic*:

 

Are other plugins showing? Is the plugin file in the correct folder? Is this on a layer or your local machine? Is there any output in the plugin console?

 

Sent from my SCH-R530M using Tapatalk

All other plugins are working fine.... it definitely is in the right folder... it was working before and now its gone....it is on it's own dedi machine. no output on the plugin as the plugin doesn't even show.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

All other plugins are working fine.... it definitely is in the right folder... it was working before and now its gone....it is on it's own dedi machine. no output on the plugin as the plugin doesn't even show.

I'm not asking if the plugin has any output. Is there any error output in the plugin console such as "Teamspeak 3 Sync failed to compile" when you start Procon, or "Reload Plugins". Make sure that TeamspeakSync.cs is still in the correct folder (even if you put it there previously, just double-check that it's still there).

 

What version of the plugin are you using?

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

Originally Posted by tonnic*:

 

I'm not asking if the plugin has any output. Is there any error output in the plugin console such as "Teamspeak 3 Sync failed to compile" when you start Procon, or "Reload Plugins". Make sure that TeamspeakSync.cs is still in the correct folder (even if you put it there previously, just double-check that it's still there).

 

What version of the plugin are you using?

I can't really see the console...it is running as a service and if I try to open the GUI it crashes... I am using v1.0.2.2 of your plugin.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Imisnew2*:

 

I can't really see the console...it is running as a service and if I try to open the GUI it crashes... I am using v1.0.2.2 of your plugin.

How can you tell the plugin isn't loading if you can't open the GUI?
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by tonnic*:

 

How can you tell the plugin isn't loading if you can't open the GUI?

I cleared the logs to make sure it was what I was looking for. At the bottom of the plugin.log and the only reference to your plugin is:

 

Compiling TeamspeakSync.cs... Using Cache

Exception has been thrown by the target of an invocation

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

Originally Posted by Imisnew2*:

 

I cleared the logs to make sure it was what I was looking for. At the bottom of the plugin.log and the only reference to your plugin is:

Delete TeamspeakSync.dll and reload the plugins. See what happens.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by spunkybd*:

 

[21:36:27 70] PRoConEvents.TeamspeakSync..ctor()

 

I think this is an error with TeamspeakSync_1.0.2.1, still won't show up in plugins for me.

This was because of the sandbox options in ProCon.

 

Just wanted to let anyone know in case they ran into the same issue.

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

Originally Posted by almaxkiller*:

 

So I have this configured and the plugin is definitely working right, but for some reason the TS server is banning the Procon layer even though it's IP is added to the whitelist. I have been scouring the web for info on the IP whitelist in TS because of the following issue:

 

1. TS3 running on Windows

2. Neither query_ip_blacklist.txt or query_ip_whitelist.txt existed in the TS directory, so I added them and added the Procon Layer's IP to the whitelist.

 

Even with restarting the TS server, TS is banning the procon layer. If I telnet from the server running the procon layer after this happens it verifies the IP is banned.

 

Has anyone seen this issue before?

I had this issue and it was because my BF4 server had a different outgoing IP than the server IP listed, so whitelisting the one I connect to my server with did nothing. Here is how to fix it:

Activate TSSync and wait for it to get banned

Then go into your TS3 logs and look for something like 2013-11-02 00:23:01.643949|INFO |Query | | query from 2 xxx.xxx.xxx.xxx:xxxxx issued: login with account "TS3Sync"

The IP listed is the IP that is connecting to your TS server and the one you need to put into your whitelist.

Note that "TS3Sync" is the query username I gave when creating the query account, so look for the query username you created.

 

Hope this helps!

 

 

Oh and an alternate way you can do this if you are hosted through a host and can not access your TS3 logs is this:

Add your teamspeak server as a bookmark

Click "Manage Bookmarks"

Check the box "Show ServerQuery Clients"

Click "Apply" and then "OK"

Connect to the server via the Bookmark

Activate TSSync via Procon

Quickly go to TS and find the Query username you created, right click on it and click "Client Connection Info"

There in Client address it will show the IP that you need to add to your whitelist.

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

Originally Posted by Imisnew2*:

 

I had this issue and it was because my BF4 server had a different outgoing IP than the server IP listed, so whitelisting the one I connect to my server with did nothing. Here is how to fix it:

Activate TSSync and wait for it to get banned

Then go into your TS3 logs and look for something like 2013-11-02 00:23:01.643949|INFO |Query | | query from 2 xxx.xxx.xxx.xxx:xxxxx issued: login with account "TS3Sync"

The IP listed is the IP that is connecting to your TS server and the one you need to put into your whitelist.

Note that "TS3Sync" is the query username I gave when creating the query account, so look for the query username you created.

 

Hope this helps!

 

 

Oh and an alternate way you can do this if you are hosted through a host and can not access your TS3 logs is this:

Add your teamspeak server as a bookmark

Click "Manage Bookmarks"

Check the box "Show ServerQuery Clients"

Click "Apply" and then "OK"

Connect to the server via the Bookmark

Activate TSSync via Procon

Quickly go to TS and find the Query username you created, right click on it and click "Client Connection Info"

There in Client address it will show the IP that you need to add to your whitelist.

Thanks a ton Almaxkiller!
* 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.