mirror of
https://github.com/ppy/osu.git
synced 2025-02-26 07:22:57 +08:00
Revert database migration
This commit is contained in:
parent
8da671fa6c
commit
4475643726
@ -1,487 +0,0 @@
|
|||||||
// <auto-generated />
|
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
||||||
using osu.Game.Database;
|
|
||||||
|
|
||||||
namespace osu.Game.Migrations
|
|
||||||
{
|
|
||||||
[DbContext(typeof(OsuDbContext))]
|
|
||||||
[Migration("20190223075005_AddUserIDColumn")]
|
|
||||||
partial class AddUserIDColumn
|
|
||||||
{
|
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
||||||
{
|
|
||||||
#pragma warning disable 612, 618
|
|
||||||
modelBuilder
|
|
||||||
.HasAnnotation("ProductVersion", "2.2.1-servicing-10028");
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapDifficulty", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<float>("ApproachRate");
|
|
||||||
|
|
||||||
b.Property<float>("CircleSize");
|
|
||||||
|
|
||||||
b.Property<float>("DrainRate");
|
|
||||||
|
|
||||||
b.Property<float>("OverallDifficulty");
|
|
||||||
|
|
||||||
b.Property<double>("SliderMultiplier");
|
|
||||||
|
|
||||||
b.Property<double>("SliderTickRate");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.ToTable("BeatmapDifficulty");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("AudioLeadIn");
|
|
||||||
|
|
||||||
b.Property<int>("BaseDifficultyID");
|
|
||||||
|
|
||||||
b.Property<int>("BeatDivisor");
|
|
||||||
|
|
||||||
b.Property<int>("BeatmapSetInfoID");
|
|
||||||
|
|
||||||
b.Property<bool>("Countdown");
|
|
||||||
|
|
||||||
b.Property<double>("DistanceSpacing");
|
|
||||||
|
|
||||||
b.Property<int>("GridSize");
|
|
||||||
|
|
||||||
b.Property<string>("Hash");
|
|
||||||
|
|
||||||
b.Property<bool>("Hidden");
|
|
||||||
|
|
||||||
b.Property<bool>("LetterboxInBreaks");
|
|
||||||
|
|
||||||
b.Property<string>("MD5Hash");
|
|
||||||
|
|
||||||
b.Property<int?>("MetadataID");
|
|
||||||
|
|
||||||
b.Property<int?>("OnlineBeatmapID");
|
|
||||||
|
|
||||||
b.Property<string>("Path");
|
|
||||||
|
|
||||||
b.Property<int>("RulesetID");
|
|
||||||
|
|
||||||
b.Property<bool>("SpecialStyle");
|
|
||||||
|
|
||||||
b.Property<float>("StackLeniency");
|
|
||||||
|
|
||||||
b.Property<double>("StarDifficulty");
|
|
||||||
|
|
||||||
b.Property<int>("Status");
|
|
||||||
|
|
||||||
b.Property<string>("StoredBookmarks");
|
|
||||||
|
|
||||||
b.Property<double>("TimelineZoom");
|
|
||||||
|
|
||||||
b.Property<string>("Version");
|
|
||||||
|
|
||||||
b.Property<bool>("WidescreenStoryboard");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("BaseDifficultyID");
|
|
||||||
|
|
||||||
b.HasIndex("BeatmapSetInfoID");
|
|
||||||
|
|
||||||
b.HasIndex("Hash");
|
|
||||||
|
|
||||||
b.HasIndex("MD5Hash");
|
|
||||||
|
|
||||||
b.HasIndex("MetadataID");
|
|
||||||
|
|
||||||
b.HasIndex("OnlineBeatmapID")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("RulesetID");
|
|
||||||
|
|
||||||
b.ToTable("BeatmapInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapMetadata", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Artist");
|
|
||||||
|
|
||||||
b.Property<string>("ArtistUnicode");
|
|
||||||
|
|
||||||
b.Property<string>("AudioFile");
|
|
||||||
|
|
||||||
b.Property<string>("AuthorString")
|
|
||||||
.HasColumnName("Author");
|
|
||||||
|
|
||||||
b.Property<string>("BackgroundFile");
|
|
||||||
|
|
||||||
b.Property<int>("PreviewTime");
|
|
||||||
|
|
||||||
b.Property<string>("Source");
|
|
||||||
|
|
||||||
b.Property<string>("Tags");
|
|
||||||
|
|
||||||
b.Property<string>("Title");
|
|
||||||
|
|
||||||
b.Property<string>("TitleUnicode");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.ToTable("BeatmapMetadata");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapSetFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("BeatmapSetInfoID");
|
|
||||||
|
|
||||||
b.Property<int>("FileInfoID");
|
|
||||||
|
|
||||||
b.Property<string>("Filename")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("BeatmapSetInfoID");
|
|
||||||
|
|
||||||
b.HasIndex("FileInfoID");
|
|
||||||
|
|
||||||
b.ToTable("BeatmapSetFileInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapSetInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("DeletePending");
|
|
||||||
|
|
||||||
b.Property<string>("Hash");
|
|
||||||
|
|
||||||
b.Property<int?>("MetadataID");
|
|
||||||
|
|
||||||
b.Property<int?>("OnlineBeatmapSetID");
|
|
||||||
|
|
||||||
b.Property<bool>("Protected");
|
|
||||||
|
|
||||||
b.Property<int>("Status");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("DeletePending");
|
|
||||||
|
|
||||||
b.HasIndex("Hash")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("MetadataID");
|
|
||||||
|
|
||||||
b.HasIndex("OnlineBeatmapSetID")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("BeatmapSetInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Configuration.DatabasedSetting", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("IntKey")
|
|
||||||
.HasColumnName("Key");
|
|
||||||
|
|
||||||
b.Property<int?>("RulesetID");
|
|
||||||
|
|
||||||
b.Property<string>("StringValue")
|
|
||||||
.HasColumnName("Value");
|
|
||||||
|
|
||||||
b.Property<int?>("Variant");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("RulesetID", "Variant");
|
|
||||||
|
|
||||||
b.ToTable("Settings");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.IO.FileInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Hash");
|
|
||||||
|
|
||||||
b.Property<int>("ReferenceCount");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("Hash")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("ReferenceCount");
|
|
||||||
|
|
||||||
b.ToTable("FileInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Input.Bindings.DatabasedKeyBinding", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("IntAction")
|
|
||||||
.HasColumnName("Action");
|
|
||||||
|
|
||||||
b.Property<string>("KeysString")
|
|
||||||
.HasColumnName("Keys");
|
|
||||||
|
|
||||||
b.Property<int?>("RulesetID");
|
|
||||||
|
|
||||||
b.Property<int?>("Variant");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("IntAction");
|
|
||||||
|
|
||||||
b.HasIndex("RulesetID", "Variant");
|
|
||||||
|
|
||||||
b.ToTable("KeyBinding");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Rulesets.RulesetInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int?>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<bool>("Available");
|
|
||||||
|
|
||||||
b.Property<string>("InstantiationInfo");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.Property<string>("ShortName");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("Available");
|
|
||||||
|
|
||||||
b.HasIndex("ShortName")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("RulesetInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Scoring.ScoreFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("FileInfoID");
|
|
||||||
|
|
||||||
b.Property<string>("Filename")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<int?>("ScoreInfoID");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("FileInfoID");
|
|
||||||
|
|
||||||
b.HasIndex("ScoreInfoID");
|
|
||||||
|
|
||||||
b.ToTable("ScoreFileInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Scoring.ScoreInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<double>("Accuracy")
|
|
||||||
.HasColumnType("DECIMAL(1,4)");
|
|
||||||
|
|
||||||
b.Property<int>("BeatmapInfoID");
|
|
||||||
|
|
||||||
b.Property<int>("Combo");
|
|
||||||
|
|
||||||
b.Property<DateTimeOffset>("Date");
|
|
||||||
|
|
||||||
b.Property<bool>("DeletePending");
|
|
||||||
|
|
||||||
b.Property<string>("Hash");
|
|
||||||
|
|
||||||
b.Property<int>("MaxCombo");
|
|
||||||
|
|
||||||
b.Property<string>("ModsJson")
|
|
||||||
.HasColumnName("Mods");
|
|
||||||
|
|
||||||
b.Property<long?>("OnlineScoreID");
|
|
||||||
|
|
||||||
b.Property<double?>("PP");
|
|
||||||
|
|
||||||
b.Property<int>("Rank");
|
|
||||||
|
|
||||||
b.Property<int>("RulesetID");
|
|
||||||
|
|
||||||
b.Property<string>("StatisticsJson")
|
|
||||||
.HasColumnName("Statistics");
|
|
||||||
|
|
||||||
b.Property<int>("TotalScore");
|
|
||||||
|
|
||||||
b.Property<long>("UserID")
|
|
||||||
.HasColumnName("UserID");
|
|
||||||
|
|
||||||
b.Property<string>("UserString")
|
|
||||||
.HasColumnName("User");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("BeatmapInfoID");
|
|
||||||
|
|
||||||
b.HasIndex("OnlineScoreID")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.HasIndex("RulesetID");
|
|
||||||
|
|
||||||
b.ToTable("ScoreInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Skinning.SkinFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<int>("FileInfoID");
|
|
||||||
|
|
||||||
b.Property<string>("Filename")
|
|
||||||
.IsRequired();
|
|
||||||
|
|
||||||
b.Property<int>("SkinInfoID");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("FileInfoID");
|
|
||||||
|
|
||||||
b.HasIndex("SkinInfoID");
|
|
||||||
|
|
||||||
b.ToTable("SkinFileInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Skinning.SkinInfo", b =>
|
|
||||||
{
|
|
||||||
b.Property<int>("ID")
|
|
||||||
.ValueGeneratedOnAdd();
|
|
||||||
|
|
||||||
b.Property<string>("Creator");
|
|
||||||
|
|
||||||
b.Property<bool>("DeletePending");
|
|
||||||
|
|
||||||
b.Property<string>("Hash");
|
|
||||||
|
|
||||||
b.Property<string>("Name");
|
|
||||||
|
|
||||||
b.HasKey("ID");
|
|
||||||
|
|
||||||
b.HasIndex("DeletePending");
|
|
||||||
|
|
||||||
b.HasIndex("Hash")
|
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("SkinInfo");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapDifficulty", "BaseDifficulty")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("BaseDifficultyID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapSetInfo", "BeatmapSet")
|
|
||||||
.WithMany("Beatmaps")
|
|
||||||
.HasForeignKey("BeatmapSetInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapMetadata", "Metadata")
|
|
||||||
.WithMany("Beatmaps")
|
|
||||||
.HasForeignKey("MetadataID");
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Rulesets.RulesetInfo", "Ruleset")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RulesetID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapSetFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapSetInfo")
|
|
||||||
.WithMany("Files")
|
|
||||||
.HasForeignKey("BeatmapSetInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.IO.FileInfo", "FileInfo")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("FileInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapSetInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapMetadata", "Metadata")
|
|
||||||
.WithMany("BeatmapSets")
|
|
||||||
.HasForeignKey("MetadataID");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Scoring.ScoreFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.IO.FileInfo", "FileInfo")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("FileInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Scoring.ScoreInfo")
|
|
||||||
.WithMany("Files")
|
|
||||||
.HasForeignKey("ScoreInfoID");
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Scoring.ScoreInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.Beatmaps.BeatmapInfo", "Beatmap")
|
|
||||||
.WithMany("Scores")
|
|
||||||
.HasForeignKey("BeatmapInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Rulesets.RulesetInfo", "Ruleset")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("RulesetID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Skinning.SkinFileInfo", b =>
|
|
||||||
{
|
|
||||||
b.HasOne("osu.Game.IO.FileInfo", "FileInfo")
|
|
||||||
.WithMany()
|
|
||||||
.HasForeignKey("FileInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
b.HasOne("osu.Game.Skinning.SkinInfo")
|
|
||||||
.WithMany("Files")
|
|
||||||
.HasForeignKey("SkinInfoID")
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
});
|
|
||||||
#pragma warning restore 612, 618
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
namespace osu.Game.Migrations
|
|
||||||
{
|
|
||||||
public partial class AddUserIDColumn : Migration
|
|
||||||
{
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<long>(
|
|
||||||
name: "UserID",
|
|
||||||
table: "ScoreInfo",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0L);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "UserID",
|
|
||||||
table: "ScoreInfo");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -14,7 +14,7 @@ namespace osu.Game.Migrations
|
|||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "2.2.1-servicing-10028");
|
.HasAnnotation("ProductVersion", "2.2.0-rtm-35687");
|
||||||
|
|
||||||
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapDifficulty", b =>
|
modelBuilder.Entity("osu.Game.Beatmaps.BeatmapDifficulty", b =>
|
||||||
{
|
{
|
||||||
@ -338,9 +338,6 @@ namespace osu.Game.Migrations
|
|||||||
|
|
||||||
b.Property<int>("TotalScore");
|
b.Property<int>("TotalScore");
|
||||||
|
|
||||||
b.Property<long>("UserID")
|
|
||||||
.HasColumnName("UserID");
|
|
||||||
|
|
||||||
b.Property<string>("UserString")
|
b.Property<string>("UserString")
|
||||||
.HasColumnName("User");
|
.HasColumnName("User");
|
||||||
|
|
||||||
|
@ -114,21 +114,27 @@ namespace osu.Game.Scoring
|
|||||||
if (User == null)
|
if (User == null)
|
||||||
User = new User { Username = value, Id = UserID };
|
User = new User { Username = value, Id = UserID };
|
||||||
else
|
else
|
||||||
|
{
|
||||||
User.Username = value;
|
User.Username = value;
|
||||||
|
User.Id = UserID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
[Column("UserID")]
|
[Column("UserID")]
|
||||||
public long UserID
|
public long? UserID
|
||||||
{
|
{
|
||||||
get => User.Id;
|
get => User?.Id ?? 1;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (User == null)
|
if (User == null)
|
||||||
User = new User { Username = UserString, Id = value };
|
User = new User { Username = UserString, Id = value};
|
||||||
else
|
else
|
||||||
|
{
|
||||||
User.Id = value;
|
User.Id = value;
|
||||||
|
User.Username = UserString;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Users
|
|||||||
public class User
|
public class User
|
||||||
{
|
{
|
||||||
[JsonProperty(@"id")]
|
[JsonProperty(@"id")]
|
||||||
public long Id = 1;
|
public long? Id = 1;
|
||||||
|
|
||||||
[JsonProperty(@"join_date")]
|
[JsonProperty(@"join_date")]
|
||||||
public DateTimeOffset JoinDate;
|
public DateTimeOffset JoinDate;
|
||||||
|
Loading…
Reference in New Issue
Block a user