about summary refs log tree commit diff
path: root/OsuFederatedBeatmapApi/Events/State
diff options
context:
space:
mode:
Diffstat (limited to 'OsuFederatedBeatmapApi/Events/State')
-rw-r--r--OsuFederatedBeatmapApi/Events/State/BeatmapSetInfo.cs36
1 files changed, 35 insertions, 1 deletions
diff --git a/OsuFederatedBeatmapApi/Events/State/BeatmapSetInfo.cs b/OsuFederatedBeatmapApi/Events/State/BeatmapSetInfo.cs
index 8cfcf0d..7d6b455 100644
--- a/OsuFederatedBeatmapApi/Events/State/BeatmapSetInfo.cs
+++ b/OsuFederatedBeatmapApi/Events/State/BeatmapSetInfo.cs
@@ -1,12 +1,46 @@
+using System.Text.Json.Serialization;
 using LibMatrix;
 using LibMatrix.EventTypes;
 using LibMatrix.Interfaces;
 
 namespace OsuFederatedBeatmapApi.Events.State;
 
-[MatrixEvent(EventName = "gay.rory.beatmap_api.beatmap_set_info")]
+[MatrixEvent(EventName = EventName)]
 public class BeatmapSetInfo : EventContent {
+    public const string EventName = "gay.rory.beatmap_api.beatmap_set_info";
 
+    [JsonPropertyName("title")]
+    public string? Title { get; set; }
 
+    [JsonPropertyName("artist")]
+    public string? Artist { get; set; }
 
+    [JsonPropertyName("creator")]
+    public string? Creator { get; set; }
+
+    [JsonPropertyName("beatmaps")]
+    public Dictionary<int, BeatmapInfo> Beatmaps { get; set; } = new();
+
+    public class BeatmapInfo {
+        [JsonPropertyName("difficulty")]
+        public string? Difficulty { get; set; }
+
+        [JsonPropertyName("mode")]
+        public int? Mode { get; set; }
+
+        [JsonPropertyName("difficulty_rating")]
+        public double? DifficultyRating { get; set; }
+
+        [JsonPropertyName("total_length")]
+        public int? TotalLength { get; set; }
+
+        [JsonPropertyName("bpm")]
+        public double? BPM { get; set; }
+
+        [JsonPropertyName("max_combo")]
+        public int? MaxCombo { get; set; }
+
+        // [JsonPropertyName("drain")]
+        // public double? Drain { get; set; }
+    }
 }