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
@@ -394,8 +394,11 @@ namespace Barotrauma.Networking
Character character = Character.CharacterList[i]; Character character = Character.CharacterList[i];
if (character.IsDead || !character.ClientDisconnected) { continue; } if (character.IsDead || !character.ClientDisconnected) { continue; }
character.KillDisconnectedTimer += deltaTime; if (GameMain.Lua.game.disableDisconnectCharacter)
character.SetStun(1.0f); {
character.KillDisconnectedTimer += deltaTime;
character.SetStun(1.0f);
}
Client owner = connectedClients.Find(c => c.EndpointMatches(character.OwnerClientEndPoint)); Client owner = connectedClients.Find(c => c.EndpointMatches(character.OwnerClientEndPoint));
@@ -24,11 +24,11 @@ defaultLib["TraitorMessageType"] = CreateStatic("Networking.TraitorMessageType")
defaultLib["CauseOfDeathType"] = CreateStatic("CauseOfDeathType") defaultLib["CauseOfDeathType"] = CreateStatic("CauseOfDeathType")
defaultLib["AfflictionPrefab"] = CreateStatic("AfflictionPrefab") defaultLib["AfflictionPrefab"] = CreateStatic("AfflictionPrefab")
defaultLib["CharacterTeamType"] = CreateStatic("CharacterTeamType") defaultLib["CharacterTeamType"] = CreateStatic("CharacterTeamType")
defaultLib["Vector2"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector2") defaultLib["Vector2"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector2")
defaultLib["Vector3"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector3") defaultLib["Vector3"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector3")
defaultLib["Vector4"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector4") defaultLib["Vector4"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Vector4")
defaultLib["Color"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Color") defaultLib["Color"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Color")
defaultLib["Point"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Point") defaultLib["Point"] = LuaUserData.CreateStatic("Microsoft.Xna.Framework.Point")
defaultLib["ChatMessage"] = CreateStatic("Networking.ChatMessage") defaultLib["ChatMessage"] = CreateStatic("Networking.ChatMessage")
defaultLib["Hull"] = CreateStatic("Hull") defaultLib["Hull"] = CreateStatic("Hull")
defaultLib["InvSlotType"] = CreateStatic("InvSlotType") defaultLib["InvSlotType"] = CreateStatic("InvSlotType")
@@ -41,7 +41,7 @@ defaultLib["ClientPacketHeader"] = CreateStatic("Networking.ClientPacketHeader")
defaultLib["ServerPacketHeader"] = CreateStatic("Networking.ServerPacketHeader") defaultLib["ServerPacketHeader"] = CreateStatic("Networking.ServerPacketHeader")
defaultLib["RandSync"] = CreateStatic("Rand+RandSync") defaultLib["RandSync"] = CreateStatic("Rand+RandSync")
defaultLib["SubmarineInfo"] = CreateStatic("SubmarineInfo") 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["Entity"] = CreateStatic("Entity")
defaultLib["Physics"] = CreateStatic("Physics") defaultLib["Physics"] = CreateStatic("Physics")
@@ -131,6 +131,7 @@ namespace Barotrauma
public bool overrideRespawnSub = false; public bool overrideRespawnSub = false;
public bool overrideSignalRadio = false; public bool overrideSignalRadio = false;
public bool disableSpamFilter = false; public bool disableSpamFilter = false;
public bool disableDisconnectCharacter = false;
public bool RoundStarted public bool RoundStarted
{ {
@@ -202,6 +203,11 @@ namespace Barotrauma
disableSpamFilter = o; 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) 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); new Explosion(range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength).Explode(pos, null);
@@ -651,9 +657,15 @@ namespace Barotrauma
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) => httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{ {
var httpResponse = httpWebRequest.EndGetResponse(result); try
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() }); 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); }), null);
}catch(Exception e) }catch(Exception e)
@@ -670,10 +682,16 @@ namespace Barotrauma
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) => httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{ {
var httpResponse = httpWebRequest.EndGetResponse(result); try
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() }); var httpResponse = httpWebRequest.EndGetResponse(result);
}), null); 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) catch(Exception e)
{ {