It seems there is an issue with the BuildingSkins I'm getting this exception constantly
Failed to run a 1.00 timer in 'BuildingSkins v2.0.7' (NullReferenceException: Object reference not set to an instance of an object) at Oxide.Plugins.BuildingSkins.OnPlayerConnected (BasePlayer player) [0x00073] in :0 at Oxide.Plugins.BuildingSkins+<>c__DisplayClass14_0.b__0 () [0x00000] in :0 at Oxide.Core.Libraries.Timer+TimerInstance.FireCallback () [0x00018] in :0
BuildingSkins v2.0.7 Object reference not set to an instance of an object
I Just wrapped the OnPlayerConnect and OnPlayerREspawn Hooks with a try catch if anyone is interested on fixing this issue
private void OnPlayerConnected(BasePlayer player)
{
try {
if (player == null || !player.IsConnected) return;
if (player.IsReceivingSnapshot) {
timer.Once(1f, () => OnPlayerConnected(player));
return;
}
StartCoroutine(player, PreloadImages(player));
if (!storedData.PlayerData.TryGetValue(player.userID, out var data)) {
data = new Data {
ChangeHammer = true,
NeedsRepair = true,
EnableAnimation = true,
RandomColor = false,
Color = 9
};
storedData.PlayerData[player.userID] = data;
}
player.LastBlockColourChangeId = data.RandomColor ? player.LastBlockColourChangeId : data.Color;
} catch {
Puts("Error in Building Skin on OnPlayerConnected");
}
}
private void OnPlayerRespawned(BasePlayer player)
{
try { StopCoroutine(player);
if (player == null || !player.IsConnected) {
return;
}
var data = storedData.PlayerData.TryGetValue(player.userID, out var playerData) ? playerData : null;
player.LastBlockColourChangeId = data?.RandomColor == false ? data.Color : player.LastBlockColourChangeId;
} catch {
Puts("Error in Building Skin on OnPlayerRespawned" );
}
}