69 Commits

Author SHA1 Message Date
Nexus
c844d8f17e Update README.md 2022-05-08 23:17:18 +01:00
Nexus
91cb7d5a54 Update README.md 2022-05-08 23:17:07 +01:00
Nexus
f1dfd5ba42 Update README.md 2022-05-08 23:16:52 +01:00
Nexus
938300045c Create README.md 2022-05-08 23:16:19 +01:00
recroom2016
dbfb132d6c Create contextdrops.json 2022-05-07 21:54:42 -04:00
recroom2016
6fe87123b5 Update avatar.txt 2022-05-07 21:16:32 -04:00
recroom2016tutorial
9a86d1d88e Merge branch 'master' of https://github.com/recroom2016/OpenRec 2022-05-07 17:57:58 -04:00
recroom2016tutorial
f39c7cefa3 openrec 0.7.0 2022-05-07 17:57:37 -04:00
recroom2016
1f94738349 Update motd.txt 2022-05-02 21:07:23 -04:00
recroom2016
02e55a3428 Update builds.txt 2022-05-02 21:07:02 -04:00
recroom2016
0137b18e98 Update hotrooms.txt 2022-05-02 21:06:30 -04:00
recroom2016
2a6788cf9d Update builds.txt 2022-05-01 21:01:03 -04:00
recroom2016
d615e009dd Create builds.txt 2022-05-01 20:35:58 -04:00
recroom2016
33540f1a25 Update banned.txt 2022-04-30 17:26:59 -04:00
recroom2016
aae35a6c28 Update banned.txt 2022-04-18 23:16:47 -04:00
recroom2016
e08fb285f8 Update version.txt 2022-04-18 10:12:02 -04:00
recroom2016
1ae28dc203 Update version.txt 2022-04-17 23:05:22 -04:00
recroom2016
e00ac817a1 Update banned.txt 2022-04-10 10:43:38 -04:00
recroom2016
c68360e030 Update rcslideshow.txt 2022-04-06 21:26:35 -04:00
recroom2016
1cc3ad4a0b Rename rcslideshow to rcslideshow.txt 2022-04-05 18:18:15 -04:00
recroom2016
230058717c Create rcslideshow 2022-04-05 18:16:01 -04:00
recroom2016
15e21f6610 Update version.txt 2022-04-03 22:43:32 -04:00
recroom2016
d8a619efcd Update changelog.txt 2022-04-03 22:43:09 -04:00
recroom2016
cb7414eb8d Update avataritems2.txt 2022-04-03 22:34:33 -04:00
recroom2016tutorial
02dfb1e409 0.6.1 2022-04-03 22:28:45 -04:00
recroom2016
5aff58844a Create avataritems.txt 2022-04-02 23:32:04 -04:00
recroom2016
21553584c1 Rename avataritems.txt to avataritems2.txt 2022-04-02 23:31:46 -04:00
recroom2016
41c603233e Update avataritems.txt 2022-04-02 23:30:34 -04:00
recroom2016
7d4c449151 Update avataritems.txt 2022-04-02 23:18:51 -04:00
recroom2016
ebd28aef74 Create motd.txt 2022-04-02 22:10:46 -04:00
recroom2016
8057427772 Update version.txt 2022-03-29 22:51:44 -04:00
recroom2016
0e0da58f81 Update changelog.txt 2022-03-29 22:51:34 -04:00
recroom2016tutorial
001423935c 0.6.0 2022-03-29 22:34:41 -04:00
recroom2016tutorial
c000b151bf new build 2022-03-28 23:12:13 -04:00
recroom2016
467230ef1b Update dormslideshow.txt 2022-03-28 23:03:05 -04:00
recroom2016
907fd6c472 Update hotrooms.txt 2022-03-28 22:59:32 -04:00
recroom2016
dfb0bf7a66 Update hotrooms.txt 2022-03-28 22:43:25 -04:00
recroom2016tutorial
540f18f19b new openrec change dropped guys 2022-03-27 22:40:02 -04:00
recroom2016tutorial
30f6657c74 Merge branch 'master' of https://github.com/recroom2016/OpenRec 2022-03-27 22:12:20 -04:00
recroom2016tutorial
76c86ca4f6 new openrec change dropped guys 2022-03-27 22:12:15 -04:00
recroom2016
0297845357 Update hotrooms.txt 2022-03-27 02:40:55 -04:00
recroom2016
73202952da Update hotrooms.txt 2022-03-27 02:25:48 -04:00
recroom2016
8be5b35339 Create hotrooms.txt 2022-03-27 01:42:56 -04:00
recroom2016
8e6207c335 Update banned.txt 2022-03-26 22:15:15 -04:00
recroom2016tutorial
3fc8f954c1 Merge branch 'master' of https://github.com/recroom2016/OpenRec 2022-03-24 00:42:47 -04:00
recroom2016tutorial
2344b111d5 september 27th 2018 support 2022-03-24 00:42:44 -04:00
recroom2016
3d26270a55 Create baserooms.txt 2022-03-24 00:27:09 -04:00
recroom2016
9d5fb0432f Update banned.txt 2022-03-24 00:17:21 -04:00
recroom2016
81249c9efe Create banned.txt 2022-03-24 00:16:59 -04:00
recroom2016
e8ffebaf2f Create dormslideshow.txt 2022-03-24 00:16:20 -04:00
recroom2016
83ca99fbcb Rename storefront2 to storefront2.txt 2022-03-23 00:07:58 -04:00
recroom2016
38c33ff4a2 Create storefront2 2022-03-23 00:07:49 -04:00
recroom2016
7b7eb4326b Update banned.txt 2022-03-22 17:25:21 -04:00
recroom2016
10cfabf1d0 Update banned.txt 2022-03-22 13:18:43 -04:00
recroom2016
203a3e0002 Update gameconfigs.txt 2022-03-21 22:44:55 -04:00
recroom2016
a8f6aaf90d Update banned.txt 2022-03-19 18:04:55 -04:00
recroom2016
bc3701e9e4 Update banned.txt 2022-03-19 14:48:38 -04:00
recroom2016
c4f1e97a51 Update changelog.txt 2022-03-19 14:43:18 -04:00
recroom2016
07c12f2cb7 Update version.txt 2022-03-19 14:33:59 -04:00
recroom2016
cf81be7329 Update banned.txt 2022-03-17 21:35:35 -04:00
recroom2016tutorial
f702725b9b Merge branch 'master' of https://github.com/recroom2016/OpenRec 2022-03-17 00:30:00 -04:00
recroom2016tutorial
3bd0fa5ba3 bruh 2022-03-17 00:29:54 -04:00
recroom2016
59330ea345 Update banned.txt 2022-03-16 23:48:47 -04:00
recroom2016
57a2ff3462 Create banned.txt 2022-03-16 23:48:15 -04:00
recroom2016tutorial
aab1932199 test 2022-03-05 22:24:43 -05:00
recroom2016tutorial
857a1768ba openrec update omg!! 2022-03-02 23:28:21 -05:00
recroom2016tutorial
2d54a04613 Merge branch 'master' of https://github.com/recroom2016/OpenRec 2022-02-28 23:13:47 -05:00
recroom2016
3f81862763 Update version.txt 2022-02-27 03:18:48 -05:00
recroom2016
9c18f042b9 openrec patch v0.4.2 2022-02-27 02:53:43 -05:00
51 changed files with 6087 additions and 2336 deletions

63
.gitattributes vendored
View File

@@ -1,63 +0,0 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

View File

@@ -7,6 +7,8 @@ using api;
using api2018; using api2018;
using api2017; using api2017;
using Newtonsoft.Json; using Newtonsoft.Json;
using vaultgamesesh;
using System.Collections.Generic;
namespace server namespace server
{ {
@@ -16,7 +18,7 @@ namespace server
{ {
try try
{ {
Console.WriteLine("APIServer.cs has started."); Console.WriteLine("[APIServer.cs] has started.");
new Thread(new ThreadStart(this.StartListen)).Start(); new Thread(new ThreadStart(this.StartListen)).Start();
} }
catch (Exception ex) catch (Exception ex)
@@ -28,14 +30,156 @@ namespace server
{ {
try try
{ {
//3 different servers for 3 different stages of the game, the apis change so much idk anymore //2 different servers for 3 different stages of the game, the apis change so much idk anymore
this.listener.Prefixes.Add("http://localhost:" + start.Program.version + "/"); this.listener.Prefixes.Add("http://localhost:" + start.Program.version + "/");
if (start.Program.version == "2016")
{
for (; ; )
{
this.listener.Start();
Console.WriteLine("[APIServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
string rawUrl = request.RawUrl;
string Url = "";
bool image = false;
byte[] imagebyte = null;
if (rawUrl.StartsWith("/api/"))
{
Url = rawUrl.Remove(0, 5);
}
string text;
string s = "";
using (StreamReader streamReader = new StreamReader(request.InputStream, request.ContentEncoding))
{
text = streamReader.ReadToEnd();
}
if (!(Url == ""))
{
Console.WriteLine("API Requested: " + Url);
}
else
{
Console.WriteLine("API Requested (rawUrl): " + rawUrl);
}
if (!(Url == "images/v2/profile"))
{
Console.WriteLine("API Data: " + text);
}
if (Url.StartsWith("versioncheck"))
{
s = VersionCheckResponse;
}
if (Url == ("config/v2"))
{
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 == "players/v1/getorcreate")
{
s = getorcreate.GetOrCreate((ulong.Parse(text.Remove(0, 32).Remove(7, text.Length - 39))));
}
if (Url.StartsWith("images/v1/profile/"))
{
image = true;
imagebyte = File.ReadAllBytes("SaveData\\profileimage.png");
}
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 == "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 == "images/v2/profile/") //disabled with a / at the end
{
s = BracketResponse;
int NewLength = text.Length - 50;
File.WriteAllBytes("SaveData\\profileimage.png", Encoding.UTF8.GetBytes(text.Remove(0, 50).Remove(NewLength - 48, 48)));
}
Console.WriteLine("API Response: " + s);
byte[] bytes = null;
if (image == true)
{
bytes = imagebyte;
}
else
{
bytes = Encoding.UTF8.GetBytes(s);
}
response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(20);
outputStream.Close();
this.listener.Stop();
}
}
if (start.Program.version == "2017") if (start.Program.version == "2017")
{ {
for (; ; ) for (; ; )
{ {
this.listener.Start(); this.listener.Start();
Console.WriteLine("APIServer.cs is listening."); Console.WriteLine("[APIServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext(); HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request; HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response; HttpListenerResponse response = context.Response;
@@ -57,7 +201,7 @@ namespace server
} }
else else
{ {
Console.WriteLine("API Requested: " + rawUrl); Console.WriteLine("API Requested (rawUrl): " + rawUrl);
} }
Console.WriteLine("API Data: " + text); Console.WriteLine("API Data: " + text);
if (Url.StartsWith("versioncheck")) if (Url.StartsWith("versioncheck"))
@@ -74,6 +218,13 @@ namespace server
CachedPlayerID = ulong.Parse(text.Remove(0, 32)); CachedPlayerID = ulong.Parse(text.Remove(0, 32));
CachedPlatformID = ulong.Parse(text.Remove(0, 22)); CachedPlatformID = ulong.Parse(text.Remove(0, 22));
File.WriteAllText("SaveData\\Profile\\userid.txt", Convert.ToString(CachedPlayerID)); 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") if (Url == "platformlogin/v6")
{ {
@@ -82,6 +233,10 @@ namespace server
if (Url == "PlayerReporting/v1/moderationBlockDetails") if (Url == "PlayerReporting/v1/moderationBlockDetails")
{ {
s = ModerationBlockDetails; s = ModerationBlockDetails;
if (start.Program.bannedflag == true)
{
s = Banned;
}
} }
if (Url == "config/v1/amplitude") if (Url == "config/v1/amplitude")
{ {
@@ -90,10 +245,18 @@ namespace server
if (Url.StartsWith("players/v1/")) if (Url.StartsWith("players/v1/"))
{ {
s = getorcreate.GetOrCreate(CachedPlayerID); s = getorcreate.GetOrCreate(CachedPlayerID);
}
if (Url == "players/v1/list")
{
s = BracketResponse;
} }
if (Url == "avatar/v2") if (Url == "avatar/v2")
{ {
s = File.ReadAllText("SaveData\\avatar.txt"); s = File.ReadAllText("SaveData\\avatar.txt");
}
if (Url == "avatar/v2/saved")
{
s = BracketResponse;
} }
if (Url == "avatar/v2/set") if (Url == "avatar/v2/set")
{ {
@@ -141,20 +304,34 @@ namespace server
{ {
s = PlayerEventsResponse; s = PlayerEventsResponse;
} }
if (Url == "activities/charades/v1/words")
{
s = Activities.Charades.words();
}
if (Url == "gamesessions/v2/joinrandom") if (Url == "gamesessions/v2/joinrandom")
{ {
s = gamesessions2018.GameSessions.JoinRandom(text); s = gamesesh.GameSessions.JoinRandom(text);
} }
if (Url == "gamesessions/v2/create") if (Url == "gamesessions/v2/create")
{ {
s = gamesessions2018.GameSessions.Create(text); s = gamesesh.GameSessions.Create(text);
}
if (rawUrl == "//api/sanitize/v1/isPure")
{
s = "{\"IsPure\":true}";
}
if (Url == "images/v3/profile")
{
s = BracketResponse;
int NewLength = text.Length - 50;
File.WriteAllBytes("SaveData\\profileimage.png", Encoding.UTF8.GetBytes(text.Remove(0, 50).Remove(NewLength - 48, 48)));
} }
Console.WriteLine("API Response: " + s); Console.WriteLine("API Response: " + s);
byte[] bytes = Encoding.UTF8.GetBytes(s); byte[] bytes = Encoding.UTF8.GetBytes(s);
response.ContentLength64 = (long)bytes.Length; response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream; Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length); outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(200); Thread.Sleep(20);
outputStream.Close(); outputStream.Close();
this.listener.Stop(); this.listener.Stop();
} }
@@ -164,13 +341,15 @@ namespace server
for (; ; ) for (; ; )
{ {
this.listener.Start(); this.listener.Start();
Console.WriteLine("APIServer.cs is listening."); Console.WriteLine("[APIServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext(); HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request; HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response; HttpListenerResponse response = context.Response;
List<byte> list = new List<byte>();
string rawUrl = request.RawUrl; string rawUrl = request.RawUrl;
string Url = ""; string Url = "";
byte[] bytes = null; byte[] bytes = null;
string signature = request.Headers.Get("X-RNSIG");
if (rawUrl.StartsWith("/api/")) if (rawUrl.StartsWith("/api/"))
{ {
Url = rawUrl.Remove(0, 5); Url = rawUrl.Remove(0, 5);
@@ -181,7 +360,7 @@ namespace server
} }
else else
{ {
Console.WriteLine("API Requested: " + rawUrl); Console.WriteLine("API Requested (rawUrl): " + rawUrl);
} }
string text; string text;
string s = ""; string s = "";
@@ -212,6 +391,13 @@ namespace server
CachedPlayerID = ulong.Parse(text.Remove(0, 32)); CachedPlayerID = ulong.Parse(text.Remove(0, 32));
CachedPlatformID = ulong.Parse(text.Remove(0, 22)); CachedPlatformID = ulong.Parse(text.Remove(0, 22));
File.WriteAllText("SaveData\\Profile\\userid.txt", Convert.ToString(CachedPlayerID)); 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") if (Url == "platformlogin/v1/loginaccount")
{ {
@@ -244,6 +430,10 @@ namespace server
if (Url == "PlayerReporting/v1/moderationBlockDetails") if (Url == "PlayerReporting/v1/moderationBlockDetails")
{ {
s = ModerationBlockDetails; s = ModerationBlockDetails;
if (start.Program.bannedflag == true)
{
s = Banned;
}
} }
if (Url == "//api/chat/v2/myChats?mode=0&count=50") if (Url == "//api/chat/v2/myChats?mode=0&count=50")
{ {
@@ -261,21 +451,29 @@ namespace server
{ {
s = File.ReadAllText("SaveData\\gameconfigs.txt"); s = File.ReadAllText("SaveData\\gameconfigs.txt");
} }
if (Url.StartsWith("storefronts")) if (Url.StartsWith("storefronts/v3/giftdropstore"))
{ {
if (CachedVersionMonth == 09) if (CachedVersionMonth == 09)
{ {
s = File.ReadAllText("SaveData\\storefronts2.txt"); s = BracketResponse;
} }
else else
{ {
s = BracketResponse; s = BracketResponse;
} }
} }
if (Url.StartsWith("storefronts/v3/balance/"))
{
s = BracketResponse;
}
if (Url == "avatar/v2") if (Url == "avatar/v2")
{ {
s = File.ReadAllText("SaveData\\avatar.txt"); s = File.ReadAllText("SaveData\\avatar.txt");
} }
if (Url == "avatar/v2/saved")
{
s = BracketResponse;
}
if (Url == "avatar/v2/set") if (Url == "avatar/v2/set")
{ {
//for later 2018 builds compatibility //for later 2018 builds compatibility
@@ -294,17 +492,24 @@ namespace server
{ {
Settings.SetPlayerSettings(text); 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") if (Url == "avatar/v3/items")
{ {
if (CachedVersionMonth == 09) if (CachedVersionMonth == 09)
{ {
s = BracketResponse; s = File.ReadAllText("SaveData\\avataritems2.txt");
} }
else else
{ {
s = File.ReadAllText("SaveData\\avataritems.txt"); s = File.ReadAllText("SaveData\\avataritems2.txt");
} }
} }
if (Url == "equipment/v1/getUnlocked") if (Url == "equipment/v1/getUnlocked")
{ {
@@ -333,6 +538,10 @@ namespace server
{ {
s = BlankResponse; s = BlankResponse;
} }
if (Url == "storefronts/v1/allGiftDrops/2")
{
s = BracketResponse;
}
if (Url == "objectives/v1/myprogress") if (Url == "objectives/v1/myprogress")
{ {
s = JsonConvert.SerializeObject(new Objective2018()); s = JsonConvert.SerializeObject(new Objective2018());
@@ -345,6 +554,10 @@ namespace server
{ {
s = BracketResponse; s = BracketResponse;
} }
if (Url == "rooms/v2/baserooms")
{
s = File.ReadAllText("SaveData\\baserooms.txt");
}
if (Url == "rooms/v1/mybookmarkedrooms") if (Url == "rooms/v1/mybookmarkedrooms")
{ {
s = BracketResponse; s = BracketResponse;
@@ -361,23 +574,25 @@ namespace server
{ {
s = PlayerEventsResponse; s = PlayerEventsResponse;
} }
if (Url == "activities/charades/v1/words")
{
s = Activities.Charades.words();
}
if (Url == "gamesessions/v2/joinrandom") if (Url == "gamesessions/v2/joinrandom")
{ {
s = gamesessions2018.GameSessions.JoinRandom(text); s = gamesesh.GameSessions.JoinRandom(text);
} }
if (Url == "gamesessions/v2/create") if (Url == "gamesessions/v2/create")
{ {
s = gamesessions2018.GameSessions.Create(text); s = gamesesh.GameSessions.Create(text);
} }
if (Url == "gamesessions/v3/joinroom") if (Url == "gamesessions/v3/joinroom")
{ {
bytes = Encoding.UTF8.GetBytes((JsonConvert.SerializeObject(gamesessions2018.GameSessions2.JoinRoom(text)))); s = JsonConvert.SerializeObject(c000041.m000030(text));
} }
if (rawUrl.Contains("//api/images/v4/uploadtransient?gameSessionId=2018")) if (rawUrl == "//api/sanitize/v1/isPure")
{ {
File.WriteAllBytes("SaveData\\Images\\image" + Convert.ToString(int.Parse(File.ReadAllText("SaveData\\Images\\count.txt") + 1)) + ".png", Encoding.UTF8.GetBytes(text.Remove(0, 50).Remove(text.Length - 48, 48))); s = "{\"IsPure\":true}";
int imagecount = int.Parse(File.ReadAllText("SaveData\\Images\\count.txt"));
File.WriteAllText("SaveData\\Images\\count.txt", Convert.ToString(imagecount + 1));
} }
if (Url == "avatar/v3/saved") if (Url == "avatar/v3/saved")
{ {
@@ -385,23 +600,91 @@ namespace server
} }
if (Url == "checklist/v1/current") if (Url == "checklist/v1/current")
{ {
s = BracketResponse; s = ChecklistV1Current;
} }
if (Url == "presence/v1/setplayertype") if (Url == "presence/v1/setplayertype")
{ {
s = BracketResponse; s = BracketResponse;
} }
Console.WriteLine("API Response: " + s); if (Url == "challenge/v1/getCurrent")
if (!(Url == "gamesessions/v3/joinroom"))
{ {
bytes = Encoding.UTF8.GetBytes(s); s = ChallengesV1GetCurrent;
} }
if (Url == "rooms/v1/featuredRoomGroup")
{
s = BracketResponse;
}
if (Url == "rooms/v1/clone")
{
s = 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")
{
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;
Late2018WebSock.instance.Broadcast(ws.Notification.Reponse.createBannedResponse());
}
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/v2/instancedetails"))
{
s = BracketResponse;
}
if (Url.StartsWith("rooms/v2/search?value="))
{
CustomRooms.RoomGet(Url.Remove(0, 22));
}
if (Url == "rooms/v4/details/29")
{
s = File.ReadAllText("SaveData\\Rooms\\Downloaded\\RoomDetails.json");
Thread.Sleep(100);
}
else if (Url.StartsWith("rooms/v4/details"))
{
s = JsonConvert.SerializeObject(c00005d.m000023(Convert.ToInt32(Url.Remove(0, 17))));
}
if (Url == "images/v1/slideshow")
{
s = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/rcslideshow.txt");
}
Console.WriteLine("API Response: " + s);
bytes = Encoding.UTF8.GetBytes(s);
response.ContentLength64 = (long)bytes.Length; response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream; Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length); outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(200); Thread.Sleep(20);
outputStream.Close(); outputStream.Close();
this.listener.Stop(); this.listener.Stop();
} }
} }
} }
@@ -409,9 +692,11 @@ namespace server
{ {
Console.WriteLine(ex4); Console.WriteLine(ex4);
File.WriteAllText("crashdump.txt", Convert.ToString(ex4)); File.WriteAllText("crashdump.txt", Convert.ToString(ex4));
this.listener.Close();
new APIServer();
} }
} }
public static ulong CachedPlayerID = 1; public static ulong CachedPlayerID = ulong.Parse(File.ReadAllText("SaveData\\Profile\\userid.txt"));
public static ulong CachedPlatformID = 10000; public static ulong CachedPlatformID = 10000;
public static int CachedVersionMonth = 01; public static int CachedVersionMonth = 01;
@@ -419,9 +704,14 @@ namespace server
public static string BracketResponse = "[]"; public static string BracketResponse = "[]";
public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}"; public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}";
public static string VersionCheckResponse2 = "{\"VersionStatus\":0}";
public static string VersionCheckResponse = "{\"ValidVersion\":true}"; public static string VersionCheckResponse = "{\"ValidVersion\":true}";
public static string ModerationBlockDetails = "{\"ReportCategory\":0,\"Duration\":0,\"GameSessionId\":0,\"Message\":\"\"}"; 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 ImagesV2Named = "[{\"FriendlyImageName\":\"DormRoomBucket\",\"ImageName\":\"DormRoomBucket\",\"StartTime\":\"2021-12-27T21:27:38.1880175-08:00\",\"EndTime\":\"2025-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 HttpListener listener = new HttpListener();
} }

197
Activities.cs Normal file
View File

@@ -0,0 +1,197 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace api
{
// Token: 0x02000021 RID: 33
internal class Activities
{
// Token: 0x02000069 RID: 105
public class Charades
{
// Token: 0x06000322 RID: 802 RVA: 0x0000C5F4 File Offset: 0x0000A7F4
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: 0x02000073 RID: 115
public class word
{
// Token: 0x170001AA RID: 426
// (get) Token: 0x060003F3 RID: 1011 RVA: 0x0000D196 File Offset: 0x0000B396
// (set) Token: 0x060003F4 RID: 1012 RVA: 0x0000D19E File Offset: 0x0000B39E
public string EN_US { get; set; }
// Token: 0x170001AB RID: 427
// (get) Token: 0x060003F5 RID: 1013 RVA: 0x0000D1A7 File Offset: 0x0000B3A7
// (set) Token: 0x060003F6 RID: 1014 RVA: 0x0000D1AF File Offset: 0x0000B3AF
public int Difficulty { get; set; }
}
}
}
}

View File

@@ -27,7 +27,7 @@ namespace api
Console.WriteLine("Done!"); Console.WriteLine("Done!");
Console.Clear(); Console.Clear();
} }
public static gamesessions2018.GameSessions.SessionInstance localGameSession; public static gamesesh.GameSessions.SessionInstance localGameSession;
public static Objective[][] dailyObjectives = new Objective[][] public static Objective[][] dailyObjectives = new Objective[][]
{ {
new Objective[] new Objective[]

View File

@@ -51,7 +51,7 @@ namespace api
return JsonConvert.SerializeObject(new Config2 return JsonConvert.SerializeObject(new Config2
{ {
MessageOfTheDay = "Default MOTD", MessageOfTheDay = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/motd.txt"),
CdnBaseUri = "http://localhost:20182/", CdnBaseUri = "http://localhost:20182/",
LevelProgressionMaps = new List<LevelProgressionEntry> LevelProgressionMaps = new List<LevelProgressionEntry>
{ {

177
Consumable.cs Normal file
View File

@@ -0,0 +1,177 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace api
{
class Consumable
{
// Token: 0x040001E4 RID: 484
public static List<Consumable.c00009f> f000026;
// Token: 0x0200009F RID: 159
public class c00009f
{
// Token: 0x1700010B RID: 267
// (get) Token: 0x06000376 RID: 886
// (set) Token: 0x06000377 RID: 887
public long Id
{
get
{
return this.f00002c;
}
set
{
this.f00002c = value;
}
}
// Token: 0x1700010C RID: 268
// (get) Token: 0x06000378 RID: 888
// (set) Token: 0x06000379 RID: 889
public string ConsumableItemDesc
{
get
{
return this.f000002;
}
set
{
this.f000002 = value;
}
}
// Token: 0x1700010D RID: 269
// (get) Token: 0x0600037A RID: 890
// (set) Token: 0x0600037B RID: 891
public DateTime CreatedAt
{
get
{
return this.f00003a;
}
set
{
this.f00003a = value;
}
}
// Token: 0x1700010E RID: 270
// (get) Token: 0x0600037C RID: 892
// (set) Token: 0x0600037D RID: 893
public int Count
{
get
{
return this.f000004;
}
set
{
this.f000004 = value;
}
}
// Token: 0x1700010F RID: 271
// (get) Token: 0x0600037E RID: 894
// (set) Token: 0x0600037F RID: 895
public int InitialCount
{
get
{
return this.f000005;
}
set
{
this.f000005 = value;
}
}
// Token: 0x17000110 RID: 272
// (get) Token: 0x06000380 RID: 896
// (set) Token: 0x06000381 RID: 897
public int UnlockedLevel
{
get
{
return this.f000006;
}
set
{
this.f000006 = value;
}
}
// Token: 0x17000111 RID: 273
// (get) Token: 0x06000382 RID: 898
// (set) Token: 0x06000383 RID: 899
public bool IsActive
{
get
{
return this.f000016;
}
set
{
this.f000016 = value;
}
}
// Token: 0x17000112 RID: 274
// (get) Token: 0x06000384 RID: 900
// (set) Token: 0x06000385 RID: 901
public int? ActiveDurationMinutes
{
get
{
return this.f000081;
}
set
{
this.f000081 = value;
}
}
// Token: 0x040001E6 RID: 486
private long f00002c;
// Token: 0x040001E7 RID: 487
private string f000002;
// Token: 0x040001E8 RID: 488
private DateTime f00003a;
// Token: 0x040001E9 RID: 489
private int f000004;
// Token: 0x040001EA RID: 490
private int f000005;
// Token: 0x040001EB RID: 491
private int f000006;
// Token: 0x040001EC RID: 492
private bool f000016;
// Token: 0x040001ED RID: 493
private int? f000081;
}
}
}

229
CustomRooms.cs Normal file
View File

@@ -0,0 +1,229 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using Newtonsoft.Json;
using vaultgamesesh;
using System.IO;
using server;
using api;
namespace api
{
class CustomRooms
{
public static void RoomDecode(string text)
{
ModernRooms.Root root2 = JsonConvert.DeserializeObject<ModernRooms.Root>(text);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomname.txt", root2.Name);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomid.txt", Convert.ToString(root2.RoomId));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\datablob.txt", root2.SubRooms[0].DataBlob);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomsceneid.txt", root2.SubRooms[0].UnitySceneId);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\imagename.txt", root2.ImageName);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\cheercount.txt", Convert.ToString(root2.Stats.CheerCount));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\favcount.txt", Convert.ToString(root2.Stats.FavoriteCount));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\visitcount.txt", Convert.ToString(root2.Stats.VisitCount));
room = new Room
{
RoomId = 29,
Name = root2.Name,
Description = "OpenRec Downloaded Room",
ImageName = root2.ImageName,
CreatorPlayerId = Convert.ToUInt64(File.ReadAllText("SaveData\\Profile\\userid.txt")),
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 = 29,
RoomSceneLocationId = root2.SubRooms[0].UnitySceneId,
Name = "Home",
IsSandbox = true,
DataBlobName = root2.SubRooms[0].DataBlob,
MaxPlayers = 20,
CanMatchmakeInto = true,
DataModifiedAt = root2.SubRooms[0].DataSavedAt,
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 = root2.Stats.CheerCount,
FavoriteCount = root2.Stats.FavoriteCount,
VisitCount = root2.Stats.VisitCount,
Tags = new List<aTag>
{
new aTag()
{
Tag = "rro",
Type = 2
}
}
};
File.WriteAllText("SaveData\\Rooms\\Downloaded\\RoomDetails.json", JsonConvert.SerializeObject(root));
}
public static void RoomGet(string roomnames)
{
string webdata = new WebClient().DownloadString("https://rooms.rec.net/rooms?name=" + roomnames + "&include=297");
ModernRooms.Root root2 = JsonConvert.DeserializeObject<ModernRooms.Root>(webdata);
room = new Room
{
RoomId = 29,
Name = root2.Name,
Description = "OpenRec Downloaded Room",
ImageName = root2.ImageName,
CreatorPlayerId = Convert.ToUInt64(File.ReadAllText("SaveData\\Profile\\userid.txt")),
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 = 29,
RoomSceneLocationId = root2.SubRooms[0].UnitySceneId,
Name = "Home",
IsSandbox = true,
DataBlobName = root2.SubRooms[0].DataBlob,
MaxPlayers = 20,
CanMatchmakeInto = true,
DataModifiedAt = root2.SubRooms[0].DataSavedAt,
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 = root2.Stats.CheerCount,
FavoriteCount = root2.Stats.FavoriteCount,
VisitCount = root2.Stats.VisitCount,
Tags = new List<aTag>
{
new aTag()
{
Tag = "rro",
Type = 2
}
}
};
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomname.txt", root2.Name);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomid.txt", Convert.ToString(root2.RoomId));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\datablob.txt", root2.SubRooms[0].DataBlob);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\roomsceneid.txt", root2.SubRooms[0].UnitySceneId);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\imagename.txt", root2.ImageName);
File.WriteAllText("SaveData\\Rooms\\Downloaded\\cheercount.txt", Convert.ToString(root2.Stats.CheerCount));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\favcount.txt", Convert.ToString(root2.Stats.FavoriteCount));
File.WriteAllText("SaveData\\Rooms\\Downloaded\\visitcount.txt", Convert.ToString(root2.Stats.VisitCount));
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; }
}
}
}

View File

@@ -1 +1 @@
{"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":""} {"OutfitSelections":"b33dbeee-5bdd-443d-aa6a-761248054e08,,,,1;6d48c545-22bb-46c1-a29d-0a38af387143,,,,2;6d48c545-22bb-46c1-a29d-0a38af387143,,,,3;102c625b-b988-4bf8-a2aa-a31ad7029cdc,bd4a84e2-b67a-4269-a26a-17fb23ddb09e,ccf1ccc1-e229-4157-bb74-f2cdef01e547,,0;d0a9262f-5504-46a7-bb10-7507503db58e,ba6b6e1a-a09a-4ba0-9523-552869f03336,,d461ca71-45c9-415e-8e09-ba93e8d73450,1;193a3bf9-abc0-4d78-8d63-92046908b1c5,,,,0;3a790be3-2937-44d4-be01-b5d65353bd3d,,,,2;3a790be3-2937-44d4-be01-b5d65353bd3d,,,,3;e15b13a7-9e9a-4b32-ba2c-0cb31ed55a8c,,,,1","FaceFeatures":"{\"ver\":3,\"eyeId\":\"AjGMoJhEcEehacRZjUMuDg\",\"eyePos\":{\"x\":0.0,\"y\":0.0},\"eyeScl\":0.0,\"mouthId\":\"FrZBRanXEEK29yKJ4jiMjg\",\"mouthPos\":{\"x\":0.0,\"y\":0.0},\"mouthScl\":0.0,\"beardColorId\":\"befcc00a-a2e6-48e4-864c-593d57bbbb5b\"}","SkinColor":"85343b16-d58a-4091-96d8-083a81fb03ae","HairColor":"befcc00a-a2e6-48e4-864c-593d57bbbb5b"}

File diff suppressed because one or more lines are too long

1
Download/banned.txt Normal file
View File

@@ -0,0 +1 @@
[487454, 4701796]

1
Download/baserooms.txt Normal file
View 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}]

View File

@@ -1,22 +1,28 @@
Patch v0.4.2: Patch v0.6.1:
-Fixed the issue with only hosts being able to start the games, now everyone is a host! -Fixed 2016
-Added basic charades cards, now charades is possible! -Fixed room issues in 2018
-Added Vault Clothing items to September 2018
-September 2018 slightly more stable
-Improved overall server speed
-Fixed the wrongful ban issue
Patch v0.4.1: Fifth public release of OpenRec, and the new biggest update to date.
-Fixed the room creation feature
Third public release of OpenRec, and probably the biggest update to date.
Supports: Supports:
-December 25th 2016
-October 19th 2017 -October 19th 2017
-May 30th 2018 -May 30th 2018
-September 27th 2018
-Sandbox mode now accessed through the room create button on the watch menu -Added 2016 Support
-Creating custom rooms now works -Added September 27th Support
-Reset Savedata Option -Added Image Server (September 2018 only)
-Singleplayer (Private Rooms) Option -Added Custom Room Downloader (September 2018 only)
-Lots of backend and UI improvements -Slight UI Improvements
-Tons of new APIs added in
-Improved banning system
Credits: Credits:
@LucasOnDiscord#0210 - Adding potions @LucasOnDiscord#0210 - Adding potions
@GabeTheFirst#7335 - Tester when my game was broken @GabeTheFirst#7335 - Tester when my game was broken
@andry6702#9812 - Discovered custom rooms for 2018

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
Download/storefront2.txt Normal file
View 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}]}]}

View File

@@ -1 +1 @@
0.4.1 0.6.1

View File

@@ -3,7 +3,8 @@ using Newtonsoft.Json;
using api; using api;
using server; using server;
using System.IO; using System.IO;
namespace gamesessions2018 namespace gamesesh
{ {
// Token: 0x02000020 RID: 32 // Token: 0x02000020 RID: 32
public class GameSessions public class GameSessions
@@ -11,14 +12,22 @@ namespace gamesessions2018
// Token: 0x060000BE RID: 190 RVA: 0x00004C08 File Offset: 0x00002E08 // Token: 0x060000BE RID: 190 RVA: 0x00004C08 File Offset: 0x00002E08
public static string JoinRandom(string jsonData) public static string JoinRandom(string jsonData)
{ {
long gamesessionid = 2018L; long? creatorid = 1243409L;
long gamesessionid = long.Parse(start.Program.version + "1");
Console.WriteLine("OpenRec GameSession Room"); Console.WriteLine("OpenRec GameSession Room");
GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRandomRequest>(jsonData); GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRandomRequest>(jsonData);
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled") if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
{ {
gamesessionid = new Random().Next(0, 100); gamesessionid = new Random().Next(0, 99);
} }
if (start.Program.version == "2017")
{ {
creatorid = (long?)APIServer.CachedPlayerID;
}
if (start.Program.bannedflag == true)
{
gamesessionid = 100L;
}
Config.localGameSession = new GameSessions.SessionInstance Config.localGameSession = new GameSessions.SessionInstance
{ {
GameSessionId = gamesessionid, GameSessionId = gamesessionid,
@@ -26,7 +35,7 @@ namespace gamesessions2018
RoomId = joinRandomRequest.ActivityLevelIds[0], RoomId = joinRandomRequest.ActivityLevelIds[0],
RecRoomId = null, RecRoomId = null,
EventId = null, EventId = null,
CreatorPlayerId = 1243409L, CreatorPlayerId = creatorid,
Name = "OpenRec Room", Name = "OpenRec Room",
ActivityLevelId = joinRandomRequest.ActivityLevelIds[0], ActivityLevelId = joinRandomRequest.ActivityLevelIds[0],
Private = false, Private = false,
@@ -37,7 +46,7 @@ namespace gamesessions2018
MaxCapacity = 20, MaxCapacity = 20,
IsFull = false IsFull = false
}; };
}
return JsonConvert.SerializeObject(new GameSessions.JoinResult return JsonConvert.SerializeObject(new GameSessions.JoinResult
{ {
Result = 0, Result = 0,
@@ -50,7 +59,7 @@ namespace gamesessions2018
{ {
return JsonConvert.SerializeObject(new GameSessions.PlayerStatus return JsonConvert.SerializeObject(new GameSessions.PlayerStatus
{ {
PlayerId = APIServer.CachedPlayerID, PlayerId = Convert.ToUInt64(File.ReadAllText("SaveData\\Profile\\userid.txt")),
IsOnline = true, IsOnline = true,
InScreenMode = false, InScreenMode = false,
GameSession = Config.localGameSession GameSession = Config.localGameSession
@@ -60,11 +69,15 @@ namespace gamesessions2018
// Token: 0x060000C0 RID: 192 RVA: 0x00004D24 File Offset: 0x00002F24 // Token: 0x060000C0 RID: 192 RVA: 0x00004D24 File Offset: 0x00002F24
public static string Create(string jsonData) public static string Create(string jsonData)
{ {
long gamesessionid = 2016L; long gamesessionid = 20161L;
Console.WriteLine("OpenRec GameSession Custom Room"); Console.WriteLine("OpenRec GameSession Custom Room");
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled") if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
{ {
gamesessionid = new Random().Next(0, 100); gamesessionid = new Random().Next(0, 99);
}
if (start.Program.bannedflag == true)
{
gamesessionid = 100L;
} }
GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData); GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData);
Config.localGameSession = new GameSessions.SessionInstance Config.localGameSession = new GameSessions.SessionInstance
@@ -75,7 +88,7 @@ namespace gamesessions2018
RecRoomId = null, RecRoomId = null,
EventId = null, EventId = null,
CreatorPlayerId = (long?)APIServer.CachedPlayerID, CreatorPlayerId = (long?)APIServer.CachedPlayerID,
Name = "Custom Room", Name = "OpenRec Custom Room",
ActivityLevelId = createRequest.ActivityLevelId, ActivityLevelId = createRequest.ActivityLevelId,
Private = false, Private = false,
Sandbox = true, Sandbox = true,
@@ -97,7 +110,7 @@ namespace gamesessions2018
{ {
return new GameSessions.PlayerStatus return new GameSessions.PlayerStatus
{ {
PlayerId = APIServer.CachedPlayerID, PlayerId = Convert.ToUInt64(File.ReadAllText("SaveData\\Profile\\userid.txt")),
IsOnline = true, IsOnline = true,
InScreenMode = false, InScreenMode = false,
GameSession = Config.localGameSession GameSession = Config.localGameSession

View File

@@ -1,231 +0,0 @@
using System;
using System.Linq;
using Newtonsoft.Json;
using rooms2018;
using System.IO;
namespace gamesessions2018
{
// Token: 0x0200000F RID: 15
internal class GameSessions2
{
// Token: 0x06000033 RID: 51 RVA: 0x000048F0 File Offset: 0x00002AF0
public static GameSessions2.JoinResult JoinRoom(string postData)
{
GameSessions.JoinRoomRequest2 joinRoomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRoomRequest2>(postData);
bool flag = Rooms.RecRoomOriginalRooms.ContainsKey(joinRoomRequest.RoomName);
if (flag)
{
GameSessions2.currentRoom = Rooms.RecRoomOriginalRooms[joinRoomRequest.RoomName];
}
else
{
GameSessions2.currentRoom = Rooms.RecRoomOriginalRooms["DormRoom"];
}
int num = 0;
for (int i = 0; i < GameSessions2.currentRoom.Scenes.Count<Rooms.Scene>(); i++)
{
bool flag2 = GameSessions2.currentRoom.Scenes[i].Name == joinRoomRequest.SceneName;
if (flag2)
{
num = i;
}
}
long gamesessionid = 2018L;
bool sandboxmode = false;
if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Enabled")
{
sandboxmode = true;
}
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
{
gamesessionid = new Random().Next(0, 100);
}
GameSessions2.currentSession = new GameSessions2.SessionData
{
GameSessionId = gamesessionid,
PhotonRegionId = "us",
PhotonRoomId = GameSessions2.currentRoom.Room.RoomId.ToString(),
Name = GameSessions2.currentRoom.Room.Name,
RoomId = GameSessions2.currentRoom.Room.RoomId,
RoomSceneId = (long)(num + 1),
RoomSceneLocationId = GameSessions2.currentRoom.Scenes[num].RoomSceneLocationId,
IsSandbox = sandboxmode,
DataBlobName = "",
PlayerEventId = null,
Private = false,
GameInProgress = false,
MaxCapacity = 20,
IsFull = false
};
return new GameSessions2.JoinResult
{
Result = 0,
GameSession = GameSessions2.currentSession,
RoomDetails = GameSessions2.currentRoom
};
}
// Token: 0x04000019 RID: 25
public static Rooms.RoomDetail currentRoom;
// Token: 0x0400001A RID: 26
public static GameSessions2.SessionData placeholderSession = new GameSessions2.SessionData
{
GameSessionId = 1L,
PhotonRegionId = "us",
PhotonRoomId = "1",
Name = "Dorm Room",
RoomId = 1L,
RoomSceneId = 1L,
RoomSceneLocationId = "76d98498-60a1-430c-ab76-b54a29b7a163",
IsSandbox = false,
DataBlobName = "",
PlayerEventId = null,
Private = false,
GameInProgress = false,
MaxCapacity = 20,
IsFull = false
};
// Token: 0x0400001B RID: 27
public static GameSessions2.SessionData currentSession;
// Token: 0x02000010 RID: 16
public class JoinResult
{
// Token: 0x1700000F RID: 15
// (get) Token: 0x06000036 RID: 54 RVA: 0x00002202 File Offset: 0x00000402
// (set) Token: 0x06000037 RID: 55 RVA: 0x0000220A File Offset: 0x0000040A
public int Result { get; set; }
// Token: 0x17000010 RID: 16
// (get) Token: 0x06000038 RID: 56 RVA: 0x00002213 File Offset: 0x00000413
// (set) Token: 0x06000039 RID: 57 RVA: 0x0000221B File Offset: 0x0000041B
public GameSessions2.SessionData GameSession { get; set; }
// Token: 0x17000011 RID: 17
// (get) Token: 0x0600003A RID: 58 RVA: 0x00002224 File Offset: 0x00000424
// (set) Token: 0x0600003B RID: 59 RVA: 0x0000222C File Offset: 0x0000042C
public Rooms.RoomDetail RoomDetails { get; set; }
}
// Token: 0x02000011 RID: 17
public class SessionData
{
// Token: 0x17000012 RID: 18
// (get) Token: 0x0600003D RID: 61 RVA: 0x00002235 File Offset: 0x00000435
// (set) Token: 0x0600003E RID: 62 RVA: 0x0000223D File Offset: 0x0000043D
public long GameSessionId { get; set; }
// Token: 0x17000013 RID: 19
// (get) Token: 0x0600003F RID: 63 RVA: 0x00002246 File Offset: 0x00000446
// (set) Token: 0x06000040 RID: 64 RVA: 0x0000224E File Offset: 0x0000044E
public string PhotonRegionId { get; set; }
// Token: 0x17000014 RID: 20
// (get) Token: 0x06000041 RID: 65 RVA: 0x00002257 File Offset: 0x00000457
// (set) Token: 0x06000042 RID: 66 RVA: 0x0000225F File Offset: 0x0000045F
public string PhotonRoomId { get; set; }
// Token: 0x17000015 RID: 21
// (get) Token: 0x06000043 RID: 67 RVA: 0x00002268 File Offset: 0x00000468
// (set) Token: 0x06000044 RID: 68 RVA: 0x00002270 File Offset: 0x00000470
public string Name { get; set; }
// Token: 0x17000016 RID: 22
// (get) Token: 0x06000045 RID: 69 RVA: 0x00002279 File Offset: 0x00000479
// (set) Token: 0x06000046 RID: 70 RVA: 0x00002281 File Offset: 0x00000481
public long RoomId { get; set; }
// Token: 0x17000017 RID: 23
// (get) Token: 0x06000047 RID: 71 RVA: 0x0000228A File Offset: 0x0000048A
// (set) Token: 0x06000048 RID: 72 RVA: 0x00002292 File Offset: 0x00000492
public long RoomSceneId { get; set; }
// Token: 0x17000018 RID: 24
// (get) Token: 0x06000049 RID: 73 RVA: 0x0000229B File Offset: 0x0000049B
// (set) Token: 0x0600004A RID: 74 RVA: 0x000022A3 File Offset: 0x000004A3
public string RoomSceneLocationId { get; set; }
// Token: 0x17000019 RID: 25
// (get) Token: 0x0600004B RID: 75 RVA: 0x000022AC File Offset: 0x000004AC
// (set) Token: 0x0600004C RID: 76 RVA: 0x000022B4 File Offset: 0x000004B4
public bool IsSandbox { get; set; }
// Token: 0x1700001A RID: 26
// (get) Token: 0x0600004D RID: 77 RVA: 0x000022BD File Offset: 0x000004BD
// (set) Token: 0x0600004E RID: 78 RVA: 0x000022C5 File Offset: 0x000004C5
public string DataBlobName { get; set; }
// Token: 0x1700001B RID: 27
// (get) Token: 0x0600004F RID: 79 RVA: 0x000022CE File Offset: 0x000004CE
// (set) Token: 0x06000050 RID: 80 RVA: 0x000022D6 File Offset: 0x000004D6
public long? PlayerEventId { get; set; }
// Token: 0x1700001C RID: 28
// (get) Token: 0x06000051 RID: 81 RVA: 0x000022DF File Offset: 0x000004DF
// (set) Token: 0x06000052 RID: 82 RVA: 0x000022E7 File Offset: 0x000004E7
public bool Private { get; set; }
// Token: 0x1700001D RID: 29
// (get) Token: 0x06000053 RID: 83 RVA: 0x000022F0 File Offset: 0x000004F0
// (set) Token: 0x06000054 RID: 84 RVA: 0x000022F8 File Offset: 0x000004F8
public bool GameInProgress { get; set; }
// Token: 0x1700001E RID: 30
// (get) Token: 0x06000055 RID: 85 RVA: 0x00002301 File Offset: 0x00000501
// (set) Token: 0x06000056 RID: 86 RVA: 0x00002309 File Offset: 0x00000509
public int MaxCapacity { get; set; }
// Token: 0x1700001F RID: 31
// (get) Token: 0x06000057 RID: 87 RVA: 0x00002312 File Offset: 0x00000512
// (set) Token: 0x06000058 RID: 88 RVA: 0x0000231A File Offset: 0x0000051A
public bool IsFull { get; set; }
}
// Token: 0x02000012 RID: 18
public enum JoinResultIDs
{
// Token: 0x0400002E RID: 46
Success,
// Token: 0x0400002F RID: 47
NoSuchGame,
// Token: 0x04000030 RID: 48
PlayerNotOnline,
// Token: 0x04000031 RID: 49
InsufficientSpace,
// Token: 0x04000032 RID: 50
EventNotStarted,
// Token: 0x04000033 RID: 51
EventAlreadyFinished,
// Token: 0x04000034 RID: 52
EventCreatorNotReady,
// Token: 0x04000035 RID: 53
BlockedFromRoom,
// Token: 0x04000036 RID: 54
ProfileLocked,
// Token: 0x04000037 RID: 55
NoBirthday,
// Token: 0x04000038 RID: 56
MarkedForDelete,
// Token: 0x04000039 RID: 57
JuniorNotAllowed,
// Token: 0x0400003A RID: 58
Banned,
// Token: 0x0400003B RID: 59
NoSuchRoom = 20,
// Token: 0x0400003C RID: 60
RoomCreatorNotReady,
// Token: 0x0400003D RID: 61
RoomIsNotActive,
// Token: 0x0400003E RID: 62
RoomBlockedByCreator,
// Token: 0x0400003F RID: 63
RoomBlockingCreator,
// Token: 0x04000040 RID: 64
RoomIsPrivate
}
}
}

View File

@@ -15,7 +15,7 @@ namespace server
{ {
try try
{ {
Console.WriteLine("ImageServer.cs has started."); Console.WriteLine("[ImageServer.cs] has started.");
new Thread(new ThreadStart(this.StartListen)).Start(); new Thread(new ThreadStart(this.StartListen)).Start();
} }
catch (Exception ex) catch (Exception ex)
@@ -30,19 +30,54 @@ namespace server
this.listener.Prefixes.Add("http://localhost:20182/"); this.listener.Prefixes.Add("http://localhost:20182/");
for (; ; ) 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(); this.listener.Start();
Console.WriteLine("ImageServer.cs is listening."); Console.WriteLine("{ImageServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext(); HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request; HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response; HttpListenerResponse response = context.Response;
string rawUrl = request.RawUrl; string rawUrl = request.RawUrl;
string text; string text;
byte[] i = File.ReadAllBytes("SaveData\\profileimage.png"); byte[] i = File.ReadAllBytes("SaveData\\profileimage.png"); //File.ReadAllBytes("SaveData\\profileimage.png");
using (StreamReader streamReader = new StreamReader(request.InputStream, request.ContentEncoding)) using (StreamReader streamReader = new StreamReader(request.InputStream, request.ContentEncoding))
{ {
text = streamReader.ReadToEnd(); text = streamReader.ReadToEnd();
} }
if (rawUrl.StartsWith("/alt/"))
{
i = File.ReadAllBytes("SaveData\\profileimage.png");
}
else if (rawUrl.StartsWith("/" + File.ReadAllText("SaveData\\Profile\\username.txt")))
{
i = File.ReadAllBytes("SaveData\\profileimage.png");
}
else if (rawUrl.StartsWith("//room/"))
{
i = new WebClient().DownloadData("https://cdn.rec.net" + rawUrl.Remove(0, 1));
}
else
{
try
{
i = new WebClient().DownloadData("https://img.rec.net" + rawUrl);
}
catch
{
Console.WriteLine("[ImageServer.cs] Image not found on img.rec.net.");
}
}
if (rawUrl.StartsWith("/CustomRoom.png"))
{
try
{
i = new WebClient().DownloadData("https://img.rec.net/" + File.ReadAllText("SaveData\\Rooms\\Downloaded\\imagename.txt"));
}
catch
{
Console.WriteLine("[ImageServer.cs] Image not found on img.rec.net.");
i = new WebClient().DownloadData("https://img.rec.net/DefaultRoomImage.jpg");
}
}
Console.WriteLine("Image Requested: " + rawUrl); Console.WriteLine("Image Requested: " + rawUrl);
Console.WriteLine("Image Data: " + text); Console.WriteLine("Image Data: " + text);
Console.WriteLine("Image Response: "); Console.WriteLine("Image Response: ");
@@ -50,19 +85,14 @@ namespace server
response.ContentLength64 = (long)bytes.Length; response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream; Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length); outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(400); Thread.Sleep(1);
outputStream.Close(); outputStream.Close();
this.listener.Stop(); this.listener.Stop();
} }
} }
public static string VersionCheckResponse = "{\"ValidVersion\":true}"; public static string VersionCheckResponse = "{\"ValidVersion\":true}";
public static string BlankResponse = ""; public static string BlankResponse = "";
// Token: 0x04000192 RID: 402
private HttpListener listener = new HttpListener(); private HttpListener listener = new HttpListener();
} }
} }

12
ModerationBlockDetails.cs Normal file
View File

@@ -0,0 +1,12 @@
using System;
namespace api
{
public class ModerationBlockDetails
{
public int ReportCategory { get; set; }
public int Duration { get; set; }
public long GameSessionId { get; set; }
public string Message { get; set; }
}
}

71
ModernRooms.cs Normal file
View File

@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace api
{
class ModernRooms
{
public class Stats
{
public int CheerCount { get; set; }
public int FavoriteCount { get; set; }
public int VisitorCount { get; set; }
public int VisitCount { get; set; }
}
public class SubRoom
{
public int SubRoomId { get; set; }
public ulong RoomId { get; set; }
public string UnitySceneId { get; set; }
public string Name { get; set; }
public string DataBlob { get; set; }
public DateTime DataSavedAt { get; set; }
public bool IsSandbox { get; set; }
public int MaxPlayers { get; set; }
public int Accessibility { get; set; }
}
public class Root
{
public ulong RoomId { get; set; }
public bool IsDorm { get; set; }
public int MaxPlayerCalculationMode { get; set; }
public int MaxPlayers { get; set; }
public bool CloningAllowed { get; set; }
public bool DisableMicAutoMute { get; set; }
public bool DisableRoomComments { get; set; }
public bool EncryptVoiceChat { get; set; }
public bool LoadScreenLocked { get; set; }
public int Version { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string ImageName { get; set; }
public int WarningMask { get; set; }
public object CustomWarning { get; set; }
public int CreatorAccountId { get; set; }
public int State { get; set; }
public int Accessibility { get; set; }
public bool SupportsLevelVoting { get; set; }
public bool IsRRO { get; set; }
public bool SupportsScreens { get; set; }
public bool SupportsWalkVR { get; set; }
public bool SupportsTeleportVR { get; set; }
public bool SupportsVRLow { get; set; }
public bool SupportsQuest2 { get; set; }
public bool SupportsMobile { get; set; }
public bool SupportsJuniors { get; set; }
public int MinLevel { get; set; }
public DateTime CreatedAt { get; set; }
public Stats Stats { get; set; }
public List<SubRoom> SubRooms { get; set; }
public List<object> Tags { get; set; }
public List<object> PromoImages { get; set; }
public List<object> PromoExternalContent { get; set; }
public List<object> LoadScreens { get; set; }
}
}
}

View File

@@ -3,6 +3,8 @@ using System.IO;
using System.Net; using System.Net;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using Newtonsoft.Json;
using start;
namespace server namespace server
{ {
@@ -15,7 +17,7 @@ namespace server
{ {
try try
{ {
Console.WriteLine("NameServer.cs has started."); Console.WriteLine("[NameServer.cs] has started.");
new Thread(new ThreadStart(this.StartListen)).Start(); new Thread(new ThreadStart(this.StartListen)).Start();
} }
catch (Exception ex) catch (Exception ex)
@@ -32,19 +34,38 @@ namespace server
for (; ; ) for (; ; )
{ {
this.listener.Start(); this.listener.Start();
Console.WriteLine("NameServer.cs is listening."); Console.WriteLine("[NameServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext(); HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request; HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response; HttpListenerResponse response = context.Response;
string rawUrl = request.RawUrl; string rawUrl = request.RawUrl;
string s = ""; string s = "";
s = "{\"API\":\"http://localhost:2018\",\"Notifications\":\"http://localhost:20161\",\"Images\":\"http://localhost:20182\"}"; if (Program.version == "2019")
{
NSData2 data2 = new NSData2()
{
API = "http://localhost:2018",
Notifications = "http://localhost:20161",
Images = "http://localhost:20182"
};
s = JsonConvert.SerializeObject(data2);
}
else
{
NSData data = new NSData()
{
API = "http://localhost:2018",
Notifications = "http://localhost:20161",
Images = "http://localhost:20182"
};
s = JsonConvert.SerializeObject(data);
}
Console.WriteLine("API Response: " + s); Console.WriteLine("API Response: " + s);
byte[] bytes = Encoding.UTF8.GetBytes(s); byte[] bytes = Encoding.UTF8.GetBytes(s);
response.ContentLength64 = (long)bytes.Length; response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream; Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length); outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(400); Thread.Sleep(1);
outputStream.Close(); outputStream.Close();
this.listener.Stop(); this.listener.Stop();
} }
@@ -54,7 +75,45 @@ namespace server
public static string BlankResponse = ""; public static string BlankResponse = "";
public class NSData
{
public string API { get; set; }
public string Notifications { get; set; }
public string Images { get; set; }
}
public class NSData2
{
// Token: 0x17000013 RID: 19
// (get) Token: 0x06000040 RID: 64 RVA: 0x00002256 File Offset: 0x00000456
// (set) Token: 0x06000041 RID: 65 RVA: 0x0000225E File Offset: 0x0000045E
public string Auth { get; set; }
// Token: 0x17000014 RID: 20
// (get) Token: 0x06000042 RID: 66 RVA: 0x00002267 File Offset: 0x00000467
// (set) Token: 0x06000043 RID: 67 RVA: 0x0000226F File Offset: 0x0000046F
public string API { get; set; }
// Token: 0x17000015 RID: 21
// (get) Token: 0x06000044 RID: 68 RVA: 0x00002278 File Offset: 0x00000478
// (set) Token: 0x06000045 RID: 69 RVA: 0x00002280 File Offset: 0x00000480
public string WWW { get; set; }
// Token: 0x17000016 RID: 22
// (get) Token: 0x06000046 RID: 70 RVA: 0x00002289 File Offset: 0x00000489
// (set) Token: 0x06000047 RID: 71 RVA: 0x00002291 File Offset: 0x00000491
public string Notifications { get; set; }
// Token: 0x17000017 RID: 23
// (get) Token: 0x06000048 RID: 72 RVA: 0x0000229A File Offset: 0x0000049A
// (set) Token: 0x06000049 RID: 73 RVA: 0x000022A2 File Offset: 0x000004A2
public string Images { get; set; }
// Token: 0x17000018 RID: 24
// (get) Token: 0x0600004A RID: 74 RVA: 0x000022AB File Offset: 0x000004AB
// (set) Token: 0x0600004B RID: 75 RVA: 0x000022B3 File Offset: 0x000004B3
public string Commerce { get; set; }
}
// Token: 0x04000192 RID: 402 // Token: 0x04000192 RID: 402
private HttpListener listener = new HttpListener(); private HttpListener listener = new HttpListener();
} }

View File

@@ -1,7 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Newtonsoft.Json; using Newtonsoft.Json;
using gamesessions2018; using gamesesh;
namespace ws namespace ws
{ {
@@ -21,16 +21,16 @@ namespace ws
{ {
if (text2 == "playerSubscriptions/v1/update") 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())); return JsonConvert.SerializeObject(Notification.Reponse.createResponse(12, GameSessions.StatusSessionInstance()));
} }
if (text2 == "heartbeat2") 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())); 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 = ""; result = "";
} }
else else
@@ -41,58 +41,43 @@ namespace ws
} }
// Token: 0x0200002B RID: 43 // Token: 0x0200002B RID: 43
public enum ResponseResult public enum ResponseResults
{ {
// Token: 0x04000092 RID: 146
RelationshipChanged = 1, RelationshipChanged = 1,
// Token: 0x04000093 RID: 147
MessageReceived, MessageReceived,
// Token: 0x04000094 RID: 148
MessageDeleted, MessageDeleted,
// Token: 0x04000095 RID: 149
PresenceHeartbeatResponse, PresenceHeartbeatResponse,
// Token: 0x04000096 RID: 150
SubscriptionListUpdated = 9, SubscriptionListUpdated = 9,
// Token: 0x04000097 RID: 151
SubscriptionUpdateProfile = 11, SubscriptionUpdateProfile = 11,
// Token: 0x04000098 RID: 152
SubscriptionUpdatePresence, SubscriptionUpdatePresence,
// Token: 0x04000099 RID: 153
SubscriptionUpdateGameSession, SubscriptionUpdateGameSession,
// Token: 0x0400009A RID: 154 SubscriptionUpdateRoom = 15,
SubscriptionUpdateRoom,
// Token: 0x0400009B RID: 155
ModerationQuitGame = 20, ModerationQuitGame = 20,
// Token: 0x0400009C RID: 156
ModerationUpdateRequired, ModerationUpdateRequired,
// Token: 0x0400009D RID: 157
ModerationKick, ModerationKick,
// Token: 0x0400009E RID: 158
ModerationKickAttemptFailed, ModerationKickAttemptFailed,
// Token: 0x0400009F RID: 159 ServerMaintenance = 25,
GiftPackageReceived = 30, GiftPackageReceived = 30,
// Token: 0x040000A0 RID: 160
ProfileJuniorStatusUpdate = 40, ProfileJuniorStatusUpdate = 40,
// Token: 0x040000A1 RID: 161
RelationshipsInvalid = 50, RelationshipsInvalid = 50,
// Token: 0x040000A2 RID: 162 StorefrontBalanceAdd = 60,
StorefrontBalanceAdd = 60 ConsumableMappingAdded = 70,
ConsumableMappingRemoved,
PlayerEventCreated = 80,
PlayerEventUpdated,
PlayerEventDeleted,
PlayerEventResponseChanged,
PlayerEventResponseDeleted,
PlayerEventStateChanged,
ChatMessageReceived = 90
} }
// Token: 0x0200002C RID: 44
public class Reponse public class Reponse
{ {
// Token: 0x1700005F RID: 95
// (get) Token: 0x0600010D RID: 269
// (set) Token: 0x0600010E RID: 270
public int Id { get; set; } public int Id { get; set; }
// Token: 0x17000060 RID: 96
// (get) Token: 0x0600010F RID: 271
// (set) Token: 0x06000110 RID: 272
public object Msg { get; set; } public object Msg { get; set; }
// Token: 0x06000111 RID: 273
public static Notification.Reponse createResponse(int id, object msg) public static Notification.Reponse createResponse(int id, object msg)
{ {
return new Notification.Reponse return new Notification.Reponse
@@ -101,6 +86,21 @@ namespace ws
Msg = msg Msg = msg
}; };
} }
public static Notification.Reponse createBannedResponse()
{
return new Notification.Reponse
{
Id = (int)ResponseResults.ModerationKick,
Msg = new api.ModerationBlockDetails()
{
ReportCategory = 1,
Duration = int.MaxValue,
GameSessionId = 100L,
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."
}
};
}
} }
} }
} }

110
Notification2018.cs Normal file
View File

@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using ws;
namespace vaultgamesesh
{
// Token: 0x02000005 RID: 5
public class Notification2018
{
// Token: 0x06000015 RID: 21 RVA: 0x00002A18 File Offset: 0x00000C18
public static string ProcessRequest(string jsonData)
{
Dictionary<string, object> dictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonData);
bool flag = dictionary.ContainsKey("api");
string result;
if (flag)
{
string text = (string)dictionary["api"];
string text2 = text;
bool flag2 = text2 != null;
if (flag2)
{
bool flag3 = text2 == "playerSubscriptions/v1/update";
if (flag3)
{
Console.WriteLine("[18CWS] Game client sent presence update.");
return JsonConvert.SerializeObject(Notification.Reponse.createResponse(12, c000020.m000027()));
}
bool flag4 = text2 == "heartbeat2";
if (flag4)
{
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: 0x02000038 RID: 56
public enum ResponseResult
{
// Token: 0x040000A8 RID: 168
RelationshipChanged = 1,
// Token: 0x040000A9 RID: 169
MessageReceived,
// Token: 0x040000AA RID: 170
MessageDeleted,
// Token: 0x040000AB RID: 171
PresenceHeartbeatResponse,
// Token: 0x040000AC RID: 172
SubscriptionListUpdated = 9,
// Token: 0x040000AD RID: 173
SubscriptionUpdateProfile = 11,
// Token: 0x040000AE RID: 174
SubscriptionUpdatePresence,
// Token: 0x040000AF RID: 175
SubscriptionUpdateGameSession,
// Token: 0x040000B0 RID: 176
SubscriptionUpdateRoom,
// Token: 0x040000B1 RID: 177
ModerationQuitGame = 20,
// Token: 0x040000B2 RID: 178
ModerationUpdateRequired,
// Token: 0x040000B3 RID: 179
ModerationKick,
// Token: 0x040000B4 RID: 180
ModerationKickAttemptFailed,
// Token: 0x040000B5 RID: 181
GiftPackageReceived = 30,
// Token: 0x040000B6 RID: 182
ProfileJuniorStatusUpdate = 40,
// Token: 0x040000B7 RID: 183
RelationshipsInvalid = 50,
// Token: 0x040000B8 RID: 184
StorefrontBalanceAdd = 60
}
// Token: 0x02000039 RID: 57
public class Reponse
{
// Token: 0x1700007E RID: 126
// (get) Token: 0x06000167 RID: 359 RVA: 0x0000A5EB File Offset: 0x000087EB
// (set) Token: 0x06000168 RID: 360 RVA: 0x0000A5F3 File Offset: 0x000087F3
public int Id { get; set; }
// Token: 0x1700007F RID: 127
// (get) Token: 0x06000169 RID: 361 RVA: 0x0000A5FC File Offset: 0x000087FC
// (set) Token: 0x0600016A RID: 362 RVA: 0x0000A604 File Offset: 0x00008804
public object Msg { get; set; }
// Token: 0x0600016B RID: 363 RVA: 0x0000A610 File Offset: 0x00008810
public static Notification.Reponse createResponse(int id, object msg)
{
return new Notification.Reponse
{
Id = id,
Msg = msg
};
}
}
}
}

View File

@@ -1,106 +0,0 @@
using System;
using System.Net;
using System.IO;
using System.Threading;
namespace start
{
public class OpenRecNet
{
public OpenRecNet()
{
}
//ignore this its a beta feature
public static void RecNet()
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.Clear();
if ((File.ReadAllText("SaveData\\App\\showopenrecinfo.txt")) == "Enabled")
{
goto ChatStart;
}
else
{
goto SkipStart;
}
ChatStart:
Console.WriteLine("Welcome to OpenRecChat (Beta)!");
Console.WriteLine("You are logged in as " + File.ReadAllText("SaveData\\Profile\\username.txt" + "."));
Console.WriteLine("Your UserID is " + File.ReadAllText("SaveData\\Profile\\userid.txt" + "."));
Console.WriteLine("In the future, show this message?");
Console.WriteLine("1) Yes" + Environment.NewLine + "2) No");
string readline = Console.ReadLine();
if (readline == "1")
{
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Enabled");
justjoined = false;
goto SkipStart;
}
if (readline == "2")
{
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Disabled");
justjoined = false;
goto SkipStart;
}
SkipStart:
for (; ; )
{
Console.Clear();
string refresh = new WebClient
{
Headers =
{
{
"username",
File.ReadAllText("SaveData\\Profile\\username.txt")
},
{
"justjoined",
Convert.ToString(justjoined)
}
}
}.DownloadString("https://openrecchat.loca.lt/refresh");
Console.WriteLine(refresh);
Console.WriteLine(Environment.NewLine + "Commands: /r -Refresh /e -Exit");
Console.WriteLine("Type your message below: ");
justjoined = false;
goto Send;
}
Send:
string send = Console.ReadLine();
if (send == "/r")
{
goto SkipStart;
}
else if (send == "/e")
{
Environment.Exit(0);
}
else if (send == "")
{
goto SkipStart;
}
new WebClient
{
Headers =
{
{
"userid",
File.ReadAllText("SaveData\\Profile\\userid.txt")
},
{
"username",
File.ReadAllText("SaveData\\Profile\\username.txt")
}
}
}.UploadString("https://openrecchat.loca.lt/sendmessage", send);
goto SkipStart;
}
public static bool justjoined = false;
}
}

View File

@@ -15,6 +15,10 @@
<Version>0.4.0</Version> <Version>0.4.0</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<None Remove="NewFile1.txt" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup> </ItemGroup>

View File

@@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.31321.278
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenRec_", "OpenRec_.csproj", "{C3C433FC-52FB-4472-81F7-B271A2CDABFE}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenRec_", "OpenRec_.csproj", "{C3C433FC-52FB-4472-81F7-B271A2CDABFE}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3B5E3DA5-F8EC-4767-9BC3-AE95E72631D0}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C754033C-FE82-4FF2-9189-A7EE0E2E5974}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

34
ProfieStealer.cs Normal file
View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using Newtonsoft.Json;
using System.IO;
namespace api
{
class ProfieStealer
{
public static void ProfileSteal(string data)
{
List<Root> profile = JsonConvert.DeserializeObject<List<Root>>(data);
File.WriteAllText("SaveData\\Profile\\username.txt", profile[0].username);
byte[] profileimage = new WebClient().DownloadData("https://img.rec.net/" + profile[0].profileImage + "?cropSquare=true&width=192&height=192");
File.WriteAllBytes("SaveData\\profileimage.png", profileimage);
}
public class Root
{
public int accountId { get; set; }
public string username { get; set; }
public string displayName { get; set; }
public string profileImage { get; set; }
public bool isJunior { get; set; }
public int platforms { get; set; }
public int personalPronouns { get; set; }
public int identityFlags { get; set; }
public DateTime createdAt { get; set; }
public string bannerImage { get; set; }
}
}
}

View File

@@ -5,6 +5,9 @@ using ws;
using api; using api;
using System.Net; using System.Net;
using System.Diagnostics; using System.Diagnostics;
using vaultgamesesh;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace start namespace start
{ {
@@ -13,23 +16,78 @@ namespace start
static void Main() static void Main()
{ {
//startup for openrec //startup for openrec
Setup.setup(); Setup.setup();
goto Tutorial;
Tutorial:
if (Setup.firsttime == true)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Title = "OpenRec Intro";
Console.WriteLine("Welcome to OpenRec " + appversion + "!");
Console.WriteLine("Is this your first time using OpenRec?");
Console.WriteLine("Yes or No (Y, N)");
string readline22 = Console.ReadLine();
if (readline22 == "y" || readline22 == "Y")
{
Console.Clear();
Console.Title = "OpenRec Tutorial";
Console.WriteLine("In that case, welcome to OpenRec!");
Console.WriteLine("OpenRec is server software that emulates the old servers of previous RecRoom versions.");
Console.WriteLine("To use OpenRec, you'll need to have builds aswell!");
Console.WriteLine("To download builds, either go to the builds channel or use the links below: (these links are also available from the #builds channel)" + Environment.NewLine);
Console.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/builds.txt"));
Console.WriteLine("Download a build and press any key to continue:");
Console.ReadKey();
Console.Clear();
Console.WriteLine("Now that you have a build, what you're going to do is as follows:" + Environment.NewLine);
Console.WriteLine("1. Unzip the build");
Console.WriteLine("2. Start the server by pressing 5 on the main menu and selecting your version as follows");
Console.WriteLine("3. Run Recroom_Release.exe from the folder of the build you downloaded." + Environment.NewLine);
Console.WriteLine("And that's it! Press any key to go to the main menu, where you will be able to start the server:");
Console.ReadKey();
Console.Clear();
goto Start; goto Start;
}
else
{
goto Start;
}
}
else
{
goto Start;
}
Start: Start:
Console.Title = "OpenRec Startup Menu";
Console.ForegroundColor = ConsoleColor.Green; Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("OpenRec - Open source RecNet server software. (Version: " + version + ")"); Console.WriteLine("OpenRec - Open source Old RecRoom server software. (Version: " + appversion + ")");
Console.WriteLine("Made and provided by RecRoom 2016."); Console.WriteLine("Made and provided by RecRoom 2016.");
Console.WriteLine("Download source code here: https://github.com/recroom2016/OpenRec"); Console.WriteLine("Download source code here: https://github.com/recroom2016/OpenRec");
Console.WriteLine("Discord: https://discord.gg/daC8QUhnFP" + Environment.NewLine); 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")); Console.WriteLine("This version of OpenRec is outdated. We recommend you install the latest version, OpenRec " + new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/version.txt"));
} }
Console.WriteLine("1) Changelog" + Environment.NewLine +"2) Change Settings" + Environment.NewLine + "3) Modify Profile" + Environment.NewLine + "4) 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("//Custom Room Downloader has been moved to the settings tab!" + Environment.NewLine);
Console.WriteLine("(1) What's New" + Environment.NewLine +"(2) Change Settings" + Environment.NewLine + "(3) Modify Profile" + Environment.NewLine + "(4) Build Download Links" + Environment.NewLine + "(5) Start Server");
string readline = Console.ReadLine(); string readline = Console.ReadLine();
if (readline == "1") if (readline == "1")
{ {
Console.Title = "OpenRec Changelog";
Console.Clear(); Console.Clear();
Console.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/changelog.txt")); Console.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/changelog.txt"));
Console.WriteLine("Press any key to continue:"); Console.WriteLine("Press any key to continue:");
@@ -43,7 +101,8 @@ namespace start
goto Settings; goto Settings;
Settings: Settings:
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"); Console.Title = "OpenRec Settings Menu";
Console.WriteLine("(1) Private Rooms: " + File.ReadAllText("SaveData\\App\\privaterooms.txt") + Environment.NewLine + "(2) Custom Room Downloader " + Environment.NewLine + "(3) Reset SaveData" + Environment.NewLine + "(4) Go Back");
string readline4 = Console.ReadLine(); string readline4 = Console.ReadLine();
if (readline4 == "1") if (readline4 == "1")
{ {
@@ -61,14 +120,23 @@ namespace start
} }
else if (readline4 == "2") else if (readline4 == "2")
{ {
if (File.ReadAllText("SaveData\\App\\showopenrecinfo.txt") == "Disabled") Console.Title = "OpenRec Custom Room Downloader";
Console.Clear();
Console.WriteLine("Custom Room Downloader: This tool takes the room data of any room you type in and imports it into ^CustomRoom in September 27th 2018.");
Console.WriteLine("Please type in the name of the room you would like to download: (Case sensitive)");
string roomname = Console.ReadLine();
string text = "";
try
{ {
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Enabled"); text = new WebClient().DownloadString("https://rooms.rec.net/rooms?name=" + roomname + "&include=297");
} }
else catch
{ {
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Disabled"); Console.Clear();
Console.WriteLine("Failed to download room...");
goto Settings;
} }
CustomRooms.RoomDecode(text);
Console.Clear(); Console.Clear();
Console.WriteLine("Success!"); Console.WriteLine("Success!");
goto Settings; goto Settings;
@@ -87,9 +155,20 @@ namespace start
File.Delete("SaveData\\myrooms.txt"); File.Delete("SaveData\\myrooms.txt");
File.Delete("SaveData\\settings.txt"); File.Delete("SaveData\\settings.txt");
File.Delete("SaveData\\App\\privaterooms.txt"); File.Delete("SaveData\\App\\privaterooms.txt");
File.Delete("SaveData\\App\\showopenrecinfo.txt");
File.Delete("SaveData\\App\\facefeaturesadd.txt"); File.Delete("SaveData\\App\\facefeaturesadd.txt");
File.Delete("SaveData\\profileimage.png"); File.Delete("SaveData\\profileimage.png");
File.Delete("SaveData\\App\\firsttime.txt");
File.Delete("SaveData\\avataritems2.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\roomname.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\roomid.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\datablob.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\roomsceneid.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\imagename.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\cheercount.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\favcount.txt");
File.Delete("SaveData\\Rooms\\Downloaded\\visitcount.txt");
Console.WriteLine("Success!"); Console.WriteLine("Success!");
Setup.setup(); Setup.setup();
goto Settings; goto Settings;
@@ -106,7 +185,8 @@ namespace start
goto Profile; goto Profile;
Profile: Profile:
Console.WriteLine("1) Change Username" + Environment.NewLine + "2) Change Profile Image" + Environment.NewLine + "3) Change Level" + Environment.NewLine + "4) Go Back"); Console.Title = "OpenRec Profile Menu";
Console.WriteLine("(1) Change Username" + Environment.NewLine + "(2) Change Profile Image" + Environment.NewLine + "(3) Change Level" + Environment.NewLine + "(4) Profile Downloader" + Environment.NewLine + "(5) Go Back");
string readline3 = Console.ReadLine(); string readline3 = Console.ReadLine();
if (readline3 == "1") if (readline3 == "1")
{ {
@@ -116,12 +196,12 @@ namespace start
File.WriteAllText("SaveData\\Profile\\username.txt", newusername); File.WriteAllText("SaveData\\Profile\\username.txt", newusername);
Console.Clear(); Console.Clear();
Console.WriteLine("Success!"); Console.WriteLine("Success!");
goto Start; goto Profile;
} }
else if (readline3 == "2") else if (readline3 == "2")
{ {
Console.Clear(); Console.Clear();
Console.WriteLine("1) Upload Media Link" + Environment.NewLine + "2) Drag Image onto this window" + Environment.NewLine + "3) Go Back"); Console.WriteLine("1) Upload Media Link" + Environment.NewLine + "2) Drag Image onto this window" + Environment.NewLine + "3) Download Rec.Net Profile Image" + Environment.NewLine + "4) Go Back");
string readline4 = Console.ReadLine(); string readline4 = Console.ReadLine();
if (readline4 == "1") if (readline4 == "1")
{ {
@@ -131,7 +211,7 @@ namespace start
{ {
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData(medialink)); File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData(medialink));
} }
catch (Exception ex4) catch
{ {
Console.Clear(); Console.Clear();
Console.WriteLine("Invalid Media Link"); Console.WriteLine("Invalid Media Link");
@@ -139,7 +219,7 @@ namespace start
} }
Console.Clear(); Console.Clear();
Console.WriteLine("Success!"); Console.WriteLine("Success!");
goto Start; goto Profile;
} }
else if (readline4 == "2") else if (readline4 == "2")
{ {
@@ -150,6 +230,7 @@ namespace start
byte[] imagefile = File.ReadAllBytes(imagedir); byte[] imagefile = File.ReadAllBytes(imagedir);
File.Replace(imagedir, "SaveData\\profileimage.png", "backupfilename.png"); File.Replace(imagedir, "SaveData\\profileimage.png", "backupfilename.png");
File.WriteAllBytes(imagedir, imagefile); File.WriteAllBytes(imagedir, imagefile);
File.Delete("backupfilename.png");
} }
catch (Exception ex4) catch (Exception ex4)
{ {
@@ -159,9 +240,46 @@ namespace start
} }
Console.Clear(); Console.Clear();
Console.WriteLine("Success!"); Console.WriteLine("Success!");
goto Start; goto Profile;
} }
else if (readline4 == "3") else if (readline4 == "3")
{
Console.WriteLine("Type a RecRoom @ username and press enter: ");
string username = Console.ReadLine();
if (username.StartsWith("@"))
{
username = username.Remove(0, 1);
}
try
{
string data = "";
try
{
data = new WebClient().DownloadString("https://accounts.rec.net/account/search?name=" + username);
}
catch
{
Console.Clear();
Console.WriteLine("Failed to download profile...");
goto Start;
}
;
List<ProfieStealer.Root> profile = JsonConvert.DeserializeObject<List<ProfieStealer.Root>>(data);
byte[] profileimage = new WebClient().DownloadData("https://img.rec.net/" + profile[0].profileImage + "?cropSquare=true&width=192&height=192");
File.WriteAllBytes("SaveData\\profileimage.png", profileimage);
}
catch
{
Console.Clear();
Console.WriteLine("Unable to download image...");
goto Profile;
}
Console.Clear();
Console.WriteLine("Success!");
goto Profile;
}
else if (readline4 == "4")
{ {
Console.Clear(); Console.Clear();
goto Start; goto Start;
@@ -175,73 +293,118 @@ namespace start
File.WriteAllText("SaveData\\Profile\\level.txt", newlevel); File.WriteAllText("SaveData\\Profile\\level.txt", newlevel);
Console.Clear(); Console.Clear();
Console.WriteLine("Success!"); Console.WriteLine("Success!");
goto Start; goto Profile;
} }
else if (readline3 == "4") else if (readline3 == "4")
{
Console.Title = "OpenRec Profile Downloader";
Console.Clear();
Console.WriteLine("Profile Downloader: This tool takes the username and profile image of any username you type in and imports it to OpenRec.");
Console.WriteLine("Please type the @ username of the profile you would like:");
string readusername = Console.ReadLine();
if (readusername.StartsWith("@"))
{
readusername = readusername.Remove(0, 1);
}
string data2 = "";
try
{
data2 = new WebClient().DownloadString("https://accounts.rec.net/account/search?name=" + readusername);
}
catch
{
Console.Clear();
Console.WriteLine("Failed to download profile...");
goto Start;
}
ProfieStealer.ProfileSteal(data2);
Console.Clear();
Console.WriteLine("Success!");
goto Start;
}
else if (readline3 == "5")
{ {
Console.Clear(); Console.Clear();
goto Start; goto Start;
} }
} }
if (readline == "4") if (readline == "4")
{ {
Console.WriteLine("Please select the version of RecRoom the server should host: (2017, 2018)"); Console.Title = "OpenRec Build Downloads";
Console.Clear();
Console.WriteLine("To download builds, either go to the builds channel or use the links below: (these links are also available from the #builds channel)" + Environment.NewLine);
Console.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/builds.txt"));
Console.WriteLine("Download a build and press any key to continue:");
Console.ReadKey();
Console.Clear();
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)");
string readline2 = Console.ReadLine(); string readline2 = Console.ReadLine();
if (readline2 == "2016") if (readline2 == "2016")
{ {
Console.Title = "OpenRec December 25th, 2016";
version = "2016"; version = "2016";
Console.Clear(); Console.Clear();
Console.WriteLine("Version Selected: " + start.Program.version); Console.WriteLine("Version Selected: December 25th, 2016.");
new APIServer(); new APIServer();
new WebSocket(); new WebSocket();
} }
else if (readline2 == "2017") else if (readline2 == "2017")
{ {
Console.Title = "OpenRec October 19th 2017";
version = "2017"; version = "2017";
Console.Clear(); Console.Clear();
Console.WriteLine("Version Selected: " + start.Program.version); Console.WriteLine("Version Selected: October 19th, 2017.");
new APIServer(); new APIServer();
new WebSocket(); new WebSocket();
} }
else if (readline2 == "2018") else if (readline2 == "2018")
{ {
Console.WriteLine("May, July or September (Beta) 2018: (M, J, S)");
string readline3 = Console.ReadLine();
if ((readline3 == "M") || (readline3 == "m"))
{
Console.Title = "OpenRec May 30th 2018";
version = "2018"; version = "2018";
Console.Clear(); Console.Clear();
Console.WriteLine("Version Selected: " + start.Program.version); Console.WriteLine("Version Selected: May 30th, 2018.");
new NameServer();
new ImageServer();
new APIServer();
new WebSocket();
}
else 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();
}
else if ((readline3 == "J") || (readline3 == "j"))
{
Console.Title = "OpenRec July 20th 2018";
version = "2018";
Console.Clear();
Console.WriteLine("Version Selected: July 20th, 2018");
new NameServer(); new NameServer();
new ImageServer(); new ImageServer();
new APIServer(); new APIServer();
new WebSocket(); new WebSocket();
} }
} }
if (readline == "5")
{
Console.Clear();
goto ChatStart;
ChatStart:
Console.WriteLine("Pinging the chat servers...");
try
{
string ping = new WebClient().DownloadString("https://openrecchat.loca.lt/ping");
}
catch (Exception ex4)
{
Console.WriteLine("Chat servers currently offline...");
Console.WriteLine("Press any key to continue:");
Console.ReadKey();
goto Start;
}
Console.WriteLine("Success!");
Console.WriteLine("Press any key to continue:");
Console.ReadKey();
OpenRecNet.RecNet();
} }
} }
public static string version = "";
public static string version = "0.4.1"; public static string appversion = "0.7.0";
public static bool bannedflag = false;
} }
} }

17
README.md Normal file
View File

@@ -0,0 +1,17 @@
# Welcome to OpenRec!
---
OpenRec is a RecRoom server software made by recroom2016!
### Branches
- Master / main
- Nightly
The master branch is the public branch where all the latest updates are published.
The nightly branch is where all the experimental updates that are needed to be tested before release are.
---
### Getting in contact with the community
If you are new to this we recommend you joining our Discord!
Link: https://discord.com/invite/daC8QUhnFP

View File

@@ -1,63 +0,0 @@
using System;
using System.Collections.Generic;
namespace rooms2018
{
// Token: 0x0200002B RID: 43
internal class RoomsList
{
// Token: 0x17000062 RID: 98
// (get) Token: 0x060000F8 RID: 248 RVA: 0x000053F8 File Offset: 0x000035F8
public static RoomsList.FeaturedRoomData getFeaturedRooms
{
get
{
List<Rooms.RoomPlayPage> list = new List<Rooms.RoomPlayPage>();
foreach (KeyValuePair<string, Rooms.RoomDetail> keyValuePair in Rooms.RecRoomOriginalRooms)
{
Rooms.RoomPlayPage item = new Rooms.RoomPlayPage
{
RoomName = keyValuePair.Value.Room.Name,
RoomId = keyValuePair.Value.Room.RoomId,
ImageName = "93a53ced93a04f658795a87f4a4aab85"
};
list.Add(item);
}
return new RoomsList.FeaturedRoomData
{
Name = "Rec Room Originals",
FeaturedRooms = list
};
}
}
// Token: 0x17000063 RID: 99
// (get) Token: 0x060000F9 RID: 249 RVA: 0x000054BC File Offset: 0x000036BC
public static List<Rooms.cRoom> HotRooms
{
get
{
List<Rooms.cRoom> list = new List<Rooms.cRoom>();
foreach (KeyValuePair<string, Rooms.RoomDetail> keyValuePair in Rooms.RecRoomOriginalRooms)
{
list.Add(keyValuePair.Value.Room);
}
return list;
}
}
// Token: 0x0200002C RID: 44
public class FeaturedRoomData
{
// Token: 0x17000064 RID: 100
// (get) Token: 0x060000FB RID: 251 RVA: 0x00002762 File Offset: 0x00000962
// (set) Token: 0x060000FC RID: 252 RVA: 0x0000276A File Offset: 0x0000096A
public string Name { get; set; }
// Token: 0x17000065 RID: 101
// (get) Token: 0x060000FD RID: 253 RVA: 0x00002773 File Offset: 0x00000973
// (set) Token: 0x060000FE RID: 254 RVA: 0x0000277B File Offset: 0x0000097B
public List<Rooms.RoomPlayPage> FeaturedRooms { get; set; }
}
}
}

File diff suppressed because it is too large Load Diff

23
Sanitize.cs Normal file
View 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; }
}
}
}

View File

@@ -106,7 +106,7 @@ namespace api
new Setting new Setting
{ {
Key = "VoiceChat", Key = "VoiceChat",
Value = 0f.ToString() Value = 1f.ToString()
}, },
new Setting new Setting
{ {

View File

@@ -8,13 +8,22 @@ namespace start
{ {
class Setup class Setup
{ {
public static bool firsttime = false;
public static void setup() public static void setup()
{ {
//sets up all the important files so openrec doesnt crash like lame vaultserver xD //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.)"); Console.WriteLine("Setting up... (May take a minute to download everything.)");
Directory.CreateDirectory("SaveData\\Images\\");
Directory.CreateDirectory("SaveData\\App\\"); Directory.CreateDirectory("SaveData\\App\\");
Directory.CreateDirectory("SaveData\\Profile\\"); Directory.CreateDirectory("SaveData\\Profile\\");
Directory.CreateDirectory("SaveData\\Images\\");
Directory.CreateDirectory("SaveData\\Rooms\\");
Directory.CreateDirectory("SaveData\\Images\\");
Directory.CreateDirectory("SaveData\\Rooms\\Downloaded\\");
if (!(File.Exists("SaveData\\App\\firsttime.txt")))
{
File.WriteAllText("SaveData\\App\\firsttime.txt", "this text file has no use other than to tell the program whether to bring up the intro or not, so i can just write random shit here. among us balls, you suck mad dick you big fat fa----");
firsttime = true;
}
if (!(File.Exists("SaveData\\avatar.txt"))) if (!(File.Exists("SaveData\\avatar.txt")))
{ {
File.WriteAllText("SaveData\\avatar.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avatar.txt")); File.WriteAllText("SaveData\\avatar.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avatar.txt"));
@@ -27,6 +36,10 @@ namespace start
{ {
File.WriteAllText("SaveData\\avataritems.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avataritems.txt")); File.WriteAllText("SaveData\\avataritems.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avataritems.txt"));
} }
if (!(File.Exists("SaveData\\avataritems2.txt")))
{
File.WriteAllText("SaveData\\avataritems2.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/avataritems2.txt"));
}
if (!(File.Exists("SaveData\\equipment.txt"))) if (!(File.Exists("SaveData\\equipment.txt")))
{ {
File.WriteAllText("SaveData\\equipment.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/equipment.txt")); File.WriteAllText("SaveData\\equipment.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/equipment.txt"));
@@ -41,11 +54,15 @@ namespace start
} }
if (!(File.Exists("SaveData\\storefronts2.txt"))) if (!(File.Exists("SaveData\\storefronts2.txt")))
{ {
File.WriteAllText("SaveData\\storefronts2.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/vaultButItsNewer/main/StoreFront2.json")); 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"))) if (!(File.Exists("SaveData\\Profile\\username.txt")))
{ {
File.WriteAllText("SaveData\\Profile\\username.txt", "DefaultUsername"); File.WriteAllText("SaveData\\Profile\\username.txt", "OpenRec User#" + new Random().Next(0, 1000000));
} }
if (!(File.Exists("SaveData\\Profile\\level.txt"))) if (!(File.Exists("SaveData\\Profile\\level.txt")))
{ {
@@ -53,7 +70,7 @@ namespace start
} }
if (!(File.Exists("SaveData\\Profile\\userid.txt"))) if (!(File.Exists("SaveData\\Profile\\userid.txt")))
{ {
File.WriteAllText("SaveData\\Profile\\userid.txt", "2"); File.WriteAllText("SaveData\\Profile\\userid.txt", "10000000");
} }
if (!(File.Exists("SaveData\\myrooms.txt"))) if (!(File.Exists("SaveData\\myrooms.txt")))
{ {
@@ -63,6 +80,10 @@ namespace start
{ {
File.WriteAllText("SaveData\\settings.txt", Newtonsoft.Json.JsonConvert.SerializeObject(api.Settings.CreateDefaultSettings())); File.WriteAllText("SaveData\\settings.txt", Newtonsoft.Json.JsonConvert.SerializeObject(api.Settings.CreateDefaultSettings()));
} }
if (!(File.Exists("SaveData\\profileimage.png")))
{
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png"));
}
if (!(File.Exists("SaveData\\App\\privaterooms.txt"))) if (!(File.Exists("SaveData\\App\\privaterooms.txt")))
{ {
File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled"); File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled");
@@ -75,13 +96,16 @@ namespace start
{ {
File.WriteAllText("SaveData\\App\\facefeaturesadd.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/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"))) goto tryagain;
tryagain:
try
{ {
File.WriteAllText("SaveData\\Images\\count.txt", "0"); api.CustomRooms.RoomGet("gizmoface");
} }
if (!(File.Exists("SaveData\\profileimage.png"))) catch
{ {
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png")); goto tryagain;
} }
Console.WriteLine("Done!"); Console.WriteLine("Done!");
Console.Clear(); Console.Clear();

1
Update/banned.txt Normal file
View File

@@ -0,0 +1 @@
[487454, 4701796, 1623123, 1423224]

11
Update/builds.txt Normal file
View File

@@ -0,0 +1,11 @@
September 27th 2018 (UNSTABLE, WILL ONLY WORK FOR SOME PEOPLE):
https://drive.google.com/file/d/13atQRl6Bh_JStPug7GcKLiLYqVaRgUsW/view?usp=sharing
May 30th 2018:
https://drive.google.com/file/d/1jZps2nesIcHsabZo3ueomivq98zfKZzj/view?usp=sharing
October 19th 2017:
https://drive.google.com/file/d/1Noljjg667NzUeOc1P7D7Fq9KmN_6AfeE/view?usp=sharing
December 23rd 2016:
https://drive.google.com/file/d/1mM3VKK7mFK8qMingVkEFQW-PwRe5Wh39/view?usp=sharing

1
Update/dormslideshow.txt Normal file
View 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"}]}

302
Update/hotrooms.txt Normal file
View File

@@ -0,0 +1,302 @@
[
{
"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": 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
}
]

4
Update/motd.txt Normal file
View File

@@ -0,0 +1,4 @@
Welcome to OpenRec!
BTW IF YOU SEE THIS, SHUT UP
THANK YOU

23
Update/rcslideshow.txt Normal file
View File

@@ -0,0 +1,23 @@
{
"Images": [
{
"SavedImageId": 1,
"ImageName": "1c603274267b4f45858f7506ab48b4fa",
"Username": "Origami",
"RoomName": "forsophie"
},
{
"SavedImageId": 2,
"ImageName": "dRoGHY4JvU-t1L51gbdhqQ",
"Username": "Sublime",
"RoomName": "TheOfficePvP"
},
{
"SavedImageId": 3,
"ImageName": "v9_qfp0bH0a3KL0xGz4Zsg",
"Username": "Jbluna",
"RoomName": "USSCoach"
}
],
"ValidTill": "2024-06-09T19:06:44.927Z"
}

298
Vault2018CustomRooms.cs Normal file
View 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
{
}
}
}

460
Vault2018GameSessions.cs Normal file
View File

@@ -0,0 +1,460 @@
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["DormRoom"];
}
}
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);
}
long gameseshid = 20181L;
if (start.Program.bannedflag == true)
{
gameseshid = 100L;
text += "BANNED";
}
c000041.f000013 = new c000041.c000044
{
GameSessionId = gameseshid,
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;
}
}
}

192
Vault2018Player.cs Normal file
View 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;
}
}
}

108
Vault2018WS.cs Normal file
View File

@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json;
using start;
using WebSocketSharp;
using WebSocketSharp.Server;
using ws;
namespace vaultgamesesh
{
public class Late2018WebSock
{
public Late2018WebSock()
{
Late2018WebSock.instance = this;
this.WebSock.AddWebSocketService<Late2018WebSock.NotificationWS>("/api/notification/v2");
this.WebSock.AddWebSocketService<Late2018WebSock.HubWS>("/hub/v1");
this.WebSock.Start();
Console.WriteLine("[LateWebSocket.cs] has started.");
Console.WriteLine("[LateWebSocket.cs] is listening.");
}
public void Broadcast(Notification.Reponse res)
{
Console.WriteLine(string.Concat(new string[]
{
"Broadcasting ",
JsonConvert.SerializeObject(res),
" to ",
this.WebSock.WebSocketServices["/api/notification/v2"].Sessions.Count.ToString(),
" clients."
}));
WebSock.WebSocketServices["/api/notification/v2"].Sessions.Broadcast(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(res)));
}
public static Late2018WebSock instance;
public WebSocketServer WebSock = new WebSocketServer("ws://localhost:20161/");
public class HubWS : WebSocketBehavior
{
protected override void OnMessage(MessageEventArgs e)
{
Console.WriteLine("LateWebSocket.cs Hub Requested.");
base.Send(JsonConvert.SerializeObject(new Late2018WebSock.Hub()));
}
public HubWS()
{
}
}
public class Hub : WebSocketBehavior
{
public Hub()
{
this.accessToken = "AccessDeezNuts";
this.SupportedTransports = new List<string>();
this.negotiateVersion = 0;
this.url = new Uri(string.Format("http://localhost:{0}/", "2018"));
}
public Uri url { get; set; }
public string accessToken { get; set; }
public List<string> SupportedTransports { get; set; }
public int negotiateVersion { get; set; }
}
public class NotificationWS : WebSocketBehavior
{
protected override void OnMessage(MessageEventArgs p0)
{
bool flag = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt"));
if (flag)
{
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;
Program.bannedflag = true;
Late2018WebSock.instance.Broadcast(Notification.Reponse.createBannedResponse());
}
Console.WriteLine("LateWebSocket.cs Notif Requested.");
bool flag2 = p0.Data == null;
bool flag3 = flag2;
bool flag4 = flag3;
if (flag4)
{
base.Send(string.Empty);
}
else
{
base.Send(Notification2018.ProcessRequest(p0.Data));
}
}
public NotificationWS()
{
}
}
}
}

30
VaultGameConfig.cs Normal file
View 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
View 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;
}
}
}

View File

@@ -1,31 +1,42 @@
using System; using System;
using System.IO;
using System.Net;
using start;
using WebSocketSharp; using WebSocketSharp;
using WebSocketSharp.Server; using WebSocketSharp.Server;
namespace ws namespace ws
{ {
// Token: 0x02000008 RID: 8 // Token: 0x02000010 RID: 16
internal class WebSocket internal class WebSocket
{ {
// Token: 0x06000012 RID: 18 RVA: 0x0000418C File Offset: 0x0000238C // Token: 0x06000031 RID: 49 RVA: 0x000066D4 File Offset: 0x000048D4
public WebSocket() public WebSocket()
{ {
WebSocketServer webSocketServer = new WebSocketServer(string.Format("ws://localhost:20161")); WebSocketServer webSocketServer = new WebSocketServer(string.Format("ws://localhost:20161", Array.Empty<object>()));
webSocketServer.AddWebSocketService<WebSocket.NotificationV2>("/api/notification/v2"); webSocketServer.AddWebSocketService<WebSocket.NotificationV2>("/api/notification/v2");
webSocketServer.AddWebSocketService<WebSocket.NotificationV2>("/hub/v1"); webSocketServer.AddWebSocketService<WebSocket.NotificationV2>("/hub/v1");
webSocketServer.Start(); webSocketServer.Start();
Console.WriteLine("WebSocket.cs has started."); Console.WriteLine("[WebSocket.cs] has started.");
Console.WriteLine("WebSocket.cs is listening."); Console.WriteLine("[WebSocket.cs] is listening.");
} }
// Token: 0x02000009 RID: 9 // Token: 0x02000058 RID: 88
public class NotificationV2 : WebSocketBehavior public class NotificationV2 : WebSocketBehavior
{ {
// Token: 0x06000013 RID: 19 RVA: 0x0000209D File Offset: 0x0000029D // Token: 0x0600023F RID: 575 RVA: 0x0000BDF8 File Offset: 0x00009FF8
protected override void OnMessage(MessageEventArgs e) protected override void OnMessage(MessageEventArgs e)
{ {
Console.WriteLine("WebSocket.cs called for."); Console.WriteLine("WebSocket.cs called for.");
base.Send(Notification.ProcessRequest(e.Data)); base.Send(Notification.ProcessRequest(e.Data));
bool flag = new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt"));
if (flag)
{
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;
Program.bannedflag = true;
}
} }
} }
} }

119
c000020.cs Normal file
View File

@@ -0,0 +1,119 @@
using System;
using System.IO;
using System.Runtime.CompilerServices;
namespace vaultgamesesh
{
// Token: 0x02000007 RID: 7
internal sealed class c000020
{
// Token: 0x0600001A RID: 26 RVA: 0x00002B20 File Offset: 0x00000D20
public static c000020.c000022 m000027()
{
bool flag = c000041.f000013 == null;
bool flag2 = flag;
bool flag3 = flag2;
c000041.c000044 gameSession;
if (flag3)
{
gameSession = c000041.m00002f();
}
else
{
gameSession = c000041.f000013;
}
return new c000020.c000022
{
PlayerId = Convert.ToUInt64(File.ReadAllText("SaveData\\Profile\\userid.txt")),
IsOnline = true,
PlayerType = 2,
GameSession = gameSession
};
}
// Token: 0x0200003C RID: 60
public sealed class c000022
{
// Token: 0x17000088 RID: 136
// (get) Token: 0x0600017E RID: 382 RVA: 0x0000A768 File Offset: 0x00008968
// (set) Token: 0x0600017F RID: 383 RVA: 0x0000A780 File Offset: 0x00008980
public ulong PlayerId
{
[CompilerGenerated]
get
{
return this.f000001;
}
[CompilerGenerated]
set
{
this.f000001 = value;
}
}
// Token: 0x17000089 RID: 137
// (get) Token: 0x06000180 RID: 384 RVA: 0x0000A78C File Offset: 0x0000898C
// (set) Token: 0x06000181 RID: 385 RVA: 0x0000A7A4 File Offset: 0x000089A4
public bool IsOnline
{
[CompilerGenerated]
get
{
return this.f000037;
}
[CompilerGenerated]
set
{
this.f000037 = value;
}
}
// Token: 0x1700008A RID: 138
// (get) Token: 0x06000182 RID: 386 RVA: 0x0000A7B0 File Offset: 0x000089B0
// (set) Token: 0x06000183 RID: 387 RVA: 0x0000A7C8 File Offset: 0x000089C8
public int PlayerType
{
[CompilerGenerated]
get
{
return this.f000020;
}
[CompilerGenerated]
set
{
this.f000020 = value;
}
}
// Token: 0x1700008B RID: 139
// (get) Token: 0x06000184 RID: 388 RVA: 0x0000A7D4 File Offset: 0x000089D4
// (set) Token: 0x06000185 RID: 389 RVA: 0x0000A7EC File Offset: 0x000089EC
public c000041.c000044 GameSession
{
[CompilerGenerated]
get
{
return this.f000038;
}
[CompilerGenerated]
set
{
this.f000038 = value;
}
}
// Token: 0x040000C4 RID: 196
private ulong f000001;
// Token: 0x040000C5 RID: 197
private bool f000037;
// Token: 0x040000C6 RID: 198
private int f000020;
// Token: 0x040000C7 RID: 199
private c000041.c000044 f000038;
}
}
}

2363
c00005d.cs Normal file

File diff suppressed because it is too large Load Diff

BIN
websocket-sharp.dll Normal file

Binary file not shown.