mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-10 16:14:45 +00:00
remove IncompatibleMods
This commit is contained in:
parent
d12e1a109e
commit
cd9db1656f
@ -33,7 +33,6 @@ public class Translation
|
|||||||
public string DLCMismatch;
|
public string DLCMismatch;
|
||||||
public string GameProgressLimit;
|
public string GameProgressLimit;
|
||||||
public string AddonMismatch;
|
public string AddonMismatch;
|
||||||
public string IncompatibleMod;
|
|
||||||
public string PlayerJoinedTheGame;
|
public string PlayerJoinedTheGame;
|
||||||
public string PlayerLeftTheGame;
|
public string PlayerLeftTheGame;
|
||||||
public string PlayerWasKicked;
|
public string PlayerWasKicked;
|
||||||
|
@ -16,8 +16,6 @@ public class PlayerJoinMessage : QSBMessage
|
|||||||
private string QSBVersion;
|
private string QSBVersion;
|
||||||
private string GameVersion;
|
private string GameVersion;
|
||||||
private bool DlcInstalled;
|
private bool DlcInstalled;
|
||||||
// empty if no incompatible mods
|
|
||||||
private string FirstIncompatibleMod;
|
|
||||||
|
|
||||||
private int[] AddonHashes;
|
private int[] AddonHashes;
|
||||||
|
|
||||||
@ -28,18 +26,6 @@ public class PlayerJoinMessage : QSBMessage
|
|||||||
GameVersion = QSBCore.GameVersion;
|
GameVersion = QSBCore.GameVersion;
|
||||||
DlcInstalled = QSBCore.DLCInstalled;
|
DlcInstalled = QSBCore.DLCInstalled;
|
||||||
|
|
||||||
var allEnabledMods = QSBCore.Helper.Interaction.GetMods();
|
|
||||||
|
|
||||||
FirstIncompatibleMod = "";
|
|
||||||
|
|
||||||
foreach (var mod in allEnabledMods)
|
|
||||||
{
|
|
||||||
if (QSBCore.IncompatibleMods.Contains(mod.ModHelper.Manifest.UniqueName))
|
|
||||||
{
|
|
||||||
FirstIncompatibleMod = mod.ModHelper.Manifest.UniqueName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AddonHashes = QSBCore.Addons.Keys
|
AddonHashes = QSBCore.Addons.Keys
|
||||||
.Except(QSBCore.CosmeticAddons)
|
.Except(QSBCore.CosmeticAddons)
|
||||||
.Select(x => x.GetStableHashCode())
|
.Select(x => x.GetStableHashCode())
|
||||||
@ -53,7 +39,6 @@ public class PlayerJoinMessage : QSBMessage
|
|||||||
writer.Write(QSBVersion);
|
writer.Write(QSBVersion);
|
||||||
writer.Write(GameVersion);
|
writer.Write(GameVersion);
|
||||||
writer.Write(DlcInstalled);
|
writer.Write(DlcInstalled);
|
||||||
writer.Write(FirstIncompatibleMod);
|
|
||||||
|
|
||||||
writer.Write(AddonHashes);
|
writer.Write(AddonHashes);
|
||||||
}
|
}
|
||||||
@ -65,7 +50,6 @@ public class PlayerJoinMessage : QSBMessage
|
|||||||
QSBVersion = reader.ReadString();
|
QSBVersion = reader.ReadString();
|
||||||
GameVersion = reader.ReadString();
|
GameVersion = reader.ReadString();
|
||||||
DlcInstalled = reader.Read<bool>();
|
DlcInstalled = reader.Read<bool>();
|
||||||
FirstIncompatibleMod = reader.ReadString();
|
|
||||||
|
|
||||||
AddonHashes = reader.Read<int[]>();
|
AddonHashes = reader.Read<int[]>();
|
||||||
}
|
}
|
||||||
@ -119,12 +103,6 @@ public class PlayerJoinMessage : QSBMessage
|
|||||||
new PlayerKickMessage(From, string.Format(QSBLocalization.Current.AddonMismatch, AddonHashes.Length, addonHashes.Length)).Send();
|
new PlayerKickMessage(From, string.Format(QSBLocalization.Current.AddonMismatch, AddonHashes.Length, addonHashes.Length)).Send();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FirstIncompatibleMod != "" && !QSBCore.IncompatibleModsAllowed)
|
|
||||||
{
|
|
||||||
DebugLog.ToConsole($"Error - Client {PlayerName} connecting with incompatible mod. (First mod found was {FirstIncompatibleMod})");
|
|
||||||
new PlayerKickMessage(From, string.Format(QSBLocalization.Current.IncompatibleMod, FirstIncompatibleMod)).Send();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var player = QSBPlayerManager.GetPlayer(From);
|
var player = QSBPlayerManager.GetPlayer(From);
|
||||||
|
@ -66,7 +66,6 @@ public class QSBCore : ModBehaviour
|
|||||||
Application.version.Split('.').Take(3).Join(delimiter: ".");
|
Application.version.Split('.').Take(3).Join(delimiter: ".");
|
||||||
public static bool DLCInstalled => EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned;
|
public static bool DLCInstalled => EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned;
|
||||||
public static bool UseKcpTransport { get; private set; }
|
public static bool UseKcpTransport { get; private set; }
|
||||||
public static bool IncompatibleModsAllowed { get; private set; }
|
|
||||||
public static bool ShowPlayerNames { get; private set; }
|
public static bool ShowPlayerNames { get; private set; }
|
||||||
public static bool ShipDamage { get; private set; }
|
public static bool ShipDamage { get; private set; }
|
||||||
public static bool ShowExtraHUDElements { get; private set; }
|
public static bool ShowExtraHUDElements { get; private set; }
|
||||||
@ -86,15 +85,6 @@ public class QSBCore : ModBehaviour
|
|||||||
|
|
||||||
public static Assembly QSBNHAssembly = null;
|
public static Assembly QSBNHAssembly = null;
|
||||||
|
|
||||||
public static readonly string[] IncompatibleMods =
|
|
||||||
{
|
|
||||||
// probably extremely outdated list. oh well
|
|
||||||
"Vesper.AutoResume",
|
|
||||||
"Vesper.OuterWildsMMO",
|
|
||||||
"_nebula.StopTime",
|
|
||||||
"PacificEngine.OW_CommonResources" // breaks random shit in NH so i do not trust it here
|
|
||||||
};
|
|
||||||
|
|
||||||
public static event Action OnSkinsBundleLoaded;
|
public static event Action OnSkinsBundleLoaded;
|
||||||
|
|
||||||
public override object GetApi() => new QSBAPI();
|
public override object GetApi() => new QSBAPI();
|
||||||
@ -414,7 +404,6 @@ public class QSBCore : ModBehaviour
|
|||||||
QSBNetworkManager.UpdateTransport();
|
QSBNetworkManager.UpdateTransport();
|
||||||
|
|
||||||
DefaultServerIP = config.GetSettingsValue<string>("defaultServerIP");
|
DefaultServerIP = config.GetSettingsValue<string>("defaultServerIP");
|
||||||
IncompatibleModsAllowed = config.GetSettingsValue<bool>("incompatibleModsAllowed");
|
|
||||||
ShowPlayerNames = config.GetSettingsValue<bool>("showPlayerNames");
|
ShowPlayerNames = config.GetSettingsValue<bool>("showPlayerNames");
|
||||||
ShipDamage = config.GetSettingsValue<bool>("shipDamage");
|
ShipDamage = config.GetSettingsValue<bool>("shipDamage");
|
||||||
ShowExtraHUDElements = config.GetSettingsValue<bool>("showExtraHud");
|
ShowExtraHUDElements = config.GetSettingsValue<bool>("showExtraHud");
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "DLC Installationsstatus stimmt nicht überein. (Client:{0}, Server:{1})",
|
"DLCMismatch": "DLC Installationsstatus stimmt nicht überein. (Client:{0}, Server:{1})",
|
||||||
"GameProgressLimit": "Spiel ist zu weit fortgeschritten.",
|
"GameProgressLimit": "Spiel ist zu weit fortgeschritten.",
|
||||||
"AddonMismatch": "Addons stimmen nicht überein. (Client:{0} addons, Server:{1} addons)",
|
"AddonMismatch": "Addons stimmen nicht überein. (Client:{0} addons, Server:{1} addons)",
|
||||||
"IncompatibleMod": "Es wird eine inkompatible/unerlaubte Modifikation genutzt. Die erste gefundene Modifikation war {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} trat bei!",
|
"PlayerJoinedTheGame": "{0} trat bei!",
|
||||||
"PlayerLeftTheGame": "{0} verließ!",
|
"PlayerLeftTheGame": "{0} verließ!",
|
||||||
"PlayerWasKicked": "{0} wurde gekickt.",
|
"PlayerWasKicked": "{0} wurde gekickt.",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "DLC installation state does not match. (Client:{0}, Server:{1})",
|
"DLCMismatch": "DLC installation state does not match. (Client:{0}, Server:{1})",
|
||||||
"GameProgressLimit": "Game has progressed too far.",
|
"GameProgressLimit": "Game has progressed too far.",
|
||||||
"AddonMismatch": "Addon mismatch. (Client:{0} addons, Server:{1} addons)",
|
"AddonMismatch": "Addon mismatch. (Client:{0} addons, Server:{1} addons)",
|
||||||
"IncompatibleMod": "Using an incompatible/disallowed mod. First mod found was {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} joined!",
|
"PlayerJoinedTheGame": "{0} joined!",
|
||||||
"PlayerLeftTheGame": "{0} left!",
|
"PlayerLeftTheGame": "{0} left!",
|
||||||
"PlayerWasKicked": "{0} was kicked.",
|
"PlayerWasKicked": "{0} was kicked.",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "Les états d'installation du DLC ne correspondent pas. (Client:{0}, Serveur:{1})",
|
"DLCMismatch": "Les états d'installation du DLC ne correspondent pas. (Client:{0}, Serveur:{1})",
|
||||||
"GameProgressLimit": "Le jeu a trop progressé.",
|
"GameProgressLimit": "Le jeu a trop progressé.",
|
||||||
"AddonMismatch": "Non-concordance des addons. (Client:{0} addons, Serveur:{1} addons)",
|
"AddonMismatch": "Non-concordance des addons. (Client:{0} addons, Serveur:{1} addons)",
|
||||||
"IncompatibleMod": "Tu utilises un mod incompatible/non autorisé. Le premier mod trouvé était {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} a rejoint!",
|
"PlayerJoinedTheGame": "{0} a rejoint!",
|
||||||
"PlayerLeftTheGame": "{0} est parti!",
|
"PlayerLeftTheGame": "{0} est parti!",
|
||||||
"PlayerWasKicked": "{0} a été expulsé.",
|
"PlayerWasKicked": "{0} a été expulsé.",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "O estado da instalação da DLC não correspondem. (Cliente:{0}, Servidor:{1})",
|
"DLCMismatch": "O estado da instalação da DLC não correspondem. (Cliente:{0}, Servidor:{1})",
|
||||||
"GameProgressLimit": "O jogo progrediu além do limite.",
|
"GameProgressLimit": "O jogo progrediu além do limite.",
|
||||||
"AddonMismatch": "Incompatibilidade de Addons. (Cliente:{0} addons, Servidor:{1} addons)",
|
"AddonMismatch": "Incompatibilidade de Addons. (Cliente:{0} addons, Servidor:{1} addons)",
|
||||||
"IncompatibleMod": "Usando um mod incompativel ou não permitido. Primeiro mod encontrado foi {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} entrou!",
|
"PlayerJoinedTheGame": "{0} entrou!",
|
||||||
"PlayerLeftTheGame": "{0} saiu!",
|
"PlayerLeftTheGame": "{0} saiu!",
|
||||||
"PlayerWasKicked": "{0} foi expulso.",
|
"PlayerWasKicked": "{0} foi expulso.",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "Состояние присутствия DLC отличается. (Клиент:{0}, Сервер:{1})",
|
"DLCMismatch": "Состояние присутствия DLC отличается. (Клиент:{0}, Сервер:{1})",
|
||||||
"GameProgressLimit": "Игра продолжалась слишком долго.",
|
"GameProgressLimit": "Игра продолжалась слишком долго.",
|
||||||
"AddonMismatch": "Аддоны различаются. (Клиент:{0} аддонов, Сервер:{1} аддонов)",
|
"AddonMismatch": "Аддоны различаются. (Клиент:{0} аддонов, Сервер:{1} аддонов)",
|
||||||
"IncompatibleMod": "Используется несовместимый(ые)/неразрешенный(ые) мод(ы). Первый из них - {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} подключился!",
|
"PlayerJoinedTheGame": "{0} подключился!",
|
||||||
"PlayerWasKicked": "{0} был отключён.",
|
"PlayerWasKicked": "{0} был отключён.",
|
||||||
"KickedFromServer": "Отключён от сервера. Причина : {0}",
|
"KickedFromServer": "Отключён от сервера. Причина : {0}",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "El estado de instalación del DLC no coincide. (Cliente:{0}, Servidor:{1})",
|
"DLCMismatch": "El estado de instalación del DLC no coincide. (Cliente:{0}, Servidor:{1})",
|
||||||
"GameProgressLimit": "El juego ha progresado mas del límite permitido.",
|
"GameProgressLimit": "El juego ha progresado mas del límite permitido.",
|
||||||
"AddonMismatch": "Incompatibilidad de Addons. (Cliente:{0} addons, Servidor:{1} addons)",
|
"AddonMismatch": "Incompatibilidad de Addons. (Cliente:{0} addons, Servidor:{1} addons)",
|
||||||
"IncompatibleMod": "Se está usando un mod incompatible/no permitido. El primer mod encontrado ha sido {0}",
|
|
||||||
"PlayerJoinedTheGame": "¡{0} se ha unido!",
|
"PlayerJoinedTheGame": "¡{0} se ha unido!",
|
||||||
"PlayerWasKicked": "{0} ha sido expulsado.",
|
"PlayerWasKicked": "{0} ha sido expulsado.",
|
||||||
"KickedFromServer": "Expulsado del servidor. Razón : {0}",
|
"KickedFromServer": "Expulsado del servidor. Razón : {0}",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "DLC yüklenme durumu uyumlu değil. (İstemci:{0}, Sunucu:{1})",
|
"DLCMismatch": "DLC yüklenme durumu uyumlu değil. (İstemci:{0}, Sunucu:{1})",
|
||||||
"GameProgressLimit": "Oyun çok fazla ilerlemiş.",
|
"GameProgressLimit": "Oyun çok fazla ilerlemiş.",
|
||||||
"AddonMismatch": "Yüklü eklentiler uyumsuz. (İstemci:{0} eklentileri, Sunucu:{1} eklentileri)",
|
"AddonMismatch": "Yüklü eklentiler uyumsuz. (İstemci:{0} eklentileri, Sunucu:{1} eklentileri)",
|
||||||
"IncompatibleMod": "İzin verilmeyen veya uyumsuz mod kullanılıyor. İlk bulunan mod {0}",
|
|
||||||
"PlayerJoinedTheGame": "{0} katıldı!",
|
"PlayerJoinedTheGame": "{0} katıldı!",
|
||||||
"PlayerLeftTheGame": "{0} ayrıldı.",
|
"PlayerLeftTheGame": "{0} ayrıldı.",
|
||||||
"PlayerWasKicked": "{0} atıldı.",
|
"PlayerWasKicked": "{0} atıldı.",
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
"DLCMismatch": "DLC安装情况不匹配。(客户端:{0},服务端:{1})",
|
"DLCMismatch": "DLC安装情况不匹配。(客户端:{0},服务端:{1})",
|
||||||
"GameProgressLimit": "游戏中时间太久了。",
|
"GameProgressLimit": "游戏中时间太久了。",
|
||||||
"AddonMismatch": "插件不匹配(客户端:{0}插件,服务端:{1}插件)",
|
"AddonMismatch": "插件不匹配(客户端:{0}插件,服务端:{1}插件)",
|
||||||
"IncompatibleMod": "使用了不兼容/不允许的模组,检测到的第一个模组是{0}",
|
|
||||||
"PlayerJoinedTheGame": "{0}加入了游戏!",
|
"PlayerJoinedTheGame": "{0}加入了游戏!",
|
||||||
"PlayerWasKicked": "{0}被踢出了游戏。",
|
"PlayerWasKicked": "{0}被踢出了游戏。",
|
||||||
"KickedFromServer": "被踢出了游戏,理由是:{0}",
|
"KickedFromServer": "被踢出了游戏,理由是:{0}",
|
||||||
|
@ -28,12 +28,6 @@
|
|||||||
"value": "localhost",
|
"value": "localhost",
|
||||||
"tooltip": "Used if you leave the connect prompt blank."
|
"tooltip": "Used if you leave the connect prompt blank."
|
||||||
},
|
},
|
||||||
"incompatibleModsAllowed": {
|
|
||||||
"title": "Incompatible Mods Allowed",
|
|
||||||
"type": "toggle",
|
|
||||||
"value": false,
|
|
||||||
"tooltip": "Kicks players if they have certain mods."
|
|
||||||
},
|
|
||||||
"showPlayerNames": {
|
"showPlayerNames": {
|
||||||
"title": "Show Player Names",
|
"title": "Show Player Names",
|
||||||
"type": "toggle",
|
"type": "toggle",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user