Metadata-Version: 2.1
Name: rustplus
Version: 4.1.2
Summary: A python wrapper for the Rust Plus API
Home-page: https://github.com/olijeffers0n/rustplus
Author: olijeffers0n
Author-email: pleaseUseMyDiscord@Please.com
License: MIT
Project-URL: Issue tracker, https://github.com/olijeffers0n/rustplus/issues
Platform: UNKNOWN
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
License-File: LICENSE

![Rust+.py](https://raw.githubusercontent.com/olijeffers0n/rustplus/master/icon.png)
<div align = "center">
	<img src = "https://static.pepy.tech/personalized-badge/rustplus?period=total&units=abbreviation&left_color=black&right_color=orange&left_text=Downloads">
	<img src = "https://img.shields.io/pypi/v/rustplus?label=PYPI%20Version">
	<img src = "https://img.shields.io/pypi/l/rustplus">
	<img src = "https://img.shields.io/github/stars/olijeffers0n/rustplus?label=GitHub%20Stars">
	<a href = "https://discord.gg/nQqJe8qvP8">
		<img src = "https://img.shields.io/discord/872406750639321088?label=Discord">
	</a>
</div>

A lot of code and ideas have come from the JavaScript version of a wrapper, so I will credit it now:
[RustPlus.js](https://github.com/liamcottle/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:
```py
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](https://github.com/olijeffers0n/rustplus/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](https://discord.gg/nQqJe8qvP8)

GitHub ⭐'s are always welcome :)

Have Fun! 


