How to close an open server using a button press?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By axilirate
func server(function):
	var net = NetworkedMultiplayerENet.new()
	if function == "create":
		if net.create_server(DEFAULT_PORT, MAX_CLIENTS) != OK:
			get_node("/root/menu/LogText").text += "\n"+" Create Error " + str(net.create_server(DEFAULT_PORT, MAX_CLIENTS))
		net.create_server(DEFAULT_PORT, MAX_CLIENTS)
		get_tree().set_network_peer(net)
	if function == "close":
		print("close")
		net.close_connection()

I’m sure I’m missing something.

:bust_in_silhouette: Reply From: supper_raptor

For my multiplayer game i do

func _close_server():
	#kick players
	for i in players:
		if i != 1:
			print(i)
			rpc_id(i,"kicked", "Server Closed")
			get_tree().network_peer.disconnect_peer(i)
	players.clear()
	#Terminate server
	get_tree().set_network_peer(null)
	emit_signal("server_stopped")
	get_tree().get_nodes_in_group("Level")[0].queue_free()
	get_tree().change_scene("res://Menus/MainMenu/MainMenu.tscn")

remote func kicked(reason):
	get_tree().network_peer.disconnect_peer(my_id)
	print("You have been kicked from the server, reason: ", reason)