Decompiled source of SessionItemModal v1.0.1

plugins/SessionItemModal/SessionItemModal.dll

Decompiled 2 days ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using BepInEx.NET.Common;
using BepInExResoniteShim;
using Elements.Core;
using FrooxEngine;
using FrooxEngine.Store;
using FrooxEngine.UIX;
using HarmonyLib;
using SkyFrost.Base;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
[assembly: AssemblyCompany("art0007i")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyInformationalVersion("1.0.1+2763951fb3ebeb889333c690e22bd476520c190a")]
[assembly: AssemblyProduct("SessionItemModal")]
[assembly: AssemblyTitle("SessionItemModal")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/art0007i/SessionItemModal")]
[assembly: AssemblyVersion("1.0.1.0")]
[module: RefSafetyRules(11)]
namespace SessionItemModal;

[ResonitePlugin("art0007i.SessionItemModal", "SessionItemModal", "1.0.1", "art0007i", "https://github.com/art0007i/SessionItemModal")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Plugin : BasePlugin
{
	[HarmonyPatch(typeof(SessionItem), "BuildUI")]
	private class SessionItemModalPatch
	{
		public static void Postfix(UIBuilder ui, SyncRef<Image> ____thumbnail, SessionItem __instance)
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			((ContainerWorker<Component>)(object)((Component)____thumbnail.Target).Slot).AttachComponent<Button>(true, (Action<Button>)null).LocalPressed += (ButtonEventHandler)delegate(IButton b, ButtonEventData e)
			{
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0083: Unknown result type (might be due to invalid IL or missing references)
				//IL_0089: Unknown result type (might be due to invalid IL or missing references)
				CoroutineManager.Manager.Value = ((IWorldElement)b).World.Coroutines;
				string text = __instance.SessionInfo.SessionId;
				if (__instance.SessionInfo.CorrespondingWorldId != (RecordId)null)
				{
					text = ((object)__instance.SessionInfo.CorrespondingWorldId).ToString();
				}
				SessionInfo[] array = (SessionInfo[])(object)new SessionInfo[1] { __instance.SessionInfo };
				Slot slot = ((IComponent)b).Slot;
				float2 one = float2.One;
				RectTransform obj = ModalOverlayExtensions.OpenModalOverlay(slot, (ref one) * 0.8f, default(LocaleString), false, true);
				if (obj != null)
				{
					((LegacyWorldItem)((ContainerWorker<Component>)(object)((Component)obj).Slot).AttachComponent<LegacyWorldDetail>(true, (Action<LegacyWorldDetail>)null)).SetTarget(text, (Record)null, (global::System.Collections.Generic.IReadOnlyList<SessionInfo>)array, false);
				}
			};
		}
	}

	internal static ManualLogSource Log;

	public override void Load()
	{
		Log = ((BasePlugin)this).Log;
		((BasePlugin)this).HarmonyInstance.PatchAll();
	}
}
public static class PluginMetadata
{
	public const string GUID = "art0007i.SessionItemModal";

	public const string NAME = "SessionItemModal";

	public const string VERSION = "1.0.1";

	public const string AUTHORS = "art0007i";

	public const string REPOSITORY_URL = "https://github.com/art0007i/SessionItemModal";
}