fix http requests somehow causing weird errors when an exception happened inside it, for some reason i used registertype instead of createstatic, fix that, and added override disconnect character time

This commit is contained in:
Evil Factory
2021-11-08 12:12:35 -03:00
parent 72fff4ab73
commit 9d45eb7402
3 changed files with 36 additions and 15 deletions

View File

@@ -394,8 +394,11 @@ namespace Barotrauma.Networking
Character character = Character.CharacterList[i];
if (character.IsDead || !character.ClientDisconnected) { continue; }
character.KillDisconnectedTimer += deltaTime;
character.SetStun(1.0f);
if (GameMain.Lua.game.disableDisconnectCharacter)
{
character.KillDisconnectedTimer += deltaTime;
character.SetStun(1.0f);
}
Client owner = connectedClients.Find(c => c.EndpointMatches(character.OwnerClientEndPoint));

View File

@@ -24,11 +24,11 @@ defaultLib["TraitorMessageType"] = CreateStatic("Networking.TraitorMessageType")
defaultLib["CauseOfDeathType"] = CreateStatic("CauseOfDeathType")
defaultLib["AfflictionPrefab"] = CreateStatic("AfflictionPrefab")
defaultLib["CharacterTeamType"] = CreateStatic("CharacterTeamType")
defaultLib["Vector2"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector2")
defaultLib["Vector3"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector3")
defaultLib["Vector4"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector4")
defaultLib["Color"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Color")
defaultLib["Point"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Point")
defaultLib["Vector2"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector2")
defaultLib["Vector3"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector3")
defaultLib["Vector4"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector4")
defaultLib["Color"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Color")
defaultLib["Point"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Point")
defaultLib["ChatMessage"] = CreateStatic("Networking.ChatMessage")
defaultLib["Hull"] = CreateStatic("Hull")
defaultLib["InvSlotType"] = CreateStatic("InvSlotType")
@@ -41,7 +41,7 @@ defaultLib["ClientPacketHeader"] = CreateStatic("Networking.ClientPacketHeader")
defaultLib["ServerPacketHeader"] = CreateStatic("Networking.ServerPacketHeader")
defaultLib["RandSync"] = CreateStatic("Rand+RandSync")
defaultLib["SubmarineInfo"] = CreateStatic("SubmarineInfo")
defaultLib["Rectangle"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Rectangle")
defaultLib["Rectangle"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Rectangle")
defaultLib["Entity"] = CreateStatic("Entity")
defaultLib["Physics"] = CreateStatic("Physics")

View File

@@ -131,6 +131,7 @@ namespace Barotrauma
public bool overrideRespawnSub = false;
public bool overrideSignalRadio = false;
public bool disableSpamFilter = false;
public bool disableDisconnectCharacter = false;
public bool RoundStarted
{
@@ -202,6 +203,11 @@ namespace Barotrauma
disableSpamFilter = o;
}
public void DisableDisconnectCharacter(bool o)
{
disableDisconnectCharacter = o;
}
public static void Explode(Vector2 pos, float range = 100, float force = 30, float damage = 30, float structureDamage = 30, float itemDamage = 30, float empStrength = 0, float ballastFloraStrength = 0)
{
new Explosion(range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength).Explode(pos, null);
@@ -651,9 +657,15 @@ namespace Barotrauma
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
try
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
}catch(Exception e)
{
env.CallFunction(callback, new object[] { e.ToString() });
}
}), null);
}catch(Exception e)
@@ -670,10 +682,16 @@ namespace Barotrauma
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
}), null);
try
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
}catch (Exception e)
{
env.CallFunction(callback, new object[] { e.ToString() });
}
}), null);
}
catch(Exception e)
{