PS: 你可以使用d-feet来查看所有可用的DBus接口
用于确认DBus连接是否正常,以及向游戏内发送消息等
-
Greet-
确认DBus连接是否正常
-
参数:
string s1: 发送方的名字
-
返回:
string: 接收方的名字,默认是"null"
-
-
SendMessage-
向游戏内发送信息
-
参数:
string s1: 要发送的消息
-
返回:
bool: 玩家是否允许此功能的使用
-
注:
- 当
s1为空时,游戏内不会显示任何通知也不会记录任何东西 - 通过此接口发送的消息会被游戏记录到日志中
- 当
-
-
Online-
客户端上线
-
返回(?)
string s1: 上线原因
-
-
Offline-
客户端离线
-
返回(?)
string s1: 离线原因
-
用于获取当前音频的进度以及长度
-
GetTrackLength-
获取当前音频的长度
-
参数:
- 无
-
返回:
double: 当前音频的长度,以毫秒为单位
-
-
GetTrackProgress-
获取当前音频的进度
-
参数:
- 无
-
返回:
double: 当前音频的进度,以毫秒为单位
-
-
Current-
当前音频的进度(毫秒)
-
类型:
- double
-
-
Length-
当前音频的长度(毫秒)
-
类型:
- double
-
用于获取当前谱面信息
-
GetBPM-
获取当前谱面BPM
-
参数:
- 无
-
返回:
double: 当前谱面BPM
-
-
GetCurrentDifficultyStar-
获取当前谱面难度星级
-
参数:
- 无
-
返回:
string: 当前谱面难度星级
-
-
GetCurrentDifficultyVersion-
获取当前谱面难度名
-
参数:
- 无
-
返回:
string: 当前谱面难度名(如 "Insane", "xxx's Extra")
-
-
GetFullName-
获取当前谱面完整名称
-
参数:
- 无
-
返回:
string: 根据"艺术家名 - 歌曲名称"返回当前谱面完整名(如:tomatoism - Someone Special、陈致逸 @HOYO-MiX - 真红骑士,出发!)
-
注:
- 艺术家名和歌曲名将优先使用Unicode版本
-
-
GetOnlineId-
获取当前谱面在线图号
-
参数:
- 无
-
返回:
int n1: 在线图号
-
注:
- 前往 "
https://osu.ppy.sh/beatmaps/{n1}" 可以直接查询到该图号对应的谱面信息
- 前往 "
-
-
BPM-
谱面BPM
-
类型:
- double
-
-
Stars:-
谱面难度星级
-
类型:
- double
-
-
OnlineID:-
谱面在线图号
-
类型:
- int32
-
-
FullName:-
谱面全名
-
类型:
- string
-
-
Version:-
谱面难度名
-
类型:
- string
-
用于获取当前用户信息
-
GetCurrentRuleset-
获取当前游戏模式
-
参数:
- 无
-
返回:
string: 游戏模式全名
-
-
GetLaunchTick-
获取当前游戏运行时间
-
参数:
- 无
-
返回:
int64(long): 游戏运行时间(DateTime.Now.Ticks - loadTick.Ticks)
-
-
GetPP-
显而易见
-
参数:
- 无
-
返回:
int32: pp数
-
-
GetActivity-
获取用户当前状态
-
参数:
- 无
-
返回:
string: 当前状态(如: "正在选图"、"正在戳泡泡"、"闲置")
-
-
GetAvatarUrl-
获取用户头像URL
-
参数:
- 无
-
返回:
string: 头像URL
-
注:
- 若用户没有登录,则返回空字符串(string.Empty)
-
-
GetRegionRank-
获取用户在当前国家/地区的排名
-
参数:
- 无
-
返回:
int32: 排名结果
-
注:
- 若用户没有登录,则返回-1
-
-
GetRank-
获取用户的全球排名
-
参数:
- 无
-
返回:
int32: 排名结果
-
注:
- 若用户没有登录,则返回-1
-
-
GetName-
获取用户名
-
参数:
- 无
-
返回:
string: 用户名
-
-
GlobalRank-
全球排名
-
类型
- int32
-
-
RegionRank-
国家/地区排行
-
类型
- int32
-
-
PP-
PP值
-
类型
- int32
-
-
Activity-
当前活动
-
类型
- string
-
-
AvatarUrl-
头像URL
-
类型
- string
-
-
CurrentRuleset-
当前游戏模式
-
类型
- string
-
-
Name-
当前名称
-
类型
- string
-
用于获取当前收藏夹信息
-
GetCurrentCollectionName-
获取当前收藏夹名
-
参数:
- 无
-
返回:
string: 当前收藏夹名
-
注:
- 若未选择收藏夹,或插件被禁用,则返回"
-" - 用户可能也会将收藏夹名称设置为"
-"
- 若未选择收藏夹,或插件被禁用,则返回"
-
-
GetCurrentIndex-
获取当前歌曲在收藏夹中的位置
-
参数:
- 无
-
返回:
int: 当前位置
-
注:
- 若未选择收藏夹、插件被禁用,或当前歌曲不在收藏夹中,则返回-1
-
-
Position:-
当前歌曲在收藏夹中的位置
-
类型
- int32
-
-
Name:-
当前收藏夹名称
-
类型
- string
-
用于获取当前歌词信息
-
GetCurrentLineRaw-
获取当前原始歌词
-
参数:
- 无
-
返回:
string: 歌词内容
-
注:
- 若插件被禁用,则返回"
-" - 用户可能也会将原始歌词设置为"
-"
- 若插件被禁用,则返回"
-
-
GetCurrentLineTranslated-
获取当前翻译歌词
-
参数:
- 无
-
返回:
string: 歌词内容
-
注:
- 若插件被禁用,则返回"
-" - 用户可能也会将翻译歌词设置为"
-"
- 若插件被禁用,则返回"
-
-
RawString:-
原始歌词
-
类型
- string
-
-
TranslatedString:-
翻译歌词
-
类型
- string
-
比方说,要注册一个FooDBusObject到DBus上,你可以:
//创建新的DBus服务
private readonly FooDBusObject dbusObject = new FooDBusObject();
...
[BackgroundDependencyLoader]
private void load(...)
{
...
//向插件管理器提交注册
PluginManager.RegisterDBusObject(dbusObject);
if (MvisScreen != null)
{
//在播放器退出时执行onMvisExiting
MvisScreen.OnScreenExiting += onMvisExiting;
}
}
...
//退出播放器时要执行的操作
private void onMvisExiting()
{
...
//向插件管理器提交反注册
PluginManager.UnRegisterDBusObject(dbusObject);
...
}