View Single Post
Kahl_Drogo
Senior Member
Join Date: Apr 2012
Old 02-07-2019 , 09:32   Re: Best way to get server ip and port
Reply With Quote #4

Hi, I used GetPublicIP from SteamWorks like below:

PHP Code:
#define DEBUG

#define PLUGIN_NAME           "TF2 Pro Stats"
#define PLUGIN_AUTHOR         "Szkalownik"
#define PLUGIN_DESCRIPTION    ""
#define PLUGIN_VERSION        "1.0"
#define PLUGIN_URL            ""

#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <SteamWorks>

char dbconfig[] = "tf2_pro_stats";
Database databaseHandler;

enum struct ServerData {
    
int id[11];
    
char ip[64];
    
char port[16];
}

ServerData serverData;

public 
Plugin:myinfo =
{
    
name PLUGIN_NAME,
    
author PLUGIN_AUTHOR,
    
description PLUGIN_DESCRIPTION,
    
version PLUGIN_VERSION,
    
url PLUGIN_URL
};

public 
OnPluginStart()
{
    
setServer();
}

public 
void setServer()
{
    
char serverIp[64];
    
char serverPort[10];
    
int ipaddr[4];
    
    
SteamWorks_GetPublicIP(ipaddr);
    
Format(serverIpsizeof(serverIp), "%d.%d.%d.%d",ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);
    
strcopy(serverData.ipsizeof(serverData.ip), serverIp); 
    
    
GetConVarString(FindConVar("hostport"), serverPortsizeof(serverPort));
    
strcopy(serverData.portsizeof(serverData.port), serverPort); 

But SteamWorks_GetPublicIP return 0.0.0.0 as my server ip after restart.
So question is where is the best place/event etc to put SteamWorks_GetPublicIP ? Looks like OnPluginStart is not a good place .
__________________
Kahl_Drogo is offline