#include <sourcemod>

#pragma semicolon 1

new Handle:DB = INVALID_HANDLE;

new ServerPort = 0;
new String:ServerIP[64];
new ServerID = 0;

public Plugin:myinfo = {
    name = "Online Shop",
    author = "Sloenthran",
    description = "Online Shop",
    url = "sloenthran.pl"
};

public OnPluginStart()
{
    
    new String:Error[70];
    DB = SQL_Connect("OnlineShop", true, Error, sizeof(Error));
    if(DB == INVALID_HANDLE) { LogToFile("addons/sourcemod/logs/OnlineShop.txt", "Unable to connect MySQL database: %s", Error); }
    
    RegConsoleCmd("say !shop", OpenMenu);
    RegConsoleCmd("team_say !shop", OpenMenu);
    
    new PiecesIP[4];
    new FindServerIP = GetConVarInt(FindConVar("hostip"));
    PiecesIP[0] = (FindServerIP >> 24) & 0x000000FF;
    PiecesIP[1] = (FindServerIP >> 16) & 0x000000FF;
    PiecesIP[2] = (FindServerIP >> 8) & 0x000000FF;
    PiecesIP[3] = FindServerIP & 0x000000FF;
    Format(ServerIP, sizeof(ServerIP), "%d.%d.%d.%d", PiecesIP[0], PiecesIP[1], PiecesIP[2], PiecesIP[3]);
    ServerPort = GetConVarInt(FindConVar("hostport"));
    
    if(DB != INVALID_HANDLE)
    {
    
        new String:Query[256];
        Format(Query, sizeof(Query), "SELECT `id` FROM `servers` WHERE `ip`='%s' AND `port`='%i' LIMIT 1", ServerIP, ServerPort);
    
        new Handle:QueryDB = SQL_Query(DB, Query);
    
        if(QueryDB != INVALID_HANDLE) { if(SQL_FetchRow(QueryDB)) { SQL_FetchInt(QueryDB, 0, ServerID); } } else { SQL_GetError(DB, Error, sizeof(Error)); LogToFile("addons/sourcemod/logs/OnlineShop.txt", "Unable to get server id: %s", Error); }
        
    }
    
}

public Action:OpenMenu(User, Args)
{
    
    PrintToChatAll("[MyServ.pl] Numer serwera to %i! :)", ServerID);
    
    //if(IsClientInGame(User) && ServerID != 0)
    //{
        
        //new Handle:MenuHandle = CreateMenu(MenuCallBack);
        //SetMenuTitle(MenuHandle, "Online Shop");
        
    //    CPrintToChat(User, "{ORANGE}[MyServ.pl]{DEFAULT} Komenda dziala! :)");
        
    //}
    
}