mirror of
https://github.com/recroom2016/OpenRec.git
synced 2026-04-22 21:25:51 +00:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb7414eb8d | ||
|
|
5aff58844a | ||
|
|
21553584c1 | ||
|
|
41c603233e | ||
|
|
7d4c449151 | ||
|
|
ebd28aef74 | ||
|
|
8057427772 | ||
|
|
0e0da58f81 | ||
|
|
467230ef1b | ||
|
|
907fd6c472 | ||
|
|
dfb0bf7a66 | ||
|
|
540f18f19b | ||
|
|
30f6657c74 | ||
|
|
76c86ca4f6 | ||
|
|
0297845357 | ||
|
|
73202952da | ||
|
|
8be5b35339 | ||
|
|
8e6207c335 | ||
|
|
3fc8f954c1 | ||
|
|
2344b111d5 | ||
|
|
3d26270a55 | ||
|
|
9d5fb0432f | ||
|
|
81249c9efe | ||
|
|
e8ffebaf2f | ||
|
|
83ca99fbcb | ||
|
|
38c33ff4a2 | ||
|
|
7b7eb4326b | ||
|
|
10cfabf1d0 | ||
|
|
203a3e0002 | ||
|
|
a8f6aaf90d | ||
|
|
bc3701e9e4 | ||
|
|
c4f1e97a51 | ||
|
|
07c12f2cb7 | ||
|
|
cf81be7329 | ||
|
|
f702725b9b | ||
|
|
3bd0fa5ba3 | ||
|
|
59330ea345 | ||
|
|
57a2ff3462 | ||
|
|
aab1932199 | ||
|
|
857a1768ba | ||
|
|
2d54a04613 | ||
|
|
3f81862763 | ||
|
|
9c18f042b9 | ||
|
|
dc949325a1 | ||
|
|
88b37a9bbc | ||
|
|
3a8c07098d | ||
|
|
ada0777275 | ||
|
|
21706a82fb | ||
|
|
8024724946 | ||
|
|
009a5d48e2 | ||
|
|
060e2f27ed | ||
|
|
8c61c52edf | ||
|
|
6c4cfefce9 | ||
|
|
62e3fe47a6 | ||
|
|
488f68d075 | ||
|
|
8511d22c75 | ||
|
|
a9394b6c46 | ||
|
|
93e74b51b4 | ||
|
|
c42d15d3aa | ||
|
|
5926b6c753 | ||
|
|
3f8ff4a98b | ||
|
|
033634f104 | ||
|
|
41c720c948 | ||
|
|
b7df2186b2 | ||
|
|
a8e081602a | ||
|
|
b85ab57667 | ||
|
|
358b654064 |
580
APIServer.cs
580
APIServer.cs
@@ -5,14 +5,15 @@ using System.Text;
|
||||
using System.Threading;
|
||||
using api;
|
||||
using api2018;
|
||||
using api2017;
|
||||
using Newtonsoft.Json;
|
||||
using vaultgamesesh;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace server
|
||||
{
|
||||
|
||||
internal class APIServer
|
||||
{
|
||||
|
||||
public APIServer()
|
||||
{
|
||||
try
|
||||
@@ -29,6 +30,7 @@ namespace server
|
||||
{
|
||||
try
|
||||
{
|
||||
//2 different servers for 2 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 == "2016")
|
||||
{
|
||||
@@ -57,7 +59,7 @@ namespace server
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("API Requested: " + rawUrl);
|
||||
Console.WriteLine("API Requested (rawUrl): " + rawUrl);
|
||||
}
|
||||
Console.WriteLine("API Data: " + text);
|
||||
if (Url.StartsWith("versioncheck"))
|
||||
@@ -68,17 +70,103 @@ namespace server
|
||||
{
|
||||
s = Config2.GetDebugConfig();
|
||||
}
|
||||
if (Url == "notification/v2")
|
||||
{
|
||||
s = "[]";
|
||||
}
|
||||
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
||||
{
|
||||
s = ModerationBlockDetails;
|
||||
if (start.Program.bannedflag == true)
|
||||
{
|
||||
s = Banned;
|
||||
}
|
||||
}
|
||||
if (Url == "config/v1/amplitude")
|
||||
{
|
||||
s = Amplitude.amplitude();
|
||||
}
|
||||
if (Url.StartsWith("players/v1/"))
|
||||
{
|
||||
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 == "activities/charades/v1/words")
|
||||
{
|
||||
s = Activities.Charades.words();
|
||||
}
|
||||
if (Url == "gamesessions/v2/joinrandom")
|
||||
{
|
||||
s = gamesesh.GameSessions.JoinRandom(text);
|
||||
}
|
||||
if (Url == "gamesessions/v2/create")
|
||||
{
|
||||
s = gamesesh.GameSessions.Create(text);
|
||||
}
|
||||
if (rawUrl == "//api/sanitize/v1/isPure")
|
||||
{
|
||||
s = JsonConvert.SerializeObject(Sanitize.GetSanitize());
|
||||
}
|
||||
Console.WriteLine("API Response: " + s);
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
||||
response.ContentLength64 = (long)bytes.Length;
|
||||
Stream outputStream = response.OutputStream;
|
||||
outputStream.Write(bytes, 0, bytes.Length);
|
||||
Thread.Sleep(400);
|
||||
Thread.Sleep(200);
|
||||
outputStream.Close();
|
||||
this.listener.Stop();
|
||||
}
|
||||
}
|
||||
else if (start.Program.version == "2017")
|
||||
if (start.Program.version == "2017")
|
||||
{
|
||||
for (; ; )
|
||||
{
|
||||
@@ -105,7 +193,7 @@ namespace server
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("API Requested: " + rawUrl);
|
||||
Console.WriteLine("API Requested (rawUrl): " + rawUrl);
|
||||
}
|
||||
Console.WriteLine("API Data: " + text);
|
||||
if (Url.StartsWith("versioncheck"))
|
||||
@@ -116,12 +204,112 @@ namespace server
|
||||
{
|
||||
s = Config2.GetDebugConfig();
|
||||
}
|
||||
if (Url == "platformlogin/v1/profiles")
|
||||
{
|
||||
s = getorcreate.GetOrCreateArray((ulong.Parse(text.Remove(0, 32))));
|
||||
CachedPlayerID = ulong.Parse(text.Remove(0, 32));
|
||||
CachedPlatformID = ulong.Parse(text.Remove(0, 22));
|
||||
File.WriteAllText("SaveData\\Profile\\userid.txt", Convert.ToString(CachedPlayerID));
|
||||
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
start.Program.bannedflag = true;
|
||||
}
|
||||
}
|
||||
if (Url == "platformlogin/v6")
|
||||
{
|
||||
s = PlatformLogin.v4(CachedPlayerID);
|
||||
}
|
||||
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
||||
{
|
||||
s = ModerationBlockDetails;
|
||||
if (start.Program.bannedflag == true)
|
||||
{
|
||||
s = Banned;
|
||||
}
|
||||
}
|
||||
if (Url == "config/v1/amplitude")
|
||||
{
|
||||
s = Amplitude.amplitude();
|
||||
}
|
||||
if (Url.StartsWith("players/v1/"))
|
||||
{
|
||||
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 == "activities/charades/v1/words")
|
||||
{
|
||||
s = Activities.Charades.words();
|
||||
}
|
||||
if (Url == "gamesessions/v2/joinrandom")
|
||||
{
|
||||
s = gamesesh.GameSessions.JoinRandom(text);
|
||||
}
|
||||
if (Url == "gamesessions/v2/create")
|
||||
{
|
||||
s = gamesesh.GameSessions.Create(text);
|
||||
}
|
||||
if (rawUrl == "//api/sanitize/v1/isPure")
|
||||
{
|
||||
s = JsonConvert.SerializeObject(Sanitize.GetSanitize());
|
||||
}
|
||||
Console.WriteLine("API Response: " + s);
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
||||
response.ContentLength64 = (long)bytes.Length;
|
||||
Stream outputStream = response.OutputStream;
|
||||
outputStream.Write(bytes, 0, bytes.Length);
|
||||
Thread.Sleep(400);
|
||||
Thread.Sleep(200);
|
||||
outputStream.Close();
|
||||
this.listener.Stop();
|
||||
}
|
||||
@@ -135,8 +323,11 @@ namespace server
|
||||
HttpListenerContext context = this.listener.GetContext();
|
||||
HttpListenerRequest request = context.Request;
|
||||
HttpListenerResponse response = context.Response;
|
||||
List<byte> list = new List<byte>();
|
||||
string rawUrl = request.RawUrl;
|
||||
string Url = "";
|
||||
byte[] bytes = null;
|
||||
string signature = request.Headers.Get("X-RNSIG");
|
||||
if (rawUrl.StartsWith("/api/"))
|
||||
{
|
||||
Url = rawUrl.Remove(0, 5);
|
||||
@@ -147,7 +338,7 @@ namespace server
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("API Requested: " + rawUrl);
|
||||
Console.WriteLine("API Requested (rawUrl): " + rawUrl);
|
||||
}
|
||||
string text;
|
||||
string s = "";
|
||||
@@ -158,6 +349,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"))
|
||||
@@ -169,11 +368,19 @@ namespace server
|
||||
s = getcachedlogins.GetDebugLogin(ulong.Parse(text.Remove(0, 32)), ulong.Parse(text.Remove(0, 22)));
|
||||
CachedPlayerID = ulong.Parse(text.Remove(0, 32));
|
||||
CachedPlatformID = ulong.Parse(text.Remove(0, 22));
|
||||
File.WriteAllText("SaveData\\Profile\\userid.txt", Convert.ToString(CachedPlayerID));
|
||||
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
start.Program.bannedflag = true;
|
||||
}
|
||||
}
|
||||
if (Url == "platformlogin/v1/loginaccount")
|
||||
{
|
||||
{
|
||||
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
||||
}
|
||||
}
|
||||
if (Url == "platformlogin/v1/createaccount")
|
||||
{
|
||||
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
||||
@@ -186,32 +393,69 @@ namespace server
|
||||
{
|
||||
s = BlankResponse;
|
||||
}
|
||||
if (Url == "players/v1/list")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "config/v1/amplitude")
|
||||
{
|
||||
s = Amplitude.amplitude();
|
||||
}
|
||||
if (Url == "images/v2/named")
|
||||
{
|
||||
{
|
||||
s = ImagesV2Named;
|
||||
}
|
||||
}
|
||||
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
||||
{
|
||||
{
|
||||
s = ModerationBlockDetails;
|
||||
}
|
||||
if (Url == "messages/v2/get")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (start.Program.bannedflag == true)
|
||||
{
|
||||
s = Banned;
|
||||
}
|
||||
}
|
||||
if (Url == "//api/chat/v2/myChats?mode=0&count=50")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "messages/v2/get")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "relationships/v2/get")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "gameconfigs/v1/all")
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\gameconfigs.txt");
|
||||
}
|
||||
if (Url.StartsWith("storefronts/v3/giftdropstore"))
|
||||
{
|
||||
if (CachedVersionMonth == 09)
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\storefronts2.txt");
|
||||
}
|
||||
else
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
}
|
||||
if (Url.StartsWith("storefronts/v3/balance/"))
|
||||
{
|
||||
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/")
|
||||
@@ -222,8 +466,16 @@ namespace server
|
||||
{
|
||||
Settings.SetPlayerSettings(text);
|
||||
}
|
||||
if (rawUrl == "//api/chat/v2/myChats?mode=0&count=50")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "playersubscriptions/v1/my")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "avatar/v3/items")
|
||||
{
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\avataritems.txt");
|
||||
}
|
||||
if (Url == "equipment/v1/getUnlocked")
|
||||
@@ -231,33 +483,48 @@ namespace server
|
||||
s = File.ReadAllText("SaveData\\equipment.txt");
|
||||
}
|
||||
if (Url == "avatar/v1/saved")
|
||||
{
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
}
|
||||
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 = BlankResponse;
|
||||
}
|
||||
if (Url == "storefronts/v1/allGiftDrops/2")
|
||||
{
|
||||
s = "";
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "objectives/v1/myprogress")
|
||||
{
|
||||
{
|
||||
s = JsonConvert.SerializeObject(new Objective2018());
|
||||
}
|
||||
if (Url == "rooms/v1/myrooms")
|
||||
{
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\myrooms.txt");
|
||||
}
|
||||
}
|
||||
if (Url == "rooms/v2/myrooms")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "rooms/v2/baserooms")
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\baserooms.txt");
|
||||
}
|
||||
if (Url == "rooms/v1/mybookmarkedrooms")
|
||||
{
|
||||
s = BracketResponse;
|
||||
@@ -267,45 +534,270 @@ namespace server
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "events/v3/list")
|
||||
{
|
||||
{
|
||||
s = Events.list();
|
||||
}
|
||||
}
|
||||
if (Url == "playerevents/v1/all")
|
||||
{
|
||||
s = PlayerEventsResponse;
|
||||
}
|
||||
if (Url == "activities/charades/v1/words")
|
||||
{
|
||||
s = Activities.Charades.words();
|
||||
}
|
||||
if (Url == "gamesessions/v2/joinrandom")
|
||||
{
|
||||
s = gamesessions2018.GameSessions.JoinRandom(text);
|
||||
s = gamesesh.GameSessions.JoinRandom(text);
|
||||
}
|
||||
if (Url == "gamesessions/v2/create")
|
||||
{
|
||||
s = gamesesh.GameSessions.Create(text);
|
||||
}
|
||||
if (Url == "gamesessions/v3/joinroom")
|
||||
{
|
||||
s = JsonConvert.SerializeObject(c000041.m000030(text));
|
||||
}
|
||||
if (rawUrl == "//api/sanitize/v1/isPure")
|
||||
{
|
||||
s = "{\"IsPure\":true}";
|
||||
}
|
||||
if (Url == "avatar/v3/saved")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "checklist/v1/current")
|
||||
{
|
||||
s = ChecklistV1Current;
|
||||
}
|
||||
if (Url == "presence/v1/setplayertype")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "challenge/v1/getCurrent")
|
||||
{
|
||||
s = ChallengesV1GetCurrent;
|
||||
}
|
||||
if (Url == "rooms/v1/featuredRoomGroup")
|
||||
{
|
||||
s = BracketResponse;
|
||||
}
|
||||
if (Url == "rooms/v1/clone")
|
||||
{
|
||||
s = BracketResponse; //JsonConvert.SerializeObject(c000099.m00000a(text));
|
||||
}
|
||||
if (Url.StartsWith("rooms/v2/saveData"))
|
||||
{
|
||||
string text26 = "5GDNL91ZY43PXN2YJENTBL";
|
||||
string path = c000004.m000007() + c000041.f000043.Room.Name;
|
||||
File.WriteAllBytes(string.Concat(new string[]
|
||||
{
|
||||
c000004.m000007(),
|
||||
c000041.f000043.Room.Name,
|
||||
"\\room\\",
|
||||
text26,
|
||||
".room"
|
||||
}), m00005d(list.ToArray(), "data.dat"));
|
||||
c000041.f000043.Scenes[0].DataBlobName = text26 + ".room";
|
||||
c000041.f000043.Scenes[0].DataModifiedAt = DateTime.Now;
|
||||
File.WriteAllText(c000004.m000007() + c000041.f000043.Room.Name + "\\RoomDetails.json", JsonConvert.SerializeObject(c000041.f000043));
|
||||
s = JsonConvert.SerializeObject(c00005d.m000035());
|
||||
}
|
||||
if (Url == "presence/v3/heartbeat")
|
||||
{
|
||||
s = JsonConvert.SerializeObject(Notification2018.Reponse.createResponse(4, c000020.m000027()));
|
||||
}
|
||||
if (Url == "rooms/v1/featuredRoomGroup")
|
||||
{
|
||||
s = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/dormslideshow.txt");
|
||||
}
|
||||
if (Url.StartsWith("rooms/v1/hot"))
|
||||
{
|
||||
s = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/hotrooms.txt");
|
||||
}
|
||||
if (Url.StartsWith("rooms/v4/details/29"))
|
||||
{
|
||||
s = File.ReadAllText("SaveData\\Rooms\\Downloaded\\RoomDetails.json");
|
||||
}
|
||||
Console.WriteLine("API Response: " + s);
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
||||
bytes = Encoding.UTF8.GetBytes(s);
|
||||
response.ContentLength64 = (long)bytes.Length;
|
||||
Stream outputStream = response.OutputStream;
|
||||
outputStream.Write(bytes, 0, bytes.Length);
|
||||
Thread.Sleep(400);
|
||||
Thread.Sleep(100);
|
||||
outputStream.Close();
|
||||
this.listener.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex4)
|
||||
{
|
||||
{
|
||||
Console.WriteLine(ex4);
|
||||
File.WriteAllText("crashdump.txt", Convert.ToString(ex4));
|
||||
}
|
||||
}
|
||||
public static ulong CachedPlayerID = 1;
|
||||
}
|
||||
}
|
||||
public static ulong CachedPlayerID = 1;
|
||||
public static ulong CachedPlatformID = 10000;
|
||||
public static int CachedVersionMonth = 01;
|
||||
|
||||
public static string BlankResponse = "";
|
||||
public static string BracketResponse = "[]";
|
||||
|
||||
public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}";
|
||||
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
||||
public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}";
|
||||
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
||||
public static string ModerationBlockDetails = "{\"ReportCategory\":0,\"Duration\":0,\"GameSessionId\":0,\"Message\":\"\"}";
|
||||
public static string ImagesV2Named = "[{\"FriendlyImageName\":\"DormRoomBucket\",\"ImageName\":\"OpenRec\",\"StartTime\":\"2021-12-27T21:27:38.1880175-08:00\",\"EndTime\":\"2043-12-27T21:27:38.1880399-08:00\"}";
|
||||
public static string ChallengesV1GetCurrent = "{\"Success\":true,\"Message\":\"OpenRec\"}";
|
||||
public static string ChecklistV1Current = "[{\"Order\":0,\"Objective\":3000,\"Count\":3,\"CreditAmount\":100},{\"Order\":1,\"Objective\":3001,\"Count\":3,\"CreditAmount\":100},{\"Order\":2,\"Objective\":3002,\"Count\":3,\"CreditAmount\":100}]";
|
||||
|
||||
public static string Banned = "{\"ReportCategory\":1,\"Duration\":10000000000000000,\"GameSessionId\":100,\"Message\":\"You have been banned. You are probably a little kid and are now whining at your VR headset. If you aren't a little kid, DM me to appeal.\"}";
|
||||
private HttpListener listener = new HttpListener();
|
||||
|
||||
|
||||
|
||||
|
||||
private static byte[] m00005d(byte[] p0, string p1)
|
||||
{
|
||||
BinaryReader binaryReader = new BinaryReader(new MemoryStream(p0));
|
||||
try
|
||||
{
|
||||
while (binaryReader.BaseStream.Position != binaryReader.BaseStream.Length)
|
||||
{
|
||||
bool flag = true;
|
||||
bool flag2 = false;
|
||||
APIServer.c0000a7 c0000a = new APIServer.c0000a7();
|
||||
while (flag)
|
||||
{
|
||||
List<byte> list = new List<byte>();
|
||||
bool flag3 = true;
|
||||
while (flag3)
|
||||
{
|
||||
byte b = binaryReader.ReadByte();
|
||||
if (binaryReader.BaseStream.Position != binaryReader.BaseStream.Length)
|
||||
{
|
||||
if (b == 13)
|
||||
{
|
||||
binaryReader.ReadByte();
|
||||
flag3 = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Add(b);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flag3 = false;
|
||||
}
|
||||
}
|
||||
string @string = Encoding.ASCII.GetString(list.ToArray());
|
||||
Console.WriteLine(@string);
|
||||
if (@string.StartsWith("Content-Length: "))
|
||||
{
|
||||
string s = @string.Remove(0, 16);
|
||||
c0000a.m000017(int.Parse(s));
|
||||
}
|
||||
if (@string.Contains(p1))
|
||||
{
|
||||
Console.WriteLine("Has file");
|
||||
flag2 = true;
|
||||
}
|
||||
if (binaryReader.BaseStream.Position != binaryReader.BaseStream.Length)
|
||||
{
|
||||
if (binaryReader.ReadByte() == 13)
|
||||
{
|
||||
flag = false;
|
||||
binaryReader.ReadByte();
|
||||
}
|
||||
else
|
||||
{
|
||||
binaryReader.BaseStream.Position -= 1L;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
if (flag2)
|
||||
{
|
||||
List<byte> list2 = new List<byte>();
|
||||
for (; ; )
|
||||
{
|
||||
if (binaryReader.ReadByte() == 13)
|
||||
{
|
||||
if (binaryReader.ReadByte() == 10)
|
||||
{
|
||||
if (binaryReader.ReadByte() == 45)
|
||||
{
|
||||
break;
|
||||
}
|
||||
binaryReader.BaseStream.Position -= 3L;
|
||||
}
|
||||
else
|
||||
{
|
||||
binaryReader.BaseStream.Position -= 2L;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
binaryReader.BaseStream.Position -= 1L;
|
||||
}
|
||||
byte item = binaryReader.ReadByte();
|
||||
list2.Add(item);
|
||||
}
|
||||
return list2.ToArray();
|
||||
}
|
||||
if (binaryReader.BaseStream.Position != binaryReader.BaseStream.Length)
|
||||
{
|
||||
binaryReader.ReadBytes(c0000a.m000016());
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)binaryReader).Dispose();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public sealed class c0000a7
|
||||
{
|
||||
public string m000001()
|
||||
{
|
||||
return this.f00000a;
|
||||
}
|
||||
public void m000034(string p0)
|
||||
{
|
||||
this.f00000a = p0;
|
||||
}
|
||||
public string m000005()
|
||||
{
|
||||
return this.f000002;
|
||||
}
|
||||
public void m00003f(string p0)
|
||||
{
|
||||
this.f000002 = p0;
|
||||
}
|
||||
public int m000016()
|
||||
{
|
||||
return this.f000020;
|
||||
}
|
||||
public void m000017(int p0)
|
||||
{
|
||||
this.f000020 = p0;
|
||||
}
|
||||
public byte[] m000061()
|
||||
{
|
||||
return this.f000084;
|
||||
}
|
||||
public void m000062(byte[] p0)
|
||||
{
|
||||
this.f000084 = p0;
|
||||
}
|
||||
private string f00000a;
|
||||
private string f000002;
|
||||
private int f000020;
|
||||
private byte[] f000084;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
197
Activities.cs
Normal file
197
Activities.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace api
|
||||
{
|
||||
// Token: 0x0200000B RID: 11
|
||||
internal class Activities
|
||||
{
|
||||
// Token: 0x0200000C RID: 12
|
||||
public class Charades
|
||||
{
|
||||
// Token: 0x0600001D RID: 29 RVA: 0x0000410C File Offset: 0x0000230C
|
||||
public static string words()
|
||||
{
|
||||
List<Activities.Charades.word> value = new List<Activities.Charades.word>
|
||||
{
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "talking ben",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "lemon",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "grape",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "roblox",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "tree",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "cloud",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "iphone",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "your house",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "spaghetti",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "lean",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "bitcoin",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "nft",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "grass",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "recroom2016",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "joker",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "fortnite",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "woman",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "spiderman",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "vr",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "among us",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "coach",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "coach with a gun",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "funny fish",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "skinwalker",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "christmas tree",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "ur mom",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "stick of ram",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "big mac",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "ninetndo switch",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "crescendo",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "boxing",
|
||||
Difficulty = 0
|
||||
},
|
||||
new Activities.Charades.word
|
||||
{
|
||||
EN_US = "angry birds",
|
||||
Difficulty = 0
|
||||
}
|
||||
};
|
||||
return JsonConvert.SerializeObject(value);
|
||||
}
|
||||
|
||||
// Token: 0x0200000D RID: 13
|
||||
public class word
|
||||
{
|
||||
// Token: 0x17000004 RID: 4
|
||||
// (get) Token: 0x0600001F RID: 31 RVA: 0x000020DC File Offset: 0x000002DC
|
||||
// (set) Token: 0x06000020 RID: 32 RVA: 0x000020E4 File Offset: 0x000002E4
|
||||
public string EN_US { get; set; }
|
||||
|
||||
// Token: 0x17000005 RID: 5
|
||||
// (get) Token: 0x06000021 RID: 33 RVA: 0x000020ED File Offset: 0x000002ED
|
||||
// (set) Token: 0x06000022 RID: 34 RVA: 0x000020F5 File Offset: 0x000002F5
|
||||
public int Difficulty { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ namespace api
|
||||
{
|
||||
return JsonConvert.SerializeObject(new Amplitude
|
||||
{
|
||||
AmplitudeKey = "e1693a1003671058b6abc356c8ba8d59"
|
||||
AmplitudeKey = "NoKeyProvided"
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
294
Config.cs
294
Config.cs
@@ -8,155 +8,155 @@ namespace api
|
||||
{
|
||||
class Config
|
||||
{
|
||||
public static void setup()
|
||||
public static void setup()
|
||||
{
|
||||
Console.WriteLine("Setting up...");
|
||||
Directory.CreateDirectory("SaveData\\Profile\\");
|
||||
if (!(File.Exists("SaveData\\avatar.txt")))
|
||||
Console.WriteLine("Setting up...");
|
||||
Directory.CreateDirectory("SaveData\\Profile\\");
|
||||
if (!(File.Exists("SaveData\\avatar.txt")))
|
||||
{
|
||||
File.Create("SaveData\\avatar.txt");
|
||||
File.Create("SaveData\\avatar.txt");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\Profile\\username.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\Profile\\username.txt", "DefaultUsername");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\profileimage.png")))
|
||||
{
|
||||
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png"));
|
||||
}
|
||||
Console.WriteLine("Done!");
|
||||
Console.Clear();
|
||||
}
|
||||
public static gamesessions2018.GameSessions.SessionInstance localGameSession;
|
||||
public static Objective[][] dailyObjectives = new Objective[][]
|
||||
{
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!(File.Exists("SaveData\\Profile\\username.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\Profile\\username.txt", "DefaultUsername");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\profileimage.png")))
|
||||
{
|
||||
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png"));
|
||||
}
|
||||
Console.WriteLine("Done!");
|
||||
Console.Clear();
|
||||
}
|
||||
public static gamesesh.GameSessions.SessionInstance localGameSession;
|
||||
public static Objective[][] dailyObjectives = new Objective[][]
|
||||
{
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
},
|
||||
new Objective[]
|
||||
{
|
||||
new Objective
|
||||
{
|
||||
type = 20,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 21,
|
||||
score = 1
|
||||
},
|
||||
new Objective
|
||||
{
|
||||
type = 22,
|
||||
score = 1
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
146
CustomRooms.cs
Normal file
146
CustomRooms.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using Newtonsoft.Json;
|
||||
using vaultgamesesh;
|
||||
using System.IO;
|
||||
using server;
|
||||
|
||||
namespace api
|
||||
{
|
||||
class CustomRooms
|
||||
{
|
||||
public static void RoomDecode(string roomname, string roomsceneid, string imagename, string datablob)
|
||||
{
|
||||
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomname.txt", roomname);
|
||||
File.WriteAllText("SaveData\\Rooms\\Downloaded\\datablob.txt", datablob);
|
||||
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomsceneid.txt", roomsceneid);
|
||||
File.WriteAllText("SaveData\\Rooms\\Downloaded\\imagename.txt", imagename);
|
||||
ulong rand = Convert.ToUInt64(new Random().Next(0, 99));
|
||||
room = new Room
|
||||
{
|
||||
RoomId = rand,
|
||||
Name = roomname,
|
||||
Description = "OpenRec Downloaded Room",
|
||||
ImageName = imagename,
|
||||
CreatorPlayerId = APIServer.CachedPlayerID,
|
||||
State = 0,
|
||||
Accessibility = 1,
|
||||
SupportsLevelVoting = false,
|
||||
IsAGRoom = false,
|
||||
CloningAllowed = false,
|
||||
SupportsScreens = true,
|
||||
SupportsWalkVR = true,
|
||||
SupportsTeleportVR = true,
|
||||
ReplicationId = null,
|
||||
ReleaseStatus = 0
|
||||
|
||||
};
|
||||
scene = new List<Scene>
|
||||
{
|
||||
new Scene()
|
||||
{
|
||||
RoomSceneId = 1,
|
||||
RoomId = rand,
|
||||
RoomSceneLocationId = "a75f7547-79eb-47c6-8986-6767abcb4f92",
|
||||
Name = "Home",
|
||||
IsSandbox = true,
|
||||
DataBlobName = datablob,
|
||||
MaxPlayers = 20,
|
||||
CanMatchmakeInto = true,
|
||||
DataModifiedAt = DateTime.Now,
|
||||
ReplicationId = null,
|
||||
UseLevelBasedMatchmaking = false,
|
||||
UseAgeBasedMatchmaking = false,
|
||||
UseRecRoyaleMatchmaking = false,
|
||||
ReleaseStatus = 0,
|
||||
SupportsJoinInProgress = true
|
||||
}
|
||||
};
|
||||
root = new Root
|
||||
{
|
||||
Room = room,
|
||||
Scenes = scene,
|
||||
CoOwners = new List<ulong>(),
|
||||
InvitedCoOwners = new List<ulong>(),
|
||||
Hosts = new List<ulong>(),
|
||||
InvitedHosts = new List<ulong>(),
|
||||
CheerCount = 999,
|
||||
FavoriteCount = 999,
|
||||
VisitCount = 999,
|
||||
Tags = new List<aTag>
|
||||
{
|
||||
new aTag()
|
||||
{
|
||||
Tag = "rro",
|
||||
Type = 2
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
File.WriteAllText("SaveData\\Rooms\\Downloaded\\RoomDetails.json", JsonConvert.SerializeObject(root));
|
||||
}
|
||||
|
||||
public static Room room { get; set; }
|
||||
public static List<Scene> scene { get; set; }
|
||||
public static Root root { get; set; }
|
||||
//2018 rooms
|
||||
public class Room
|
||||
{
|
||||
public ulong RoomId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
public ulong CreatorPlayerId { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public int State { get; set; }
|
||||
public int Accessibility { get; set; }
|
||||
public bool SupportsLevelVoting { get; set; }
|
||||
public bool IsAGRoom { get; set; }
|
||||
public bool CloningAllowed { get; set; }
|
||||
public bool SupportsScreens { get; set; }
|
||||
public bool SupportsWalkVR { get; set; }
|
||||
public bool SupportsTeleportVR { get; set; }
|
||||
public object ReplicationId { get; set; }
|
||||
public int ReleaseStatus { get; set; }
|
||||
}
|
||||
|
||||
public class Scene
|
||||
{
|
||||
public int RoomSceneId { get; set; }
|
||||
public ulong RoomId { get; set; }
|
||||
public string RoomSceneLocationId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public bool IsSandbox { get; set; }
|
||||
public string DataBlobName { get; set; }
|
||||
public int MaxPlayers { get; set; }
|
||||
public bool CanMatchmakeInto { get; set; }
|
||||
public DateTime DataModifiedAt { get; set; }
|
||||
public object ReplicationId { get; set; }
|
||||
public bool UseLevelBasedMatchmaking { get; set; }
|
||||
public bool UseAgeBasedMatchmaking { get; set; }
|
||||
public bool UseRecRoyaleMatchmaking { get; set; }
|
||||
public int ReleaseStatus { get; set; }
|
||||
public bool SupportsJoinInProgress { get; set; }
|
||||
}
|
||||
|
||||
public class Root
|
||||
{
|
||||
public Room Room { get; set; }
|
||||
public List<Scene> Scenes { get; set; }
|
||||
public List<ulong> CoOwners { get; set; }
|
||||
public List<ulong> InvitedCoOwners { get; set; }
|
||||
public List<ulong> Hosts { get; set; }
|
||||
public List<ulong> InvitedHosts { get; set; }
|
||||
public int CheerCount { get; set; }
|
||||
public int FavoriteCount { get; set; }
|
||||
public int VisitCount { get; set; }
|
||||
public List<aTag> Tags { get; set; }
|
||||
}
|
||||
public class aTag
|
||||
{
|
||||
public string Tag { get; set; }
|
||||
public int Type { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"OutfitSelections":"b33dbeee-5bdd-443d-aa6a-761248054e08,,,,1;6d48c545-22bb-46c1-a29d-0a38af387143,,,,2;6d48c545-22bb-46c1-a29d-0a38af387143,,,,3;ecc1dbe6-ca06-4564-b2a6-30956194d1e9,51ef8d39-2b94-4f9e-9620-07b6b0a913a5,0b2395e1-ebcc-47e9-aaf1-faf9e9cec4cd,,2;ecc1dbe6-ca06-4564-b2a6-30956194d1e9,51ef8d39-2b94-4f9e-9620-07b6b0a913a5,0b2395e1-ebcc-47e9-aaf1-faf9e9cec4cd,,3;0753d7a4-8247-4fca-a6fc-359c26086140,,,,0;14ef6b00-debf-4a85-9755-b4d37df496d3,724c79a3-822c-422f-9462-a5374ee0211c,,,0;11e508a7-fe7d-470e-b270-2dba33e2f7a1,,,,0;d0a9262f-5504-46a7-bb10-7507503db58e,fe304452-b57b-45bc-9c1c-b85b70bcec12,,6a007c73-d930-408a-93df-041a715e0dd4,1","HairColor":"5ee30295-b05f-4e96-819e-5ac865b2c63d","SkinColor":"85343b16-d58a-4091-96d8-083a81fb03ae","FaceFeatures":""}
|
||||
{"OutfitSelections":"b33dbeee-5bdd-443d-aa6a-761248054e08,,,,1;6d48c545-22bb-46c1-a29d-0a38af387143,,,,2;6d48c545-22bb-46c1-a29d-0a38af387143,,,,3;3757149b-f478-4975-81e5-d808a1bed8d5,,,,1;e15b13a7-9e9a-4b32-ba2c-0cb31ed55a8c,,,,1;3a790be3-2937-44d4-be01-b5d65353bd3d,,,,3;3a790be3-2937-44d4-be01-b5d65353bd3d,,,,2;b861e5f3-fc6d-43b3-9861-c1b45cb493a8,,,,0;61ba3c90-c81e-4deb-bc79-50c0f1fe3e83,,,,0","SkinColor":"2d398478-37c4-4c4a-a471-fbcbe3e5b1f5","HairColor":"5ee30295-b05f-4e96-819e-5ac865b2c63d","FaceFeatures":""}
|
||||
|
||||
2
Download/avataritems2.txt
Normal file
2
Download/avataritems2.txt
Normal file
File diff suppressed because one or more lines are too long
1
Download/banned.txt
Normal file
1
Download/banned.txt
Normal file
@@ -0,0 +1 @@
|
||||
[487454, 4701796]
|
||||
1
Download/baserooms.txt
Normal file
1
Download/baserooms.txt
Normal file
@@ -0,0 +1 @@
|
||||
[{"RoomId":24,"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,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":25,"Name":"Park","Description":"A sprawling park with amphitheater, play fields, and a cave.","CreatorPlayerId":114785367,"ImageName":"","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":22,"Name":"Lounge","Description":"A low-key lounge to chill with your friends. Great for private parties!","CreatorPlayerId":114785367,"ImageName":"ActivityLounge.png","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":23,"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,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":18,"Name":"Hangar","Description":"Teams battle each other and waves of robots.","CreatorPlayerId":114785367,"ImageName":"ActivityLaserTag.png","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true}]
|
||||
20
Download/changelog.txt
Normal file
20
Download/changelog.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Fifth public release of OpenRec, and the new biggest update to date.
|
||||
|
||||
Supports:
|
||||
-December 25th 2016
|
||||
-October 19th 2017
|
||||
-May 30th 2018
|
||||
-September 27th 2018
|
||||
|
||||
-Added 2016 Support
|
||||
-Added September 27th Support
|
||||
-Added Image Server (September 2018 only)
|
||||
-Added Custom Room Downloader (September 2018 only)
|
||||
-Slight UI Improvements
|
||||
-Tons of new APIs added in
|
||||
-Improved banning system
|
||||
|
||||
Credits:
|
||||
@LucasOnDiscord#0210 - Adding potions
|
||||
@GabeTheFirst#7335 - Tester when my game was broken
|
||||
@andry6702#9812 - Discovered custom rooms for 2018
|
||||
@@ -1 +1 @@
|
||||
[{"Id":1,"ConsumableItemDesc":"7OZ5AE3uuUyqa0P","CreatedAt":"2022-02-18T23:29:59.9035571-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":2,"ConsumableItemDesc":"_jnjYGBcyEWY5Ub4OezXcA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":3,"ConsumableItemDesc":"5hIAZ9wg5EyG1cILf4FS2A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":4,"ConsumableItemDesc":"wUCIKdJSvEmiQHYMyx4X4w","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":5,"ConsumableItemDesc":"JfnVXFmilU6ysv-VbTAe3A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":6,"ConsumableItemDesc":"InQ25wQMGkG_bvuD5rf2Ag","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":7,"ConsumableItemDesc":"mMCGPgK3tki5S_15q2Z81A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":8,"ConsumableItemDesc":"ZuvkidodzkuOfGLDnTOFyg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false}]
|
||||
[{"Id":1,"ConsumableItemDesc":"7OZ5AE3uuUyqa0P","CreatedAt":"2022-02-18T23:29:59.9035571-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":2,"ConsumableItemDesc":"_jnjYGBcyEWY5Ub4OezXcA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":3,"ConsumableItemDesc":"5hIAZ9wg5EyG1cILf4FS2A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":4,"ConsumableItemDesc":"wUCIKdJSvEmiQHYMyx4X4w","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":5,"ConsumableItemDesc":"JfnVXFmilU6ysv-VbTAe3A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":6,"ConsumableItemDesc":"InQ25wQMGkG_bvuD5rf2Ag","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":7,"ConsumableItemDesc":"mMCGPgK3tki5S_15q2Z81A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":8,"ConsumableItemDesc":"ZuvkidodzkuOfGLDnTOFyg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":9,"ConsumableItemDesc":"VQSgL2pTLkWx4B3kwYG7UA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":10,"ConsumableItemDesc":"Tpxqe_lycUelySRHM8B0Vw","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":11,"ConsumableItemDesc":"-hy0qD-iUk-v4NHxNzanmg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false}]
|
||||
|
||||
1
Download/facefeaturesadd.txt
Normal file
1
Download/facefeaturesadd.txt
Normal file
@@ -0,0 +1 @@
|
||||
,"FaceFeatures":""}
|
||||
104
Download/gameconfigs.txt
Normal file
104
Download/gameconfigs.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
[
|
||||
{
|
||||
"Key": "Gift.MaxDaily",
|
||||
"Value": "100",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Gift.Falloff",
|
||||
"Value": "1",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Gift.DropChance",
|
||||
"Value": "100",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "UseHeartbeatWebSocket",
|
||||
"Value": "0",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Screens.ForceVerification",
|
||||
"Value": "1",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Screens.ForceVerification",
|
||||
"Value": "1",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "forceRegistration",
|
||||
"Value": "0",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Creative.Query",
|
||||
"Value": "#puzzle",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Creative.Title",
|
||||
"Value": "PUZZLE",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Featured.Query",
|
||||
"Value": "#featured",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Featured.Title",
|
||||
"Value": "Featured",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Quests.Query",
|
||||
"Value": "#quest",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Quests.Title",
|
||||
"Value": "QUESTS",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Shooters.Query",
|
||||
"Value": "#pvp #rro",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Shooters.Title",
|
||||
"Value": "PVP",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Sports.Query",
|
||||
"Value": "#sport",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
},
|
||||
{
|
||||
"Key": "Door.Sports.Title",
|
||||
"Value": "SPORTS & PVP",
|
||||
"StartTime": null,
|
||||
"EndTime": null
|
||||
}
|
||||
]
|
||||
1
Download/storefront2.txt
Normal file
1
Download/storefront2.txt
Normal file
@@ -0,0 +1 @@
|
||||
{"StorefrontType":2,"NextUpdate":"2024-02-16T11:04:54.4129449-07:00","StoreItems":[{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":30000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"HAHA I can communicate via raw data","Tooltip":"your balls are mine now, raw data geek","AvatarItemDesc":"274cb9b2-2f59-47ea-9a8d-a5b656d148c6,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":1,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":35000}],"GiftDrops":[{"GiftDropId":1,"FriendlyName":"anal sex","Tooltip":"with the cum","AvatarItemDesc":"2c679f89-c76e-4cfb-94e9-448c8fd44d55,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":2,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":10000}],"GiftDrops":[{"GiftDropId":2,"FriendlyName":"I'm laughing so hard, some may say","Tooltip":"Bawling (at Two FootWear Coridors, now in September 2018's Play Menu!)","AvatarItemDesc":"50c9c6f8-2963-4ef3-95d5-e999a898269f,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":15000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Bishop Hair","Tooltip":"","AvatarItemDesc":"b861e5f3-fc6d-43b3-9861-c1b45cb493a8,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":4,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":4,"FriendlyName":"Bishop Shirt","Tooltip":"","AvatarItemDesc":"6930ce13-4be4-4ab9-9817-667bd261ffc3,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":5,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":5,"FriendlyName":"Bishop Gloves","Tooltip":"","AvatarItemDesc":"abc25091-ed5f-4c72-9364-fffeef1bc239,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":30000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Saija Helmet","Tooltip":"","AvatarItemDesc":"274cb9b2-2f59-47ea-9a8d-a5b656d148c6,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":1,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":35000}],"GiftDrops":[{"GiftDropId":1,"FriendlyName":"Saija Shirt","Tooltip":"","AvatarItemDesc":"2c679f89-c76e-4cfb-94e9-448c8fd44d55,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":2,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":10000}],"GiftDrops":[{"GiftDropId":2,"FriendlyName":"Saija Gloves","Tooltip":"","AvatarItemDesc":"50c9c6f8-2963-4ef3-95d5-e999a898269f,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":15000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Bishop Hair","Tooltip":"","AvatarItemDesc":"b861e5f3-fc6d-43b3-9861-c1b45cb493a8,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":4,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":4,"FriendlyName":"Bishop Shirt","Tooltip":"","AvatarItemDesc":"6930ce13-4be4-4ab9-9817-667bd261ffc3,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":5,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":5,"FriendlyName":"Bishop Gloves","Tooltip":"","AvatarItemDesc":"abc25091-ed5f-4c72-9364-fffeef1bc239,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]}]}
|
||||
@@ -1 +1 @@
|
||||
0.2
|
||||
0.6.0
|
||||
|
||||
146
GameSessions.cs
146
GameSessions.cs
@@ -3,7 +3,8 @@ using Newtonsoft.Json;
|
||||
using api;
|
||||
using server;
|
||||
using System.IO;
|
||||
namespace gamesessions2018
|
||||
namespace gamesesh
|
||||
|
||||
{
|
||||
// Token: 0x02000020 RID: 32
|
||||
public class GameSessions
|
||||
@@ -11,33 +12,40 @@ namespace gamesessions2018
|
||||
// Token: 0x060000BE RID: 190 RVA: 0x00004C08 File Offset: 0x00002E08
|
||||
public static string JoinRandom(string jsonData)
|
||||
{
|
||||
bool sandboxmode = false;
|
||||
long? creatorid = 1243409L;
|
||||
long gamesessionid = long.Parse(start.Program.version + "1");
|
||||
Console.WriteLine("OpenRec GameSession Room");
|
||||
GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRandomRequest>(jsonData);
|
||||
if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Enabled")
|
||||
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
|
||||
{
|
||||
sandboxmode = true;
|
||||
gamesessionid = new Random().Next(0, 99);
|
||||
}
|
||||
|
||||
{
|
||||
Config.localGameSession = new GameSessions.SessionInstance
|
||||
{
|
||||
GameSessionId = 2018L,
|
||||
RegionId = "us",
|
||||
RoomId = joinRandomRequest.ActivityLevelIds[0],
|
||||
RecRoomId = null,
|
||||
EventId = null,
|
||||
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
||||
Name = "OpenRec",
|
||||
ActivityLevelId = joinRandomRequest.ActivityLevelIds[0],
|
||||
Private = false,
|
||||
Sandbox = sandboxmode,
|
||||
SupportsScreens = true,
|
||||
SupportsVR = true,
|
||||
GameInProgress = false,
|
||||
MaxCapacity = 20,
|
||||
IsFull = false
|
||||
};
|
||||
if (start.Program.version == "2017")
|
||||
{
|
||||
creatorid = (long?)APIServer.CachedPlayerID;
|
||||
}
|
||||
if (start.Program.bannedflag == true)
|
||||
{
|
||||
gamesessionid = 100L;
|
||||
}
|
||||
Config.localGameSession = new GameSessions.SessionInstance
|
||||
{
|
||||
GameSessionId = gamesessionid,
|
||||
RegionId = "us",
|
||||
RoomId = joinRandomRequest.ActivityLevelIds[0],
|
||||
RecRoomId = null,
|
||||
EventId = null,
|
||||
CreatorPlayerId = creatorid,
|
||||
Name = "OpenRec Room",
|
||||
ActivityLevelId = joinRandomRequest.ActivityLevelIds[0],
|
||||
Private = false,
|
||||
Sandbox = false,
|
||||
SupportsScreens = true,
|
||||
SupportsVR = true,
|
||||
GameInProgress = false,
|
||||
MaxCapacity = 20,
|
||||
IsFull = false
|
||||
};
|
||||
|
||||
return JsonConvert.SerializeObject(new GameSessions.JoinResult
|
||||
{
|
||||
@@ -61,30 +69,35 @@ namespace gamesessions2018
|
||||
// Token: 0x060000C0 RID: 192 RVA: 0x00004D24 File Offset: 0x00002F24
|
||||
public static string Create(string jsonData)
|
||||
{
|
||||
Console.WriteLine("[API][GameSession] Creating Room...");
|
||||
GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData);
|
||||
|
||||
long gamesessionid = 20161L;
|
||||
Console.WriteLine("OpenRec GameSession Custom Room");
|
||||
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
|
||||
{
|
||||
Config.localGameSession = new GameSessions.SessionInstance
|
||||
{
|
||||
GameSessionId = 2017L,
|
||||
RegionId = "us",
|
||||
RoomId = createRequest.ActivityLevelIds,
|
||||
RecRoomId = null,
|
||||
EventId = null,
|
||||
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
||||
Name = "Custom Room",
|
||||
ActivityLevelId = createRequest.ActivityLevelIds,
|
||||
Private = false,
|
||||
Sandbox = createRequest.IsSandbox,
|
||||
SupportsScreens = true,
|
||||
SupportsVR = true,
|
||||
GameInProgress = false,
|
||||
MaxCapacity = 20,
|
||||
IsFull = false
|
||||
};
|
||||
gamesessionid = new Random().Next(0, 99);
|
||||
}
|
||||
|
||||
if (start.Program.bannedflag == true)
|
||||
{
|
||||
gamesessionid = 100L;
|
||||
}
|
||||
GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData);
|
||||
Config.localGameSession = new GameSessions.SessionInstance
|
||||
{
|
||||
GameSessionId = gamesessionid,
|
||||
RegionId = "us",
|
||||
RoomId = createRequest.ActivityLevelId,
|
||||
RecRoomId = null,
|
||||
EventId = null,
|
||||
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
||||
Name = "OpenRec 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,
|
||||
@@ -269,13 +282,52 @@ 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
|
||||
{
|
||||
// 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 ActivityLevelIds { get; set; }
|
||||
public string ActivityLevelId { get; set; }
|
||||
|
||||
// Token: 0x17000056 RID: 86
|
||||
// (get) Token: 0x060000F4 RID: 244 RVA: 0x0000272D File Offset: 0x0000092D
|
||||
|
||||
63
GetOrCreates.cs
Normal file
63
GetOrCreates.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace api2017
|
||||
{
|
||||
// Token: 0x0200003A RID: 58
|
||||
internal class getorcreate
|
||||
{
|
||||
public static string GetOrCreate(ulong userid)
|
||||
{
|
||||
int level = int.Parse(File.ReadAllText("SaveData\\Profile\\level.txt"));
|
||||
string name = File.ReadAllText("SaveData\\Profile\\username.txt");
|
||||
return JsonConvert.SerializeObject(new Profiles
|
||||
{
|
||||
Id = userid,
|
||||
Username = name,
|
||||
DisplayName = name,
|
||||
XP = 48,
|
||||
Level = level,
|
||||
Reputation = 0,
|
||||
Verified = true,
|
||||
Developer = true,
|
||||
HasEmail = true,
|
||||
CanReceiveInvites = false,
|
||||
ProfileImageName = name,
|
||||
HasBirthday = true
|
||||
});
|
||||
}
|
||||
// Token: 0x06000197 RID: 407 RVA: 0x0000550C File Offset: 0x0000370C
|
||||
public static string GetOrCreateArray(ulong userid)
|
||||
{
|
||||
int level = int.Parse(File.ReadAllText("SaveData\\Profile\\level.txt"));
|
||||
string name = File.ReadAllText("SaveData\\Profile\\username.txt");
|
||||
return JsonConvert.SerializeObject(new Profiles[]
|
||||
{
|
||||
new Profiles
|
||||
{
|
||||
Id = userid,
|
||||
Username = name,
|
||||
DisplayName = name,
|
||||
XP = 48,
|
||||
Level = level,
|
||||
Reputation = 0,
|
||||
Verified = true,
|
||||
Developer = true,
|
||||
HasEmail = true,
|
||||
CanReceiveInvites = false,
|
||||
ProfileImageName = name,
|
||||
JuniorProfile = false,
|
||||
ForceJuniorImages = false,
|
||||
HasBirthday = true
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Token: 0x06000199 RID: 409 RVA: 0x00002BBE File Offset: 0x00000DBE
|
||||
public static string playerName()
|
||||
{
|
||||
return File.ReadAllText("playerNameConfig.txt");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
@@ -42,6 +43,10 @@ namespace server
|
||||
{
|
||||
text = streamReader.ReadToEnd();
|
||||
}
|
||||
if (rawUrl.StartsWith("//room/"))
|
||||
{
|
||||
i = new WebClient().DownloadData("https://cdn.rec.net/" + rawUrl.Remove(0, 2));
|
||||
}
|
||||
Console.WriteLine("Image Requested: " + rawUrl);
|
||||
Console.WriteLine("Image Data: " + text);
|
||||
Console.WriteLine("Image Response: ");
|
||||
@@ -54,14 +59,9 @@ namespace server
|
||||
this.listener.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
||||
|
||||
public static string BlankResponse = "";
|
||||
|
||||
|
||||
// Token: 0x04000192 RID: 402
|
||||
private HttpListener listener = new HttpListener();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 (; ; )
|
||||
{
|
||||
|
||||
102
NewGameSessions.cs
Normal file
102
NewGameSessions.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
using vaultgamesesh;
|
||||
|
||||
namespace gamesesh2
|
||||
{
|
||||
class NewGameSessions
|
||||
{
|
||||
public static string JoinRoom(string text)
|
||||
{
|
||||
c00006b.c00006c apidata = JsonConvert.DeserializeObject<c00006b.c00006c>(text);
|
||||
return string.Empty;
|
||||
|
||||
}
|
||||
public class GameSession
|
||||
{
|
||||
public int GameSessionId { get; set; }
|
||||
public string PhotonRegionId { get; set; }
|
||||
public string PhotonRoomId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int RoomId { get; set; }
|
||||
public int RoomSceneId { get; set; }
|
||||
public string RoomSceneLocationId { get; set; }
|
||||
public bool IsSandbox { get; set; }
|
||||
public string DataBlobName { get; set; }
|
||||
public object PlayerEventId { get; set; }
|
||||
public bool Private { get; set; }
|
||||
public bool GameInProgress { get; set; }
|
||||
public int MaxCapacity { get; set; }
|
||||
public bool IsFull { get; set; }
|
||||
}
|
||||
|
||||
public class Room
|
||||
{
|
||||
public int RoomId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
public int CreatorPlayerId { get; set; }
|
||||
public string ImageName { get; set; }
|
||||
public int State { get; set; }
|
||||
public int Accessibility { get; set; }
|
||||
public bool SupportsLevelVoting { get; set; }
|
||||
public bool IsAGRoom { get; set; }
|
||||
public bool CloningAllowed { get; set; }
|
||||
public bool SupportsScreens { get; set; }
|
||||
public bool SupportsWalkVR { get; set; }
|
||||
public bool SupportsTeleportVR { get; set; }
|
||||
public string ReplicationId { get; set; }
|
||||
public int ReleaseStatus { get; set; }
|
||||
}
|
||||
|
||||
public class Scene
|
||||
{
|
||||
public int RoomSceneId { get; set; }
|
||||
public int RoomId { get; set; }
|
||||
public string RoomSceneLocationId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public bool IsSandbox { get; set; }
|
||||
public string DataBlobName { get; set; }
|
||||
public int MaxPlayers { get; set; }
|
||||
public bool CanMatchmakeInto { get; set; }
|
||||
public DateTime DataModifiedAt { get; set; }
|
||||
public string ReplicationId { get; set; }
|
||||
public bool UseLevelBasedMatchmaking { get; set; }
|
||||
public bool UseAgeBasedMatchmaking { get; set; }
|
||||
public bool UseRecRoyaleMatchmaking { get; set; }
|
||||
public int ReleaseStatus { get; set; }
|
||||
public bool SupportsJoinInProgress { get; set; }
|
||||
}
|
||||
|
||||
public class aTag
|
||||
{
|
||||
public string Tag { get; set; }
|
||||
public int Type { get; set; }
|
||||
}
|
||||
|
||||
public class RoomDetails
|
||||
{
|
||||
public Room Room { get; set; }
|
||||
public List<Scene> Scenes { get; set; }
|
||||
public List<object> CoOwners { get; set; }
|
||||
public List<object> InvitedCoOwners { get; set; }
|
||||
public List<object> Hosts { get; set; }
|
||||
public List<object> InvitedHosts { get; set; }
|
||||
public int CheerCount { get; set; }
|
||||
public int FavoriteCount { get; set; }
|
||||
public int VisitCount { get; set; }
|
||||
public List<aTag> Tags { get; set; }
|
||||
}
|
||||
|
||||
public class Root
|
||||
{
|
||||
public int Result { get; set; }
|
||||
public GameSession GameSession { get; set; }
|
||||
public RoomDetails RoomDetails { get; set; }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using gamesessions2018;
|
||||
using gamesesh;
|
||||
|
||||
namespace ws
|
||||
{
|
||||
@@ -21,16 +21,16 @@ namespace ws
|
||||
{
|
||||
if (text2 == "playerSubscriptions/v1/update")
|
||||
{
|
||||
Console.WriteLine("WebSocket.cs game client sent presence update.");
|
||||
Console.WriteLine("[WSS] Game client sent presence update.");
|
||||
return JsonConvert.SerializeObject(Notification.Reponse.createResponse(12, GameSessions.StatusSessionInstance()));
|
||||
}
|
||||
if (text2 == "heartbeat2")
|
||||
{
|
||||
Console.WriteLine("WebSocket.cs heartbeat 2 sent by game client.");
|
||||
Console.WriteLine("[WSS] Heartbeat 2 sent by game client.");
|
||||
return JsonConvert.SerializeObject(Notification.Reponse.createResponse(4, GameSessions.StatusSessionInstance()));
|
||||
}
|
||||
}
|
||||
Console.WriteLine("WebSocket.cs unknown API call: " + text);
|
||||
Console.WriteLine("[WSS] Unknown API call: " + text);
|
||||
result = "";
|
||||
}
|
||||
else
|
||||
@@ -43,39 +43,39 @@ namespace ws
|
||||
// Token: 0x0200002B RID: 43
|
||||
public enum ResponseResult
|
||||
{
|
||||
// Token: 0x04000092 RID: 146
|
||||
// Token: 0x04000090 RID: 144
|
||||
RelationshipChanged = 1,
|
||||
// Token: 0x04000093 RID: 147
|
||||
// Token: 0x04000091 RID: 145
|
||||
MessageReceived,
|
||||
// Token: 0x04000094 RID: 148
|
||||
// Token: 0x04000092 RID: 146
|
||||
MessageDeleted,
|
||||
// Token: 0x04000095 RID: 149
|
||||
// Token: 0x04000093 RID: 147
|
||||
PresenceHeartbeatResponse,
|
||||
// Token: 0x04000096 RID: 150
|
||||
// Token: 0x04000094 RID: 148
|
||||
SubscriptionListUpdated = 9,
|
||||
// Token: 0x04000097 RID: 151
|
||||
// Token: 0x04000095 RID: 149
|
||||
SubscriptionUpdateProfile = 11,
|
||||
// Token: 0x04000098 RID: 152
|
||||
// Token: 0x04000096 RID: 150
|
||||
SubscriptionUpdatePresence,
|
||||
// Token: 0x04000099 RID: 153
|
||||
// Token: 0x04000097 RID: 151
|
||||
SubscriptionUpdateGameSession,
|
||||
// Token: 0x0400009A RID: 154
|
||||
// Token: 0x04000098 RID: 152
|
||||
SubscriptionUpdateRoom,
|
||||
// Token: 0x0400009B RID: 155
|
||||
// Token: 0x04000099 RID: 153
|
||||
ModerationQuitGame = 20,
|
||||
// Token: 0x0400009C RID: 156
|
||||
// Token: 0x0400009A RID: 154
|
||||
ModerationUpdateRequired,
|
||||
// Token: 0x0400009D RID: 157
|
||||
// Token: 0x0400009B RID: 155
|
||||
ModerationKick,
|
||||
// Token: 0x0400009E RID: 158
|
||||
// Token: 0x0400009C RID: 156
|
||||
ModerationKickAttemptFailed,
|
||||
// Token: 0x0400009F RID: 159
|
||||
// Token: 0x0400009D RID: 157
|
||||
GiftPackageReceived = 30,
|
||||
// Token: 0x040000A0 RID: 160
|
||||
// Token: 0x0400009E RID: 158
|
||||
ProfileJuniorStatusUpdate = 40,
|
||||
// Token: 0x040000A1 RID: 161
|
||||
// Token: 0x0400009F RID: 159
|
||||
RelationshipsInvalid = 50,
|
||||
// Token: 0x040000A2 RID: 162
|
||||
// Token: 0x040000A0 RID: 160
|
||||
StorefrontBalanceAdd = 60
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<ApplicationIcon>icon2.ico</ApplicationIcon>
|
||||
<AssemblyName>OpenRec</AssemblyName>
|
||||
<RootNamespace>OpenRec</RootNamespace>
|
||||
<Authors>recroom2016</Authors>
|
||||
<PackageIcon>icon2.png</PackageIcon>
|
||||
<PackageIconUrl />
|
||||
<RepositoryUrl>https://github.com/recroom2016/OpenRec</RepositoryUrl>
|
||||
<PackageProjectUrl>https://discord.gg/daC8QUhnFP</PackageProjectUrl>
|
||||
<Company>OpenRec</Company>
|
||||
<Version>0.4.0</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -15,4 +25,11 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="C:\Users\Tucker\Downloads\icon2.png">
|
||||
<Pack>True</Pack>
|
||||
<PackagePath></PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.31321.278
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenRec_", "OpenRec_.csproj", "{C3C433FC-52FB-4472-81F7-B271A2CDABFE}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C754033C-FE82-4FF2-9189-A7EE0E2E5974}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
||||
36
PlatformLogin.cs
Normal file
36
PlatformLogin.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace api2017
|
||||
{
|
||||
// Token: 0x02000032 RID: 50
|
||||
internal class PlatformLogin
|
||||
{
|
||||
// Token: 0x17000070 RID: 112
|
||||
// (get) Token: 0x06000137 RID: 311 RVA: 0x00002905 File Offset: 0x00000B05
|
||||
// (set) Token: 0x06000138 RID: 312 RVA: 0x0000290D File Offset: 0x00000B0D
|
||||
public string Token { get; set; }
|
||||
|
||||
// Token: 0x17000071 RID: 113
|
||||
// (get) Token: 0x06000139 RID: 313 RVA: 0x00002916 File Offset: 0x00000B16
|
||||
// (set) Token: 0x0600013A RID: 314 RVA: 0x0000291E File Offset: 0x00000B1E
|
||||
public ulong PlayerId { get; set; }
|
||||
|
||||
// Token: 0x17000072 RID: 114
|
||||
// (get) Token: 0x0600013B RID: 315 RVA: 0x00002927 File Offset: 0x00000B27
|
||||
// (set) Token: 0x0600013C RID: 316 RVA: 0x0000292F File Offset: 0x00000B2F
|
||||
public string Error { get; set; }
|
||||
|
||||
// Token: 0x0600013D RID: 317 RVA: 0x00005114 File Offset: 0x00003314
|
||||
public static string v4(ulong userid)
|
||||
{
|
||||
PlatformLogin value = new PlatformLogin
|
||||
{
|
||||
Token = "j3923mHJG032jew",
|
||||
PlayerId = userid,
|
||||
Error = ""
|
||||
};
|
||||
return JsonConvert.SerializeObject(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Profiles.cs
18
Profiles.cs
@@ -2,12 +2,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace api2016
|
||||
|
||||
namespace api2017
|
||||
{
|
||||
class Profiles
|
||||
{
|
||||
|
||||
public ulong Id { get; set; }
|
||||
public string Username { get; set; }
|
||||
public string DisplayName { get; set; }
|
||||
@@ -15,27 +13,13 @@ namespace api2016
|
||||
public int Level { get; set; }
|
||||
public int Reputation { get; set; }
|
||||
public bool Verified { get; set; }
|
||||
|
||||
public bool Developer { get; set; }
|
||||
|
||||
|
||||
public bool HasEmail { get; set; }
|
||||
|
||||
|
||||
public bool CanReceiveInvites { get; set; }
|
||||
|
||||
|
||||
public string ProfileImageName { get; set; }
|
||||
|
||||
|
||||
public bool JuniorProfile { get; set; }
|
||||
|
||||
|
||||
public bool ForceJuniorImages { get; set; }
|
||||
|
||||
|
||||
public bool PendingJunior { get; set; }
|
||||
|
||||
public bool HasBirthday { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
161
Program.cs
161
Program.cs
@@ -5,62 +5,124 @@ using ws;
|
||||
using api;
|
||||
using System.Net;
|
||||
using System.Diagnostics;
|
||||
using vaultgamesesh;
|
||||
|
||||
namespace start
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
static void Main()
|
||||
{
|
||||
//startup for openrec
|
||||
|
||||
Setup.setup();
|
||||
goto Start;
|
||||
|
||||
Start:
|
||||
Console.WriteLine("OpenRec - Open source RecNet server software. (Version: " + version + ")");
|
||||
Console.Title = "OpenRec Startup Menu";
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
Console.WriteLine("OpenRec - Open source RecNet server software. (Version: " + appversion + ")");
|
||||
Console.WriteLine("Made and provided by RecRoom 2016.");
|
||||
Console.WriteLine("Download source code here: https://github.com/recroom2016/OpenRec");
|
||||
Console.WriteLine("Discord: https://discord.gg/daC8QUhnFP" + Environment.NewLine);
|
||||
if (!(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/version.txt").Contains(version)))
|
||||
if (!(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/version.txt").Contains(appversion)))
|
||||
{
|
||||
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") + Environment.NewLine);
|
||||
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) Change Settings" + Environment.NewLine + "2) Modify Profile" + Environment.NewLine + "3) Start Server");
|
||||
if (File.Exists("SaveData\\Profile\\userid.txt"))
|
||||
{
|
||||
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
bannedflag = true;
|
||||
}
|
||||
}
|
||||
Console.WriteLine("1) Changelog" + Environment.NewLine +"2) Change Settings" + Environment.NewLine + "3) Modify Profile" + Environment.NewLine + "4) Custom Room Downloader" + Environment.NewLine + "5) Start Server");
|
||||
string readline = Console.ReadLine();
|
||||
if (readline == "1")
|
||||
{
|
||||
Console.Title = "OpenRec Changelog";
|
||||
Console.Clear();
|
||||
Console.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/changelog.txt"));
|
||||
Console.WriteLine("Press any key to continue:");
|
||||
Console.ReadKey();
|
||||
Console.Clear();
|
||||
goto Start;
|
||||
}
|
||||
if (readline == "2")
|
||||
{
|
||||
Console.Clear();
|
||||
goto Settings;
|
||||
|
||||
Settings:
|
||||
Console.WriteLine("1) Sandbox Mode: " + File.ReadAllText("SaveData\\App\\sandbox.txt") + Environment.NewLine + "2) Go Back");
|
||||
Console.Title = "OpenRec Settings Menu";
|
||||
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\\showopenrecinfo.txt") == "Disabled")
|
||||
{
|
||||
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Enabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Disabled");
|
||||
}
|
||||
Console.Clear();
|
||||
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();
|
||||
goto Start;
|
||||
}
|
||||
}
|
||||
if (readline == "2")
|
||||
if (readline == "3")
|
||||
{
|
||||
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.Title = "OpenRec Profile Menu";
|
||||
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")
|
||||
{
|
||||
@@ -70,7 +132,7 @@ namespace start
|
||||
File.WriteAllText("SaveData\\Profile\\username.txt", newusername);
|
||||
Console.Clear();
|
||||
Console.WriteLine("Success!");
|
||||
goto Start;
|
||||
goto Profile;
|
||||
}
|
||||
else if (readline3 == "2")
|
||||
{
|
||||
@@ -93,7 +155,7 @@ namespace start
|
||||
}
|
||||
Console.Clear();
|
||||
Console.WriteLine("Success!");
|
||||
goto Start;
|
||||
goto Profile;
|
||||
}
|
||||
else if (readline4 == "2")
|
||||
{
|
||||
@@ -113,7 +175,7 @@ namespace start
|
||||
}
|
||||
Console.Clear();
|
||||
Console.WriteLine("Success!");
|
||||
goto Start;
|
||||
goto Profile;
|
||||
}
|
||||
else if (readline4 == "3")
|
||||
{
|
||||
@@ -129,7 +191,7 @@ namespace start
|
||||
File.WriteAllText("SaveData\\Profile\\level.txt", newlevel);
|
||||
Console.Clear();
|
||||
Console.WriteLine("Success!");
|
||||
goto Start;
|
||||
goto Profile;
|
||||
}
|
||||
else if (readline3 == "4")
|
||||
{
|
||||
@@ -137,40 +199,81 @@ namespace start
|
||||
goto Start;
|
||||
}
|
||||
}
|
||||
if (readline == "3")
|
||||
if (readline == "4")
|
||||
{
|
||||
Console.WriteLine("Please select the version of RecRoom the server should host: (2018)");
|
||||
Console.Title = "OpenRec Custom Room Downloader";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Please type in the name of the room you would like to download: (Case sensitive)");
|
||||
string roomname = Console.ReadLine();
|
||||
Console.WriteLine("Now, please go to the link below and help us gather info about your room for you.");
|
||||
Console.WriteLine("https://rooms.rec.net/rooms?name=" + roomname + "&include=297");
|
||||
Console.WriteLine("Please find the string called ImageName and paste it below:");
|
||||
string imagename = Console.ReadLine();
|
||||
Console.WriteLine("Please find the string called UnitySceneId and paste it below:");
|
||||
string roomsceneid = Console.ReadLine();
|
||||
Console.WriteLine("Please find the string called DataBlob and paste it below:");
|
||||
string datablob = Console.ReadLine();
|
||||
CustomRooms.RoomDecode(roomname, roomsceneid, imagename, datablob);
|
||||
goto Start;
|
||||
|
||||
}
|
||||
if (readline == "5")
|
||||
{
|
||||
Console.Title = "OpenRec Version Select";
|
||||
Console.WriteLine("Please select the version of RecRoom the server should host: (2016, 2017, 2018)");
|
||||
Console.WriteLine("fuck you all");
|
||||
//imagine if yall actually look in the code one day and just find a random note signed tucker at the bottom of it and then i go missing for a very long time otherwise known as forever
|
||||
string readline2 = Console.ReadLine();
|
||||
if (readline2 == "2016")
|
||||
{
|
||||
Console.Title = "OpenRec December 25th, 2016";
|
||||
version = "2016";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Version Selected: " + start.Program.version);
|
||||
Console.WriteLine("Version Selected: December 25th, 2016.");
|
||||
new APIServer();
|
||||
new WebSocket();
|
||||
}
|
||||
else if (readline2 == "2017")
|
||||
{
|
||||
Console.Title = "OpenRec October 19th 2017";
|
||||
version = "2017";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Version Selected: " + start.Program.version);
|
||||
Console.WriteLine("Version Selected: October 19th, 2017.");
|
||||
new APIServer();
|
||||
new WebSocket();
|
||||
}
|
||||
else if (readline2 == "2018")
|
||||
{
|
||||
version = "2018";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Version Selected: " + start.Program.version);
|
||||
new NameServer();
|
||||
new ImageServer();
|
||||
new APIServer();
|
||||
new WebSocket();
|
||||
Console.WriteLine("May or September (Beta) 2018: (M, S)");
|
||||
string readline3 = Console.ReadLine();
|
||||
if ((readline3 == "M") || (readline3 == "m"))
|
||||
{
|
||||
Console.Title = "OpenRec May 30th 2018";
|
||||
version = "2018";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Version Selected: May 30th, 2018.");
|
||||
new NameServer();
|
||||
new ImageServer();
|
||||
new APIServer();
|
||||
new WebSocket();
|
||||
}
|
||||
if ((readline3 == "S") || (readline3 == "s"))
|
||||
{
|
||||
Console.Title = "OpenRec September 27th 2018";
|
||||
version = "2018";
|
||||
Console.Clear();
|
||||
Console.WriteLine("Version Selected: September 27th, 2018.");
|
||||
new NameServer();
|
||||
new ImageServer();
|
||||
new APIServer();
|
||||
new Late2018WebSock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string version = "0.3";
|
||||
public static string version = "";
|
||||
public static string appversion = "0.6.0";
|
||||
public static bool bannedflag = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
23
Sanitize.cs
Normal file
23
Sanitize.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace api
|
||||
{
|
||||
// Token: 0x02000081 RID: 129
|
||||
public class Sanitize
|
||||
{
|
||||
public static Sanitize.m001 GetSanitize()
|
||||
{
|
||||
return new m001
|
||||
{
|
||||
IsPure = true
|
||||
};
|
||||
}
|
||||
|
||||
public sealed class m001
|
||||
{
|
||||
public bool IsPure { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -106,7 +106,7 @@ namespace api
|
||||
new Setting
|
||||
{
|
||||
Key = "VoiceChat",
|
||||
Value = 0f.ToString()
|
||||
Value = 1f.ToString()
|
||||
},
|
||||
new Setting
|
||||
{
|
||||
|
||||
38
Setup.cs
38
Setup.cs
@@ -10,9 +10,13 @@ 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\\");
|
||||
Directory.CreateDirectory("SaveData\\Rooms\\");
|
||||
Directory.CreateDirectory("SaveData\\Rooms\\Downloaded\\");
|
||||
if (!(File.Exists("SaveData\\avatar.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\avatar.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avatar.txt"));
|
||||
@@ -33,6 +37,18 @@ 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/OpenRec/master/Download/storefront2.txt"));
|
||||
}
|
||||
if (!(File.Exists("SaveData\\baserooms.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\baserooms.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/baserooms.txt"));
|
||||
}
|
||||
if (!(File.Exists("SaveData\\Profile\\username.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\Profile\\username.txt", "DefaultUsername");
|
||||
@@ -41,6 +57,10 @@ namespace start
|
||||
{
|
||||
File.WriteAllText("SaveData\\Profile\\level.txt", "10");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\Profile\\userid.txt", "10000000");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\myrooms.txt")))
|
||||
{
|
||||
File.WriteAllText("SaveData\\myrooms.txt", "[]");
|
||||
@@ -49,9 +69,21 @@ 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");
|
||||
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");
|
||||
}
|
||||
if (!(File.Exists("SaveData\\profileimage.png")))
|
||||
{
|
||||
|
||||
1
Update/banned.txt
Normal file
1
Update/banned.txt
Normal file
@@ -0,0 +1 @@
|
||||
[487454, 4701796, 1623123]
|
||||
1
Update/dormslideshow.txt
Normal file
1
Update/dormslideshow.txt
Normal file
@@ -0,0 +1 @@
|
||||
{"Name":"Check Out All The Rooms Today!","FeaturedRooms":[{"RoomName":"Home","RoomId":1,"ImageName":"DefaultRoomImage.jpg"},{"RoomName":"RecCenter","RoomId":2,"ImageName":"22eefa3219f046fd9e2090814650ede3"},{"RoomName":"3DCharades","RoomId":3,"ImageName":"a446d5808ed14401a27f53e631c31b93.png"},{"RoomName":"DiscGolfLake","RoomId":4,"ImageName":"52cf6c3271894ecd95fb0c9b2d2209a7"},{"RoomName":"DiscGolfPropulsion","RoomId":5,"ImageName":"fc9a1acc47514b64a30d199d5ccdeca9"},{"RoomName":"Dodgeball","RoomId":6,"ImageName":"6d5c494668784816bbc41d9b870e5003"},{"RoomName":"Paddleball","RoomId":7,"ImageName":"ffdca6ed8bd94631ac15e3e894acb6c6"},{"RoomName":"Paintball","RoomId":8,"ImageName":"93a53ced93a04f658795a87f4a4aab85"},{"RoomName":"GoldenTrophy","RoomId":13,"ImageName":"38e9d0d4eff94556a0b106508249dcf9"},{"RoomName":"TheRiseofJumbotron","RoomId":14,"ImageName":"51296f28105b48178708e389b6daf057"},{"RoomName":"CrimsonCauldron","RoomId":15,"ImageName":"3ab82779dff94d11920ebf38df249395"},{"RoomName":"IsleOfLostSkulls","RoomId":16,"ImageName":"45ad53aa002646d0ab3eb509b9f260ef"},{"RoomName":"Soccer","RoomId":17,"ImageName":"51c6f5ac5e6f4777b573e7e43f8a85ea"},{"RoomName":"LaserTag","RoomId":18,"ImageName":"c5a72193d6904811b2d0195a6deb3125"},{"RoomName":"RecRoyaleSquads","RoomId":20,"ImageName":"69fc525056014e39a435c4d2fdf2b887"},{"RoomName":"RecRoyaleSolos","RoomId":21,"ImageName":"f9e112bb67fb430d979e5ad6c2c116d4"},{"RoomName":"Lounge","RoomId":22,"ImageName":"3e8c2458f1e542ab8aa275e4083ee47a"},{"RoomName":"Park","RoomId":25,"ImageName":"79ee7af2532247f397867e48daa9d264.png"},{"RoomName":"QuestForDracula","RoomId":27,"ImageName":"d0df003353914adfaecdd23f428208b6"}]}
|
||||
317
Update/hotrooms.txt
Normal file
317
Update/hotrooms.txt
Normal file
@@ -0,0 +1,317 @@
|
||||
[
|
||||
{
|
||||
"RoomId": 29,
|
||||
"Name": "Custom Room",
|
||||
"Description": "Custom Room",
|
||||
"CreatorPlayerId": 1,
|
||||
"ImageName": "CustomRoom.png",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 3,
|
||||
"Name": "3DCharades",
|
||||
"Description": "Take turns drawing, acting, and guessing funny phrases with your friends!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "a446d5808ed14401a27f53e631c31b93.png",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 4,
|
||||
"Name": "DiscGolfLake",
|
||||
"Description": "Throw your disc into the goal. Sounds easy, right?",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "52cf6c3271894ecd95fb0c9b2d2209a7",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 5,
|
||||
"Name": "DiscGolfPropulsion",
|
||||
"Description": "Throw your disc into the goal. Sounds easy, right?",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "fc9a1acc47514b64a30d199d5ccdeca9",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 6,
|
||||
"Name": "Dodgeball",
|
||||
"Description": "Throw dodgeballs to knock out your friends in this gym classic!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "6d5c494668784816bbc41d9b870e5003",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 7,
|
||||
"Name": "Paddleball",
|
||||
"Description": "A simple rally game between two players in a plexiglass tube with a zero-g ball.",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "ffdca6ed8bd94631ac15e3e894acb6c6",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 8,
|
||||
"Name": "Paintball",
|
||||
"Description": "Red and Blue teams splat each other in capture the flag and team battle.",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "93a53ced93a04f658795a87f4a4aab85",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": true,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 13,
|
||||
"Name": "GoldenTrophy",
|
||||
"Description": "The goblin king stole Coach's Golden Trophy. Team up and embark on an epic quest to recover it!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "38e9d0d4eff94556a0b106508249dcf9",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 14,
|
||||
"Name": "TheRiseofJumbotron",
|
||||
"Description": "Robot invaders threaten the galaxy! Team up with your friends and bring the laser heat!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "51296f28105b48178708e389b6daf057",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 15,
|
||||
"Name": "CrimsonCauldron",
|
||||
"Description": "Can your band of adventurers brave the enchanted wilds, and lift the curse of the crimson cauldron?",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "3ab82779dff94d11920ebf38df249395",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 16,
|
||||
"Name": "IsleOfLostSkulls",
|
||||
"Description": "Can your pirate crew get to the Isle, defeat its fearsome guardian, and escape with the gold?",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "45ad53aa002646d0ab3eb509b9f260ef",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 17,
|
||||
"Name": "Soccer",
|
||||
"Description": "Teams of three run around slamming themselves into an over-sized soccer ball. Goal!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "51c6f5ac5e6f4777b573e7e43f8a85ea",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 18,
|
||||
"Name": "LaserTag",
|
||||
"Description": "Teams battle each other and waves of robots.",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "c5a72193d6904811b2d0195a6deb3125",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 20,
|
||||
"Name": "RecRoyaleSquads",
|
||||
"Description": "Squads of three battle it out on Frontier Island. Last squad standing wins!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "69fc525056014e39a435c4d2fdf2b887",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 21,
|
||||
"Name": "RecRoyaleSolos",
|
||||
"Description": "Battle it out on Frontier Island. Last person standing wins!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "f9e112bb67fb430d979e5ad6c2c116d4",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 22,
|
||||
"Name": "Lounge",
|
||||
"Description": "A low-key lounge to chill with your friends. Great for private parties!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "3e8c2458f1e542ab8aa275e4083ee47a",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 25,
|
||||
"Name": "Park",
|
||||
"Description": "A sprawling park with amphitheater, play fields, and a cave.",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "79ee7af2532247f397867e48daa9d264.png",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 27,
|
||||
"Name": "QuestForDraucula",
|
||||
"Description": "Gather your vampire hunting crew, conquer a legendary castle, and restore peace to Rec Room!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "d0df003353914adfaecdd23f428208b6",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 1,
|
||||
"Name": "DormRoom",
|
||||
"Description": "Your private room",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "DefaultRoomImage.jpg",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 2,
|
||||
"Name": "RecCenter",
|
||||
"Description": "A social hub to meet and mingle with friends new and old.",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "22eefa3219f046fd9e2090814650ede3",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
},
|
||||
{
|
||||
"RoomId": 28,
|
||||
"Name": "Bowling",
|
||||
"Description": "Hang out with friends, bowl a few games, eat snacks!",
|
||||
"CreatorPlayerId": 72963398,
|
||||
"ImageName": "4d143a3359e8483e8d48116ab6cacecb",
|
||||
"State": 0,
|
||||
"Accessibility": 1,
|
||||
"SupportsLevelVoting": false,
|
||||
"IsAGRoom": true,
|
||||
"CloningAllowed": false,
|
||||
"SupportsScreens": true,
|
||||
"SupportsWalkVR": true,
|
||||
"SupportsTeleportVR": true
|
||||
}
|
||||
]
|
||||
1
Update/motd.txt
Normal file
1
Update/motd.txt
Normal file
@@ -0,0 +1 @@
|
||||
Welcome to OpenRec!
|
||||
298
Vault2018CustomRooms.cs
Normal file
298
Vault2018CustomRooms.cs
Normal file
@@ -0,0 +1,298 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Newtonsoft.Json;
|
||||
using vaultgamesesh;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
|
||||
internal sealed class c000099
|
||||
{
|
||||
// Token: 0x06000358 RID: 856 RVA: 0x0000B134 File Offset: 0x00009334
|
||||
public static c000099.c00009c m00002f()
|
||||
{
|
||||
List<c00005d.c000062> list = new List<c00005d.c000062>();
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000050)
|
||||
{
|
||||
c00005d.c000062 item = new c00005d.c000062
|
||||
{
|
||||
RoomName = keyValuePair.Value.Room.Name,
|
||||
RoomId = (long)((int)keyValuePair.Value.Room.RoomId),
|
||||
ImageName = keyValuePair.Value.Room.ImageName
|
||||
};
|
||||
list.Add(item);
|
||||
}
|
||||
return new c000099.c00009c
|
||||
{
|
||||
Name = "Check Out All The Rooms Today!",
|
||||
FeaturedRooms = list
|
||||
};
|
||||
}
|
||||
|
||||
// Token: 0x06000359 RID: 857 RVA: 0x0000B204 File Offset: 0x00009404
|
||||
public static List<c00005d.c000061> m000009()
|
||||
{
|
||||
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003b())
|
||||
{
|
||||
list.Add(keyValuePair.Value.Room);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600035A RID: 858 RVA: 0x0000B268 File Offset: 0x00009468
|
||||
public static List<c00005d.c000061> m000035()
|
||||
{
|
||||
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000024)
|
||||
{
|
||||
list.Add(keyValuePair.Value.Room);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600035B RID: 859 RVA: 0x0000B2CC File Offset: 0x000094CC
|
||||
public static List<c00005d.c000061> m000055()
|
||||
{
|
||||
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003a())
|
||||
{
|
||||
list.Add(keyValuePair.Value.Room);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600035C RID: 860 RVA: 0x0000B330 File Offset: 0x00009530
|
||||
public static List<c00005d.c000061> m000056(string p0)
|
||||
{
|
||||
string[] array = p0.Split(new char[]
|
||||
{
|
||||
' '
|
||||
});
|
||||
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003b())
|
||||
{
|
||||
c00005d.c000060 value = keyValuePair.Value;
|
||||
bool flag = true;
|
||||
foreach (string text in array)
|
||||
{
|
||||
if (flag)
|
||||
{
|
||||
if (text.StartsWith("#"))
|
||||
{
|
||||
bool flag2 = false;
|
||||
foreach (c00005d.c000063 c in value.Tags)
|
||||
{
|
||||
if ("#" + c.Tag.ToLower() == text.ToLower())
|
||||
{
|
||||
flag2 = true;
|
||||
}
|
||||
}
|
||||
if (!flag2)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
else if (!value.Room.Name.ToLower().Contains(text.ToLower()))
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
list.Add(value.Room);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600035D RID: 861 RVA: 0x0000B488 File Offset: 0x00009688
|
||||
public static c00005d.c000060 m000057(ulong p0)
|
||||
{
|
||||
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000024)
|
||||
{
|
||||
if (keyValuePair.Value.Room.RoomId == p0)
|
||||
{
|
||||
return keyValuePair.Value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x0600035E RID: 862 RVA: 0x0000B4F8 File Offset: 0x000096F8
|
||||
public static c000099.c00009b m00000a(string p0)
|
||||
{
|
||||
c000099.c00009b c00009b = new c000099.c00009b();
|
||||
c000099.c00009a c00009a = JsonConvert.DeserializeObject<c000099.c00009a>(p0);
|
||||
c00005d.c000060 c = c000099.m000057(c00009a.RoomId);
|
||||
if (c == null)
|
||||
{
|
||||
c00009b.Result = (c000099.enum09d)2;
|
||||
c00009b.RoomDetails = new c00005d.c000060();
|
||||
}
|
||||
else
|
||||
{
|
||||
c00009b.Result = (c000099.enum09d)0;
|
||||
c00009b.RoomDetails = c;
|
||||
c00009b.RoomDetails.Room.Name = c00009a.Name;
|
||||
ulong roomId = (ulong)((long)new Random().Next(100, 9999999));
|
||||
c00009b.RoomDetails.Room.RoomId = roomId;
|
||||
c00009b.RoomDetails.Room.IsAGRoom = false;
|
||||
c00009b.RoomDetails.Scenes[0].IsSandbox = true;
|
||||
c00009b.RoomDetails.Scenes[0].RoomId = roomId;
|
||||
c00009b.RoomDetails.Scenes[0].DataBlobName = string.Empty;
|
||||
c00009b.RoomDetails.Scenes[0].DataModifiedAt = DateTime.Now;
|
||||
c00009b.RoomDetails.Room.CreatorPlayerId = server.APIServer.CachedPlayerID;
|
||||
}
|
||||
c00005d.m00003a().Add(c00009a.Name, c);
|
||||
string text = c000004.m000007() + c00009b.RoomDetails.Room.Name;
|
||||
if (!Directory.Exists(text))
|
||||
{
|
||||
Directory.CreateDirectory(text);
|
||||
}
|
||||
File.WriteAllText(text + "\\RoomDetails.json", JsonConvert.SerializeObject(c00009b.RoomDetails));
|
||||
return c00009b;
|
||||
}
|
||||
|
||||
// Token: 0x0200009A RID: 154
|
||||
public sealed class c00009a
|
||||
{
|
||||
// Token: 0x17000105 RID: 261
|
||||
// (get) Token: 0x06000360 RID: 864 RVA: 0x0000373A File Offset: 0x0000193A
|
||||
// (set) Token: 0x06000361 RID: 865 RVA: 0x00003742 File Offset: 0x00001942
|
||||
public string Name
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00000a;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00000a = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000106 RID: 262
|
||||
// (get) Token: 0x06000362 RID: 866 RVA: 0x0000374B File Offset: 0x0000194B
|
||||
// (set) Token: 0x06000363 RID: 867 RVA: 0x00003753 File Offset: 0x00001953
|
||||
public ulong RoomId
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000023;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000023 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001DD RID: 477
|
||||
private string f00000a;
|
||||
|
||||
// Token: 0x040001DE RID: 478
|
||||
private ulong f000023;
|
||||
}
|
||||
|
||||
// Token: 0x0200009B RID: 155
|
||||
public sealed class c00009b
|
||||
{
|
||||
// Token: 0x17000107 RID: 263
|
||||
// (get) Token: 0x06000365 RID: 869 RVA: 0x0000375C File Offset: 0x0000195C
|
||||
// (set) Token: 0x06000366 RID: 870 RVA: 0x00003764 File Offset: 0x00001964
|
||||
public c000099.enum09d Result
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000042;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000042 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000108 RID: 264
|
||||
// (get) Token: 0x06000367 RID: 871 RVA: 0x0000376D File Offset: 0x0000196D
|
||||
// (set) Token: 0x06000368 RID: 872 RVA: 0x00003775 File Offset: 0x00001975
|
||||
public c00005d.c000060 RoomDetails
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00004f;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00004f = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001DF RID: 479
|
||||
private c000099.enum09d f000042;
|
||||
|
||||
// Token: 0x040001E0 RID: 480
|
||||
private c00005d.c000060 f00004f;
|
||||
}
|
||||
|
||||
// Token: 0x0200009C RID: 156
|
||||
public sealed class c00009c
|
||||
{
|
||||
// Token: 0x17000109 RID: 265
|
||||
// (get) Token: 0x0600036A RID: 874 RVA: 0x0000377E File Offset: 0x0000197E
|
||||
// (set) Token: 0x0600036B RID: 875 RVA: 0x00003786 File Offset: 0x00001986
|
||||
public string Name
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00000a;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00000a = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700010A RID: 266
|
||||
// (get) Token: 0x0600036C RID: 876 RVA: 0x0000378F File Offset: 0x0000198F
|
||||
// (set) Token: 0x0600036D RID: 877 RVA: 0x00003797 File Offset: 0x00001997
|
||||
public List<c00005d.c000062> FeaturedRooms
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000031;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000031 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001E1 RID: 481
|
||||
private string f00000a;
|
||||
|
||||
// Token: 0x040001E2 RID: 482
|
||||
private List<c00005d.c000062> f000031;
|
||||
}
|
||||
|
||||
// Token: 0x0200009D RID: 157
|
||||
public enum enum09d
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
453
Vault2018GameSessions.cs
Normal file
453
Vault2018GameSessions.cs
Normal file
@@ -0,0 +1,453 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
using Newtonsoft.Json;
|
||||
using System.IO;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000005 RID: 5
|
||||
internal sealed class c000041
|
||||
{
|
||||
// Token: 0x0600000E RID: 14 RVA: 0x000022C0 File Offset: 0x000004C0
|
||||
public static c000041.c000044 m00002f()
|
||||
{
|
||||
return new c000041.c000044
|
||||
{
|
||||
GameSessionId = 20181L,
|
||||
PhotonRegionId = "us",
|
||||
PhotonRoomId = "1",
|
||||
Name = "DormRoom",
|
||||
RoomId = 1L,
|
||||
RoomSceneId = 1L,
|
||||
RoomSceneLocationId = "76d98498-60a1-430c-ab76-b54a29b7a163",
|
||||
IsSandbox = false,
|
||||
DataBlobName = string.Empty,
|
||||
PlayerEventId = null,
|
||||
Private = false,
|
||||
GameInProgress = false,
|
||||
MaxCapacity = 20,
|
||||
IsFull = false
|
||||
};
|
||||
}
|
||||
|
||||
// Token: 0x0600000F RID: 15 RVA: 0x00002370 File Offset: 0x00000570
|
||||
public static c000041.c000042 m000030(string p0)
|
||||
{
|
||||
c00006b.c00006c c00006c = JsonConvert.DeserializeObject<c00006b.c00006c>(p0);
|
||||
Console.WriteLine("[BackEnd] Room Name: " + c00006c.RoomName);
|
||||
Thread.Sleep(1);
|
||||
Console.WriteLine("[BackEnd] Scene Name: " + c00006c.SceneName);
|
||||
bool flag = c00005d.m00003b().ContainsKey(c00006c.RoomName);
|
||||
if (flag)
|
||||
{
|
||||
c000041.f000043 = c00005d.m00003b()[c00006c.RoomName];
|
||||
}
|
||||
else
|
||||
{
|
||||
bool flag2 = c00005d.m00003a().ContainsKey(c00006c.RoomName);
|
||||
if (flag2)
|
||||
{
|
||||
c000041.f000043 = c00005d.m00003a()[c00006c.RoomName];
|
||||
}
|
||||
else
|
||||
{
|
||||
c000041.f000043 = c00005d.f000050[File.ReadAllText("SaveData\\Rooms\\Downloaded\\roomname.txt")];
|
||||
}
|
||||
}
|
||||
int num = 0;
|
||||
for (int i = 0; i < c000041.f000043.Scenes.Count<c00005d.c00005f>(); i++)
|
||||
{
|
||||
bool flag3 = c000041.f000043.Scenes[i].Name == c00006c.SceneName;
|
||||
if (flag3)
|
||||
{
|
||||
num = i;
|
||||
}
|
||||
}
|
||||
string text = string.Format("{0}", c000041.f000043.Scenes[num].RoomId);
|
||||
bool flag4 = c000041.f000013 != null && text + c000004.f000003 == c000041.f000013.PhotonRoomId;
|
||||
if (flag4)
|
||||
{
|
||||
text += "Instance2";
|
||||
}
|
||||
text += c000004.f000003;
|
||||
bool @private = c00006c.Private;
|
||||
if (@private)
|
||||
{
|
||||
text += string.Format("Pri{0}", server.APIServer.CachedPlayerID);
|
||||
}
|
||||
c000041.f000013 = new c000041.c000044
|
||||
{
|
||||
GameSessionId = 20181L,
|
||||
PhotonRegionId = "us",
|
||||
PhotonRoomId = text,
|
||||
Name = c000041.f000043.Room.Name,
|
||||
RoomId = (long)c000041.f000043.Room.RoomId,
|
||||
RoomSceneId = (long)(num + 1),
|
||||
RoomSceneLocationId = c000041.f000043.Scenes[num].RoomSceneLocationId,
|
||||
IsSandbox = c000041.f000043.Scenes[num].IsSandbox,
|
||||
DataBlobName = c000041.f000043.Scenes[num].DataBlobName,
|
||||
PlayerEventId = null,
|
||||
Private = c00006c.Private,
|
||||
GameInProgress = false,
|
||||
MaxCapacity = 20,
|
||||
IsFull = false
|
||||
};
|
||||
c000041.c000042 c = new c000041.c000042();
|
||||
c.Result = 0;
|
||||
c.GameSession = c000041.f000013;
|
||||
c.RoomDetails = c000041.f000043;
|
||||
Console.WriteLine(JsonConvert.SerializeObject(c));
|
||||
return c;
|
||||
}
|
||||
|
||||
// Token: 0x0400000B RID: 11
|
||||
public static c00005d.c000060 f000043;
|
||||
|
||||
// Token: 0x0400000C RID: 12
|
||||
public static c000041.c000044 f000013;
|
||||
|
||||
// Token: 0x02000028 RID: 40
|
||||
public sealed class c000042
|
||||
{
|
||||
// Token: 0x17000039 RID: 57
|
||||
// (get) Token: 0x060000D7 RID: 215 RVA: 0x0000B290 File Offset: 0x00009490
|
||||
// (set) Token: 0x060000D8 RID: 216 RVA: 0x0000B2A8 File Offset: 0x000094A8
|
||||
public int Result
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00001f;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00001f = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700003A RID: 58
|
||||
// (get) Token: 0x060000D9 RID: 217 RVA: 0x0000B2B4 File Offset: 0x000094B4
|
||||
// (set) Token: 0x060000DA RID: 218 RVA: 0x0000B2CC File Offset: 0x000094CC
|
||||
public c000041.c000044 GameSession
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000013;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000013 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700003B RID: 59
|
||||
// (get) Token: 0x060000DB RID: 219 RVA: 0x0000B2D8 File Offset: 0x000094D8
|
||||
// (set) Token: 0x060000DC RID: 220 RVA: 0x0000B2F0 File Offset: 0x000094F0
|
||||
public c00005d.c000060 RoomDetails
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000045;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000045 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000075 RID: 117
|
||||
private int f00001f;
|
||||
|
||||
// Token: 0x04000076 RID: 118
|
||||
private c000041.c000044 f000013;
|
||||
|
||||
// Token: 0x04000077 RID: 119
|
||||
private c00005d.c000060 f000045;
|
||||
}
|
||||
|
||||
// Token: 0x02000029 RID: 41
|
||||
public enum enum043
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Token: 0x0200002A RID: 42
|
||||
public sealed class c000044
|
||||
{
|
||||
// Token: 0x1700003C RID: 60
|
||||
// (get) Token: 0x060000DE RID: 222 RVA: 0x0000B304 File Offset: 0x00009504
|
||||
// (set) Token: 0x060000DF RID: 223 RVA: 0x0000B31C File Offset: 0x0000951C
|
||||
public long GameSessionId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f00002c;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f00002c = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700003D RID: 61
|
||||
// (get) Token: 0x060000E0 RID: 224 RVA: 0x0000B326 File Offset: 0x00009526
|
||||
// (set) Token: 0x060000E1 RID: 225 RVA: 0x0000B32E File Offset: 0x0000952E
|
||||
public string PhotonRegionId { get; set; }
|
||||
|
||||
// Token: 0x1700003E RID: 62
|
||||
// (get) Token: 0x060000E2 RID: 226 RVA: 0x0000B338 File Offset: 0x00009538
|
||||
// (set) Token: 0x060000E3 RID: 227 RVA: 0x0000B350 File Offset: 0x00009550
|
||||
public string PhotonRoomId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000003;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000003 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700003F RID: 63
|
||||
// (get) Token: 0x060000E4 RID: 228 RVA: 0x0000B35C File Offset: 0x0000955C
|
||||
// (set) Token: 0x060000E5 RID: 229 RVA: 0x0000B374 File Offset: 0x00009574
|
||||
public string Name
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000035;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000035 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000040 RID: 64
|
||||
// (get) Token: 0x060000E6 RID: 230 RVA: 0x0000B380 File Offset: 0x00009580
|
||||
// (set) Token: 0x060000E7 RID: 231 RVA: 0x0000B398 File Offset: 0x00009598
|
||||
public long RoomId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f00000d;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f00000d = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000041 RID: 65
|
||||
// (get) Token: 0x060000E8 RID: 232 RVA: 0x0000B3A4 File Offset: 0x000095A4
|
||||
// (set) Token: 0x060000E9 RID: 233 RVA: 0x0000B3BC File Offset: 0x000095BC
|
||||
public long RoomSceneId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000046;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000046 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000042 RID: 66
|
||||
// (get) Token: 0x060000EA RID: 234 RVA: 0x0000B3C8 File Offset: 0x000095C8
|
||||
// (set) Token: 0x060000EB RID: 235 RVA: 0x0000B3E0 File Offset: 0x000095E0
|
||||
public string RoomSceneLocationId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f00000f;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f00000f = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000043 RID: 67
|
||||
// (get) Token: 0x060000EC RID: 236 RVA: 0x0000B3EC File Offset: 0x000095EC
|
||||
// (set) Token: 0x060000ED RID: 237 RVA: 0x0000B404 File Offset: 0x00009604
|
||||
public bool IsSandbox
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000017;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000017 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000044 RID: 68
|
||||
// (get) Token: 0x060000EE RID: 238 RVA: 0x0000B410 File Offset: 0x00009610
|
||||
// (set) Token: 0x060000EF RID: 239 RVA: 0x0000B428 File Offset: 0x00009628
|
||||
public string DataBlobName
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000009;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000009 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000045 RID: 69
|
||||
// (get) Token: 0x060000F0 RID: 240 RVA: 0x0000B434 File Offset: 0x00009634
|
||||
// (set) Token: 0x060000F1 RID: 241 RVA: 0x0000B44C File Offset: 0x0000964C
|
||||
public long? PlayerEventId
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000047;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000047 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000046 RID: 70
|
||||
// (get) Token: 0x060000F2 RID: 242 RVA: 0x0000B458 File Offset: 0x00009658
|
||||
// (set) Token: 0x060000F3 RID: 243 RVA: 0x0000B470 File Offset: 0x00009670
|
||||
public bool Private
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000019;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000019 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000047 RID: 71
|
||||
// (get) Token: 0x060000F4 RID: 244 RVA: 0x0000B47C File Offset: 0x0000967C
|
||||
// (set) Token: 0x060000F5 RID: 245 RVA: 0x0000B494 File Offset: 0x00009694
|
||||
public bool GameInProgress
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f00001a;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f00001a = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000048 RID: 72
|
||||
// (get) Token: 0x060000F6 RID: 246 RVA: 0x0000B4A0 File Offset: 0x000096A0
|
||||
// (set) Token: 0x060000F7 RID: 247 RVA: 0x0000B4B8 File Offset: 0x000096B8
|
||||
public int MaxCapacity
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f000048;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f000048 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000049 RID: 73
|
||||
// (get) Token: 0x060000F8 RID: 248 RVA: 0x0000B4C4 File Offset: 0x000096C4
|
||||
// (set) Token: 0x060000F9 RID: 249 RVA: 0x0000B4DC File Offset: 0x000096DC
|
||||
public bool IsFull
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
return this.f00001c;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.f00001c = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0400007A RID: 122
|
||||
private long f00002c;
|
||||
|
||||
// Token: 0x0400007B RID: 123
|
||||
private string f000002;
|
||||
|
||||
// Token: 0x0400007C RID: 124
|
||||
private string f000003;
|
||||
|
||||
// Token: 0x0400007D RID: 125
|
||||
private string f000035;
|
||||
|
||||
// Token: 0x0400007E RID: 126
|
||||
private long f00000d;
|
||||
|
||||
// Token: 0x0400007F RID: 127
|
||||
private long f000046;
|
||||
|
||||
// Token: 0x04000080 RID: 128
|
||||
private string f00000f;
|
||||
|
||||
// Token: 0x04000081 RID: 129
|
||||
private bool f000017;
|
||||
|
||||
// Token: 0x04000082 RID: 130
|
||||
private string f000009;
|
||||
|
||||
// Token: 0x04000083 RID: 131
|
||||
private long? f000047;
|
||||
|
||||
// Token: 0x04000084 RID: 132
|
||||
private bool f000019;
|
||||
|
||||
// Token: 0x04000085 RID: 133
|
||||
private bool f00001a;
|
||||
|
||||
// Token: 0x04000086 RID: 134
|
||||
private int f000048;
|
||||
|
||||
// Token: 0x04000087 RID: 135
|
||||
private bool f00001c;
|
||||
}
|
||||
}
|
||||
}
|
||||
107
Vault2018Notif.cs
Normal file
107
Vault2018Notif.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using ws;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x0200000B RID: 11
|
||||
public class Notification2018
|
||||
{
|
||||
// Token: 0x06000025 RID: 37
|
||||
public static string ProcessRequest(string jsonData)
|
||||
{
|
||||
|
||||
Dictionary<string, object> dictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonData);
|
||||
string result;
|
||||
if (dictionary.ContainsKey("api"))
|
||||
{
|
||||
string text = (string)dictionary["api"];
|
||||
string text2 = text;
|
||||
if (text2 != null)
|
||||
{
|
||||
if (text2 == "playerSubscriptions/v1/update")
|
||||
{
|
||||
Console.WriteLine("[18CWS] Game client sent presence update.");
|
||||
return JsonConvert.SerializeObject(Notification.Reponse.createResponse(12, c000020.m000027()));
|
||||
}
|
||||
if (text2 == "heartbeat2")
|
||||
{
|
||||
Console.WriteLine("[18CWS] Heartbeat 2 sent by game client.");
|
||||
return JsonConvert.SerializeObject(Notification.Reponse.createResponse(4, c000020.m000027()));
|
||||
}
|
||||
}
|
||||
Console.WriteLine("[18CWS] Unknown CWS call: " + text);
|
||||
result = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = jsonData;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// Token: 0x0200003B RID: 59
|
||||
public enum ResponseResult
|
||||
{
|
||||
// Token: 0x040000DF RID: 223
|
||||
RelationshipChanged = 1,
|
||||
// Token: 0x040000E0 RID: 224
|
||||
MessageReceived,
|
||||
// Token: 0x040000E1 RID: 225
|
||||
MessageDeleted,
|
||||
// Token: 0x040000E2 RID: 226
|
||||
PresenceHeartbeatResponse,
|
||||
// Token: 0x040000E3 RID: 227
|
||||
SubscriptionListUpdated = 9,
|
||||
// Token: 0x040000E4 RID: 228
|
||||
SubscriptionUpdateProfile = 11,
|
||||
// Token: 0x040000E5 RID: 229
|
||||
SubscriptionUpdatePresence,
|
||||
// Token: 0x040000E6 RID: 230
|
||||
SubscriptionUpdateGameSession,
|
||||
// Token: 0x040000E7 RID: 231
|
||||
SubscriptionUpdateRoom,
|
||||
// Token: 0x040000E8 RID: 232
|
||||
ModerationQuitGame = 20,
|
||||
// Token: 0x040000E9 RID: 233
|
||||
ModerationUpdateRequired,
|
||||
// Token: 0x040000EA RID: 234
|
||||
ModerationKick,
|
||||
// Token: 0x040000EB RID: 235
|
||||
ModerationKickAttemptFailed,
|
||||
// Token: 0x040000EC RID: 236
|
||||
GiftPackageReceived = 30,
|
||||
// Token: 0x040000ED RID: 237
|
||||
ProfileJuniorStatusUpdate = 40,
|
||||
// Token: 0x040000EE RID: 238
|
||||
RelationshipsInvalid = 50,
|
||||
// Token: 0x040000EF RID: 239
|
||||
StorefrontBalanceAdd = 60
|
||||
}
|
||||
|
||||
// Token: 0x0200003C RID: 60
|
||||
public class Reponse
|
||||
{
|
||||
// Token: 0x1700008A RID: 138
|
||||
// (get) Token: 0x06000185 RID: 389
|
||||
// (set) Token: 0x06000186 RID: 390
|
||||
public int Id { get; set; }
|
||||
|
||||
// Token: 0x1700008B RID: 139
|
||||
// (get) Token: 0x06000187 RID: 391
|
||||
// (set) Token: 0x06000188 RID: 392
|
||||
public object Msg { get; set; }
|
||||
|
||||
// Token: 0x06000189 RID: 393
|
||||
public static Notification.Reponse createResponse(int id, object msg)
|
||||
{
|
||||
return new Notification.Reponse
|
||||
{
|
||||
Id = id,
|
||||
Msg = msg
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
192
Vault2018Player.cs
Normal file
192
Vault2018Player.cs
Normal file
@@ -0,0 +1,192 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000008 RID: 8
|
||||
public sealed class c000079
|
||||
{
|
||||
// Token: 0x06000017 RID: 23 RVA: 0x00004F14 File Offset: 0x00003114
|
||||
public static List<c000079.c00007a> m000009()
|
||||
{
|
||||
return c000079.f000031;
|
||||
}
|
||||
|
||||
// Token: 0x06000018 RID: 24 RVA: 0x00004F2B File Offset: 0x0000312B
|
||||
public static void m000036(List<c000079.c00007a> p0)
|
||||
{
|
||||
c000079.f000031 = p0;
|
||||
}
|
||||
|
||||
// Token: 0x04000010 RID: 16
|
||||
private static List<c000079.c00007a> f000031;
|
||||
|
||||
// Token: 0x02000037 RID: 55
|
||||
public sealed class c00007a
|
||||
{
|
||||
// Token: 0x17000080 RID: 128
|
||||
// (get) Token: 0x0600016E RID: 366 RVA: 0x0000BC2C File Offset: 0x00009E2C
|
||||
// (set) Token: 0x0600016F RID: 367 RVA: 0x0000BC44 File Offset: 0x00009E44
|
||||
public ulong Id
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000001;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000001 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000081 RID: 129
|
||||
// (get) Token: 0x06000170 RID: 368 RVA: 0x0000BC50 File Offset: 0x00009E50
|
||||
// (set) Token: 0x06000171 RID: 369 RVA: 0x0000BC68 File Offset: 0x00009E68
|
||||
public string DisplayName
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000002;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000002 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000082 RID: 130
|
||||
// (get) Token: 0x06000172 RID: 370 RVA: 0x0000BC74 File Offset: 0x00009E74
|
||||
// (set) Token: 0x06000173 RID: 371 RVA: 0x0000BC8C File Offset: 0x00009E8C
|
||||
public string Username
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000003;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000003 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000083 RID: 131
|
||||
// (get) Token: 0x06000174 RID: 372 RVA: 0x0000BC98 File Offset: 0x00009E98
|
||||
// (set) Token: 0x06000175 RID: 373 RVA: 0x0000BCB0 File Offset: 0x00009EB0
|
||||
public int Level
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000004;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000004 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000084 RID: 132
|
||||
// (get) Token: 0x06000176 RID: 374 RVA: 0x0000BCBC File Offset: 0x00009EBC
|
||||
// (set) Token: 0x06000177 RID: 375 RVA: 0x0000BCD4 File Offset: 0x00009ED4
|
||||
public int XP
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000005;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000005 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000085 RID: 133
|
||||
// (get) Token: 0x06000178 RID: 376 RVA: 0x0000BCE0 File Offset: 0x00009EE0
|
||||
// (set) Token: 0x06000179 RID: 377 RVA: 0x0000BCF8 File Offset: 0x00009EF8
|
||||
public bool Developer
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000039;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000039 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000086 RID: 134
|
||||
// (get) Token: 0x0600017A RID: 378 RVA: 0x0000BD04 File Offset: 0x00009F04
|
||||
// (set) Token: 0x0600017B RID: 379 RVA: 0x0000BD1C File Offset: 0x00009F1C
|
||||
public bool IsBooster
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000016;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000016 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000087 RID: 135
|
||||
// (get) Token: 0x0600017C RID: 380 RVA: 0x0000BD28 File Offset: 0x00009F28
|
||||
// (set) Token: 0x0600017D RID: 381 RVA: 0x0000BD40 File Offset: 0x00009F40
|
||||
public int BootMultiplier
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000008;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000008 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000C1 RID: 193
|
||||
private ulong f000001;
|
||||
|
||||
// Token: 0x040000C2 RID: 194
|
||||
private string f000002;
|
||||
|
||||
// Token: 0x040000C3 RID: 195
|
||||
private string f000003;
|
||||
|
||||
// Token: 0x040000C4 RID: 196
|
||||
private int f000004;
|
||||
|
||||
// Token: 0x040000C5 RID: 197
|
||||
private int f000005;
|
||||
|
||||
// Token: 0x040000C6 RID: 198
|
||||
private bool f000039;
|
||||
|
||||
// Token: 0x040000C7 RID: 199
|
||||
private bool f000016;
|
||||
|
||||
// Token: 0x040000C8 RID: 200
|
||||
private int f000008;
|
||||
}
|
||||
}
|
||||
}
|
||||
123
Vault2018Prescence.cs
Normal file
123
Vault2018Prescence.cs
Normal file
@@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using server;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000004 RID: 4
|
||||
internal sealed class c000020
|
||||
{
|
||||
// Token: 0x0600000C RID: 12 RVA: 0x0000225C File Offset: 0x0000045C
|
||||
public static c000020.c000022 m000027()
|
||||
{
|
||||
bool flag = c000041.f000013 == null;
|
||||
bool flag2 = flag;
|
||||
c000041.c000044 gameSession;
|
||||
if (flag2)
|
||||
{
|
||||
gameSession = c000041.m00002f();
|
||||
}
|
||||
else
|
||||
{
|
||||
gameSession = c000041.f000013;
|
||||
}
|
||||
return new c000020.c000022
|
||||
{
|
||||
PlayerId = APIServer.CachedPlayerID,
|
||||
IsOnline = true,
|
||||
PlayerType = 2,
|
||||
GameSession = gameSession
|
||||
};
|
||||
}
|
||||
|
||||
// Token: 0x02000026 RID: 38
|
||||
public enum enum021
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Token: 0x02000027 RID: 39
|
||||
public sealed class c000022
|
||||
{
|
||||
// Token: 0x17000035 RID: 53
|
||||
// (get) Token: 0x060000CE RID: 206 RVA: 0x0000B1F8 File Offset: 0x000093F8
|
||||
// (set) Token: 0x060000CF RID: 207 RVA: 0x0000B210 File Offset: 0x00009410
|
||||
public ulong PlayerId
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000001;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000001 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000036 RID: 54
|
||||
// (get) Token: 0x060000D0 RID: 208 RVA: 0x0000B21C File Offset: 0x0000941C
|
||||
// (set) Token: 0x060000D1 RID: 209 RVA: 0x0000B234 File Offset: 0x00009434
|
||||
public bool IsOnline
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000037;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000037 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000037 RID: 55
|
||||
// (get) Token: 0x060000D2 RID: 210 RVA: 0x0000B240 File Offset: 0x00009440
|
||||
// (set) Token: 0x060000D3 RID: 211 RVA: 0x0000B258 File Offset: 0x00009458
|
||||
public int PlayerType
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000020;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000020 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000038 RID: 56
|
||||
// (get) Token: 0x060000D4 RID: 212 RVA: 0x0000B264 File Offset: 0x00009464
|
||||
// (set) Token: 0x060000D5 RID: 213 RVA: 0x0000B27C File Offset: 0x0000947C
|
||||
public c000041.c000044 GameSession
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000038;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000038 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000071 RID: 113
|
||||
private ulong f000001;
|
||||
|
||||
// Token: 0x04000072 RID: 114
|
||||
private bool f000037;
|
||||
|
||||
// Token: 0x04000073 RID: 115
|
||||
private int f000020;
|
||||
|
||||
// Token: 0x04000074 RID: 116
|
||||
private c000041.c000044 f000038;
|
||||
}
|
||||
}
|
||||
}
|
||||
2360
Vault2018Rooms.cs
Normal file
2360
Vault2018Rooms.cs
Normal file
File diff suppressed because it is too large
Load Diff
97
Vault2018WS.cs
Normal file
97
Vault2018WS.cs
Normal file
@@ -0,0 +1,97 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Newtonsoft.Json;
|
||||
using WebSocketSharp;
|
||||
using WebSocketSharp.Server;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000018 RID: 24
|
||||
internal class Late2018WebSock
|
||||
{
|
||||
// Token: 0x06000094 RID: 148 RVA: 0x00006EB0 File Offset: 0x000050B0
|
||||
public Late2018WebSock()
|
||||
{
|
||||
this.WebSock.AddWebSocketService<Late2018WebSock.NotificationWS>("/api/notification/v2");
|
||||
this.WebSock.AddWebSocketService<Late2018WebSock.HubWS>("/hub/v1");
|
||||
this.WebSock.Start();
|
||||
Console.WriteLine("2018 WebSocket server started!");
|
||||
}
|
||||
|
||||
// Token: 0x04000047 RID: 71
|
||||
public WebSocketServer WebSock = new WebSocketServer("ws://localhost:20161/");
|
||||
|
||||
// Token: 0x0200004A RID: 74
|
||||
public class HubWS : WebSocketBehavior
|
||||
{
|
||||
// Token: 0x060001EA RID: 490 RVA: 0x0000C215 File Offset: 0x0000A415
|
||||
protected override void OnMessage(MessageEventArgs e)
|
||||
{
|
||||
Console.WriteLine("LateWebSocket.cs Hub Requested.");
|
||||
base.Send(JsonConvert.SerializeObject(new Late2018WebSock.Hub()));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0200004B RID: 75
|
||||
public class Hub : WebSocketBehavior
|
||||
{
|
||||
// Token: 0x060001EC RID: 492 RVA: 0x0000C240 File Offset: 0x0000A440
|
||||
public Hub()
|
||||
{
|
||||
this.accessToken = "AccessDeezNuts";
|
||||
this.SupportedTransports = new List<string>();
|
||||
this.negotiateVersion = 0;
|
||||
this.url = new Uri(string.Format("http://localhost:{0}/", "2018"));
|
||||
}
|
||||
|
||||
// Token: 0x170000B4 RID: 180
|
||||
// (get) Token: 0x060001ED RID: 493 RVA: 0x0000C290 File Offset: 0x0000A490
|
||||
// (set) Token: 0x060001EE RID: 494 RVA: 0x0000C298 File Offset: 0x0000A498
|
||||
public Uri url { get; set; }
|
||||
|
||||
// Token: 0x170000B5 RID: 181
|
||||
// (get) Token: 0x060001EF RID: 495 RVA: 0x0000C2A1 File Offset: 0x0000A4A1
|
||||
// (set) Token: 0x060001F0 RID: 496 RVA: 0x0000C2A9 File Offset: 0x0000A4A9
|
||||
public string accessToken { get; set; }
|
||||
|
||||
// Token: 0x170000B6 RID: 182
|
||||
// (get) Token: 0x060001F1 RID: 497 RVA: 0x0000C2B2 File Offset: 0x0000A4B2
|
||||
// (set) Token: 0x060001F2 RID: 498 RVA: 0x0000C2BA File Offset: 0x0000A4BA
|
||||
public List<string> SupportedTransports { get; set; }
|
||||
|
||||
// Token: 0x170000B7 RID: 183
|
||||
// (get) Token: 0x060001F3 RID: 499 RVA: 0x0000C2C3 File Offset: 0x0000A4C3
|
||||
// (set) Token: 0x060001F4 RID: 500 RVA: 0x0000C2CB File Offset: 0x0000A4CB
|
||||
public int negotiateVersion { get; set; }
|
||||
}
|
||||
|
||||
// Token: 0x0200004C RID: 76
|
||||
public class NotificationWS : WebSocketBehavior
|
||||
{
|
||||
// Token: 0x060001F5 RID: 501 RVA: 0x0000C2D4 File Offset: 0x0000A4D4
|
||||
protected override void OnMessage(MessageEventArgs p0)
|
||||
{
|
||||
Console.WriteLine("LateWebSocket.csNotif Requested.");
|
||||
bool flag = p0.Data == null;
|
||||
bool flag2 = flag;
|
||||
if (flag2)
|
||||
{
|
||||
base.Send(string.Empty);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Send(Notification2018.ProcessRequest(p0.Data));
|
||||
}
|
||||
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
start.Program.bannedflag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
30
VaultGameConfig.cs
Normal file
30
VaultGameConfig.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000002 RID: 2
|
||||
internal sealed class c000004
|
||||
{
|
||||
public static string m000007()
|
||||
{
|
||||
string text = "SaveData\\" + "Rooms\\";
|
||||
bool flag = !Directory.Exists(text);
|
||||
bool flag2 = flag;
|
||||
if (flag2)
|
||||
{
|
||||
Directory.CreateDirectory(text);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
// Token: 0x04000001 RID: 1
|
||||
public static ulong f000001 = 0UL;
|
||||
|
||||
// Token: 0x04000002 RID: 2
|
||||
public static string f000002 = "us";
|
||||
|
||||
// Token: 0x04000003 RID: 3
|
||||
public static string f000003 = "OpenRec_v0.6.0";
|
||||
|
||||
}
|
||||
}
|
||||
197
VaultSceneInfo.cs
Normal file
197
VaultSceneInfo.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace vaultgamesesh
|
||||
{
|
||||
// Token: 0x02000007 RID: 7
|
||||
internal sealed class c00006b
|
||||
{
|
||||
// Token: 0x02000035 RID: 53
|
||||
public sealed class c00006c
|
||||
{
|
||||
// Token: 0x17000077 RID: 119
|
||||
// (get) Token: 0x0600015A RID: 346 RVA: 0x0000BAD8 File Offset: 0x00009CD8
|
||||
// (set) Token: 0x0600015B RID: 347 RVA: 0x0000BAF0 File Offset: 0x00009CF0
|
||||
public ulong[] ExpectedPlayerIds
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000001;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000001 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000078 RID: 120
|
||||
// (get) Token: 0x0600015C RID: 348 RVA: 0x0000BAFC File Offset: 0x00009CFC
|
||||
// (set) Token: 0x0600015D RID: 349 RVA: 0x0000BB14 File Offset: 0x00009D14
|
||||
public c00006b.c00006d[] RegionPings
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00004f;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00004f = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000079 RID: 121
|
||||
// (get) Token: 0x0600015E RID: 350 RVA: 0x0000BB20 File Offset: 0x00009D20
|
||||
// (set) Token: 0x0600015F RID: 351 RVA: 0x0000BB38 File Offset: 0x00009D38
|
||||
public string[] RoomTags
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000003;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000003 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007A RID: 122
|
||||
// (get) Token: 0x06000160 RID: 352 RVA: 0x0000BB44 File Offset: 0x00009D44
|
||||
// (set) Token: 0x06000161 RID: 353 RVA: 0x0000BB5C File Offset: 0x00009D5C
|
||||
public string RoomName
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000035;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000035 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007B RID: 123
|
||||
// (get) Token: 0x06000162 RID: 354 RVA: 0x0000BB68 File Offset: 0x00009D68
|
||||
// (set) Token: 0x06000163 RID: 355 RVA: 0x0000BB80 File Offset: 0x00009D80
|
||||
public string SceneName
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000036;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000036 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007C RID: 124
|
||||
// (get) Token: 0x06000164 RID: 356 RVA: 0x0000BB8C File Offset: 0x00009D8C
|
||||
// (set) Token: 0x06000165 RID: 357 RVA: 0x0000BBA4 File Offset: 0x00009DA4
|
||||
public int AdditionalPlayerJoinMode
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000006;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000006 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007D RID: 125
|
||||
// (get) Token: 0x06000166 RID: 358 RVA: 0x0000BBB0 File Offset: 0x00009DB0
|
||||
// (set) Token: 0x06000167 RID: 359 RVA: 0x0000BBC8 File Offset: 0x00009DC8
|
||||
public bool Private
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f000016;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f000016 = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000B8 RID: 184
|
||||
private ulong[] f000001;
|
||||
|
||||
// Token: 0x040000B9 RID: 185
|
||||
private c00006b.c00006d[] f00004f;
|
||||
|
||||
// Token: 0x040000BA RID: 186
|
||||
private string[] f000003;
|
||||
|
||||
// Token: 0x040000BB RID: 187
|
||||
private string f000035;
|
||||
|
||||
// Token: 0x040000BC RID: 188
|
||||
private string f000036;
|
||||
|
||||
// Token: 0x040000BD RID: 189
|
||||
private int f000006;
|
||||
|
||||
// Token: 0x040000BE RID: 190
|
||||
private bool f000016;
|
||||
}
|
||||
|
||||
// Token: 0x02000036 RID: 54
|
||||
public sealed class c00006d
|
||||
{
|
||||
// Token: 0x1700007E RID: 126
|
||||
// (get) Token: 0x06000169 RID: 361 RVA: 0x0000BBDC File Offset: 0x00009DDC
|
||||
// (set) Token: 0x0600016A RID: 362 RVA: 0x0000BBF4 File Offset: 0x00009DF4
|
||||
public string Region
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00000a;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00000a = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700007F RID: 127
|
||||
// (get) Token: 0x0600016B RID: 363 RVA: 0x0000BC00 File Offset: 0x00009E00
|
||||
// (set) Token: 0x0600016C RID: 364 RVA: 0x0000BC18 File Offset: 0x00009E18
|
||||
public int Ping
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return this.f00000b;
|
||||
}
|
||||
[CompilerGenerated]
|
||||
set
|
||||
{
|
||||
this.f00000b = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040000BF RID: 191
|
||||
private string f00000a;
|
||||
|
||||
// Token: 0x040000C0 RID: 192
|
||||
private int f00000b;
|
||||
}
|
||||
}
|
||||
}
|
||||
14
WebSocket.cs
14
WebSocket.cs
@@ -1,6 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WebSocketSharp;
|
||||
using WebSocketSharp.Server;
|
||||
using Newtonsoft.Json;
|
||||
using server;
|
||||
using start;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace ws
|
||||
{
|
||||
@@ -18,7 +24,6 @@ namespace ws
|
||||
Console.WriteLine("WebSocket.cs is listening.");
|
||||
}
|
||||
|
||||
// Token: 0x02000009 RID: 9
|
||||
public class NotificationV2 : WebSocketBehavior
|
||||
{
|
||||
// Token: 0x06000013 RID: 19 RVA: 0x0000209D File Offset: 0x0000029D
|
||||
@@ -26,6 +31,13 @@ namespace ws
|
||||
{
|
||||
Console.WriteLine("WebSocket.cs called for.");
|
||||
base.Send(Notification.ProcessRequest(e.Data));
|
||||
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
start.Program.bannedflag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
websocket-sharp.dll
Normal file
BIN
websocket-sharp.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user