-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexemplo_rpc_node.gd
More file actions
36 lines (26 loc) · 1.17 KB
/
exemplo_rpc_node.gd
File metadata and controls
36 lines (26 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
extends SceneTree
## Exemplo de RPC Node com Middleware Injetada
## Demonstra como um nó de jogo usaria a classe injetada seguindo um padrão profissional.
func _init():
var RPCMiddleware = load("res://addons/auth_kernel/scripts/middleware/rpc_middleware.gd")
# 1. SETUP (Poderia ser um Autoload/Singleton)
var middleware = RPCMiddleware.new("secret_123")
# 2. INSTÂNCIA DO NÓ COM INJEÇÃO
# Criamos o nó e injetamos a middleware diretamente
var game_node = GameActionNode.new(middleware)
print("--- Teste de Nó RPC Injetado ---")
print("Nó: ", game_node.name)
print("Middleware injetada com sucesso: ", game_node.middleware != null)
# No mundo real, a proteção seria ativada via RPC:
# game_node.executar_acao_protegida.rpc("ataque")
quit()
# Classe interna para simular um nó de jogo real que estende a nossa nova RPCBase
class GameActionNode extends RPCBase:
func _init(p_middleware):
super(p_middleware)
self.name = "GameActionNode"
@rpc("any_peer")
func executar_acao_protegida(acao: String):
# PROTEÇÃO PROFISSIONAL: Apenas uma linha injetada via classe base
if not auth("executar_acao_protegida"): return
print("Executando ação: ", acao)