buttplug connection, losing my mind over dotnet
This commit is contained in:
parent
73c65893e8
commit
a28bebc626
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
bin/
|
||||
obj/
|
||||
BepInEx
|
||||
FodyWeavers.xsd
|
||||
|
|
12
FodyWeavers.xml
Normal file
12
FodyWeavers.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||
<Costura>
|
||||
<IncludeAssemblies>
|
||||
System.*
|
||||
deniszykov.WebSocketListener
|
||||
Buttplug
|
||||
Buttplug.Client.Connectors.WebsocketConnector
|
||||
Newtonsoft.Json
|
||||
</IncludeAssemblies>
|
||||
</Costura>
|
||||
</Weavers>
|
|
@ -13,11 +13,15 @@
|
|||
</RestoreAdditionalProjectSources>
|
||||
<RootNamespace>MetalButtplug</RootNamespace>
|
||||
<NoWarn>$(NoWarn);NU1603</NoWarn>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.*" IncludeAssets="compile" />
|
||||
<PackageReference Include="BepInEx.PluginInfoProps" Version="2.*" />
|
||||
<PackageReference Include="Buttplug" Version="3.0.1" />
|
||||
<PackageReference Include="Buttplug.Client.Connectors.WebsocketConnector" Version="3.0.1" />
|
||||
|
||||
<Reference Include="UnityEngine.CoreModule">
|
||||
<HintPath>./BepInEx/interop/UnityEngine.CoreModule.dll</HintPath>
|
||||
</Reference>
|
||||
|
@ -27,5 +31,20 @@
|
|||
<Reference Include="Il2Cppmscorlib">
|
||||
<HintPath>./BepInEx/interop/Il2Cppmscorlib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Buttplug">
|
||||
<HintPath>./deps/Buttplug.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Buttplug.Client.Connectors.WebsocketConnector">
|
||||
<HintPath>./deps/Buttplug.Client.Connectors.WebsocketConnector.dll</HintPath>
|
||||
</Reference>
|
||||
|
||||
<!-- the crap that makes this fucking thing work -->
|
||||
<PackageReference Include="Costura.Fody" Version="5.7.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Fody" Version="6.8.0">
|
||||
<IncludeAssets>runtime; build; compile; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
using BepInEx.Logging;
|
||||
using BepInEx.Unity.IL2CPP;
|
||||
using HarmonyLib;
|
||||
using MetalButtplug.Utils;
|
||||
|
||||
namespace MetalButtplug;
|
||||
|
||||
|
@ -13,7 +14,10 @@ public class Plugin : BasePlugin {
|
|||
Plugin.Log = base.Log;
|
||||
|
||||
Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
|
||||
Log.LogInfo("GAY SEX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
|
||||
harmony.PatchAll(typeof(Patches.UpdateBeatPatch));
|
||||
Log.LogInfo("Applied patches");
|
||||
|
||||
ButtplugManager.Init();
|
||||
}
|
||||
}
|
||||
|
|
42
Utils/ButtplugManager.cs
Normal file
42
Utils/ButtplugManager.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using Buttplug.Client;
|
||||
using Buttplug.Client.Connectors.WebsocketConnector;
|
||||
|
||||
namespace MetalButtplug.Utils;
|
||||
|
||||
internal static class ButtplugManager {
|
||||
public static bool enabled = false;
|
||||
static ButtplugClient client;
|
||||
|
||||
public async static void Init() {
|
||||
ButtplugManager.client = new ButtplugClient("Metal: Hellsinger");
|
||||
|
||||
Plugin.Log.LogInfo("Attempting buttplug connection");
|
||||
|
||||
try {
|
||||
var connector = new ButtplugWebsocketConnector(new Uri("ws://localhost:12345"));
|
||||
await client.ConnectAsync(connector);
|
||||
Plugin.Log.LogInfo("Connected to buttplug server!");
|
||||
enabled = true;
|
||||
} catch(Exception ex) {
|
||||
Plugin.Log.LogWarning($"Failed to connect: {ex.Message}\nDisabling buttplug integration - Is Intiface running?");
|
||||
return;
|
||||
}
|
||||
|
||||
client.DeviceAdded += OnDeviceAdd;
|
||||
client.DeviceRemoved += OnDeviceRemove;
|
||||
|
||||
Plugin.Log.LogInfo($"Found devices:");
|
||||
foreach (ButtplugClientDevice device in client.Devices) {
|
||||
Plugin.Log.LogInfo($"- ${device.DisplayName}");
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnDeviceAdd(object sender, DeviceAddedEventArgs e) {
|
||||
Plugin.Log.LogInfo($"Device added: {e.Device.DisplayName}");
|
||||
}
|
||||
|
||||
private static void OnDeviceRemove(object sender, DeviceRemovedEventArgs e) {
|
||||
Plugin.Log.LogInfo($"Device removed: {e.Device.DisplayName}");
|
||||
}
|
||||
}
|
7
dev-build.sh
Executable file
7
dev-build.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
dotnet build
|
||||
rm -vrf BepInEx/plugins/MetalButtplug
|
||||
mkdir -v BepInEx/plugins/MetalButtplug
|
||||
#cp bin/Debug/net6.0/{MetalButtplug,Buttplug,Buttplug.Client.Connectors.WebsocketConnector,System.Threading.Channels}.dll BepInEx/plugins/MetalButtplug
|
||||
cp -v bin/Debug/net6.0/MetalButtplug.{pdb,dll} BepInEx/plugins/MetalButtplug/
|
Loading…
Reference in a new issue