// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"
#include "RakNet.hpp"
#include "RakPeerHelper.hpp"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class RakNetServerLocator {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_RAKNETSERVERLOCATOR
public:
    class RakNetServerLocator& operator=(class RakNetServerLocator const &) = delete;
    RakNetServerLocator(class RakNetServerLocator const &) = delete;
    RakNetServerLocator() = delete;
#endif

public:
    /*0*/ virtual ~RakNetServerLocator();
    /*1*/ virtual void announceServer(std::string const &, std::string const &, enum GameType, int, int, bool);
    /*2*/ virtual void stopAnnouncingServer();
    /*3*/ virtual void findServers(int, int);
    /*4*/ virtual void addCustomServer(class AsynchronousIPResolver const &, int);
    /*5*/ virtual void addCustomServer(std::string const &, int);
    /*6*/ virtual void stopFindingServers();
    /*7*/ virtual std::vector<struct PingedCompatibleServer> getServerList() const;
    /*8*/ virtual void clearServerList();
    /*9*/ virtual bool isIPv4Supported() const;
    /*10*/ virtual bool isIPv6Supported() const;
    /*11*/ virtual void setHostGUID(class std::function<struct RakNet::RakNetGUID (void)>);
    /*12*/ virtual float getPingTimeForGUID(std::string const &);
    /*13*/ virtual void checkCanConnectToCustomServerAsync(std::string, int, class std::function<void (bool)>);
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_RAKNETSERVERLOCATOR
#endif
    MCAPI RakNetServerLocator(class RakNetInstance &, class RakPeerHelper::IPSupportInterface &, bool);
    MCAPI void update();

//private:
    MCAPI void _addCustomServerFromIpResolver(class AsynchronousIPResolver const &, int);
    MCAPI bool _addCustomServerV4(class AsynchronousIPResolver const &, int);
    MCAPI bool _addCustomServerV6(class AsynchronousIPResolver const &, int);
    MCAPI std::string _getHostGuid(std::string const &, int);
    MCAPI void _getServerOriginalAddress(std::string &, std::string const &);
    MCAPI void _onPingSend(std::string const &, std::string const &, int);
    MCAPI bool _onPongReceive(float &, struct RakNet::RakNetGUID const &, unsigned int const &, int);
    MCAPI bool _pingServerV6(std::string const &, int);
    MCAPI bool _updateQueuedPings();
    MCAPI bool _validateServerVersion(std::vector<std::string> const &);
    MCAPI void activate();
    MCAPI bool handleUnconnectedPong(std::string const &, struct RakNet::Packet const *, bool, unsigned __int64);

private:

};