mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	Improve error explanations related to NetworkedMultiplayerENet
This commit is contained in:
		
							parent
							
								
									0edcb8ed58
								
							
						
					
					
						commit
						61bf5bf73f
					
				
					 1 changed files with 43 additions and 43 deletions
				
			
		|  | @ -49,7 +49,7 @@ void NetworkedMultiplayerENet::set_target_peer(int p_peer) { | ||||||
| 
 | 
 | ||||||
| int NetworkedMultiplayerENet::get_packet_peer() const { | int NetworkedMultiplayerENet::get_packet_peer() const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!active, 1); | 	ERR_FAIL_COND_V_MSG(!active, 1, "The multiplayer instance isn't currently active."); | ||||||
| 	ERR_FAIL_COND_V(incoming_packets.size() == 0, 1); | 	ERR_FAIL_COND_V(incoming_packets.size() == 0, 1); | ||||||
| 
 | 
 | ||||||
| 	return incoming_packets.front()->get().from; | 	return incoming_packets.front()->get().from; | ||||||
|  | @ -57,7 +57,7 @@ int NetworkedMultiplayerENet::get_packet_peer() const { | ||||||
| 
 | 
 | ||||||
| int NetworkedMultiplayerENet::get_packet_channel() const { | int NetworkedMultiplayerENet::get_packet_channel() const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!active, -1); | 	ERR_FAIL_COND_V_MSG(!active, -1, "The multiplayer instance isn't currently active."); | ||||||
| 	ERR_FAIL_COND_V(incoming_packets.size() == 0, -1); | 	ERR_FAIL_COND_V(incoming_packets.size() == 0, -1); | ||||||
| 
 | 
 | ||||||
| 	return incoming_packets.front()->get().channel; | 	return incoming_packets.front()->get().channel; | ||||||
|  | @ -65,7 +65,7 @@ int NetworkedMultiplayerENet::get_packet_channel() const { | ||||||
| 
 | 
 | ||||||
| int NetworkedMultiplayerENet::get_last_packet_channel() const { | int NetworkedMultiplayerENet::get_last_packet_channel() const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!active, -1); | 	ERR_FAIL_COND_V_MSG(!active, -1, "The multiplayer instance isn't currently active."); | ||||||
| 	ERR_FAIL_COND_V(!current_packet.packet, -1); | 	ERR_FAIL_COND_V(!current_packet.packet, -1); | ||||||
| 
 | 
 | ||||||
| 	return current_packet.channel; | 	return current_packet.channel; | ||||||
|  | @ -73,11 +73,11 @@ int NetworkedMultiplayerENet::get_last_packet_channel() const { | ||||||
| 
 | 
 | ||||||
| Error NetworkedMultiplayerENet::create_server(int p_port, int p_max_clients, int p_in_bandwidth, int p_out_bandwidth) { | Error NetworkedMultiplayerENet::create_server(int p_port, int p_max_clients, int p_in_bandwidth, int p_out_bandwidth) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(active, ERR_ALREADY_IN_USE); | 	ERR_FAIL_COND_V_MSG(active, ERR_ALREADY_IN_USE, "The multiplayer instance is already active."); | ||||||
| 	ERR_FAIL_COND_V(p_port < 0 || p_port > 65535, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_port < 0 || p_port > 65535, ERR_INVALID_PARAMETER, "The port number must be set between 0 and 65535 (inclusive)."); | ||||||
| 	ERR_FAIL_COND_V(p_max_clients < 1 || p_max_clients > 4095, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_max_clients < 1 || p_max_clients > 4095, ERR_INVALID_PARAMETER, "The number of clients must be set between 1 and 4095 (inclusive)."); | ||||||
| 	ERR_FAIL_COND_V(p_in_bandwidth < 0, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_in_bandwidth < 0, ERR_INVALID_PARAMETER, "The incoming bandwidth limit must be greater than or equal to 0 (0 disables the limit)."); | ||||||
| 	ERR_FAIL_COND_V(p_out_bandwidth < 0, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_out_bandwidth < 0, ERR_INVALID_PARAMETER, "The outgoing bandwidth limit must be greater than or equal to 0 (0 disables the limit)."); | ||||||
| 
 | 
 | ||||||
| 	ENetAddress address; | 	ENetAddress address; | ||||||
| 	memset(&address, 0, sizeof(address)); | 	memset(&address, 0, sizeof(address)); | ||||||
|  | @ -104,7 +104,7 @@ Error NetworkedMultiplayerENet::create_server(int p_port, int p_max_clients, int | ||||||
| 			p_in_bandwidth /* limit incoming bandwidth if > 0 */, | 			p_in_bandwidth /* limit incoming bandwidth if > 0 */, | ||||||
| 			p_out_bandwidth /* limit outgoing bandwidth if > 0 */); | 			p_out_bandwidth /* limit outgoing bandwidth if > 0 */); | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!host, ERR_CANT_CREATE); | 	ERR_FAIL_COND_V_MSG(!host, ERR_CANT_CREATE, "Couldn't create an ENet multiplayer server."); | ||||||
| 
 | 
 | ||||||
| 	_setup_compressor(); | 	_setup_compressor(); | ||||||
| 	active = true; | 	active = true; | ||||||
|  | @ -116,11 +116,11 @@ Error NetworkedMultiplayerENet::create_server(int p_port, int p_max_clients, int | ||||||
| } | } | ||||||
| Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_port, int p_in_bandwidth, int p_out_bandwidth, int p_client_port) { | Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_port, int p_in_bandwidth, int p_out_bandwidth, int p_client_port) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(active, ERR_ALREADY_IN_USE); | 	ERR_FAIL_COND_V_MSG(active, ERR_ALREADY_IN_USE, "The multiplayer instance is already active."); | ||||||
| 	ERR_FAIL_COND_V(p_port < 0 || p_port > 65535, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_port < 0 || p_port > 65535, ERR_INVALID_PARAMETER, "The server port number must be set between 0 and 65535 (inclusive)."); | ||||||
| 	ERR_FAIL_COND_V(p_client_port < 0 || p_client_port > 65535, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_client_port < 0 || p_client_port > 65535, ERR_INVALID_PARAMETER, "The client port number must be set between 0 and 65535 (inclusive)."); | ||||||
| 	ERR_FAIL_COND_V(p_in_bandwidth < 0, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_in_bandwidth < 0, ERR_INVALID_PARAMETER, "The incoming bandwidth limit must be greater than or equal to 0 (0 disables the limit)."); | ||||||
| 	ERR_FAIL_COND_V(p_out_bandwidth < 0, ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(p_out_bandwidth < 0, ERR_INVALID_PARAMETER, "The outgoing bandwidth limit must be greater than or equal to 0 (0 disables the limit)."); | ||||||
| 
 | 
 | ||||||
| 	if (p_client_port != 0) { | 	if (p_client_port != 0) { | ||||||
| 		ENetAddress c_client; | 		ENetAddress c_client; | ||||||
|  | @ -135,7 +135,7 @@ Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_por | ||||||
| 		if (bind_ip.is_wildcard()) { | 		if (bind_ip.is_wildcard()) { | ||||||
| 			c_client.host = 0; | 			c_client.host = 0; | ||||||
| 		} else { | 		} else { | ||||||
| 			ERR_FAIL_COND_V(!bind_ip.is_ipv4(), ERR_INVALID_PARAMETER); | 			ERR_FAIL_COND_V_MSG(!bind_ip.is_ipv4(), ERR_INVALID_PARAMETER, "Wildcard IP addresses are only permitted in IPv4, not IPv6."); | ||||||
| 			c_client.host = *(uint32_t *)bind_ip.get_ipv4(); | 			c_client.host = *(uint32_t *)bind_ip.get_ipv4(); | ||||||
| 		} | 		} | ||||||
| #endif | #endif | ||||||
|  | @ -155,7 +155,7 @@ Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_por | ||||||
| 				p_out_bandwidth /* limit outgoing bandwidth if > 0 */); | 				p_out_bandwidth /* limit outgoing bandwidth if > 0 */); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!host, ERR_CANT_CREATE); | 	ERR_FAIL_COND_V_MSG(!host, ERR_CANT_CREATE, "Couldn't create the ENet client host."); | ||||||
| 
 | 
 | ||||||
| 	_setup_compressor(); | 	_setup_compressor(); | ||||||
| 
 | 
 | ||||||
|  | @ -169,14 +169,14 @@ Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_por | ||||||
| 		ip = IP::get_singleton()->resolve_hostname(p_address, IP::TYPE_IPV4); | 		ip = IP::get_singleton()->resolve_hostname(p_address, IP::TYPE_IPV4); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 		ERR_FAIL_COND_V(!ip.is_valid(), ERR_CANT_RESOLVE); | 		ERR_FAIL_COND_V_MSG(!ip.is_valid(), ERR_CANT_RESOLVE, "Couldn't resolve the server IP address or domain name."); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ENetAddress address; | 	ENetAddress address; | ||||||
| #ifdef GODOT_ENET | #ifdef GODOT_ENET | ||||||
| 	enet_address_set_ip(&address, ip.get_ipv6(), 16); | 	enet_address_set_ip(&address, ip.get_ipv6(), 16); | ||||||
| #else | #else | ||||||
| 	ERR_FAIL_COND_V(!ip.is_ipv4(), ERR_INVALID_PARAMETER); | 	ERR_FAIL_COND_V_MSG(!ip.is_ipv4(), ERR_INVALID_PARAMETER, "Connecting to an IPv6 server isn't supported when using vanilla ENet. Recompile Godot with the bundled ENet library."); | ||||||
| 	address.host = *(uint32_t *)ip.get_ipv4(); | 	address.host = *(uint32_t *)ip.get_ipv4(); | ||||||
| #endif | #endif | ||||||
| 	address.port = p_port; | 	address.port = p_port; | ||||||
|  | @ -188,7 +188,7 @@ Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_por | ||||||
| 
 | 
 | ||||||
| 	if (peer == NULL) { | 	if (peer == NULL) { | ||||||
| 		enet_host_destroy(host); | 		enet_host_destroy(host); | ||||||
| 		ERR_FAIL_COND_V(!peer, ERR_CANT_CREATE); | 		ERR_FAIL_COND_V_MSG(!peer, ERR_CANT_CREATE, "Couldn't connect to the ENet multiplayer server."); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Technically safe to ignore the peer or anything else.
 | 	// Technically safe to ignore the peer or anything else.
 | ||||||
|  | @ -203,7 +203,7 @@ Error NetworkedMultiplayerENet::create_client(const String &p_address, int p_por | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::poll() { | void NetworkedMultiplayerENet::poll() { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND(!active); | 	ERR_FAIL_COND_MSG(!active, "The multiplayer instance isn't currently active."); | ||||||
| 
 | 
 | ||||||
| 	_pop_current_packet(); | 	_pop_current_packet(); | ||||||
| 
 | 
 | ||||||
|  | @ -435,14 +435,14 @@ void NetworkedMultiplayerENet::poll() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool NetworkedMultiplayerENet::is_server() const { | bool NetworkedMultiplayerENet::is_server() const { | ||||||
| 	ERR_FAIL_COND_V(!active, false); | 	ERR_FAIL_COND_V_MSG(!active, false, "The multiplayer instance isn't currently active."); | ||||||
| 
 | 
 | ||||||
| 	return server; | 	return server; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::close_connection(uint32_t wait_usec) { | void NetworkedMultiplayerENet::close_connection(uint32_t wait_usec) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND(!active); | 	ERR_FAIL_COND_MSG(!active, "The multiplayer instance isn't currently active."); | ||||||
| 
 | 
 | ||||||
| 	_pop_current_packet(); | 	_pop_current_packet(); | ||||||
| 
 | 
 | ||||||
|  | @ -474,9 +474,9 @@ void NetworkedMultiplayerENet::close_connection(uint32_t wait_usec) { | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::disconnect_peer(int p_peer, bool now) { | void NetworkedMultiplayerENet::disconnect_peer(int p_peer, bool now) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND(!active); | 	ERR_FAIL_COND_MSG(!active, "The multiplayer instance isn't currently active."); | ||||||
| 	ERR_FAIL_COND(!is_server()); | 	ERR_FAIL_COND_MSG(!is_server(), "Can't disconnect a peer when not acting as a server."); | ||||||
| 	ERR_FAIL_COND(!peer_map.has(p_peer)); | 	ERR_FAIL_COND_MSG(!peer_map.has(p_peer), vformat("Peer ID %d not found in the list of peers.", p_peer)); | ||||||
| 
 | 
 | ||||||
| 	if (now) { | 	if (now) { | ||||||
| 		int *id = (int *)peer_map[p_peer]->data; | 		int *id = (int *)peer_map[p_peer]->data; | ||||||
|  | @ -515,7 +515,7 @@ int NetworkedMultiplayerENet::get_available_packet_count() const { | ||||||
| 
 | 
 | ||||||
| Error NetworkedMultiplayerENet::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { | Error NetworkedMultiplayerENet::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(incoming_packets.size() == 0, ERR_UNAVAILABLE); | 	ERR_FAIL_COND_V_MSG(incoming_packets.size() == 0, ERR_UNAVAILABLE, "No incoming packets available."); | ||||||
| 
 | 
 | ||||||
| 	_pop_current_packet(); | 	_pop_current_packet(); | ||||||
| 
 | 
 | ||||||
|  | @ -530,8 +530,8 @@ Error NetworkedMultiplayerENet::get_packet(const uint8_t **r_buffer, int &r_buff | ||||||
| 
 | 
 | ||||||
| Error NetworkedMultiplayerENet::put_packet(const uint8_t *p_buffer, int p_buffer_size) { | Error NetworkedMultiplayerENet::put_packet(const uint8_t *p_buffer, int p_buffer_size) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!active, ERR_UNCONFIGURED); | 	ERR_FAIL_COND_V_MSG(!active, ERR_UNCONFIGURED, "The multiplayer instance isn't currently active."); | ||||||
| 	ERR_FAIL_COND_V(connection_status != CONNECTION_CONNECTED, ERR_UNCONFIGURED); | 	ERR_FAIL_COND_V_MSG(connection_status != CONNECTION_CONNECTED, ERR_UNCONFIGURED, "The multiplayer instance isn't currently connected to any server or client."); | ||||||
| 
 | 
 | ||||||
| 	int packet_flags = 0; | 	int packet_flags = 0; | ||||||
| 	int channel = SYSCH_RELIABLE; | 	int channel = SYSCH_RELIABLE; | ||||||
|  | @ -562,7 +562,7 @@ Error NetworkedMultiplayerENet::put_packet(const uint8_t *p_buffer, int p_buffer | ||||||
| 	if (target_peer != 0) { | 	if (target_peer != 0) { | ||||||
| 
 | 
 | ||||||
| 		E = peer_map.find(ABS(target_peer)); | 		E = peer_map.find(ABS(target_peer)); | ||||||
| 		ERR_FAIL_COND_V_MSG(!E, ERR_INVALID_PARAMETER, "Invalid target peer '" + itos(target_peer) + "'."); | 		ERR_FAIL_COND_V_MSG(!E, ERR_INVALID_PARAMETER, vformat("Invalid target peer: %d", target_peer)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ENetPacket *packet = enet_packet_create(NULL, p_buffer_size + 8, packet_flags); | 	ENetPacket *packet = enet_packet_create(NULL, p_buffer_size + 8, packet_flags); | ||||||
|  | @ -650,7 +650,7 @@ uint32_t NetworkedMultiplayerENet::_gen_unique_id() const { | ||||||
| 
 | 
 | ||||||
| int NetworkedMultiplayerENet::get_unique_id() const { | int NetworkedMultiplayerENet::get_unique_id() const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!active, 0); | 	ERR_FAIL_COND_V_MSG(!active, 0, "The multiplayer instance isn't currently active."); | ||||||
| 	return unique_id; | 	return unique_id; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -706,7 +706,7 @@ size_t NetworkedMultiplayerENet::enet_compress(void *context, const ENetBuffer * | ||||||
| 			mode = Compression::MODE_ZSTD; | 			mode = Compression::MODE_ZSTD; | ||||||
| 		} break; | 		} break; | ||||||
| 		default: { | 		default: { | ||||||
| 			ERR_FAIL_V(0); | 			ERR_FAIL_V_MSG(0, vformat("Invalid ENet compression mode: %d", enet->compression_mode)); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -781,9 +781,9 @@ void NetworkedMultiplayerENet::enet_compressor_destroy(void *context) { | ||||||
| 
 | 
 | ||||||
| IP_Address NetworkedMultiplayerENet::get_peer_address(int p_peer_id) const { | IP_Address NetworkedMultiplayerENet::get_peer_address(int p_peer_id) const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!peer_map.has(p_peer_id), IP_Address()); | 	ERR_FAIL_COND_V_MSG(!peer_map.has(p_peer_id), IP_Address(), vformat("Peer ID %d not found in the list of peers.", p_peer_id)); | ||||||
| 	ERR_FAIL_COND_V(!is_server() && p_peer_id != 1, IP_Address()); | 	ERR_FAIL_COND_V_MSG(!is_server() && p_peer_id != 1, IP_Address(), "Can't get the address of peers other than the server (ID -1) when acting as a client."); | ||||||
| 	ERR_FAIL_COND_V(peer_map[p_peer_id] == NULL, IP_Address()); | 	ERR_FAIL_COND_V_MSG(peer_map[p_peer_id] == NULL, IP_Address(), vformat("Peer ID %d found in the list of peers, but is null.", p_peer_id)); | ||||||
| 
 | 
 | ||||||
| 	IP_Address out; | 	IP_Address out; | ||||||
| #ifdef GODOT_ENET | #ifdef GODOT_ENET | ||||||
|  | @ -797,9 +797,9 @@ IP_Address NetworkedMultiplayerENet::get_peer_address(int p_peer_id) const { | ||||||
| 
 | 
 | ||||||
| int NetworkedMultiplayerENet::get_peer_port(int p_peer_id) const { | int NetworkedMultiplayerENet::get_peer_port(int p_peer_id) const { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND_V(!peer_map.has(p_peer_id), 0); | 	ERR_FAIL_COND_V_MSG(!peer_map.has(p_peer_id), 0, vformat("Peer ID %d not found in the list of peers.", p_peer_id)); | ||||||
| 	ERR_FAIL_COND_V(!is_server() && p_peer_id != 1, 0); | 	ERR_FAIL_COND_V_MSG(!is_server() && p_peer_id != 1, 0, "Can't get the address of peers other than the server (ID -1) when acting as a client."); | ||||||
| 	ERR_FAIL_COND_V(peer_map[p_peer_id] == NULL, 0); | 	ERR_FAIL_COND_V_MSG(peer_map[p_peer_id] == NULL, 0, vformat("Peer ID %d found in the list of peers, but is null.", p_peer_id)); | ||||||
| #ifdef GODOT_ENET | #ifdef GODOT_ENET | ||||||
| 	return peer_map[p_peer_id]->address.port; | 	return peer_map[p_peer_id]->address.port; | ||||||
| #else | #else | ||||||
|  | @ -809,8 +809,8 @@ int NetworkedMultiplayerENet::get_peer_port(int p_peer_id) const { | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::set_transfer_channel(int p_channel) { | void NetworkedMultiplayerENet::set_transfer_channel(int p_channel) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND(p_channel < -1 || p_channel >= channel_count); | 	ERR_FAIL_COND_MSG(p_channel < -1 || p_channel >= channel_count, vformat("The transfer channel must be set between 0 and %d, inclusive (got %d).", channel_count - 1, p_channel)); | ||||||
| 	ERR_FAIL_COND_MSG(p_channel == SYSCH_CONFIG, "Channel " + itos(SYSCH_CONFIG) + " is reserved."); | 	ERR_FAIL_COND_MSG(p_channel == SYSCH_CONFIG, vformat("The channel %d is reserved.", SYSCH_CONFIG)); | ||||||
| 	transfer_channel = p_channel; | 	transfer_channel = p_channel; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -820,8 +820,8 @@ int NetworkedMultiplayerENet::get_transfer_channel() const { | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::set_channel_count(int p_channel) { | void NetworkedMultiplayerENet::set_channel_count(int p_channel) { | ||||||
| 
 | 
 | ||||||
| 	ERR_FAIL_COND(active); | 	ERR_FAIL_COND_MSG(active, "The channel count can't be set while the multiplayer instance is active."); | ||||||
| 	ERR_FAIL_COND(p_channel < SYSCH_MAX); | 	ERR_FAIL_COND_MSG(p_channel < SYSCH_MAX, vformat("The channel count must be greater than or equal to %d to account for reserved channels (got %d).", SYSCH_MAX, p_channel)); | ||||||
| 	channel_count = p_channel; | 	channel_count = p_channel; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -838,7 +838,7 @@ bool NetworkedMultiplayerENet::is_always_ordered() const { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void NetworkedMultiplayerENet::set_server_relay_enabled(bool p_enabled) { | void NetworkedMultiplayerENet::set_server_relay_enabled(bool p_enabled) { | ||||||
| 	ERR_FAIL_COND(active); | 	ERR_FAIL_COND_MSG(active, "Server relaying can't be toggled while the multiplayer instance is active."); | ||||||
| 
 | 
 | ||||||
| 	server_relay = p_enabled; | 	server_relay = p_enabled; | ||||||
| } | } | ||||||
|  | @ -916,7 +916,7 @@ NetworkedMultiplayerENet::~NetworkedMultiplayerENet() { | ||||||
| // Sets IP for ENet to bind when using create_server or create_client
 | // Sets IP for ENet to bind when using create_server or create_client
 | ||||||
| // if no IP is set, then ENet bind to ENET_HOST_ANY
 | // if no IP is set, then ENet bind to ENET_HOST_ANY
 | ||||||
| void NetworkedMultiplayerENet::set_bind_ip(const IP_Address &p_ip) { | void NetworkedMultiplayerENet::set_bind_ip(const IP_Address &p_ip) { | ||||||
| 	ERR_FAIL_COND(!p_ip.is_valid() && !p_ip.is_wildcard()); | 	ERR_FAIL_COND_MSG(!p_ip.is_valid() && !p_ip.is_wildcard(), vformat("Invalid bind IP address: %s", String(p_ip))); | ||||||
| 
 | 
 | ||||||
| 	bind_ip = p_ip; | 	bind_ip = p_ip; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hugo Locurcio
						Hugo Locurcio