Coder Social home page Coder Social logo

jaskowicz1 / rconpp Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 0.0 45 KB

A modern Source RCON library for C++

License: Apache License 2.0

CMake 15.82% C++ 82.69% C 1.49%
cpp rcon rcon-protocol source-rcon source-rcon-protocol steam valve rconpp rconplusplus

rconpp's Introduction

Hey there! ๐Ÿ‘‹

I'm Archie Jaskowicz! I'm a professional Games Programmer, a PR reviewer for D++, A student at Teesside University, and the creator of RCON++ and Hexwave.

I spend most my free time working on RCON++ and Hexwave alongside the occasional game.

Want to see some of my Unreal Engine work? Want to contact me? Want an in-depth explanation of my projects? Check out my website!


Anurag's github stats Top Langs

Stats by GitHub Readme Stats


๐Ÿ”ญ Projects

  • rconpp - A modern Source-RCON library in C++.
  • Hexwave - An Open-Source Interactive Film Engine that lets you create Interactive Films with ease. Written in C++.
  • Factorio-Discord-Relay Revamped - A tool that allows you to connect Discord and Factorio together!
  • View more of my projects over at My website!

rconpp's People

Contributors

jaskowicz1 avatar kirkezz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

rconpp's Issues

Responses are empty after 2nd command send

Windows app.
After using send_command_sync with a simple command "listplayers" in ARK, the response comes empty, crashing the app.

The code crashes at client.cpp, line 158 (packet_response.data is empty)

rconpp::response rconpp::rcon_client::receive_information(int32_t id, rconpp::data_type type) {
	// Whilst this loop is better than a while loop,
	// it should really just keep going for a certain amount of seconds.
	for (int i = 0; i < 500; i++) {
		packet packet_response = read_packet();

		int packet_type = bit32_to_int(packet_response.data);

I'm using the general_improvements branch.

`queue_runner` uses `this` after destruction

I am using your library as follows:

int getPlayersCount() {
    static int id = 2;
    int result = -1;

    rconpp::rcon_client client(rcon_credentials.ip, rcon_credentials.port, rcon_credentials.password);
    if (client.connected) {
        auto response = client.send_data_sync("list", ++id, rconpp::data_type::SERVERDATA_EXECCOMMAND);
        /* ... */
        std::cout << response.data << std::endl;
    }

    return result;
}

The program crashes with segfault:
crash
I think the problem is that queue_runner uses this after the rcon_client object is destroyed.
With the following changes, segfault no longer occurs:
changes

Not handling multiple packets?

So im trying to use this to send RCON commands to a Minecraft Server. The connection is successful and the command is executed but the response seems... off. It should be something like "Made Player a server operator" but instead its just jibberish like ")/โฆ"

I thought maybe the server is sending back multiple packets containing the data but this library only handles one and then immediatly calls the callback.

Some more documentation on this would be nice!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.