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
(latest is slightly unstable as of now, use 4.0.1 for stability but no commands)
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.getMarkers()
#Get Server Info:
info = await rust_socket.getInfo()
#Get Current time:
time = await rust_socket.getTime()
#Getting Team info
team_info = await rust_socket.getTeamInfo()
#Getting Team Chat:
team_chat = await rust_socket.getTeamChat()
#Sending a Team Chat message:
await rust_socket.sendTeamMessage("Yo! I sent this with Rust+.py")
#Get Map Image:
rust_map = await rust_socket.getMap(addIcons = True, addEvents = True, addVendingMachines= True, overrideImages = {})
#Getting Map Data
rust_map_data = await rust_socket.getRawMapData()
#Get Entity Information
entity_info = await rust_socket.getEntityInfo(ENTITYID)
#Turning On/Off a Smart Switch
await rust_socket.turnOffSmartSwitch(ENTITYID)
await rust_socket.turnOnSmartSwitch(ENTITYID)
#Promoting a TeamMate to team leader
await rust_socket.promoteToTeamLeader(SteamID)
#Getting the contents of a TC:
tc_contents = await rust_socket.getTCStorageContents(ENTITYID, MERGESTACKS : bool)
#Getting Current Map Events
events = await rust_socket.getCurrentEvents()
#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.sendTeamMessage(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.closeConnection()
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.