Decompiled source of ValhallaTraderBridge v1.0.0

ValhallaTraderBridge.dll

Decompiled a day ago
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using HarmonyLib;
using ImmersiveTrader.Components;
using UnityEngine;
using ValheimProfessions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace ValhallaTraderBridge;

[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("hu.valhalla.valheim.traderbridge", "Valhalla Trader Profession Bridge", "1.0.0")]
public class ValhallaTraderBridgePlugin : BaseUnityPlugin
{
	private Harmony harmony;

	private void Awake()
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Expected O, but got Unknown
		((BaseUnityPlugin)this).Logger.LogInfo((object)"Valhalla Trader Profession Bridge betöltve! Szakma ellenőrzés aktív.");
		harmony = new Harmony("hu.valhalla.valheim.traderbridge");
		try
		{
			harmony.PatchAll();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Valhalla Trader Profession Bridge Harmony patch-ek sikeresen alkalmazva.");
		}
		catch (Exception ex)
		{
			((BaseUnityPlugin)this).Logger.LogError((object)("Hiba a patch-ek alkalmazásakor: " + ex.Message));
		}
	}

	private void OnDestroy()
	{
		try
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
		catch
		{
		}
	}

	public static bool PlayerHasProfession(Player player)
	{
		if ((Object)(object)player == (Object)null)
		{
			return false;
		}
		try
		{
			return ProfessionManager.GetActive(player).HasValue;
		}
		catch
		{
			return false;
		}
	}

	public static void NotifyProfessionBlock(Player player)
	{
		if (!((Object)(object)player == (Object)null))
		{
			((Character)player).Message((MessageType)2, "A kalmár nem áll szóba veled:\n<color=#EAA63B>'Te már mesterséget tanultál egy céhnél!\nCsak a szakma nélküli vándorokkal üzletelünk!'</color>", 0, (Sprite)null, false);
		}
	}
}
[HarmonyPatch(typeof(TraderNpc), "Interact")]
public static class Patch_TraderNpc_Interact
{
	public static bool Prefix(Humanoid user, ref bool __result)
	{
		Player val = (Player)(object)((user is Player) ? user : null);
		if ((Object)(object)val != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(val))
		{
			ValhallaTraderBridgePlugin.NotifyProfessionBlock(val);
			__result = false;
			return false;
		}
		return true;
	}
}
[HarmonyPatch(typeof(TraderNoticeBoard), "Interact")]
public static class Patch_TraderNoticeBoard_Interact
{
	public static bool Prefix(Humanoid user, ref bool __result)
	{
		Player val = (Player)(object)((user is Player) ? user : null);
		if ((Object)(object)val != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(val))
		{
			ValhallaTraderBridgePlugin.NotifyProfessionBlock(val);
			__result = false;
			return false;
		}
		return true;
	}
}
[HarmonyPatch(typeof(TraderCaravan), "Interact")]
public static class Patch_TraderCaravan_Interact
{
	public static bool Prefix(Humanoid user, ref bool __result)
	{
		Player val = (Player)(object)((user is Player) ? user : null);
		if ((Object)(object)val != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(val))
		{
			ValhallaTraderBridgePlugin.NotifyProfessionBlock(val);
			__result = false;
			return false;
		}
		return true;
	}
}
[HarmonyPatch(typeof(TraderNpc), "GetHoverText")]
public static class Patch_TraderNpc_GetHoverText
{
	public static void Postfix(ref string __result)
	{
		if ((Object)(object)Player.m_localPlayer != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(Player.m_localPlayer))
		{
			__result += "\n<color=#FF6666>[Mesterséggel rendelkezel - A kalmár elutasít]</color>";
		}
	}
}
[HarmonyPatch(typeof(TraderNoticeBoard), "GetHoverText")]
public static class Patch_TraderNoticeBoard_GetHoverText
{
	public static void Postfix(ref string __result)
	{
		if ((Object)(object)Player.m_localPlayer != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(Player.m_localPlayer))
		{
			__result += "\n<color=#FF6666>[Mesterséggel rendelkezel - A hirdetőtábla elutasít]</color>";
		}
	}
}
[HarmonyPatch(typeof(TraderCaravan), "GetHoverText")]
public static class Patch_TraderCaravan_GetHoverText
{
	public static void Postfix(ref string __result)
	{
		if ((Object)(object)Player.m_localPlayer != (Object)null && ValhallaTraderBridgePlugin.PlayerHasProfession(Player.m_localPlayer))
		{
			__result += "\n<color=#FF6666>[Mesterséggel rendelkezel - A karaván elutasít]</color>";
		}
	}
}