A python wrapper for the Rust Plus API
Project description
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.