|
2 | 2 | # >> IMPORTS |
3 | 3 | # ============================================================================= |
4 | 4 | # Source.Python |
5 | | -from core import GAME_NAME |
6 | 5 | from engines.server import server |
7 | 6 | from listeners import OnNetworkidValidated |
8 | 7 | from listeners.tick import GameThread |
9 | | -from memory import make_object |
10 | | -from memory.hooks import PostHook |
11 | | -from players import Client |
12 | 8 | from players.entity import Player |
13 | 9 | from players.helpers import get_client_language |
14 | | -from translations.manager import language_manager |
15 | 10 |
|
16 | 11 | # Source.Python Admin |
| 12 | +from admin.core import admin_core_logger |
17 | 13 | from admin.core.helpers import format_player_name, log_admin_action |
18 | | -from admin.core.memory import custom_server |
| 14 | + |
| 15 | +# Custom Package |
| 16 | +try: |
| 17 | + from connect_filter import ConnectFilter |
| 18 | +except ImportError: |
| 19 | + |
| 20 | + # TODO: Don't log into core |
| 21 | + admin_core_logger.log_message( |
| 22 | + "ConnectFilter package is not installed, we won't be able to reject " |
| 23 | + "banned SteamIDs early (before their validation)") |
| 24 | + |
| 25 | + ConnectFilter = lambda callback: callback |
19 | 26 |
|
20 | 27 | # Included Plugin |
21 | 28 | from ..config import plugin_config |
@@ -265,30 +272,15 @@ def listener_on_networkid_validated(name, steamid): |
265 | 272 | if client is None: |
266 | 273 | return |
267 | 274 |
|
268 | | - client.disconnect(plugin_strings['default_ban_reason'].get_string( |
269 | | - language_manager.default)) |
| 275 | + client.disconnect(plugin_strings['default_ban_reason'].get_string()) |
270 | 276 |
|
271 | 277 |
|
272 | 278 | # ============================================================================= |
273 | | -# >> HOOKS |
| 279 | +# >> CONNECT FILTERS |
274 | 280 | # ============================================================================= |
275 | | -@PostHook(custom_server.check_challenge_type) |
276 | | -def post_check_challenge_type(args, return_value=0): |
277 | | - client = make_object(Client, args[1] + 4) |
278 | | - if not banned_steamid_manager.is_banned(client.steamid): |
279 | | - return |
| 281 | +@ConnectFilter |
| 282 | +def connect_filter(client): |
| 283 | + if banned_steamid_manager.is_banned(client.steamid): |
| 284 | + return plugin_strings['default_ban_reason'] |
280 | 285 |
|
281 | | - if GAME_NAME == 'csgo': |
282 | | - custom_server.reject_connection( |
283 | | - args[3], |
284 | | - plugin_strings['default_ban_reason'].get_string( |
285 | | - language_manager.default) |
286 | | - ) |
287 | | - else: |
288 | | - custom_server.reject_connection( |
289 | | - args[3], args[7], |
290 | | - plugin_strings['default_ban_reason'].get_string( |
291 | | - language_manager.default) |
292 | | - ) |
293 | | - |
294 | | - return False |
| 286 | + return None |
0 commit comments