diff --git a/APIServer.cs b/APIServer.cs index 4d760ef..968bffe 100644 --- a/APIServer.cs +++ b/APIServer.cs @@ -28,6 +28,7 @@ namespace server { try { + //3 different servers for 3 different stages of the game, the apis change so much idk anymore this.listener.Prefixes.Add("http://localhost:" + start.Program.version + "/"); if (start.Program.version == "2017") { @@ -90,6 +91,64 @@ namespace server { s = getorcreate.GetOrCreate(CachedPlayerID); } + if (Url == "avatar/v2") + { + s = File.ReadAllText("SaveData\\avatar.txt"); + } + if (Url == "avatar/v2/set") + { + //for later 2018 builds compatibility + if (!(text.Contains("FaceFeatures"))) + { + string postdatacache = text; + text = postdatacache.Remove(postdatacache.Length - 1, 1) + File.ReadAllText("SaveData\\App\\facefeaturesadd.txt"); + } + File.WriteAllText("SaveData\\avatar.txt", text); + } + if (Url == "messages/v2/get") + { + s = BracketResponse; + } + if (Url == "relationships/v2/get") + { + s = BracketResponse; + } + if (Url == "settings/v2/") + { + s = File.ReadAllText("SaveData\\settings.txt"); + } + if (Url == "settings/v2/set") + { + Settings.SetPlayerSettings(text); + } + if (Url == "avatar/v3/items") + { + s = File.ReadAllText("SaveData\\avataritems.txt"); + } + if (Url == "equipment/v1/getUnlocked") + { + s = File.ReadAllText("SaveData\\equipment.txt"); + } + if (Url == "avatar/v2/gifts") + { + s = BracketResponse; + } + if (Url == "events/v3/list") + { + s = Events.list(); + } + if (Url == "playerevents/v1/all") + { + s = PlayerEventsResponse; + } + if (Url == "gamesessions/v2/joinrandom") + { + s = gamesessions2018.GameSessions.JoinRandom(text); + } + if (Url == "gamesessions/v2/create") + { + s = gamesessions2018.GameSessions.Create(text); + } Console.WriteLine("API Response: " + s); byte[] bytes = Encoding.UTF8.GetBytes(s); response.ContentLength64 = (long)bytes.Length; @@ -111,6 +170,7 @@ namespace server HttpListenerResponse response = context.Response; string rawUrl = request.RawUrl; string Url = ""; + byte[] bytes = null; if (rawUrl.StartsWith("/api/")) { Url = rawUrl.Remove(0, 5); @@ -132,6 +192,14 @@ namespace server Console.WriteLine("API Data: " + text); if (Url.StartsWith("versioncheck")) { + if (Url.Contains("201809")) + { + CachedVersionMonth = 09; + } + else + { + CachedVersionMonth = 05; + } s = VersionCheckResponse; } if (Url == ("config/v2")) @@ -161,6 +229,10 @@ namespace server { s = BlankResponse; } + if (Url == "players/v1/list") + { + s = BracketResponse; + } if (Url == "config/v1/amplitude") { s = Amplitude.amplitude(); @@ -172,6 +244,10 @@ namespace server if (Url == "PlayerReporting/v1/moderationBlockDetails") { s = ModerationBlockDetails; + } + if (Url == "//api/chat/v2/myChats?mode=0&count=50") + { + s = BracketResponse; } if (Url == "messages/v2/get") { @@ -181,12 +257,33 @@ namespace server { s = BracketResponse; } + if (Url == "gameconfigs/v1/all") + { + s = File.ReadAllText("SaveData\\gameconfigs.txt"); + } + if (Url.StartsWith("storefronts")) + { + if (CachedVersionMonth == 09) + { + s = File.ReadAllText("SaveData\\storefronts2.txt"); + } + else + { + s = BracketResponse; + } + } if (Url == "avatar/v2") { s = File.ReadAllText("SaveData\\avatar.txt"); } if (Url == "avatar/v2/set") { + //for later 2018 builds compatibility + if (!(text.Contains("FaceFeatures"))) + { + string postdatacache = text; + text = postdatacache.Remove(postdatacache.Length - 1, 1) + File.ReadAllText("SaveData\\App\\facefeaturesadd.txt"); + } File.WriteAllText("SaveData\\avatar.txt", text); } if (Url == "settings/v2/") @@ -199,7 +296,15 @@ namespace server } if (Url == "avatar/v3/items") { - s = File.ReadAllText("SaveData\\avataritems.txt"); + if (CachedVersionMonth == 09) + { + s = BracketResponse; + } + else + { + s = File.ReadAllText("SaveData\\avataritems.txt"); + } + } if (Url == "equipment/v1/getUnlocked") { @@ -211,19 +316,22 @@ namespace server } if (Url == "consumables/v1/getUnlocked") { - s = File.ReadAllText("SaveData\\consumables.txt"); + if (CachedVersionMonth == 09) + { + s = BracketResponse; + } + else + { + s = File.ReadAllText("SaveData\\consumables.txt"); + } } if (Url == "avatar/v2/gifts") { s = BracketResponse; } - if (Url == "storefronts/v1/allGiftDrops/2") - { - s = BracketResponse; - } if (Url == "storefronts/v2/2") { - s = ""; + s = BlankResponse; } if (Url == "objectives/v1/myprogress") { @@ -232,6 +340,10 @@ namespace server if (Url == "rooms/v1/myrooms") { s = File.ReadAllText("SaveData\\myrooms.txt"); + } + if (Url == "rooms/v2/myrooms") + { + s = BracketResponse; } if (Url == "rooms/v1/mybookmarkedrooms") { @@ -242,9 +354,9 @@ namespace server s = BracketResponse; } if (Url == "events/v3/list") - { + { s = Events.list(); - } + } if (Url == "playerevents/v1/all") { s = PlayerEventsResponse; @@ -254,13 +366,19 @@ namespace server s = gamesessions2018.GameSessions.JoinRandom(text); } if (Url == "gamesessions/v2/create") - { + { s = gamesessions2018.GameSessions.Create(text); + } + if (Url == "gamesessions/v3/joinroom") + { + bytes = Encoding.UTF8.GetBytes((JsonConvert.SerializeObject(gamesessions2018.GameSessions2.JoinRoom(text)))); } - if (rawUrl.Contains("images/v4/uploadtransient?gameSessionId=2018")) + if (rawUrl.Contains("//api/images/v4/uploadtransient?gameSessionId=2018")) { File.WriteAllBytes("SaveData\\Images\\image" + Convert.ToString(int.Parse(File.ReadAllText("SaveData\\Images\\count.txt") + 1)) + ".png", Encoding.UTF8.GetBytes(text.Remove(0, 50).Remove(text.Length - 48, 48))); - } + int imagecount = int.Parse(File.ReadAllText("SaveData\\Images\\count.txt")); + File.WriteAllText("SaveData\\Images\\count.txt", Convert.ToString(imagecount + 1)); + } if (Url == "avatar/v3/saved") { s = BracketResponse; @@ -269,8 +387,15 @@ namespace server { s = BracketResponse; } + if (Url == "presence/v1/setplayertype") + { + s = BracketResponse; + } Console.WriteLine("API Response: " + s); - byte[] bytes = Encoding.UTF8.GetBytes(s); + if (!(Url == "gamesessions/v3/joinroom")) + { + bytes = Encoding.UTF8.GetBytes(s); + } response.ContentLength64 = (long)bytes.Length; Stream outputStream = response.OutputStream; outputStream.Write(bytes, 0, bytes.Length); @@ -288,6 +413,7 @@ namespace server } public static ulong CachedPlayerID = 1; public static ulong CachedPlatformID = 10000; + public static int CachedVersionMonth = 01; public static string BlankResponse = ""; public static string BracketResponse = "[]"; diff --git a/Class2.cs b/Class2.cs deleted file mode 100644 index b4f77fc..0000000 --- a/Class2.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace OpenRec -{ - class Class2 - { - } -} diff --git a/GameSessions.cs b/GameSessions.cs index 5346517..f6e693e 100644 --- a/GameSessions.cs +++ b/GameSessions.cs @@ -12,13 +12,9 @@ namespace gamesessions2018 public static string JoinRandom(string jsonData) { long gamesessionid = 2018L; - bool sandboxmode = false; + Console.WriteLine("OpenRec GameSession Room"); GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject(jsonData); - if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Enabled") - { - sandboxmode = true; - } - if (File.ReadAllText("SaveData\\App\\privatedorm.txt") == "Enabled") + if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled") { gamesessionid = new Random().Next(0, 100); } @@ -30,11 +26,11 @@ namespace gamesessions2018 RoomId = joinRandomRequest.ActivityLevelIds[0], RecRoomId = null, EventId = null, - CreatorPlayerId = (long?)APIServer.CachedPlayerID, - Name = "OpenRec", + CreatorPlayerId = 1243409L, + Name = "OpenRec Room", ActivityLevelId = joinRandomRequest.ActivityLevelIds[0], Private = false, - Sandbox = sandboxmode, + Sandbox = false, SupportsScreens = true, SupportsVR = true, GameInProgress = false, @@ -64,28 +60,31 @@ namespace gamesessions2018 // Token: 0x060000C0 RID: 192 RVA: 0x00004D24 File Offset: 0x00002F24 public static string Create(string jsonData) { - Console.WriteLine("Custom Room Test..."); - GameSessions.JoinRandomRequest createRequest = JsonConvert.DeserializeObject(jsonData); + long gamesessionid = 2016L; + Console.WriteLine("OpenRec GameSession Custom Room"); + if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled") { - Config.localGameSession = new GameSessions.SessionInstance - { - GameSessionId = 20181L, - RegionId = "us", - RoomId = createRequest.ActivityLevelIds[0], - RecRoomId = null, - EventId = null, - CreatorPlayerId = (long?)APIServer.CachedPlayerID, - Name = "Custom Room", - ActivityLevelId = createRequest.ActivityLevelIds[0], - Private = false, - Sandbox = true, - SupportsScreens = true, - SupportsVR = true, - GameInProgress = false, - MaxCapacity = 20, - IsFull = false - }; + gamesessionid = new Random().Next(0, 100); } + GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject(jsonData); + Config.localGameSession = new GameSessions.SessionInstance + { + GameSessionId = gamesessionid, + RegionId = "us", + RoomId = createRequest.ActivityLevelId, + RecRoomId = null, + EventId = null, + CreatorPlayerId = 1243409L, + Name = "Custom Room", + ActivityLevelId = createRequest.ActivityLevelId, + Private = false, + Sandbox = true, + SupportsScreens = true, + SupportsVR = true, + GameInProgress = false, + MaxCapacity = 20, + IsFull = false + }; return JsonConvert.SerializeObject(new GameSessions.JoinResult { Result = 0, @@ -270,16 +269,67 @@ namespace gamesessions2018 public GameSessions.RegionPing[] RegionPings { get; set; } } + public class JoinRoomRequest2 + { + // Token: 0x17000022 RID: 34 + // (get) Token: 0x06000060 RID: 96 RVA: 0x00002345 File Offset: 0x00000545 + // (set) Token: 0x06000061 RID: 97 RVA: 0x0000234D File Offset: 0x0000054D + public ulong[] ExpectedPlayerIds { get; set; } + + // Token: 0x17000023 RID: 35 + // (get) Token: 0x06000062 RID: 98 RVA: 0x00002356 File Offset: 0x00000556 + // (set) Token: 0x06000063 RID: 99 RVA: 0x0000235E File Offset: 0x0000055E + public GameSessions.RegionPing[] RegionPings { get; set; } + + // Token: 0x17000024 RID: 36 + // (get) Token: 0x06000064 RID: 100 RVA: 0x00002367 File Offset: 0x00000567 + // (set) Token: 0x06000065 RID: 101 RVA: 0x0000236F File Offset: 0x0000056F + public string[] RoomTags { get; set; } + + // Token: 0x17000025 RID: 37 + // (get) Token: 0x06000066 RID: 102 RVA: 0x00002378 File Offset: 0x00000578 + // (set) Token: 0x06000067 RID: 103 RVA: 0x00002380 File Offset: 0x00000580 + public string RoomName { get; set; } + + // Token: 0x17000026 RID: 38 + // (get) Token: 0x06000068 RID: 104 RVA: 0x00002389 File Offset: 0x00000589 + // (set) Token: 0x06000069 RID: 105 RVA: 0x00002391 File Offset: 0x00000591 + public string SceneName { get; set; } + + // Token: 0x17000027 RID: 39 + // (get) Token: 0x0600006A RID: 106 RVA: 0x0000239A File Offset: 0x0000059A + // (set) Token: 0x0600006B RID: 107 RVA: 0x000023A2 File Offset: 0x000005A2 + public int AdditionalPlayerJoinMode { get; set; } + + // Token: 0x17000028 RID: 40 + // (get) Token: 0x0600006C RID: 108 RVA: 0x000023AB File Offset: 0x000005AB + // (set) Token: 0x0600006D RID: 109 RVA: 0x000023B3 File Offset: 0x000005B3 + public bool Private { get; set; } + } + // Token: 0x02000025 RID: 37 + // Token: 0x02000025 RID: 37 public class CreateRequest { - public bool IsSandbox { get; set; } - - public string[] ActivityLevelIds { get; set; } - + // Token: 0x17000055 RID: 85 + // (get) Token: 0x060000F2 RID: 242 RVA: 0x0000271C File Offset: 0x0000091C + // (set) Token: 0x060000F3 RID: 243 RVA: 0x00002724 File Offset: 0x00000924 + public string ActivityLevelId { get; set; } + + // Token: 0x17000056 RID: 86 + // (get) Token: 0x060000F4 RID: 244 RVA: 0x0000272D File Offset: 0x0000092D + // (set) Token: 0x060000F5 RID: 245 RVA: 0x00002735 File Offset: 0x00000935 public ulong[] ExpectedPlayerIds { get; set; } + // Token: 0x17000057 RID: 87 + // (get) Token: 0x060000F6 RID: 246 RVA: 0x0000273E File Offset: 0x0000093E + // (set) Token: 0x060000F7 RID: 247 RVA: 0x00002746 File Offset: 0x00000946 public GameSessions.RegionPing[] RegionPings { get; set; } + + // Token: 0x17000058 RID: 88 + // (get) Token: 0x060000F8 RID: 248 RVA: 0x0000274F File Offset: 0x0000094F + // (set) Token: 0x060000F9 RID: 249 RVA: 0x00002757 File Offset: 0x00000957 + public bool IsSandbox { get; set; } } // Token: 0x02000026 RID: 38 diff --git a/GameSessions2.cs b/GameSessions2.cs new file mode 100644 index 0000000..68d59e1 --- /dev/null +++ b/GameSessions2.cs @@ -0,0 +1,231 @@ +using System; +using System.Linq; +using Newtonsoft.Json; +using rooms2018; +using System.IO; + +namespace gamesessions2018 +{ + // Token: 0x0200000F RID: 15 + internal class GameSessions2 + { + // Token: 0x06000033 RID: 51 RVA: 0x000048F0 File Offset: 0x00002AF0 + public static GameSessions2.JoinResult JoinRoom(string postData) + { + + GameSessions.JoinRoomRequest2 joinRoomRequest = JsonConvert.DeserializeObject(postData); + bool flag = Rooms.RecRoomOriginalRooms.ContainsKey(joinRoomRequest.RoomName); + if (flag) + { + GameSessions2.currentRoom = Rooms.RecRoomOriginalRooms[joinRoomRequest.RoomName]; + } + else + { + GameSessions2.currentRoom = Rooms.RecRoomOriginalRooms["DormRoom"]; + } + int num = 0; + for (int i = 0; i < GameSessions2.currentRoom.Scenes.Count(); i++) + { + bool flag2 = GameSessions2.currentRoom.Scenes[i].Name == joinRoomRequest.SceneName; + if (flag2) + { + num = i; + } + } + long gamesessionid = 2018L; + bool sandboxmode = false; + if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Enabled") + { + sandboxmode = true; + } + if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled") + { + gamesessionid = new Random().Next(0, 100); + } + GameSessions2.currentSession = new GameSessions2.SessionData + { + GameSessionId = gamesessionid, + PhotonRegionId = "us", + PhotonRoomId = GameSessions2.currentRoom.Room.RoomId.ToString(), + Name = GameSessions2.currentRoom.Room.Name, + RoomId = GameSessions2.currentRoom.Room.RoomId, + RoomSceneId = (long)(num + 1), + RoomSceneLocationId = GameSessions2.currentRoom.Scenes[num].RoomSceneLocationId, + IsSandbox = sandboxmode, + DataBlobName = "", + PlayerEventId = null, + Private = false, + GameInProgress = false, + MaxCapacity = 20, + IsFull = false + }; + return new GameSessions2.JoinResult + { + Result = 0, + GameSession = GameSessions2.currentSession, + RoomDetails = GameSessions2.currentRoom + }; + } + + // Token: 0x04000019 RID: 25 + public static Rooms.RoomDetail currentRoom; + + // Token: 0x0400001A RID: 26 + public static GameSessions2.SessionData placeholderSession = new GameSessions2.SessionData + { + GameSessionId = 1L, + PhotonRegionId = "us", + PhotonRoomId = "1", + Name = "Dorm Room", + RoomId = 1L, + RoomSceneId = 1L, + RoomSceneLocationId = "76d98498-60a1-430c-ab76-b54a29b7a163", + IsSandbox = false, + DataBlobName = "", + PlayerEventId = null, + Private = false, + GameInProgress = false, + MaxCapacity = 20, + IsFull = false + }; + + // Token: 0x0400001B RID: 27 + public static GameSessions2.SessionData currentSession; + + // Token: 0x02000010 RID: 16 + public class JoinResult + { + // Token: 0x1700000F RID: 15 + // (get) Token: 0x06000036 RID: 54 RVA: 0x00002202 File Offset: 0x00000402 + // (set) Token: 0x06000037 RID: 55 RVA: 0x0000220A File Offset: 0x0000040A + public int Result { get; set; } + + // Token: 0x17000010 RID: 16 + // (get) Token: 0x06000038 RID: 56 RVA: 0x00002213 File Offset: 0x00000413 + // (set) Token: 0x06000039 RID: 57 RVA: 0x0000221B File Offset: 0x0000041B + public GameSessions2.SessionData GameSession { get; set; } + + // Token: 0x17000011 RID: 17 + // (get) Token: 0x0600003A RID: 58 RVA: 0x00002224 File Offset: 0x00000424 + // (set) Token: 0x0600003B RID: 59 RVA: 0x0000222C File Offset: 0x0000042C + public Rooms.RoomDetail RoomDetails { get; set; } + } + + // Token: 0x02000011 RID: 17 + public class SessionData + { + // Token: 0x17000012 RID: 18 + // (get) Token: 0x0600003D RID: 61 RVA: 0x00002235 File Offset: 0x00000435 + // (set) Token: 0x0600003E RID: 62 RVA: 0x0000223D File Offset: 0x0000043D + public long GameSessionId { get; set; } + + // Token: 0x17000013 RID: 19 + // (get) Token: 0x0600003F RID: 63 RVA: 0x00002246 File Offset: 0x00000446 + // (set) Token: 0x06000040 RID: 64 RVA: 0x0000224E File Offset: 0x0000044E + public string PhotonRegionId { get; set; } + + // Token: 0x17000014 RID: 20 + // (get) Token: 0x06000041 RID: 65 RVA: 0x00002257 File Offset: 0x00000457 + // (set) Token: 0x06000042 RID: 66 RVA: 0x0000225F File Offset: 0x0000045F + public string PhotonRoomId { get; set; } + + // Token: 0x17000015 RID: 21 + // (get) Token: 0x06000043 RID: 67 RVA: 0x00002268 File Offset: 0x00000468 + // (set) Token: 0x06000044 RID: 68 RVA: 0x00002270 File Offset: 0x00000470 + public string Name { get; set; } + + // Token: 0x17000016 RID: 22 + // (get) Token: 0x06000045 RID: 69 RVA: 0x00002279 File Offset: 0x00000479 + // (set) Token: 0x06000046 RID: 70 RVA: 0x00002281 File Offset: 0x00000481 + public long RoomId { get; set; } + + // Token: 0x17000017 RID: 23 + // (get) Token: 0x06000047 RID: 71 RVA: 0x0000228A File Offset: 0x0000048A + // (set) Token: 0x06000048 RID: 72 RVA: 0x00002292 File Offset: 0x00000492 + public long RoomSceneId { get; set; } + + // Token: 0x17000018 RID: 24 + // (get) Token: 0x06000049 RID: 73 RVA: 0x0000229B File Offset: 0x0000049B + // (set) Token: 0x0600004A RID: 74 RVA: 0x000022A3 File Offset: 0x000004A3 + public string RoomSceneLocationId { get; set; } + + // Token: 0x17000019 RID: 25 + // (get) Token: 0x0600004B RID: 75 RVA: 0x000022AC File Offset: 0x000004AC + // (set) Token: 0x0600004C RID: 76 RVA: 0x000022B4 File Offset: 0x000004B4 + public bool IsSandbox { get; set; } + + // Token: 0x1700001A RID: 26 + // (get) Token: 0x0600004D RID: 77 RVA: 0x000022BD File Offset: 0x000004BD + // (set) Token: 0x0600004E RID: 78 RVA: 0x000022C5 File Offset: 0x000004C5 + public string DataBlobName { get; set; } + + // Token: 0x1700001B RID: 27 + // (get) Token: 0x0600004F RID: 79 RVA: 0x000022CE File Offset: 0x000004CE + // (set) Token: 0x06000050 RID: 80 RVA: 0x000022D6 File Offset: 0x000004D6 + public long? PlayerEventId { get; set; } + + // Token: 0x1700001C RID: 28 + // (get) Token: 0x06000051 RID: 81 RVA: 0x000022DF File Offset: 0x000004DF + // (set) Token: 0x06000052 RID: 82 RVA: 0x000022E7 File Offset: 0x000004E7 + public bool Private { get; set; } + + // Token: 0x1700001D RID: 29 + // (get) Token: 0x06000053 RID: 83 RVA: 0x000022F0 File Offset: 0x000004F0 + // (set) Token: 0x06000054 RID: 84 RVA: 0x000022F8 File Offset: 0x000004F8 + public bool GameInProgress { get; set; } + + // Token: 0x1700001E RID: 30 + // (get) Token: 0x06000055 RID: 85 RVA: 0x00002301 File Offset: 0x00000501 + // (set) Token: 0x06000056 RID: 86 RVA: 0x00002309 File Offset: 0x00000509 + public int MaxCapacity { get; set; } + + // Token: 0x1700001F RID: 31 + // (get) Token: 0x06000057 RID: 87 RVA: 0x00002312 File Offset: 0x00000512 + // (set) Token: 0x06000058 RID: 88 RVA: 0x0000231A File Offset: 0x0000051A + public bool IsFull { get; set; } + } + + // Token: 0x02000012 RID: 18 + public enum JoinResultIDs + { + // Token: 0x0400002E RID: 46 + Success, + // Token: 0x0400002F RID: 47 + NoSuchGame, + // Token: 0x04000030 RID: 48 + PlayerNotOnline, + // Token: 0x04000031 RID: 49 + InsufficientSpace, + // Token: 0x04000032 RID: 50 + EventNotStarted, + // Token: 0x04000033 RID: 51 + EventAlreadyFinished, + // Token: 0x04000034 RID: 52 + EventCreatorNotReady, + // Token: 0x04000035 RID: 53 + BlockedFromRoom, + // Token: 0x04000036 RID: 54 + ProfileLocked, + // Token: 0x04000037 RID: 55 + NoBirthday, + // Token: 0x04000038 RID: 56 + MarkedForDelete, + // Token: 0x04000039 RID: 57 + JuniorNotAllowed, + // Token: 0x0400003A RID: 58 + Banned, + // Token: 0x0400003B RID: 59 + NoSuchRoom = 20, + // Token: 0x0400003C RID: 60 + RoomCreatorNotReady, + // Token: 0x0400003D RID: 61 + RoomIsNotActive, + // Token: 0x0400003E RID: 62 + RoomBlockedByCreator, + // Token: 0x0400003F RID: 63 + RoomBlockingCreator, + // Token: 0x04000040 RID: 64 + RoomIsPrivate + } + } +} diff --git a/ImageServer.cs b/ImageServer.cs index 05edbf0..41cf1f2 100644 --- a/ImageServer.cs +++ b/ImageServer.cs @@ -30,6 +30,7 @@ namespace server this.listener.Prefixes.Add("http://localhost:20182/"); for (; ; ) { + //image server always send out profile image for now, might cause issues later but ill fix it when I need too this.listener.Start(); Console.WriteLine("ImageServer.cs is listening."); HttpListenerContext context = this.listener.GetContext(); diff --git a/NameServer.cs b/NameServer.cs index 52cfa9c..677ab99 100644 --- a/NameServer.cs +++ b/NameServer.cs @@ -9,6 +9,7 @@ namespace server // Token: 0x02000050 RID: 80 internal class NameServer { + // Token: 0x06000227 RID: 551 RVA: 0x00006D1C File Offset: 0x00004F1C public NameServer() { @@ -26,6 +27,7 @@ namespace server // Token: 0x06000228 RID: 552 RVA: 0x00006D84 File Offset: 0x00004F84 private void StartListen() { + //nameserver is ONLY for 2018 this.listener.Prefixes.Add("http://localhost:20181/"); for (; ; ) { diff --git a/OpenRecNet.cs b/OpenRecNet.cs index 20e7297..8a84266 100644 --- a/OpenRecNet.cs +++ b/OpenRecNet.cs @@ -11,6 +11,7 @@ namespace start { } + //ignore this its a beta feature public static void RecNet() { Console.ForegroundColor = ConsoleColor.Blue; @@ -25,7 +26,7 @@ namespace start } ChatStart: - Console.WriteLine("Welcome to OpenRecNet!"); + Console.WriteLine("Welcome to OpenRecChat (Beta)!"); Console.WriteLine("You are logged in as " + File.ReadAllText("SaveData\\Profile\\username.txt" + ".")); Console.WriteLine("Your UserID is " + File.ReadAllText("SaveData\\Profile\\userid.txt" + ".")); Console.WriteLine("In the future, show this message?"); diff --git a/Program.cs b/Program.cs index a96b5b2..a20ad1f 100644 --- a/Program.cs +++ b/Program.cs @@ -12,6 +12,7 @@ namespace start { static void Main() { + //startup for openrec Setup.setup(); goto Start; @@ -25,7 +26,7 @@ namespace start { Console.WriteLine("This version of OpenRec is outdated. We recommend you install the latest version, OpenRec " + new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/version.txt")); } - Console.WriteLine("1) Changelog" + Environment.NewLine +"2) Change Settings" + Environment.NewLine + "3) Modify Profile" + Environment.NewLine + "4) OpenRecNet" + Environment.NewLine + "5) Start Server"); + Console.WriteLine("1) Changelog" + Environment.NewLine +"2) Change Settings" + Environment.NewLine + "3) Modify Profile" + Environment.NewLine + "4) Start Server"); string readline = Console.ReadLine(); if (readline == "1") { @@ -42,37 +43,23 @@ namespace start goto Settings; Settings: - Console.WriteLine("1) Sandbox Mode: " + File.ReadAllText("SaveData\\App\\sandbox.txt") + Environment.NewLine + "2) Private Dorm: " + File.ReadAllText("SaveData\\App\\privatedorm.txt") + Environment.NewLine + "3) OpenRecNet Info Tab: " + File.ReadAllText("SaveData\\App\\showopenrecinfo.txt") + Environment.NewLine + "4) Go Back"); + Console.WriteLine("1) Private Rooms: " + File.ReadAllText("SaveData\\App\\privaterooms.txt") + Environment.NewLine + "2) OpenRecNet Info Tab: " + File.ReadAllText("SaveData\\App\\showopenrecinfo.txt") + Environment.NewLine + "3) Reset SaveData" + Environment.NewLine + "4) Go Back"); string readline4 = Console.ReadLine(); if (readline4 == "1") { - if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Disabled") + if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Disabled") { - File.WriteAllText("SaveData\\App\\sandbox.txt", "Enabled"); + File.WriteAllText("SaveData\\App\\privaterooms.txt", "Enabled"); } else { - File.WriteAllText("SaveData\\App\\sandbox.txt", "Disabled"); + File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled"); } Console.Clear(); Console.WriteLine("Success!"); goto Settings; } else if (readline4 == "2") - { - if (File.ReadAllText("SaveData\\App\\privatedorm.txt") == "Disabled") - { - File.WriteAllText("SaveData\\App\\privatedorm.txt", "Enabled"); - } - else - { - File.WriteAllText("SaveData\\App\\privatedorm.txt", "Disabled"); - } - Console.Clear(); - Console.WriteLine("Success!"); - goto Settings; - } - else if (readline4 == "3") { if (File.ReadAllText("SaveData\\App\\showopenrecinfo.txt") == "Disabled") { @@ -86,6 +73,27 @@ namespace start Console.WriteLine("Success!"); goto Settings; } + else if (readline4 == "3") + { + File.Delete("SaveData\\avatar.txt"); + File.Delete("SaveData\\avataritems.txt"); + File.Delete("SaveData\\equipment.txt"); + File.Delete("SaveData\\consumables.txt"); + File.Delete("SaveData\\gameconfigs.txt"); + File.Delete("SaveData\\storefronts2.txt"); + File.Delete("SaveData\\Profile\\username.txt"); + File.Delete("SaveData\\Profile\\level.txt"); + File.Delete("SaveData\\Profile\\userid.txt"); + File.Delete("SaveData\\myrooms.txt"); + File.Delete("SaveData\\settings.txt"); + File.Delete("SaveData\\App\\privaterooms.txt"); + File.Delete("SaveData\\App\\showopenrecinfo.txt"); + File.Delete("SaveData\\App\\facefeaturesadd.txt"); + File.Delete("SaveData\\profileimage.png"); + Console.WriteLine("Success!"); + Setup.setup(); + goto Settings; + } else if (readline4 == "4") { Console.Clear(); @@ -97,8 +105,8 @@ namespace start Console.Clear(); goto Profile; - Profile: - Console.WriteLine("1) Change Username" + Environment.NewLine+ "2) Change Profile Image" + Environment.NewLine + "3) Change Level" + Environment.NewLine + "4) Go Back"); + Profile: + Console.WriteLine("1) Change Username" + Environment.NewLine + "2) Change Profile Image" + Environment.NewLine + "3) Change Level" + Environment.NewLine + "4) Go Back"); string readline3 = Console.ReadLine(); if (readline3 == "1") { @@ -175,31 +183,8 @@ namespace start goto Start; } } + if (readline == "4") - { - Console.Clear(); - goto ChatStart; - - ChatStart: - Console.WriteLine("Pinging the chat servers..."); - try - { - string ping = new WebClient().DownloadString("https://openrecchat.loca.lt/ping"); - } - catch (Exception ex4) - { - Console.WriteLine("Chat servers currently offline..."); - Console.WriteLine("Press any key to continue:"); - Console.ReadKey(); - goto Start; - } - Console.WriteLine("Success!"); - Console.WriteLine("Press any key to continue:"); - Console.ReadKey(); - OpenRecNet.RecNet(); - - } - if (readline == "5") { Console.WriteLine("Please select the version of RecRoom the server should host: (2017, 2018)"); string readline2 = Console.ReadLine(); @@ -230,9 +215,33 @@ namespace start new WebSocket(); } } + if (readline == "5") + { + Console.Clear(); + goto ChatStart; + + ChatStart: + Console.WriteLine("Pinging the chat servers..."); + try + { + string ping = new WebClient().DownloadString("https://openrecchat.loca.lt/ping"); + } + catch (Exception ex4) + { + Console.WriteLine("Chat servers currently offline..."); + Console.WriteLine("Press any key to continue:"); + Console.ReadKey(); + goto Start; + } + Console.WriteLine("Success!"); + Console.WriteLine("Press any key to continue:"); + Console.ReadKey(); + OpenRecNet.RecNet(); + + } } - public static string version = "0.3.5"; + public static string version = "0.4.0"; } } diff --git a/Rooms.cs b/Rooms.cs new file mode 100644 index 0000000..c451592 --- /dev/null +++ b/Rooms.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; + +namespace rooms2018 +{ + // Token: 0x0200002B RID: 43 + internal class RoomsList + { + // Token: 0x17000062 RID: 98 + // (get) Token: 0x060000F8 RID: 248 RVA: 0x000053F8 File Offset: 0x000035F8 + public static RoomsList.FeaturedRoomData getFeaturedRooms + { + get + { + List list = new List(); + foreach (KeyValuePair keyValuePair in Rooms.RecRoomOriginalRooms) + { + Rooms.RoomPlayPage item = new Rooms.RoomPlayPage + { + RoomName = keyValuePair.Value.Room.Name, + RoomId = keyValuePair.Value.Room.RoomId, + ImageName = "93a53ced93a04f658795a87f4a4aab85" + }; + list.Add(item); + } + return new RoomsList.FeaturedRoomData + { + Name = "Rec Room Originals", + FeaturedRooms = list + }; + } + } + + // Token: 0x17000063 RID: 99 + // (get) Token: 0x060000F9 RID: 249 RVA: 0x000054BC File Offset: 0x000036BC + public static List HotRooms + { + get + { + List list = new List(); + foreach (KeyValuePair keyValuePair in Rooms.RecRoomOriginalRooms) + { + list.Add(keyValuePair.Value.Room); + } + return list; + } + } + + // Token: 0x0200002C RID: 44 + public class FeaturedRoomData + { + // Token: 0x17000064 RID: 100 + // (get) Token: 0x060000FB RID: 251 RVA: 0x00002762 File Offset: 0x00000962 + // (set) Token: 0x060000FC RID: 252 RVA: 0x0000276A File Offset: 0x0000096A + public string Name { get; set; } + + // Token: 0x17000065 RID: 101 + // (get) Token: 0x060000FD RID: 253 RVA: 0x00002773 File Offset: 0x00000973 + // (set) Token: 0x060000FE RID: 254 RVA: 0x0000277B File Offset: 0x0000097B + public List FeaturedRooms { get; set; } + } + } +} diff --git a/RoomsList.cs b/RoomsList.cs new file mode 100644 index 0000000..70f03c3 --- /dev/null +++ b/RoomsList.cs @@ -0,0 +1,1474 @@ +using System; +using System.Collections.Generic; + +namespace rooms2018 +{ + // Token: 0x02000063 RID: 99 + internal class Rooms + { + // Token: 0x0600024A RID: 586 RVA: 0x00011590 File Offset: 0x0000F790 + public static Rooms.RoomDetail getRoomDetails(int roomID) + { + foreach (KeyValuePair keyValuePair in Rooms.RecRoomOriginalRooms) + { + bool flag = keyValuePair.Value.Room.RoomId == (long)roomID; + if (flag) + { + return keyValuePair.Value; + } + } + return Rooms.RecRoomOriginalRooms["DormRoom"]; + } + + // Token: 0x0400021A RID: 538 + public static Dictionary RecRoomOriginalRooms = new Dictionary + { + { + "DormRoom", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 1L, + Name = "DormRoom", + Description = "Your private room", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 1L, + RoomSceneLocationId = "76d98498-60a1-430c-ab76-b54a29b7a163", + Name = "dormroom2", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "RecCenter", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 2L, + Name = "RecCenter", + Description = "A social hub to meet and mingle with friends new and old.", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 2L, + RoomSceneLocationId = "cbad71af-0831-44d8-b8ef-69edafa841f6", + Name = "reccenter", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "3DCharades", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 3L, + Name = "3DCharades", + Description = "Take turns drawing, acting, and guessing funny phrases with your friends!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 3L, + RoomId = 4L, + RoomSceneLocationId = "4078dfed-24bb-4db7-863f-578ba48d726b", + Name = "charades", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "DiscGolfLake", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 4L, + Name = "DiscGolfLake", + Description = "A leisurely stroll through the grass. Throw your disc into the goal. Sounds easy, right?", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 4L, + RoomSceneLocationId = "f6f7256c-e438-4299-b99e-d20bef8cf7e0", + Name = "discgolf", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "DiscGolfPropulsion", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 5L, + Name = "DiscGolfPropulsion", + Description = "Throw your disc through hazards and around wind machines on this challenging course!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 5L, + RoomSceneLocationId = "d9378c9f-80bc-46fb-ad1e-1bed8a674f55", + Name = "Discgolf_Propulsion", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Dodgeball", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 6L, + Name = "Dodgeball", + Description = "Throw dodgeballs to knock out your friends in this gym classic!", + CreatorPlayerId = 1, + ImageName = "6d5c494668784816bbc41d9b870e5003", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 6L, + RoomSceneLocationId = "3d474b26-26f7-45e9-9a36-9b02847d5e6f", + Name = "dodgeball", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Paddleball", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 7L, + Name = "Paddleball", + Description = "A simple rally game between two players in a plexiglass tube with a zero-g ball.", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 7L, + RoomSceneLocationId = "d89f74fa-d51e-477a-a425-025a891dd499", + Name = "paddleball", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Paintball", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 8L, + Name = "Paintball", + Description = "Red and Blue teams splat each other in capture the flag and team battle.", + CreatorPlayerId = 1, + ImageName = "93a53ced93a04f658795a87f4a4aab85", + State = 0, + Accessibility = 1, + SupportsLevelVoting = true, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 8L, + RoomSceneLocationId = "e122fe98-e7db-49e8-a1b1-105424b6e1f0", + Name = "River", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + }, + new Rooms.Scene + { + RoomSceneId = 2L, + RoomId = 9L, + RoomSceneLocationId = "a785267d-c579-42ea-be43-fec1992d1ca7", + Name = "Homestead", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + }, + new Rooms.Scene + { + RoomSceneId = 3L, + RoomId = 10L, + RoomSceneLocationId = "ff4c6427-7079-4f59-b22a-69b089420827", + Name = "Quarry", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + }, + new Rooms.Scene + { + RoomSceneId = 4L, + RoomId = 11L, + RoomSceneLocationId = "380d18b5-de9c-49f3-80f7-f4a95c1de161", + Name = "Clearcut", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + }, + new Rooms.Scene + { + RoomSceneId = 5L, + RoomId = 12L, + RoomSceneLocationId = "58763055-2dfb-4814-80b8-16fac5c85709", + Name = "Spillway", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "GoldenTrophy", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 13L, + Name = "GoldenTrophy", + Description = "The goblin king stole Coach's Golden Trophy. Team up and embark on an epic quest to recover it!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 13L, + RoomSceneLocationId = "91e16e35-f48f-4700-ab8a-a1b79e50e51b", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "TheRiseofJumbotron", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 14L, + Name = "TheRiseofJumbotron", + Description = "Robot invaders threaten the galaxy! Team up with your friends and bring the laser heat!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 14L, + RoomSceneLocationId = "acc06e66-c2d0-4361-b0cd-46246a4c455c", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "CrimsonCauldron", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 15L, + Name = "CrimsonCauldron", + Description = "Can your band of adventurers brave the enchanted wilds, and lift the curse of the crimson cauldron?", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 15L, + RoomSceneLocationId = "949fa41f-4347-45c0-b7ac-489129174045", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "IsleOfLostSkulls", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 16L, + Name = "IsleOfLostSkulls", + Description = "Can your pirate crew get to the Isle, defeat its fearsome guardian, and escape with the gold?", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 16L, + RoomSceneLocationId = "7e01cfe0-820a-406f-b1b3-0a5bf575235c", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Soccer", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 17L, + Name = "Soccer", + Description = "Teams of three run around slamming themselves into an over-sized soccer ball. Goal!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 17L, + RoomSceneLocationId = "6d5eea4b-f069-4ed0-9916-0e2f07df0d03", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "LaserTag", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 18L, + Name = "LaserTag", + Description = "Teams battle each other and waves of robots.", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 1L, + RoomId = 18L, + RoomSceneLocationId = "239e676c-f12f-489f-bf3a-d4c383d692c3", + Name = "Hangar", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + }, + new Rooms.Scene + { + RoomSceneId = 2L, + RoomId = 19L, + RoomSceneLocationId = "9d6456ce-6264-48b4-808d-2d96b3d91038", + Name = "CyberJunkCity", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "RecRoyaleSquads", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 20L, + Name = "RecRoyaleSquads", + Description = "Squads of three battle it out on Frontier Island. Last squad standing wins!", + CreatorPlayerId = 1, + ImageName = "69fc525056014e39a435c4d2fdf2b887", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 20L, + RoomSceneLocationId = "253fa009-6e65-4c90-91a1-7137a56a267f", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "RecRoyaleSolos", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 21L, + Name = "RecRoyaleSolos", + Description = "Battle it out on Frontier Island. Last person standing wins!", + CreatorPlayerId = 1, + ImageName = "69fc525056014e39a435c4d2fdf2b887", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 21L, + RoomSceneLocationId = "b010171f-4875-4e89-baba-61e878cd41e1", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Lounge", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 22L, + Name = "Lounge", + Description = "A low-key lounge to chill with your friends. Great for private parties!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 22L, + RoomSceneLocationId = "a067557f-ca32-43e6-b6e5-daaec60b4f5a", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "recroomoriginal", + Type = 2 + } + } + } + }, + { + "PerformanceHall", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 23L, + Name = "PerformanceHall", + Description = "A theater for plays, music, comedy and other performances.", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 23L, + RoomSceneLocationId = "9932f88f-3929-43a0-a012-a40b5128e346", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "MakerRoom", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 24L, + Name = "MakerRoom", + Description = "This room is a blank canvas. Make it into whatever you like!", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 24L, + RoomSceneLocationId = "a75f7547-79eb-47c6-8986-6767abcb4f92 ", + Name = "Home", + IsSandbox = true, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "Park", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 25L, + Name = "Park", + Description = "A sprawling park with amphitheater, play fields, and a cave.", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 25L, + RoomSceneLocationId = "0a864c86-5a71-4e18-8041-8124e4dc9d98", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "GoKartQuest", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 27L, + Name = "GoKartQuest", + Description = "New", + CreatorPlayerId = 1, + ImageName = "d0df003353914adfaecdd23f428208b6", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 27L, + RoomSceneLocationId = "49cb8993-a956-43e2-86f4-1318f279b22a", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + }, + { + "HardMaybe", + new Rooms.RoomDetail + { + Room = new Rooms.cRoom + { + RoomId = 28L, + Name = "HardMaybe", + Description = "New", + CreatorPlayerId = 1, + ImageName = "", + State = 0, + Accessibility = 1, + SupportsLevelVoting = false, + IsAGRoom = true, + CloningAllowed = false, + SupportsScreens = true, + SupportsTeleportVR = true, + SupportsWalkVR = true + }, + Scenes = new List + { + new Rooms.Scene + { + RoomSceneId = 0L, + RoomId = 28L, + RoomSceneLocationId = "ae929543-9a07-41d5-8ee9-dbbee8c36800", + Name = "Home", + IsSandbox = false, + DataBlobName = "", + MaxPlayers = 20, + CanMatchmakeInto = true, + DataModifiedAt = DateTime.Now + } + }, + CoOwners = new List(), + Hosts = new List(), + CheerCount = 1, + FavoriteCount = 1, + VisitCount = 1, + Tags = new List + { + new Rooms.cTag + { + Tag = "rro", + Type = 2 + } + } + } + } + }; + + // Token: 0x02000064 RID: 100 + public enum RoomTagTypes + { + // Token: 0x0400021C RID: 540 + General, + // Token: 0x0400021D RID: 541 + Auto, + // Token: 0x0400021E RID: 542 + AGOnly, + // Token: 0x0400021F RID: 543 + Banned + } + + // Token: 0x02000065 RID: 101 + public enum RoomStates + { + // Token: 0x04000221 RID: 545 + Active, + // Token: 0x04000222 RID: 546 + PendingJunior = 11, + // Token: 0x04000223 RID: 547 + Moderation_PendingReview = 100, + // Token: 0x04000224 RID: 548 + Moderation_Closed, + // Token: 0x04000225 RID: 549 + MarkedForDelete = 1000 + } + + // Token: 0x02000066 RID: 102 + public enum RoomAccessibility + { + // Token: 0x04000227 RID: 551 + Private, + // Token: 0x04000228 RID: 552 + Public, + // Token: 0x04000229 RID: 553 + Unlisted + } + + // Token: 0x02000067 RID: 103 + public enum RoomScreenModeSupport + { + // Token: 0x0400022B RID: 555 + Isolated, + // Token: 0x0400022C RID: 556 + Mixed, + // Token: 0x0400022D RID: 557 + Blocked + } + + // Token: 0x02000068 RID: 104 + public enum RoomSaveResult + { + // Token: 0x0400022F RID: 559 + Success, + // Token: 0x04000230 RID: 560 + Unknown, + // Token: 0x04000231 RID: 561 + PermissionDenied, + // Token: 0x04000232 RID: 562 + RoomNotActive, + // Token: 0x04000233 RID: 563 + RoomDoesNotExist, + // Token: 0x04000234 RID: 564 + RoomHasNoDataBlob, + // Token: 0x04000235 RID: 565 + DuplicateName = 10, + // Token: 0x04000236 RID: 566 + ReservedName, + // Token: 0x04000237 RID: 567 + InappropriateName, + // Token: 0x04000238 RID: 568 + InappropriateDescription, + // Token: 0x04000239 RID: 569 + TooManyRooms = 20, + // Token: 0x0400023A RID: 570 + InvalidMaxPlayers = 30, + // Token: 0x0400023B RID: 571 + DataHistoryDoesNotExist = 40, + // Token: 0x0400023C RID: 572 + DataHistoryAlreadyActive, + // Token: 0x0400023D RID: 573 + RoomUnderModerationReview = 100, + // Token: 0x0400023E RID: 574 + PlayerHasRoomUnderModerationReview, + // Token: 0x0400023F RID: 575 + AccessibilityUnderModerationLock, + // Token: 0x04000240 RID: 576 + JuniorStatusFail = 200 + } + + // Token: 0x02000069 RID: 105 + public class RoomDetail + { + // Token: 0x170000E2 RID: 226 + // (get) Token: 0x0600024D RID: 589 RVA: 0x00003036 File Offset: 0x00001236 + // (set) Token: 0x0600024E RID: 590 RVA: 0x0000303E File Offset: 0x0000123E + public Rooms.cRoom Room { get; set; } + + // Token: 0x170000E3 RID: 227 + // (get) Token: 0x0600024F RID: 591 RVA: 0x00003047 File Offset: 0x00001247 + // (set) Token: 0x06000250 RID: 592 RVA: 0x0000304F File Offset: 0x0000124F + public List Scenes { get; set; } + + // Token: 0x170000E4 RID: 228 + // (get) Token: 0x06000251 RID: 593 RVA: 0x00003058 File Offset: 0x00001258 + // (set) Token: 0x06000252 RID: 594 RVA: 0x00003060 File Offset: 0x00001260 + public List CoOwners { get; set; } + + // Token: 0x170000E5 RID: 229 + // (get) Token: 0x06000253 RID: 595 RVA: 0x00003069 File Offset: 0x00001269 + // (set) Token: 0x06000254 RID: 596 RVA: 0x00003071 File Offset: 0x00001271 + public List Hosts { get; set; } + + // Token: 0x170000E6 RID: 230 + // (get) Token: 0x06000255 RID: 597 RVA: 0x0000307A File Offset: 0x0000127A + // (set) Token: 0x06000256 RID: 598 RVA: 0x00003082 File Offset: 0x00001282 + public int CheerCount { get; set; } + + // Token: 0x170000E7 RID: 231 + // (get) Token: 0x06000257 RID: 599 RVA: 0x0000308B File Offset: 0x0000128B + // (set) Token: 0x06000258 RID: 600 RVA: 0x00003093 File Offset: 0x00001293 + public int FavoriteCount { get; set; } + + // Token: 0x170000E8 RID: 232 + // (get) Token: 0x06000259 RID: 601 RVA: 0x0000309C File Offset: 0x0000129C + // (set) Token: 0x0600025A RID: 602 RVA: 0x000030A4 File Offset: 0x000012A4 + public int VisitCount { get; set; } + + // Token: 0x170000E9 RID: 233 + // (get) Token: 0x0600025B RID: 603 RVA: 0x000030AD File Offset: 0x000012AD + // (set) Token: 0x0600025C RID: 604 RVA: 0x000030B5 File Offset: 0x000012B5 + public List Tags { get; set; } + } + + // Token: 0x0200006A RID: 106 + public class cRoom + { + // Token: 0x170000EA RID: 234 + // (get) Token: 0x0600025E RID: 606 RVA: 0x000030BE File Offset: 0x000012BE + // (set) Token: 0x0600025F RID: 607 RVA: 0x000030C6 File Offset: 0x000012C6 + public long RoomId { get; set; } + + // Token: 0x170000EB RID: 235 + // (get) Token: 0x06000260 RID: 608 RVA: 0x000030CF File Offset: 0x000012CF + // (set) Token: 0x06000261 RID: 609 RVA: 0x000030D7 File Offset: 0x000012D7 + public string Name { get; set; } + + // Token: 0x170000EC RID: 236 + // (get) Token: 0x06000262 RID: 610 RVA: 0x000030E0 File Offset: 0x000012E0 + // (set) Token: 0x06000263 RID: 611 RVA: 0x000030E8 File Offset: 0x000012E8 + public string Description { get; set; } + + // Token: 0x170000ED RID: 237 + // (get) Token: 0x06000264 RID: 612 RVA: 0x000030F1 File Offset: 0x000012F1 + // (set) Token: 0x06000265 RID: 613 RVA: 0x000030F9 File Offset: 0x000012F9 + public int CreatorPlayerId { get; set; } + + // Token: 0x170000EE RID: 238 + // (get) Token: 0x06000266 RID: 614 RVA: 0x00003102 File Offset: 0x00001302 + // (set) Token: 0x06000267 RID: 615 RVA: 0x0000310A File Offset: 0x0000130A + public string ImageName { get; set; } + + // Token: 0x170000EF RID: 239 + // (get) Token: 0x06000268 RID: 616 RVA: 0x00003113 File Offset: 0x00001313 + // (set) Token: 0x06000269 RID: 617 RVA: 0x0000311B File Offset: 0x0000131B + public int State { get; set; } + + // Token: 0x170000F0 RID: 240 + // (get) Token: 0x0600026A RID: 618 RVA: 0x00003124 File Offset: 0x00001324 + // (set) Token: 0x0600026B RID: 619 RVA: 0x0000312C File Offset: 0x0000132C + public int Accessibility { get; set; } + + // Token: 0x170000F1 RID: 241 + // (get) Token: 0x0600026C RID: 620 RVA: 0x00003135 File Offset: 0x00001335 + // (set) Token: 0x0600026D RID: 621 RVA: 0x0000313D File Offset: 0x0000133D + public bool SupportsLevelVoting { get; set; } + + // Token: 0x170000F2 RID: 242 + // (get) Token: 0x0600026E RID: 622 RVA: 0x00003146 File Offset: 0x00001346 + // (set) Token: 0x0600026F RID: 623 RVA: 0x0000314E File Offset: 0x0000134E + public bool IsAGRoom { get; set; } + + // Token: 0x170000F3 RID: 243 + // (get) Token: 0x06000270 RID: 624 RVA: 0x00003157 File Offset: 0x00001357 + // (set) Token: 0x06000271 RID: 625 RVA: 0x0000315F File Offset: 0x0000135F + public bool CloningAllowed { get; set; } + + // Token: 0x170000F4 RID: 244 + // (get) Token: 0x06000272 RID: 626 RVA: 0x00003168 File Offset: 0x00001368 + // (set) Token: 0x06000273 RID: 627 RVA: 0x00003170 File Offset: 0x00001370 + public bool SupportsScreens { get; set; } + + // Token: 0x170000F5 RID: 245 + // (get) Token: 0x06000274 RID: 628 RVA: 0x00003179 File Offset: 0x00001379 + // (set) Token: 0x06000275 RID: 629 RVA: 0x00003181 File Offset: 0x00001381 + public bool SupportsWalkVR { get; set; } + + // Token: 0x170000F6 RID: 246 + // (get) Token: 0x06000276 RID: 630 RVA: 0x0000318A File Offset: 0x0000138A + // (set) Token: 0x06000277 RID: 631 RVA: 0x00003192 File Offset: 0x00001392 + public bool SupportsTeleportVR { get; set; } + } + + // Token: 0x0200006B RID: 107 + public class Scene + { + // Token: 0x170000F7 RID: 247 + // (get) Token: 0x06000279 RID: 633 RVA: 0x0000319B File Offset: 0x0000139B + // (set) Token: 0x0600027A RID: 634 RVA: 0x000031A3 File Offset: 0x000013A3 + public long RoomSceneId { get; set; } + + // Token: 0x170000F8 RID: 248 + // (get) Token: 0x0600027B RID: 635 RVA: 0x000031AC File Offset: 0x000013AC + // (set) Token: 0x0600027C RID: 636 RVA: 0x000031B4 File Offset: 0x000013B4 + public long RoomId { get; set; } + + // Token: 0x170000F9 RID: 249 + // (get) Token: 0x0600027D RID: 637 RVA: 0x000031BD File Offset: 0x000013BD + // (set) Token: 0x0600027E RID: 638 RVA: 0x000031C5 File Offset: 0x000013C5 + public string RoomSceneLocationId { get; set; } + + // Token: 0x170000FA RID: 250 + // (get) Token: 0x0600027F RID: 639 RVA: 0x000031CE File Offset: 0x000013CE + // (set) Token: 0x06000280 RID: 640 RVA: 0x000031D6 File Offset: 0x000013D6 + public string Name { get; set; } + + // Token: 0x170000FB RID: 251 + // (get) Token: 0x06000281 RID: 641 RVA: 0x000031DF File Offset: 0x000013DF + // (set) Token: 0x06000282 RID: 642 RVA: 0x000031E7 File Offset: 0x000013E7 + public bool IsSandbox { get; set; } + + // Token: 0x170000FC RID: 252 + // (get) Token: 0x06000283 RID: 643 RVA: 0x000031F0 File Offset: 0x000013F0 + // (set) Token: 0x06000284 RID: 644 RVA: 0x000031F8 File Offset: 0x000013F8 + public string DataBlobName { get; set; } + + // Token: 0x170000FD RID: 253 + // (get) Token: 0x06000285 RID: 645 RVA: 0x00003201 File Offset: 0x00001401 + // (set) Token: 0x06000286 RID: 646 RVA: 0x00003209 File Offset: 0x00001409 + public int MaxPlayers { get; set; } + + // Token: 0x170000FE RID: 254 + // (get) Token: 0x06000287 RID: 647 RVA: 0x00003212 File Offset: 0x00001412 + // (set) Token: 0x06000288 RID: 648 RVA: 0x0000321A File Offset: 0x0000141A + public bool CanMatchmakeInto { get; set; } + + // Token: 0x170000FF RID: 255 + // (get) Token: 0x06000289 RID: 649 RVA: 0x00003223 File Offset: 0x00001423 + // (set) Token: 0x0600028A RID: 650 RVA: 0x0000322B File Offset: 0x0000142B + public DateTime DataModifiedAt { get; set; } + } + + // Token: 0x0200006C RID: 108 + public class cTag + { + // Token: 0x17000100 RID: 256 + // (get) Token: 0x0600028C RID: 652 RVA: 0x00003234 File Offset: 0x00001434 + // (set) Token: 0x0600028D RID: 653 RVA: 0x0000323C File Offset: 0x0000143C + public string Tag { get; set; } + + // Token: 0x17000101 RID: 257 + // (get) Token: 0x0600028E RID: 654 RVA: 0x00003245 File Offset: 0x00001445 + // (set) Token: 0x0600028F RID: 655 RVA: 0x0000324D File Offset: 0x0000144D + public int Type { get; set; } + } + + // Token: 0x0200006D RID: 109 + public class RoomPlayPage + { + // Token: 0x17000102 RID: 258 + // (get) Token: 0x06000291 RID: 657 RVA: 0x00003256 File Offset: 0x00001456 + // (set) Token: 0x06000292 RID: 658 RVA: 0x0000325E File Offset: 0x0000145E + public string RoomName { get; set; } + + // Token: 0x17000103 RID: 259 + // (get) Token: 0x06000293 RID: 659 RVA: 0x00003267 File Offset: 0x00001467 + // (set) Token: 0x06000294 RID: 660 RVA: 0x0000326F File Offset: 0x0000146F + public long RoomId { get; set; } + + // Token: 0x17000104 RID: 260 + // (get) Token: 0x06000295 RID: 661 RVA: 0x00003278 File Offset: 0x00001478 + // (set) Token: 0x06000296 RID: 662 RVA: 0x00003280 File Offset: 0x00001480 + public string ImageName { get; set; } + } + } +} diff --git a/Setup.cs b/Setup.cs index 11a93dd..4d84c62 100644 --- a/Setup.cs +++ b/Setup.cs @@ -10,7 +10,8 @@ namespace start { public static void setup() { - Console.WriteLine("Setting up..."); + //sets up all the important files so openrec doesnt crash like lame vaultserver xD + Console.WriteLine("Setting up... (May take a minute to download everything.)"); Directory.CreateDirectory("SaveData\\Images\\"); Directory.CreateDirectory("SaveData\\App\\"); Directory.CreateDirectory("SaveData\\Profile\\"); @@ -34,6 +35,14 @@ namespace start { File.WriteAllText("SaveData\\consumables.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/consumables.txt")); } + if (!(File.Exists("SaveData\\gameconfigs.txt"))) + { + File.WriteAllText("SaveData\\gameconfigs.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/gameconfigs.txt")); + } + if (!(File.Exists("SaveData\\storefronts2.txt"))) + { + File.WriteAllText("SaveData\\storefronts2.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/vaultButItsNewer/main/StoreFront2.json")); + } if (!(File.Exists("SaveData\\Profile\\username.txt"))) { File.WriteAllText("SaveData\\Profile\\username.txt", "DefaultUsername"); @@ -54,18 +63,18 @@ namespace start { File.WriteAllText("SaveData\\settings.txt", Newtonsoft.Json.JsonConvert.SerializeObject(api.Settings.CreateDefaultSettings())); } - if (!(File.Exists("SaveData\\App\\sandbox.txt"))) + if (!(File.Exists("SaveData\\App\\privaterooms.txt"))) { - File.WriteAllText("SaveData\\App\\sandbox.txt", "Disabled"); - } - if (!(File.Exists("SaveData\\App\\privatedorm.txt"))) - { - File.WriteAllText("SaveData\\App\\privatedorm.txt", "Disabled"); + File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled"); } if (!(File.Exists("SaveData\\App\\showopenrecinfo.txt"))) { File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Enabled"); } + if (!(File.Exists("SaveData\\App\\facefeaturesadd.txt"))) + { + File.WriteAllText("SaveData\\App\\facefeaturesadd.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/facefeaturesadd.txt")); + } if (!(File.Exists("SaveData\\Images\\count.txt"))) { File.WriteAllText("SaveData\\Images\\count.txt", "0");