|
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