rustplus 5.6.14__tar.gz → 5.6.16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rustplus-5.6.14/rustplus.egg-info → rustplus-5.6.16}/PKG-INFO +2 -1
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/__init__.py +1 -1
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/base_rust_api.py +12 -0
- rustplus-5.6.16/rustplus/api/icons/arctic_base.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/desert_base.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/ferryterminal.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/harbour.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/mining_quarry_hqm.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/mining_quarry_stone.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/mining_quarry_sulfur.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/missile_silo.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/patrol.png +0 -0
- rustplus-5.6.16/rustplus/api/icons/stables.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/rust_remote_interface.py +8 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/rustws.py +44 -6
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/rust_api.py +2 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_marker.py +3 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/commands/command_handler.py +4 -3
- {rustplus-5.6.14 → rustplus-5.6.16/rustplus.egg-info}/PKG-INFO +2 -1
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus.egg-info/requires.txt +1 -0
- rustplus-5.6.14/rustplus/api/icons/arctic_base.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/desert_base.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/ferryterminal.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/harbour.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/mining_quarry_hqm.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/mining_quarry_stone.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/mining_quarry_sulfur.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/missile_silo.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/patrol.png +0 -0
- rustplus-5.6.14/rustplus/api/icons/stables.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/LICENSE +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/MANIFEST.in +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/README.md +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/airfield.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/bandit.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/barn.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/cargo.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/chinook.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/chinook_blades.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/crate.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/dome.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/excavator.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/explosion.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/fishing.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/icon.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/junkyard.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/large_oil_rig.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/launchsite.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/lighthouse.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/military_tunnels.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/mining_outpost.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/outpost.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/oxums.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/power_plant.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/satellite.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/sewer.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/small_oil_rig.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/supermarket.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/swamp.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/train.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/train_yard.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/underwater_lab.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/vending_machine.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/icons/water_treatment.png +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/camera/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/camera/camera_constants.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/camera/camera_manager.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/camera/camera_parser.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/camera/structures.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/event_handler.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/event_loop_manager.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/events.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/handler_list.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/map_event_listener.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/events/registered_listener.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/fcm_listener.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/heartbeat.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/ratelimiter.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/rplus_version_handler.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/rustplus_proto/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/rustplus_proto/rustplus.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/remote/server_checker.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_chat_message.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_contents.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_entity_info.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_info.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_item.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_map.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_team_info.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/rust_time.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/serialization.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/api/structures/util.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/commands/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/commands/command.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/commands/command_data.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/commands/command_options.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/conversation/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/conversation/conversation.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/conversation/conversation_factory.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/conversation/conversation_prompt.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/exceptions/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/exceptions/exceptions.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/deprecated.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/emojis.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/fonts/PermanentMarker.ttf +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/fonts/__init__.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/grab_items.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/rust_utils.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/server_id.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus/utils/yielding_event.py +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus.egg-info/SOURCES.txt +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus.egg-info/dependency_links.txt +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/rustplus.egg-info/top_level.txt +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/setup.cfg +0 -0
- {rustplus-5.6.14 → rustplus-5.6.16}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rustplus
|
|
3
|
-
Version: 5.6.
|
|
3
|
+
Version: 5.6.16
|
|
4
4
|
Summary: A python wrapper for the Rust Plus API
|
|
5
5
|
Home-page: https://github.com/olijeffers0n/rustplus
|
|
6
6
|
Author: olijeffers0n
|
|
@@ -18,6 +18,7 @@ Requires-Dist: requests
|
|
|
18
18
|
Requires-Dist: numpy
|
|
19
19
|
Requires-Dist: scipy
|
|
20
20
|
Requires-Dist: betterproto==2.0.0b6
|
|
21
|
+
Requires-Dist: shlex
|
|
21
22
|
|
|
22
23
|

|
|
23
24
|
<div align = "center">
|
|
@@ -38,6 +38,7 @@ class BaseRustSocket:
|
|
|
38
38
|
use_test_server: bool = False,
|
|
39
39
|
event_loop: asyncio.AbstractEventLoop = None,
|
|
40
40
|
rate_limiter: RateLimiter = None,
|
|
41
|
+
debug: bool = False,
|
|
41
42
|
) -> None:
|
|
42
43
|
if ip is None:
|
|
43
44
|
raise ValueError("Ip cannot be None")
|
|
@@ -46,6 +47,16 @@ class BaseRustSocket:
|
|
|
46
47
|
if player_token is None:
|
|
47
48
|
raise ValueError("PlayerToken cannot be None")
|
|
48
49
|
|
|
50
|
+
try:
|
|
51
|
+
steam_id = int(steam_id)
|
|
52
|
+
except ValueError:
|
|
53
|
+
raise ValueError("SteamID must be an integer")
|
|
54
|
+
|
|
55
|
+
try:
|
|
56
|
+
player_token = int(player_token)
|
|
57
|
+
except ValueError:
|
|
58
|
+
raise ValueError("PlayerToken must be an integer")
|
|
59
|
+
|
|
49
60
|
self.server_id = ServerID(ip, port, steam_id, player_token)
|
|
50
61
|
self.seq = 1
|
|
51
62
|
self.command_options = command_options
|
|
@@ -65,6 +76,7 @@ class BaseRustSocket:
|
|
|
65
76
|
api=self,
|
|
66
77
|
use_test_server=use_test_server,
|
|
67
78
|
rate_limiter=rate_limiter,
|
|
79
|
+
debug=debug,
|
|
68
80
|
)
|
|
69
81
|
|
|
70
82
|
if heartbeat is None:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -32,6 +32,7 @@ class RustRemote:
|
|
|
32
32
|
api=None,
|
|
33
33
|
use_test_server: bool = False,
|
|
34
34
|
rate_limiter: RateLimiter = None,
|
|
35
|
+
debug: bool = False,
|
|
35
36
|
) -> None:
|
|
36
37
|
self.server_id = server_id
|
|
37
38
|
self.api = api
|
|
@@ -65,6 +66,7 @@ class RustRemote:
|
|
|
65
66
|
self.use_test_server = use_test_server
|
|
66
67
|
self.pending_entity_subscriptions = []
|
|
67
68
|
self.camera_manager: Union[CameraManager, None] = None
|
|
69
|
+
self.debug = debug
|
|
68
70
|
|
|
69
71
|
async def connect(
|
|
70
72
|
self,
|
|
@@ -86,6 +88,7 @@ class RustRemote:
|
|
|
86
88
|
delay=delay,
|
|
87
89
|
on_success_args_kwargs=on_success_args_kwargs,
|
|
88
90
|
on_failure_args_kwargs=on_failure_args_kwargs,
|
|
91
|
+
debug=self.debug,
|
|
89
92
|
)
|
|
90
93
|
await self.ws.connect(retries=retries)
|
|
91
94
|
|
|
@@ -112,6 +115,11 @@ class RustRemote:
|
|
|
112
115
|
if self.ws is None:
|
|
113
116
|
raise ClientNotConnectedError("No Current Websocket Connection")
|
|
114
117
|
|
|
118
|
+
if self.debug:
|
|
119
|
+
self.logger.info(
|
|
120
|
+
f"[RustPlus.py] Sending Message with seq {request.seq}: {request}"
|
|
121
|
+
)
|
|
122
|
+
|
|
115
123
|
self.pending_response_events[request.seq] = YieldingEvent()
|
|
116
124
|
await self.ws.send_message(request)
|
|
117
125
|
|
|
@@ -36,6 +36,7 @@ class RustWebsocket:
|
|
|
36
36
|
delay,
|
|
37
37
|
on_success_args_kwargs,
|
|
38
38
|
on_failure_args_kwargs,
|
|
39
|
+
debug: bool = False,
|
|
39
40
|
):
|
|
40
41
|
self.connection: Union[WebSocketClientProtocol, None] = None
|
|
41
42
|
self.task: Union[Task, None] = None
|
|
@@ -53,6 +54,7 @@ class RustWebsocket:
|
|
|
53
54
|
self.delay = delay
|
|
54
55
|
self.on_success_args_kwargs = on_success_args_kwargs
|
|
55
56
|
self.on_failure_args_kwargs = on_failure_args_kwargs
|
|
57
|
+
self.debug = debug
|
|
56
58
|
|
|
57
59
|
async def connect(
|
|
58
60
|
self, retries=float("inf"), ignore_open_value: bool = False
|
|
@@ -83,6 +85,10 @@ class RustWebsocket:
|
|
|
83
85
|
)
|
|
84
86
|
)
|
|
85
87
|
address += f"?v={str(self.magic_value)}"
|
|
88
|
+
|
|
89
|
+
if self.debug:
|
|
90
|
+
self.logger.info(f"[RustPlus.py] Connecting to {address}")
|
|
91
|
+
|
|
86
92
|
self.connection = await connect(
|
|
87
93
|
address,
|
|
88
94
|
close_timeout=0,
|
|
@@ -108,8 +114,9 @@ class RustWebsocket:
|
|
|
108
114
|
break
|
|
109
115
|
|
|
110
116
|
except Exception as exception:
|
|
111
|
-
|
|
117
|
+
self.logger.info(f"[RustPlus.py] {exception}")
|
|
112
118
|
|
|
119
|
+
print_error = True
|
|
113
120
|
if not isinstance(exception, KeyboardInterrupt):
|
|
114
121
|
# Run the failure callback
|
|
115
122
|
if self.on_failure is not None:
|
|
@@ -154,6 +161,9 @@ class RustWebsocket:
|
|
|
154
161
|
self.task = None
|
|
155
162
|
self.connection_status = CLOSED
|
|
156
163
|
|
|
164
|
+
if self.debug:
|
|
165
|
+
self.logger.info(f"[RustPlus.py] Connection Closed")
|
|
166
|
+
|
|
157
167
|
async def send_message(self, message: AppRequest) -> None:
|
|
158
168
|
"""
|
|
159
169
|
Send the Protobuf to the server
|
|
@@ -214,6 +224,11 @@ class RustWebsocket:
|
|
|
214
224
|
)
|
|
215
225
|
|
|
216
226
|
async def handle_message(self, app_message: AppMessage) -> None:
|
|
227
|
+
if self.debug:
|
|
228
|
+
self.logger.info(
|
|
229
|
+
f"[RustPlus.py] Received Message with seq {app_message.response.seq}: {app_message}"
|
|
230
|
+
)
|
|
231
|
+
|
|
217
232
|
if app_message.response.seq in self.remote.ignored_responses:
|
|
218
233
|
self.remote.ignored_responses.remove(app_message.response.seq)
|
|
219
234
|
return
|
|
@@ -225,12 +240,20 @@ class RustWebsocket:
|
|
|
225
240
|
if prefix is not None:
|
|
226
241
|
# This means it is a command
|
|
227
242
|
|
|
243
|
+
if self.debug:
|
|
244
|
+
self.logger.info(
|
|
245
|
+
f"[RustPlus.py] Attempting to run Command: {app_message}"
|
|
246
|
+
)
|
|
247
|
+
|
|
228
248
|
message = RustChatMessage(app_message.broadcast.team_message.message)
|
|
229
249
|
await self.remote.command_handler.run_command(message, prefix)
|
|
230
250
|
|
|
231
251
|
if self.is_entity_broadcast(app_message):
|
|
232
252
|
# This means that an entity has changed state
|
|
233
253
|
|
|
254
|
+
if self.debug:
|
|
255
|
+
self.logger.info(f"[RustPlus.py] Running Entity Event: {app_message}")
|
|
256
|
+
|
|
234
257
|
await EventHandler.run_entity_event(
|
|
235
258
|
app_message.broadcast.entity_changed.entity_id,
|
|
236
259
|
app_message,
|
|
@@ -238,18 +261,27 @@ class RustWebsocket:
|
|
|
238
261
|
)
|
|
239
262
|
|
|
240
263
|
elif self.is_camera_broadcast(app_message):
|
|
264
|
+
if self.debug:
|
|
265
|
+
self.logger.info(f"[RustPlus.py] Running Camera Event: {app_message}")
|
|
266
|
+
|
|
241
267
|
if self.remote.camera_manager is not None:
|
|
242
268
|
await self.remote.camera_manager.add_packet(
|
|
243
269
|
RayPacket(app_message.broadcast.camera_rays)
|
|
244
270
|
)
|
|
245
271
|
|
|
246
272
|
elif self.is_team_broadcast(app_message):
|
|
273
|
+
if self.debug:
|
|
274
|
+
self.logger.info(f"[RustPlus.py] Running Team Event: {app_message}")
|
|
275
|
+
|
|
247
276
|
# This means that the team of the current player has changed
|
|
248
277
|
await EventHandler.run_team_event(app_message, self.server_id)
|
|
249
278
|
|
|
250
279
|
elif self.is_message(app_message):
|
|
251
280
|
# This means that a message has been sent to the team chat
|
|
252
281
|
|
|
282
|
+
if self.debug:
|
|
283
|
+
self.logger.info(f"[RustPlus.py] Running Chat Event: {app_message}")
|
|
284
|
+
|
|
253
285
|
steam_id = int(app_message.broadcast.team_message.message.steam_id)
|
|
254
286
|
message = str(app_message.broadcast.team_message.message.message)
|
|
255
287
|
|
|
@@ -278,16 +310,22 @@ class RustWebsocket:
|
|
|
278
310
|
else:
|
|
279
311
|
self.outgoing_conversation_messages.remove(message)
|
|
280
312
|
|
|
281
|
-
|
|
313
|
+
# Conversation API end
|
|
282
314
|
|
|
283
315
|
await EventHandler.run_chat_event(app_message, self.server_id)
|
|
284
316
|
|
|
285
317
|
else:
|
|
286
318
|
# This means that it wasn't sent by the server and is a message from the server in response to an action
|
|
287
|
-
event: YieldingEvent = self.remote.pending_response_events
|
|
288
|
-
app_message.response.seq
|
|
289
|
-
|
|
290
|
-
event
|
|
319
|
+
event: YieldingEvent = self.remote.pending_response_events.get(
|
|
320
|
+
app_message.response.seq, None
|
|
321
|
+
)
|
|
322
|
+
if event is not None:
|
|
323
|
+
if self.debug:
|
|
324
|
+
self.logger.info(
|
|
325
|
+
f"[RustPlus.py] Running Response Event: {app_message}"
|
|
326
|
+
)
|
|
327
|
+
|
|
328
|
+
event.set_with_value(app_message)
|
|
291
329
|
|
|
292
330
|
def get_prefix(self, message: str) -> Optional[str]:
|
|
293
331
|
if self.remote.use_commands:
|
|
@@ -54,6 +54,7 @@ class RustSocket(BaseRustSocket):
|
|
|
54
54
|
use_test_server: bool = False,
|
|
55
55
|
event_loop: asyncio.AbstractEventLoop = None,
|
|
56
56
|
rate_limiter: RateLimiter = None,
|
|
57
|
+
debug: bool = False,
|
|
57
58
|
) -> None:
|
|
58
59
|
super().__init__(
|
|
59
60
|
ip=ip,
|
|
@@ -69,6 +70,7 @@ class RustSocket(BaseRustSocket):
|
|
|
69
70
|
use_test_server=use_test_server,
|
|
70
71
|
event_loop=event_loop,
|
|
71
72
|
rate_limiter=rate_limiter,
|
|
73
|
+
debug=debug,
|
|
72
74
|
)
|
|
73
75
|
|
|
74
76
|
async def get_time(self) -> RustTime:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import shlex
|
|
2
3
|
from datetime import datetime
|
|
3
4
|
|
|
4
5
|
from . import Command, CommandTime
|
|
@@ -22,7 +23,7 @@ class CommandHandler:
|
|
|
22
23
|
|
|
23
24
|
async def run_command(self, message: RustChatMessage, prefix) -> None:
|
|
24
25
|
if prefix == self.command_options.prefix:
|
|
25
|
-
command = message.message
|
|
26
|
+
command = shlex.split(message.message)[0][len(prefix) :]
|
|
26
27
|
else:
|
|
27
28
|
command = prefix
|
|
28
29
|
|
|
@@ -35,7 +36,7 @@ class CommandHandler:
|
|
|
35
36
|
message.steam_id,
|
|
36
37
|
CommandTime(datetime.utcfromtimestamp(message.time), message.time),
|
|
37
38
|
command,
|
|
38
|
-
message.message
|
|
39
|
+
shlex.split(message.message)[1:],
|
|
39
40
|
)
|
|
40
41
|
)
|
|
41
42
|
else:
|
|
@@ -52,7 +53,7 @@ class CommandHandler:
|
|
|
52
53
|
datetime.utcfromtimestamp(message.time), message.time
|
|
53
54
|
),
|
|
54
55
|
command,
|
|
55
|
-
message.message
|
|
56
|
+
shlex.split(message.message)[1:],
|
|
56
57
|
),
|
|
57
58
|
)
|
|
58
59
|
break
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rustplus
|
|
3
|
-
Version: 5.6.
|
|
3
|
+
Version: 5.6.16
|
|
4
4
|
Summary: A python wrapper for the Rust Plus API
|
|
5
5
|
Home-page: https://github.com/olijeffers0n/rustplus
|
|
6
6
|
Author: olijeffers0n
|
|
@@ -18,6 +18,7 @@ Requires-Dist: requests
|
|
|
18
18
|
Requires-Dist: numpy
|
|
19
19
|
Requires-Dist: scipy
|
|
20
20
|
Requires-Dist: betterproto==2.0.0b6
|
|
21
|
+
Requires-Dist: shlex
|
|
21
22
|
|
|
22
23
|

|
|
23
24
|
<div align = "center">
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|