summaryrefslogtreecommitdiffstats
path: root/scene/main/node.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/main/node.cpp')
-rw-r--r--scene/main/node.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index cb72e4ec08..8d5133311a 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -645,7 +645,8 @@ int Node::get_multiplayer_authority() const {
bool Node::is_multiplayer_authority() const {
ERR_FAIL_COND_V(!is_inside_tree(), false);
- return get_multiplayer()->get_unique_id() == data.multiplayer_authority;
+ Ref<MultiplayerAPI> api = get_multiplayer();
+ return api.is_valid() && (api->get_unique_id() == data.multiplayer_authority);
}
/***** RPC CONFIG ********/
@@ -724,7 +725,12 @@ Error Node::_rpc_id_bind(const Variant **p_args, int p_argcount, Callable::CallE
Error Node::rpcp(int p_peer_id, const StringName &p_method, const Variant **p_arg, int p_argcount) {
ERR_FAIL_COND_V(!is_inside_tree(), ERR_UNCONFIGURED);
- return get_multiplayer()->rpcp(this, p_peer_id, p_method, p_arg, p_argcount);
+
+ Ref<MultiplayerAPI> api = get_multiplayer();
+ if (api.is_null()) {
+ return ERR_UNCONFIGURED;
+ }
+ return api->rpcp(this, p_peer_id, p_method, p_arg, p_argcount);
}
Ref<MultiplayerAPI> Node::get_multiplayer() const {