/rustplus

Rust+ API Wrapper Written in Python for the Game: Rust

Primary LanguagePythonMIT LicenseMIT

Rust+.py

A lot of code and ideas have come from the JavaScript version of a wrapper, so I will credit it now: RustPlus.js I have used their Protocol Buffer file for this, as well as instructions on how to use the command line tool to get the information you need.

Installation:

Install the package with:

pip install rustplus

It should also install all the dependencies, but if not you will have to install them yourself

Usage:

from rustplus import RustSocket, CommandOptions, Command

#Registering the Command Options in order to listen for commands
options = CommandOptions(prefix="!")

rust_socket = RustSocket("IPADDRESS", "PORT", 64BITSTEAMID, PLAYERTOKEN, command_options=options)
#See below for more information on the above ^^

#Connects to the server's websocket
await rust_socket.connect()

"""
For information on the following see below
"""
#Get mapMarkers:
markers = await rust_socket.get_markers()

#Get Server Info:
info = await rust_socket.get_info()

#Get Current time:
time = await rust_socket.get_time()

#Getting Team info
team_info = await rust_socket.get_team_info()

#Getting Team Chat:
team_chat = await rust_socket.get_team_chat()

#Sending a Team Chat message:
await rust_socket.send_team_message("Yo! I sent this with Rust+.py")

#Get Map Image:
rust_map = await rust_socket.get_map(add_icons = True, add_events = True, add_vending_machines= True, override_images = {})

#Getting Map Data
rust_map_data = await rust_socket.get_raw_map_data()

#Get Entity Information
entity_info = await rust_socket.get_entity_info(ENTITYID)

#Turning On/Off a Smart Switch
await rust_socket.turn_off_smart_switch(ENTITYID)
await rust_socket.turn_on_smart_switch(ENTITYID)

#Promoting a TeamMate to team leader
await rust_socket.promote_to_team_leader(SteamID)

#Getting the contents of a TC:
tc_contents = await rust_socket.get_tc_storage_contents(ENTITYID, MERGESTACKS : bool)

#Getting Current Map Events
events = await rust_socket.get_current_events()

#Registering a command listener, which will listen for the command 'hi' with the prefix we defined earlier
@socket.command
async def hi(command : Command): 
	await rust_socket.send_team_message(f"Hi {command.sender_name}, This is an automated reply from RustPlus.py!")

#Used to just stop a script from ending. Use this if you are using commands
await rust_socket.hang()

await rust_socket.close_connection()

For information on all of the above methods, see the Wiki

Support:

If you need help, or you think that there is an issue feel free to open an issue. If you think you have made some improvements, open a PR!

I have tried to explain this a well as possible, but if you should need further clarification, join me on my discord server: here

GitHub ⭐'s are always welcome :)

Have Fun!