该内容使用了刷新卡,原发布时间:4星期前
正式版发布地址 https://play-live.bilibili.com/details/1772127832661?from=1
以下为测试版时期内容
—————————————————————————
沉浸式塔科夫直播弹幕(
2026.1.20最新进度
理论上只要有右下角提示的版本都能用……吧?
测试版,解压进Client.0.16.9.0.40087\BepInEx\plugins
DanMuNotifier.zip
12.38 KB,下载次数:6[记录]
模拟发送器
DanMuPipeTestClient.zip
80.74 KB,下载次数:5[记录]
由于各个直播平台的开放接口不同,请自行使用命名管道转发到bepinex,参考模拟发送器,以下是模拟发送器的源码。此外,即便eft的代码中存在Achievement图标类型,但是实际该图标不存在,所以去除了这个类型。
using System;
using System.IO;
using System.IO.Pipes;
using System.Text;
using System.Text.Json;
using System.Threading;
namespace DanMuPipeTestClient
{
internal static class Program
{
private const string PipeName = "DanMuNotifierPipe";
private static readonly Random Rng = new();
private static readonly string[] DurationTypes =
{
"Default",
"Long",
"Infinite"
};
private static readonly string[] IconTypes =
{
"Default",
"Alert",
"Friend",
"Mail",
"Note",
"Quest",
"EntryPoint",
"RagFair",
"Hideout",
"WishlistQuest",
"WishlistHideout",
"WishlistTrading",
"WishlistEquipment",
"WishlistOther"
};
static void Main()
{
Console.WriteLine("DanMu Pipe Test Client started.");
Console.WriteLine("Server may start later. Messages are best-effort.\n");
while (true)
{
var msg = BuildRandomMessage();
if (TrySend(msg))
{
Console.WriteLine($"[发送成功] {msg.Msg}");
}
else
{
Console.WriteLine($"[丢弃] Server 未就绪");
}
Thread.Sleep(TimeSpan.FromSeconds(3));
}
}
private static bool TrySend(DanMuJson msg)
{
try
{
using var pipe = new NamedPipeClientStream(
".",
PipeName,
PipeDirection.Out,
PipeOptions.None
);
// 关键点:短超时,避免卡死
pipe.Connect(timeout: 500);
using var writer = new StreamWriter(pipe, Encoding.UTF8)
{
AutoFlush = true
};
var json = JsonSerializer.Serialize(msg);
writer.WriteLine(json);
return true;
}
catch (TimeoutException)
{
return false;
}
catch (IOException)
{
return false;
}
catch (Exception ex)
{
Console.WriteLine($"[异常] {ex.Message}");
return false;
}
}
private static DanMuJson BuildRandomMessage()
{
return new DanMuJson
{
Msg = $"测试弹幕 {DateTime.Now:HH:mm:ss}",
Duration = DurationTypes[Rng.Next(DurationTypes.Length)],
IconType = IconTypes[Rng.Next(IconTypes.Length)],
Color = new[]
{
Rng.Next(80, 256),
Rng.Next(80, 256),
Rng.Next(80, 256)
}
};
}
private sealed class DanMuJson
{
public string Msg { get; set; } = string.Empty;
public string IconType { get; set; } = "Default";
public string Duration { get; set; } = "Default";
public int[] Color { get; set; } = Array.Empty<int>();
}
}
}











WS走API?
achievement不是不存在,是会从数据源读东西,读取的是成就图标和名字,就是跳成就的播报
话说这个走WS的话可以纯客户端实现吧?改天我写个和b站对接的试试看