Compare commits

..

No commits in common. "60706fb255f8cbf67ad0d07a3750a5cf2d4a0b9a" and "5eedbf2f1e6738476209149127b0a2bf32d23944" have entirely different histories.

5 changed files with 26 additions and 73 deletions

View file

@ -1,5 +1,4 @@
using GB.Core;
using GB.Networking.Utils;
using GB.Platform.Lobby;
using UnityEngine;
@ -9,24 +8,10 @@ public class GBSUClient : MonoBehaviour
{
public static void JoinServer(string serverip, int serverport)
{
if (!Helper.hosting)
{
LobbyManager.Instance.LobbyStates.IP = serverip;
LobbyManager.Instance.LobbyStates.Port = serverport;
LobbyManager.Instance.LobbyStates.CurrentState = LobbyState.State.Ready | LobbyState.State.InGame;
LobbyManager.Instance.LocalBeasts.SetupNetMemberContext(true);
MonoSingleton<Global>.Instance.UNetManager.LaunchClient(serverip, serverport);
}
else
{
GBSUGui.PushError("You are currently hosting a game! Please stop your server before attempting to join.");
}
}
// this method should be used when something has went wrong
// because players can just use the escape menu to exit
public static void DisconnectFromServer()
{
GBNetUtils.DisconnectSelf(false);
LobbyManager.Instance.LobbyStates.IP = serverip;
LobbyManager.Instance.LobbyStates.Port = serverport;
LobbyManager.Instance.LobbyStates.CurrentState = LobbyState.State.Ready | LobbyState.State.InGame;
LobbyManager.Instance.LocalBeasts.SetupNetMemberContext(true);
MonoSingleton<Global>.Instance.UNetManager.LaunchClient(serverip, serverport);
}
}

View file

@ -59,10 +59,6 @@ Set CLI arguments: -ip, -port (optionally -maplist)
{
Application.Quit(0);
}
if (GUI.Button(new Rect(320f, 45f, 55f, 30f), "Menu"))
{
Helper.SwitchToMenu();
}
if (Helper.serverip != null)
{
if (GUI.Button(new Rect(20f, 260f, 170f, 30f), "Host"))
@ -97,7 +93,14 @@ Make sure to download a file from the examples given and rename it to config.jso
{
if (LobbyManager.Instance.LobbyStates.SelfState == LobbyState.Game.Online)
{
GBSUClient.JoinServer(Helper.serverip, Helper.serverport);
if (!Helper.hosting)
{
GBSUClient.JoinServer(Helper.serverip, Helper.serverport);
}
else
{
PushError("You are currently hosting a match! Please restart the game before attempting to join.");
}
}
else
{
@ -105,6 +108,10 @@ Make sure to download a file from the examples given and rename it to config.jso
}
}
}
else
{
PushError("Couldn't find the -ip CLI argument. Please refer to the documentation.");
}
if (GUI.Button(new Rect(20f, 295f, 170f, 30f), "Cap FPS to 60"))
{

View file

@ -4,6 +4,7 @@ using GB.Core;
using GB.Game;
using HarmonyLib;
using UnityEngine;
using UnityEngine.SceneManagement;
#pragma warning disable IDE0051 // Private member is unused
@ -26,8 +27,6 @@ public class GBSUServer : MonoBehaviour
//_gmInit = AccessTools.Method(typeof(GameMode), "Init");
localSingleGang = Traverse.Create(nameof(GameMode)).Field("localSingleGang");
gameTimer = Traverse.Create(nameof(GameMode)).Field("timer");
AudioListener.volume = 0; // mute game audio
}
void SetLocalGangToOff()
{
@ -36,17 +35,15 @@ public class GBSUServer : MonoBehaviour
public static void StartServer()
{
if (!Helper.hosting)
{
Helper.hosting = true;
Helper.hosting = true;
AudioListener.volume = 0; // mute game audio
Plugin.AddServerComp(); // add custom GBSU server component
Plugin.AddServerComp(); // add custom GBSU server component
RotationConfig gameConfig = GBConfigLoader.LoadRotationConfig(null); // the argument doesn't matter as we do stuff in the method
ServerConfig serverConfig = NetConfigLoader.LoadServerConfig(); // load default server config, because it can be overridden by args like -ip and -port
MonoSingleton<Global>.Instance.UNetManager.LaunchServer(serverConfig); // launch the server with the server config
MonoSingleton<Global>.Instance.UNetManager.GetComponent<GameManagerNew>().ChangeRotationConfig(gameConfig, 0); // set server's rotationconfig
}
RotationConfig gameConfig = GBConfigLoader.LoadRotationConfig(null); // the argument doesn't matter as we do stuff in the method
ServerConfig serverConfig = NetConfigLoader.LoadServerConfig(); // load default server config, because it can be overridden by args like -ip and -port
MonoSingleton<Global>.Instance.UNetManager.LaunchServer(serverConfig); // launch the server with the server config
MonoSingleton<Global>.Instance.UNetManager.GetComponent<GameManagerNew>().ChangeRotationConfig(gameConfig, 0); // set server's rotationconfig
}
public static void StopServer()
@ -63,7 +60,7 @@ public class GBSUServer : MonoBehaviour
Plugin.DestroyServerComp();
// go back to main menu
Helper.SwitchToMenu();
SceneManager.LoadScene("Menu");
}
/*
public string GetRemainingRoundTime()

View file

@ -1,11 +1,7 @@
using System;
using System.IO;
using GB.Core;
using GB.Networking.Utils;
using GB.Platform.Lobby;
using UnityEngine;
using UnityEngine.Analytics;
using UnityEngine.SceneManagement;
namespace GBSU.Addons;
public class Helper
@ -87,32 +83,4 @@ public class Helper
Plugin.Log.LogInfo("Set custom rotation config path at " + GameConfigPath);
}
}
public static void SwitchToMenu()
{
if (hosting)
{
GBSUGui.PushError("Please press the Stop server button instead!");
}
else
{
// uhm, time to panic!
// let's begin by disconnecting if theres an active connection
try
{
GBNetUtils.DisconnectSelf(false);
}
catch (Exception e)
{
Plugin.Log.LogWarning("Couldn't disconnect from server:\n" + e);
}
// go back to main menu
SceneManager.LoadScene(Global.MENU_SCENE_NAME);
// make sure our lobby state is menu
LobbyManager.Instance.LobbyStates.SelfState = LobbyState.Game.Menu;
}
}
}

View file

@ -60,10 +60,6 @@ public class Plugin : BaseUnityPlugin
{
Helper.serverip = CommandLineParser.Instance.GetValueForKey("-ip", false);
}
else
{
GBSUGui.PushError("Couldn't find the -ip CLI argument. Please refer to the documentation.");
}
if (CommandLineParser.Instance.KeyExists("-port"))
{
int.TryParse(CommandLineParser.Instance.GetValueForKey("-port", false), out Helper.serverport);