Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save theWill/6af0f9aaf4fe38a4678e85853b3f7931 to your computer and use it in GitHub Desktop.
Save theWill/6af0f9aaf4fe38a4678e85853b3f7931 to your computer and use it in GitHub Desktop.
forge - listen for all the events
using BeardedManStudios.Forge.Networking;
using BeardedManStudios.Forge.Networking.Generated;
using BeardedManStudios.Forge.Networking.Unity;
using UnityEngine;
using UnityEngine.SceneManagement;
public class MulitplayerEventsController : MonoBehaviour
{
public GameObject messagePanelPrefab;
public Transform messagePanel;
public void Start()
{
//Server & Client Events
NetworkManager.Instance.Networker.bindSuccessful += messageOnBindSucess;
NetworkManager.Instance.Networker.bindFailure += messageOnBindFail;
NetworkManager.Instance.Networker.disconnected += messageOnDisconnect;
//Server Events
NetworkManager.Instance.Networker.playerConnected += messageOnPlayerConnected;
NetworkManager.Instance.Networker.playerGuidAssigned += messageOnPlayerGuidAssigned;
NetworkManager.Instance.Networker.playerAccepted += messageOnPlayerAccepted;
NetworkManager.Instance.Networker.playerRejected += messageOnPlayerRejected;
NetworkManager.Instance.Networker.playerTimeout += messageOnPlayerTimeout;
NetworkManager.Instance.Networker.playerDisconnected += messageOnPlayerDisconnected;
//Client Events
NetworkManager.Instance.Networker.serverAccepted += messageOnServerAccepted;
//((UDPClient)NetworkManager.Instance.Networker).connectAttemptFailed += ConnectionFailed;
//Scene Events
NetworkManager.Instance.playerLoadedScene += messageOnPlayerLoadedScene;
NetworkManager.Instance.networkSceneChanging += messageOnNetworkSceneChanging;
NetworkManager.Instance.networkSceneLoaded += messageOnNetworkSceneLoaded;
}
//######### Server & Client Events ##########
private void messageOnBindSucess(NetWorker sender)
{
string message = "Multiplayer Event: Bind Successful";
transmitMessage(message);
}
private void messageOnBindFail(NetWorker sender)
{
string message = "Multiplayer Event: Bind Failure";
transmitMessage(message);
}
private void messageOnDisconnect(NetWorker sender)
{
string message = "Multiplayer Event: disconnected";
transmitMessage(message);
if (sender.IsServer)
Destroy(gameObject);
}
//######### Server Events ##########
private void messageOnPlayerConnected(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: playerConnected: " + player.NetworkId;
transmitMessage(message);
}
private void messageOnPlayerGuidAssigned(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: player Guid Assigned: " + player.NetworkId +
" " + player.InstanceGuid;
transmitMessage(message);
}
private void messageOnPlayerAccepted(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: player Accepeted: " + player.NetworkId;
transmitMessage(message);
}
private void messageOnPlayerRejected(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: player rejected: " + player.NetworkId;
transmitMessage(message);
}
private void messageOnPlayerTimeout(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: player timeout: " + player.NetworkId;
transmitMessage(message);
}
private void messageOnPlayerDisconnected(NetworkingPlayer player, NetWorker sender)
{
string message = "Server Multiplayer Event: player disconnected: " + player.NetworkId;
transmitMessage(message);
}
//######### Client Events ##########
private void messageOnServerAccepted(NetWorker sender)
{
string message = "Client Multiplayer Event: server accepted";
transmitMessage(message);
}
private void ConnectionFailed(NetWorker sender)
{
string message = "Client Multiplayer Event: connection failed";
transmitMessage(message);
}
//######### Scene Events ##########
private void messageOnPlayerLoadedScene(NetworkingPlayer player, NetWorker sender)
{
string message = "Scene Multiplayer Event: Player Loaded Scene: " + player.NetworkId;
transmitMessage(message);
}
private void messageOnNetworkSceneChanging(int arg0, LoadSceneMode arg1)
{
string message = "Scene Multiplayer Event: Network Scene Changing";
transmitMessage(message);
}
private void messageOnNetworkSceneLoaded(Scene arg0, LoadSceneMode arg1)
{
string message = "Scene Multiplayer Event: Network Scene Loaded";
transmitMessage(message);
}
private void transmitMessage(string message)
{
Debug.Log(message);
//GameObject newMessage = GameObject.Instantiate(messagePanelPrefab, messagePanel);
//newMessage.GetComponent<TMPro.TextMeshProUGUI>().text = message;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment