Closed TheXorog closed 2 years ago
There's no proper documentation yet so i'll leave this here for reference.
Endpoint: ws://localhost:2947/socket
Handshake:
Event Objects:
[Serializable]
public class Event
{
[JsonProperty] internal string _type = "event";
[JsonProperty] internal string _event = "";
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
internal MapInfo mapInfoChanged = null;
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
internal string gameStateChanged = null;
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
internal Score scoreEvent = null;
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
internal uint? pauseTime = null;
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
internal uint? resumeTime = null;
internal void FeedEvent()
{
if (mapInfoChanged != null) _event = "mapInfo";
if (gameStateChanged != null) _event = "gameState";
if (scoreEvent != null) _event = "score";
if (pauseTime.HasValue) _event = "pause";
if (resumeTime.HasValue) _event = "resume";
}
}
[Serializable]
public class MapInfo
{
[JsonProperty] internal string level_id = "";
[JsonProperty] internal string name = "N/A";
[JsonProperty] internal string sub_name = "N/A";
[JsonProperty] internal string artist = "N/A";
[JsonProperty] internal string mapper = "N/A";
[JsonProperty] internal string difficulty = "N/A";
[JsonProperty] internal uint duration = 0;
[JsonProperty] internal float BPM = 0;
[JsonProperty] internal float PP = 0;
[JsonProperty] internal string BSRKey = "";
[JsonProperty] internal string coverRaw = "";
}
[Serializable]
public class Score
{
[JsonProperty] internal uint score = 0;
[JsonProperty] internal float accuracy = 0;
[JsonProperty] internal uint combo = 0;
[JsonProperty] internal uint missCount = 0;
[JsonProperty] internal float currentHealth = 0;
}
https://github.com/HyldraZolxy/BeatSaber-Overlay uses BeatSaberPlus as a way of getting the info in addition to DataPuller and Http-Status. Might as well add support for it as well.