mirror of
https://github.com/recroom2016/OpenRec.git
synced 2026-04-22 21:25:51 +00:00
Compare commits
123 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b97080e3a | ||
|
|
0555b44676 | ||
|
|
869f5ff80b | ||
|
|
bb7c545caf | ||
|
|
1bdf95f5e9 | ||
|
|
74c8487c65 | ||
|
|
a331672d4f | ||
|
|
d8c03700cc | ||
|
|
32ba6f8d12 | ||
|
|
5e276a02cd | ||
|
|
f4547c9dc3 | ||
|
|
bf34030107 | ||
|
|
154220dace | ||
|
|
696feb3887 | ||
|
|
02d5026f7a | ||
|
|
07aff4769c | ||
|
|
25bb2f2db8 | ||
|
|
0f1955581b | ||
|
|
b81f3a1945 | ||
|
|
f80b4e1ea2 | ||
|
|
16c581c73f | ||
|
|
fd2c36f3dd | ||
|
|
17f85974bd | ||
|
|
3d9f7cc873 | ||
|
|
92a031fc7f | ||
|
|
8a5396e8df | ||
|
|
9bac769056 | ||
|
|
38af2edbd8 | ||
|
|
5b5712bcc1 | ||
|
|
51c6a2ace4 | ||
|
|
5aa4f2c4ae | ||
|
|
a7ace2f895 | ||
|
|
a2775a6d95 | ||
|
|
a5ef24a1e1 | ||
|
|
dbfb132d6c | ||
|
|
6fe87123b5 | ||
|
|
9a86d1d88e | ||
|
|
f39c7cefa3 | ||
|
|
1f94738349 | ||
|
|
02e55a3428 | ||
|
|
0137b18e98 | ||
|
|
2a6788cf9d | ||
|
|
d615e009dd | ||
|
|
33540f1a25 | ||
|
|
aae35a6c28 | ||
|
|
e08fb285f8 | ||
|
|
1ae28dc203 | ||
|
|
e00ac817a1 | ||
|
|
c68360e030 | ||
|
|
1cc3ad4a0b | ||
|
|
230058717c | ||
|
|
15e21f6610 | ||
|
|
d8a619efcd | ||
|
|
cb7414eb8d | ||
|
|
02dfb1e409 | ||
|
|
5aff58844a | ||
|
|
21553584c1 | ||
|
|
41c603233e | ||
|
|
7d4c449151 | ||
|
|
ebd28aef74 | ||
|
|
8057427772 | ||
|
|
0e0da58f81 | ||
|
|
001423935c | ||
|
|
c000b151bf | ||
|
|
467230ef1b | ||
|
|
907fd6c472 | ||
|
|
dfb0bf7a66 | ||
|
|
540f18f19b | ||
|
|
30f6657c74 | ||
|
|
76c86ca4f6 | ||
|
|
0297845357 | ||
|
|
73202952da | ||
|
|
8be5b35339 | ||
|
|
8e6207c335 | ||
|
|
3fc8f954c1 | ||
|
|
2344b111d5 | ||
|
|
3d26270a55 | ||
|
|
9d5fb0432f | ||
|
|
81249c9efe | ||
|
|
e8ffebaf2f | ||
|
|
83ca99fbcb | ||
|
|
38c33ff4a2 | ||
|
|
7b7eb4326b | ||
|
|
10cfabf1d0 | ||
|
|
203a3e0002 | ||
|
|
a8f6aaf90d | ||
|
|
bc3701e9e4 | ||
|
|
c4f1e97a51 | ||
|
|
07c12f2cb7 | ||
|
|
cf81be7329 | ||
|
|
f702725b9b | ||
|
|
3bd0fa5ba3 | ||
|
|
59330ea345 | ||
|
|
57a2ff3462 | ||
|
|
aab1932199 | ||
|
|
857a1768ba | ||
|
|
2d54a04613 | ||
|
|
3f81862763 | ||
|
|
9c18f042b9 | ||
|
|
dc949325a1 | ||
|
|
88b37a9bbc | ||
|
|
3a8c07098d | ||
|
|
ada0777275 | ||
|
|
21706a82fb | ||
|
|
8024724946 | ||
|
|
009a5d48e2 | ||
|
|
060e2f27ed | ||
|
|
8c61c52edf | ||
|
|
6c4cfefce9 | ||
|
|
62e3fe47a6 | ||
|
|
488f68d075 | ||
|
|
8511d22c75 | ||
|
|
a9394b6c46 | ||
|
|
93e74b51b4 | ||
|
|
c42d15d3aa | ||
|
|
5926b6c753 | ||
|
|
3f8ff4a98b | ||
|
|
033634f104 | ||
|
|
41c720c948 | ||
|
|
b7df2186b2 | ||
|
|
a8e081602a | ||
|
|
b85ab57667 | ||
|
|
358b654064 |
63
.gitattributes
vendored
63
.gitattributes
vendored
@@ -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
|
|
||||||
517
APIServer.cs
517
APIServer.cs
@@ -5,19 +5,20 @@ using System.Text;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using api;
|
using api;
|
||||||
using api2018;
|
using api2018;
|
||||||
|
using api2017;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using vaultgamesesh;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace server
|
namespace server
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class APIServer
|
internal class APIServer
|
||||||
{
|
{
|
||||||
|
|
||||||
public APIServer()
|
public APIServer()
|
||||||
{
|
{
|
||||||
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)
|
||||||
@@ -29,18 +30,21 @@ namespace server
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//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")
|
if (start.Program.version == "2016")
|
||||||
{
|
{
|
||||||
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;
|
||||||
string rawUrl = request.RawUrl;
|
string rawUrl = request.RawUrl;
|
||||||
string Url = "";
|
string Url = "";
|
||||||
|
bool image = false;
|
||||||
|
byte[] imagebyte = null;
|
||||||
if (rawUrl.StartsWith("/api/"))
|
if (rawUrl.StartsWith("/api/"))
|
||||||
{
|
{
|
||||||
Url = rawUrl.Remove(0, 5);
|
Url = rawUrl.Remove(0, 5);
|
||||||
@@ -57,9 +61,12 @@ namespace server
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine("API Requested: " + rawUrl);
|
Console.WriteLine("API Requested (rawUrl): " + rawUrl);
|
||||||
|
}
|
||||||
|
if (!(Url == "images/v2/profile"))
|
||||||
|
{
|
||||||
|
Console.WriteLine("API Data: " + text);
|
||||||
}
|
}
|
||||||
Console.WriteLine("API Data: " + text);
|
|
||||||
if (Url.StartsWith("versioncheck"))
|
if (Url.StartsWith("versioncheck"))
|
||||||
{
|
{
|
||||||
s = VersionCheckResponse;
|
s = VersionCheckResponse;
|
||||||
@@ -68,22 +75,111 @@ namespace server
|
|||||||
{
|
{
|
||||||
s = Config2.GetDebugConfig();
|
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);
|
Console.WriteLine("API Response: " + s);
|
||||||
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
byte[] bytes = null;
|
||||||
|
if (image == true)
|
||||||
|
{
|
||||||
|
bytes = imagebyte;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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(20);
|
||||||
outputStream.Close();
|
outputStream.Close();
|
||||||
this.listener.Stop();
|
this.listener.Stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else 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;
|
||||||
@@ -105,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"))
|
||||||
@@ -116,12 +212,126 @@ namespace server
|
|||||||
{
|
{
|
||||||
s = Config2.GetDebugConfig();
|
s = Config2.GetDebugConfig();
|
||||||
}
|
}
|
||||||
|
if (Url == "platformlogin/v1/profiles")
|
||||||
|
{
|
||||||
|
s = getorcreate.GetOrCreateArray((ulong.Parse(text.Remove(0, 32))));
|
||||||
|
CachedPlayerID = ulong.Parse(text.Remove(0, 32));
|
||||||
|
CachedPlatformID = ulong.Parse(text.Remove(0, 22));
|
||||||
|
File.WriteAllText("SaveData\\Profile\\userid.txt", Convert.ToString(CachedPlayerID));
|
||||||
|
if (new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Update/banned.txt").Contains(File.ReadAllText("SaveData\\Profile\\userid.txt")))
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("You are banned. Using this version of OpenRec will not work, please download OpenRec 0.4.2 or prior.");
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
start.Program.bannedflag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Url == "platformlogin/v6")
|
||||||
|
{
|
||||||
|
s = PlatformLogin.v4(CachedPlayerID);
|
||||||
|
}
|
||||||
|
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
||||||
|
{
|
||||||
|
s = ModerationBlockDetails;
|
||||||
|
if (start.Program.bannedflag == true)
|
||||||
|
{
|
||||||
|
s = Banned;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Url == "config/v1/amplitude")
|
||||||
|
{
|
||||||
|
s = Amplitude.amplitude();
|
||||||
|
}
|
||||||
|
if (Url.StartsWith("players/v1/"))
|
||||||
|
{
|
||||||
|
s = getorcreate.GetOrCreate(CachedPlayerID);
|
||||||
|
}
|
||||||
|
if (Url == "players/v1/list")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v2")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\avatar.txt");
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v2/saved")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v2/set")
|
||||||
|
{
|
||||||
|
//for later 2018 builds compatibility
|
||||||
|
if (!(text.Contains("FaceFeatures")))
|
||||||
|
{
|
||||||
|
string postdatacache = text;
|
||||||
|
text = postdatacache.Remove(postdatacache.Length - 1, 1) + File.ReadAllText("SaveData\\App\\facefeaturesadd.txt");
|
||||||
|
}
|
||||||
|
File.WriteAllText("SaveData\\avatar.txt", text);
|
||||||
|
}
|
||||||
|
if (Url == "messages/v2/get")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "relationships/v2/get")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "settings/v2/")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\settings.txt");
|
||||||
|
}
|
||||||
|
if (Url == "settings/v2/set")
|
||||||
|
{
|
||||||
|
Settings.SetPlayerSettings(text);
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v3/items")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\avataritems.txt");
|
||||||
|
}
|
||||||
|
if (Url == "equipment/v1/getUnlocked")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\equipment.txt");
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v2/gifts")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "events/v3/list")
|
||||||
|
{
|
||||||
|
s = Events.list();
|
||||||
|
}
|
||||||
|
if (Url == "playerevents/v1/all")
|
||||||
|
{
|
||||||
|
s = PlayerEventsResponse;
|
||||||
|
}
|
||||||
|
if (Url == "activities/charades/v1/words")
|
||||||
|
{
|
||||||
|
s = Activities.Charades.words();
|
||||||
|
}
|
||||||
|
if (Url == "gamesessions/v2/joinrandom")
|
||||||
|
{
|
||||||
|
s = gamesesh.GameSessions.JoinRandom(text);
|
||||||
|
}
|
||||||
|
if (Url == "gamesessions/v2/create")
|
||||||
|
{
|
||||||
|
s = gamesesh.GameSessions.Create(text);
|
||||||
|
}
|
||||||
|
if (rawUrl == "//api/sanitize/v1/isPure")
|
||||||
|
{
|
||||||
|
s = "{\"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(400);
|
Thread.Sleep(20);
|
||||||
outputStream.Close();
|
outputStream.Close();
|
||||||
this.listener.Stop();
|
this.listener.Stop();
|
||||||
}
|
}
|
||||||
@@ -131,12 +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;
|
||||||
|
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);
|
||||||
@@ -147,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 = "";
|
||||||
@@ -158,6 +371,14 @@ namespace server
|
|||||||
Console.WriteLine("API Data: " + text);
|
Console.WriteLine("API Data: " + text);
|
||||||
if (Url.StartsWith("versioncheck"))
|
if (Url.StartsWith("versioncheck"))
|
||||||
{
|
{
|
||||||
|
if (Url.Contains("201809"))
|
||||||
|
{
|
||||||
|
CachedVersionMonth = 09;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CachedVersionMonth = 05;
|
||||||
|
}
|
||||||
s = VersionCheckResponse;
|
s = VersionCheckResponse;
|
||||||
}
|
}
|
||||||
if (Url == ("config/v2"))
|
if (Url == ("config/v2"))
|
||||||
@@ -169,11 +390,19 @@ namespace server
|
|||||||
s = getcachedlogins.GetDebugLogin(ulong.Parse(text.Remove(0, 32)), ulong.Parse(text.Remove(0, 22)));
|
s = getcachedlogins.GetDebugLogin(ulong.Parse(text.Remove(0, 32)), ulong.Parse(text.Remove(0, 22)));
|
||||||
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));
|
||||||
|
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")
|
||||||
{
|
{
|
||||||
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
||||||
}
|
}
|
||||||
if (Url == "platformlogin/v1/createaccount")
|
if (Url == "platformlogin/v1/createaccount")
|
||||||
{
|
{
|
||||||
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
s = logincached.loginCache(CachedPlayerID, CachedPlatformID);
|
||||||
@@ -186,32 +415,73 @@ namespace server
|
|||||||
{
|
{
|
||||||
s = BlankResponse;
|
s = BlankResponse;
|
||||||
}
|
}
|
||||||
|
if (Url == "players/v1/list")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
if (Url == "config/v1/amplitude")
|
if (Url == "config/v1/amplitude")
|
||||||
{
|
{
|
||||||
s = Amplitude.amplitude();
|
s = Amplitude.amplitude();
|
||||||
}
|
}
|
||||||
if (Url == "images/v2/named")
|
if (Url == "images/v2/named")
|
||||||
{
|
{
|
||||||
s = ImagesV2Named;
|
s = ImagesV2Named;
|
||||||
}
|
}
|
||||||
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
if (Url == "PlayerReporting/v1/moderationBlockDetails")
|
||||||
{
|
{
|
||||||
s = ModerationBlockDetails;
|
s = ModerationBlockDetails;
|
||||||
}
|
if (start.Program.bannedflag == true)
|
||||||
if (Url == "messages/v2/get")
|
{
|
||||||
{
|
s = Banned;
|
||||||
s = BracketResponse;
|
}
|
||||||
}
|
}
|
||||||
|
if (Url == "//api/chat/v2/myChats?mode=0&count=50")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "messages/v2/get")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
if (Url == "relationships/v2/get")
|
if (Url == "relationships/v2/get")
|
||||||
{
|
{
|
||||||
s = BracketResponse;
|
s = BracketResponse;
|
||||||
}
|
}
|
||||||
|
if (Url == "gameconfigs/v1/all")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\gameconfigs.txt");
|
||||||
|
}
|
||||||
|
if (Url.StartsWith("storefronts/v3/giftdropstore"))
|
||||||
|
{
|
||||||
|
if (CachedVersionMonth == 09)
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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
|
||||||
|
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);
|
File.WriteAllText("SaveData\\avatar.txt", text);
|
||||||
}
|
}
|
||||||
if (Url == "settings/v2/")
|
if (Url == "settings/v2/")
|
||||||
@@ -222,42 +492,72 @@ 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")
|
||||||
{
|
{
|
||||||
s = File.ReadAllText("SaveData\\avataritems.txt");
|
if (CachedVersionMonth == 09)
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\avataritems2.txt");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\avataritems2.txt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (Url == "equipment/v1/getUnlocked")
|
if (Url == "equipment/v1/getUnlocked")
|
||||||
{
|
{
|
||||||
s = File.ReadAllText("SaveData\\equipment.txt");
|
s = File.ReadAllText("SaveData\\equipment.txt");
|
||||||
}
|
}
|
||||||
if (Url == "avatar/v1/saved")
|
if (Url == "avatar/v1/saved")
|
||||||
{
|
{
|
||||||
s = BracketResponse;
|
s = BracketResponse;
|
||||||
}
|
}
|
||||||
if (Url == "consumables/v1/getUnlocked")
|
if (Url == "consumables/v1/getUnlocked")
|
||||||
{
|
{
|
||||||
s = File.ReadAllText("SaveData\\consumables.txt");
|
if (CachedVersionMonth == 09)
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\consumables.txt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (Url == "avatar/v2/gifts")
|
if (Url == "avatar/v2/gifts")
|
||||||
{
|
{
|
||||||
s = BracketResponse;
|
|
||||||
}
|
|
||||||
if (Url == "storefronts/v1/allGiftDrops/2")
|
|
||||||
{
|
|
||||||
s = BracketResponse;
|
s = BracketResponse;
|
||||||
}
|
}
|
||||||
if (Url == "storefronts/v2/2")
|
if (Url == "storefronts/v2/2")
|
||||||
{
|
{
|
||||||
s = "";
|
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());
|
||||||
}
|
}
|
||||||
if (Url == "rooms/v1/myrooms")
|
if (Url == "rooms/v1/myrooms")
|
||||||
{
|
{
|
||||||
s = File.ReadAllText("SaveData\\myrooms.txt");
|
s = File.ReadAllText("SaveData\\myrooms.txt");
|
||||||
}
|
}
|
||||||
|
if (Url == "rooms/v2/myrooms")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "rooms/v2/baserooms")
|
||||||
|
{
|
||||||
|
s = File.ReadAllText("SaveData\\baserooms.txt");
|
||||||
|
}
|
||||||
if (Url == "rooms/v1/mybookmarkedrooms")
|
if (Url == "rooms/v1/mybookmarkedrooms")
|
||||||
{
|
{
|
||||||
s = BracketResponse;
|
s = BracketResponse;
|
||||||
@@ -267,45 +567,152 @@ namespace server
|
|||||||
s = BracketResponse;
|
s = BracketResponse;
|
||||||
}
|
}
|
||||||
if (Url == "events/v3/list")
|
if (Url == "events/v3/list")
|
||||||
{
|
{
|
||||||
s = Events.list();
|
s = Events.list();
|
||||||
}
|
}
|
||||||
if (Url == "playerevents/v1/all")
|
if (Url == "playerevents/v1/all")
|
||||||
{
|
{
|
||||||
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")
|
||||||
|
{
|
||||||
|
s = gamesesh.GameSessions.Create(text);
|
||||||
|
}
|
||||||
|
if (Url == "gamesessions/v3/joinroom")
|
||||||
|
{
|
||||||
|
s = JsonConvert.SerializeObject(c000041.m000030(text));
|
||||||
|
}
|
||||||
|
if (rawUrl == "//api/sanitize/v1/isPure")
|
||||||
|
{
|
||||||
|
s = "{\"IsPure\":true}";
|
||||||
|
}
|
||||||
|
if (Url == "avatar/v3/saved")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "checklist/v1/current")
|
||||||
|
{
|
||||||
|
s = ChecklistV1Current;
|
||||||
|
}
|
||||||
|
if (Url == "presence/v1/setplayertype")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "challenge/v1/getCurrent")
|
||||||
|
{
|
||||||
|
s = ChallengesV1GetCurrent;
|
||||||
|
}
|
||||||
|
if (Url == "rooms/v1/featuredRoomGroup")
|
||||||
|
{
|
||||||
|
s = BracketResponse;
|
||||||
|
}
|
||||||
|
if (Url == "rooms/v1/clone")
|
||||||
|
{
|
||||||
|
s = 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);
|
Console.WriteLine("API Response: " + s);
|
||||||
byte[] bytes = Encoding.UTF8.GetBytes(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(400);
|
Thread.Sleep(400);
|
||||||
outputStream.Close();
|
outputStream.Close();
|
||||||
this.listener.Stop();
|
this.listener.Stop();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex4)
|
catch (Exception ex4)
|
||||||
{
|
{
|
||||||
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 string BlankResponse = "";
|
public static string BlankResponse = "";
|
||||||
public static string BracketResponse = "[]";
|
public static string BracketResponse = "[]";
|
||||||
|
|
||||||
public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}";
|
public static string PlayerEventsResponse = "{\"Created\":[],\"Responses\":[]}";
|
||||||
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
public static string VersionCheckResponse2 = "{\"VersionStatus\":0}";
|
||||||
|
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\"}";
|
||||||
private HttpListener listener = new HttpListener();
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
197
Activities.cs
Normal file
197
Activities.cs
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace api
|
||||||
|
{
|
||||||
|
// Token: 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ namespace api
|
|||||||
{
|
{
|
||||||
return JsonConvert.SerializeObject(new Amplitude
|
return JsonConvert.SerializeObject(new Amplitude
|
||||||
{
|
{
|
||||||
AmplitudeKey = "e1693a1003671058b6abc356c8ba8d59"
|
AmplitudeKey = "NoKeyProvided"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
294
Config.cs
294
Config.cs
@@ -8,155 +8,155 @@ namespace api
|
|||||||
{
|
{
|
||||||
class Config
|
class Config
|
||||||
{
|
{
|
||||||
public static void setup()
|
public static void setup()
|
||||||
{
|
{
|
||||||
Console.WriteLine("Setting up...");
|
Console.WriteLine("Setting up...");
|
||||||
Directory.CreateDirectory("SaveData\\Profile\\");
|
Directory.CreateDirectory("SaveData\\Profile\\");
|
||||||
if (!(File.Exists("SaveData\\avatar.txt")))
|
if (!(File.Exists("SaveData\\avatar.txt")))
|
||||||
{
|
{
|
||||||
File.Create("SaveData\\avatar.txt");
|
File.Create("SaveData\\avatar.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", "DefaultUsername");
|
||||||
}
|
}
|
||||||
if (!(File.Exists("SaveData\\profileimage.png")))
|
if (!(File.Exists("SaveData\\profileimage.png")))
|
||||||
{
|
{
|
||||||
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png"));
|
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/profileimage.png"));
|
||||||
}
|
}
|
||||||
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[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Objective[]
|
new Objective[]
|
||||||
{
|
{
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 20,
|
type = 20,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 21,
|
type = 21,
|
||||||
score = 1
|
score = 1
|
||||||
},
|
},
|
||||||
new Objective
|
new Objective
|
||||||
{
|
{
|
||||||
type = 22,
|
type = 22,
|
||||||
score = 1
|
score = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
177
Consumable.cs
Normal 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
229
CustomRooms.cs
Normal 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
{"OutfitSelections":"b33dbeee-5bdd-443d-aa6a-761248054e08,,,,1;6d48c545-22bb-46c1-a29d-0a38af387143,,,,2;6d48c545-22bb-46c1-a29d-0a38af387143,,,,3;ecc1dbe6-ca06-4564-b2a6-30956194d1e9,51ef8d39-2b94-4f9e-9620-07b6b0a913a5,0b2395e1-ebcc-47e9-aaf1-faf9e9cec4cd,,2;ecc1dbe6-ca06-4564-b2a6-30956194d1e9,51ef8d39-2b94-4f9e-9620-07b6b0a913a5,0b2395e1-ebcc-47e9-aaf1-faf9e9cec4cd,,3;0753d7a4-8247-4fca-a6fc-359c26086140,,,,0;14ef6b00-debf-4a85-9755-b4d37df496d3,724c79a3-822c-422f-9462-a5374ee0211c,,,0;11e508a7-fe7d-470e-b270-2dba33e2f7a1,,,,0;d0a9262f-5504-46a7-bb10-7507503db58e,fe304452-b57b-45bc-9c1c-b85b70bcec12,,6a007c73-d930-408a-93df-041a715e0dd4,1","HairColor":"5ee30295-b05f-4e96-819e-5ac865b2c63d","SkinColor":"85343b16-d58a-4091-96d8-083a81fb03ae","FaceFeatures":""}
|
{"OutfitSelections":"b33dbeee-5bdd-443d-aa6a-761248054e08,,,,1;6d48c545-22bb-46c1-a29d-0a38af387143,,,,2;6d48c545-22bb-46c1-a29d-0a38af387143,,,,3;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"}
|
||||||
|
|||||||
2
Download/avataritems2.txt
Normal file
2
Download/avataritems2.txt
Normal file
File diff suppressed because one or more lines are too long
1
Download/banned.txt
Normal file
1
Download/banned.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[487454,4701796]
|
||||||
1
Download/baserooms.txt
Normal file
1
Download/baserooms.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[{"RoomId":24,"Name":"MakerRoom","Description":"This room is a blank canvas. Make it into whatever you like!","CreatorPlayerId":1,"ImageName":"","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":25,"Name":"Park","Description":"A sprawling park with amphitheater, play fields, and a cave.","CreatorPlayerId":114785367,"ImageName":"","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":22,"Name":"Lounge","Description":"A low-key lounge to chill with your friends. Great for private parties!","CreatorPlayerId":114785367,"ImageName":"ActivityLounge.png","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":23,"Name":"PerformanceHall","Description":"A theater for plays, music, comedy and other performances.","CreatorPlayerId":1,"ImageName":"","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true},{"RoomId":18,"Name":"Hangar","Description":"Teams battle each other and waves of robots.","CreatorPlayerId":114785367,"ImageName":"ActivityLaserTag.png","State":0,"Accessibility":1,"SupportsLevelVoting":false,"IsAGRoom":true,"CloningAllowed":false,"SupportsScreens":true,"SupportsWalkVR":true,"SupportsTeleportVR":true}]
|
||||||
16
Download/changelog.txt
Normal file
16
Download/changelog.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Feature Patch v0.6.9: sex build
|
||||||
|
-Added tutorial and info hints
|
||||||
|
-Added custom rooms back into 2018 (no saving yet)
|
||||||
|
-Added Profile Downloader
|
||||||
|
-Added build links tab
|
||||||
|
-Improved profile image changing
|
||||||
|
-Updated the UI more
|
||||||
|
|
||||||
|
Note: This release DOES NOT feature friending yet! This is just a feature patch before that is released in version 0.7.0.
|
||||||
|
|
||||||
|
Credits:
|
||||||
|
@Nexus0821 - Programmed and helped add in a lot of new features
|
||||||
|
|
||||||
|
@LucasOnDiscord#0210 - Adding potions
|
||||||
|
@GabeTheFirst#7335 - Tester when my game was broken
|
||||||
|
@andry6702#9812 - Discovered custom room downloading for 2018
|
||||||
1
Download/configv2.txt
Normal file
1
Download/configv2.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"MessageOfTheDay":"Welcome to OpenRec!\n\nBTW IF YOU SEE THIS, SHUT UP\nTHANK YOU\n","CdnBaseUri":"http://localhost:20182/","LevelProgressionMaps":[{"Level":0,"RequiredXp":1},{"Level":1,"RequiredXp":2},{"Level":2,"RequiredXp":3},{"Level":3,"RequiredXp":4},{"Level":4,"RequiredXp":5},{"Level":5,"RequiredXp":6},{"Level":6,"RequiredXp":7},{"Level":7,"RequiredXp":8},{"Level":8,"RequiredXp":9},{"Level":9,"RequiredXp":10},{"Level":10,"RequiredXp":11},{"Level":11,"RequiredXp":12},{"Level":12,"RequiredXp":13},{"Level":13,"RequiredXp":14},{"Level":14,"RequiredXp":15},{"Level":15,"RequiredXp":16},{"Level":16,"RequiredXp":17},{"Level":17,"RequiredXp":18},{"Level":18,"RequiredXp":19},{"Level":19,"RequiredXp":20},{"Level":20,"RequiredXp":21}],"MatchmakingParams":{"PreferFullRoomsFrequency":1.0,"PreferEmptyRoomsFrequency":0.0},"DailyObjectives":[[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}],[{"type":20,"score":1},{"type":21,"score":1},{"type":22,"score":1}]],"ConfigTable":[{"Key":"Gift.DropChance","Value":"0.5"},{"Key":"Gift.XP","Value":"0.5"}],"PhotonConfig":{"CloudRegion":"us","CrcCheckEnabled":false,"EnableServerTracingAfterDisconnect":false}}
|
||||||
@@ -1 +1 @@
|
|||||||
[{"Id":1,"ConsumableItemDesc":"7OZ5AE3uuUyqa0P","CreatedAt":"2022-02-18T23:29:59.9035571-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":2,"ConsumableItemDesc":"_jnjYGBcyEWY5Ub4OezXcA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":3,"ConsumableItemDesc":"5hIAZ9wg5EyG1cILf4FS2A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":4,"ConsumableItemDesc":"wUCIKdJSvEmiQHYMyx4X4w","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":5,"ConsumableItemDesc":"JfnVXFmilU6ysv-VbTAe3A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":6,"ConsumableItemDesc":"InQ25wQMGkG_bvuD5rf2Ag","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":7,"ConsumableItemDesc":"mMCGPgK3tki5S_15q2Z81A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":8,"ConsumableItemDesc":"ZuvkidodzkuOfGLDnTOFyg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false}]
|
[{"Id":1,"ConsumableItemDesc":"7OZ5AE3uuUyqa0P","CreatedAt":"2022-02-18T23:29:59.9035571-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":2,"ConsumableItemDesc":"_jnjYGBcyEWY5Ub4OezXcA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":3,"ConsumableItemDesc":"5hIAZ9wg5EyG1cILf4FS2A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":4,"ConsumableItemDesc":"wUCIKdJSvEmiQHYMyx4X4w","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":5,"ConsumableItemDesc":"JfnVXFmilU6ysv-VbTAe3A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":6,"ConsumableItemDesc":"InQ25wQMGkG_bvuD5rf2Ag","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":7,"ConsumableItemDesc":"mMCGPgK3tki5S_15q2Z81A","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":8,"ConsumableItemDesc":"ZuvkidodzkuOfGLDnTOFyg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":9,"ConsumableItemDesc":"VQSgL2pTLkWx4B3kwYG7UA","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":10,"ConsumableItemDesc":"Tpxqe_lycUelySRHM8B0Vw","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false},{"Id":11,"ConsumableItemDesc":"-hy0qD-iUk-v4NHxNzanmg","CreatedAt":"2022-02-18T23:29:59.909138-05:00","Count":99,"UnlockedLevel":1,"IsActive":false}]
|
||||||
|
|||||||
1
Download/contextdrops.json
Normal file
1
Download/contextdrops.json
Normal file
File diff suppressed because one or more lines are too long
1
Download/facefeaturesadd.txt
Normal file
1
Download/facefeaturesadd.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
,"FaceFeatures":""}
|
||||||
104
Download/gameconfigs.txt
Normal file
104
Download/gameconfigs.txt
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Key": "Gift.MaxDaily",
|
||||||
|
"Value": "100",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Gift.Falloff",
|
||||||
|
"Value": "1",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Gift.DropChance",
|
||||||
|
"Value": "100",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "UseHeartbeatWebSocket",
|
||||||
|
"Value": "0",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Screens.ForceVerification",
|
||||||
|
"Value": "1",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Screens.ForceVerification",
|
||||||
|
"Value": "1",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "forceRegistration",
|
||||||
|
"Value": "0",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Creative.Query",
|
||||||
|
"Value": "#puzzle",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Creative.Title",
|
||||||
|
"Value": "PUZZLE",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Featured.Query",
|
||||||
|
"Value": "#featured",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Featured.Title",
|
||||||
|
"Value": "Featured",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Quests.Query",
|
||||||
|
"Value": "#quest",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Quests.Title",
|
||||||
|
"Value": "QUESTS",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Shooters.Query",
|
||||||
|
"Value": "#pvp #rro",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Shooters.Title",
|
||||||
|
"Value": "PVP",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Sports.Query",
|
||||||
|
"Value": "#sport",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Key": "Door.Sports.Title",
|
||||||
|
"Value": "SPORTS & PVP",
|
||||||
|
"StartTime": null,
|
||||||
|
"EndTime": null
|
||||||
|
}
|
||||||
|
]
|
||||||
1
Download/storefront2.txt
Normal file
1
Download/storefront2.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"StorefrontType":2,"NextUpdate":"2024-02-16T11:04:54.4129449-07:00","StoreItems":[{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":30000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"HAHA I can communicate via raw data","Tooltip":"your balls are mine now, raw data geek","AvatarItemDesc":"274cb9b2-2f59-47ea-9a8d-a5b656d148c6,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":1,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":35000}],"GiftDrops":[{"GiftDropId":1,"FriendlyName":"anal sex","Tooltip":"with the cum","AvatarItemDesc":"2c679f89-c76e-4cfb-94e9-448c8fd44d55,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":2,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":10000}],"GiftDrops":[{"GiftDropId":2,"FriendlyName":"I'm laughing so hard, some may say","Tooltip":"Bawling (at Two FootWear Coridors, now in September 2018's Play Menu!)","AvatarItemDesc":"50c9c6f8-2963-4ef3-95d5-e999a898269f,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":15000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Bishop Hair","Tooltip":"","AvatarItemDesc":"b861e5f3-fc6d-43b3-9861-c1b45cb493a8,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":4,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":4,"FriendlyName":"Bishop Shirt","Tooltip":"","AvatarItemDesc":"6930ce13-4be4-4ab9-9817-667bd261ffc3,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":5,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":5,"FriendlyName":"Bishop Gloves","Tooltip":"","AvatarItemDesc":"abc25091-ed5f-4c72-9364-fffeef1bc239,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":30000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Saija Helmet","Tooltip":"","AvatarItemDesc":"274cb9b2-2f59-47ea-9a8d-a5b656d148c6,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":1,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":35000}],"GiftDrops":[{"GiftDropId":1,"FriendlyName":"Saija Shirt","Tooltip":"","AvatarItemDesc":"2c679f89-c76e-4cfb-94e9-448c8fd44d55,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":2,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":10000}],"GiftDrops":[{"GiftDropId":2,"FriendlyName":"Saija Gloves","Tooltip":"","AvatarItemDesc":"50c9c6f8-2963-4ef3-95d5-e999a898269f,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":0,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":15000}],"GiftDrops":[{"GiftDropId":0,"FriendlyName":"Bishop Hair","Tooltip":"","AvatarItemDesc":"b861e5f3-fc6d-43b3-9861-c1b45cb493a8,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":4,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":4,"FriendlyName":"Bishop Shirt","Tooltip":"","AvatarItemDesc":"6930ce13-4be4-4ab9-9817-667bd261ffc3,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]},{"PurchasableItemId":5,"Type":0,"IsFeatured":false,"Prices":[{"CurrencyType":2,"Price":20000}],"GiftDrops":[{"GiftDropId":5,"FriendlyName":"Bishop Gloves","Tooltip":"","AvatarItemDesc":"abc25091-ed5f-4c72-9364-fffeef1bc239,,,","ConsumableItemDesc":"","EquipmentPrefabName":"","EquipmentModificationGuid":"","Rarity":50,"IsQuery":false,"Unique":false,"Level":50,"Context":100010}]}]}
|
||||||
@@ -1 +1 @@
|
|||||||
0.2
|
0.6.95
|
||||||
|
|||||||
150
GameSessions.cs
150
GameSessions.cs
@@ -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,33 +12,40 @@ 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)
|
||||||
{
|
{
|
||||||
bool sandboxmode = false;
|
long? creatorid = 1243409L;
|
||||||
|
long gamesessionid = long.Parse(start.Program.version + "1");
|
||||||
|
Console.WriteLine("OpenRec GameSession Room");
|
||||||
GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRandomRequest>(jsonData);
|
GameSessions.JoinRandomRequest joinRandomRequest = JsonConvert.DeserializeObject<GameSessions.JoinRandomRequest>(jsonData);
|
||||||
if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Enabled")
|
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
|
||||||
{
|
{
|
||||||
sandboxmode = true;
|
gamesessionid = new Random().Next(0, 99);
|
||||||
}
|
}
|
||||||
|
if (start.Program.version == "2017")
|
||||||
{
|
{
|
||||||
Config.localGameSession = new GameSessions.SessionInstance
|
creatorid = (long?)APIServer.CachedPlayerID;
|
||||||
{
|
|
||||||
GameSessionId = 2018L,
|
|
||||||
RegionId = "us",
|
|
||||||
RoomId = joinRandomRequest.ActivityLevelIds[0],
|
|
||||||
RecRoomId = null,
|
|
||||||
EventId = null,
|
|
||||||
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
|
||||||
Name = "OpenRec",
|
|
||||||
ActivityLevelId = joinRandomRequest.ActivityLevelIds[0],
|
|
||||||
Private = false,
|
|
||||||
Sandbox = sandboxmode,
|
|
||||||
SupportsScreens = true,
|
|
||||||
SupportsVR = true,
|
|
||||||
GameInProgress = false,
|
|
||||||
MaxCapacity = 20,
|
|
||||||
IsFull = false
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
if (start.Program.bannedflag == true)
|
||||||
|
{
|
||||||
|
gamesessionid = 100L;
|
||||||
|
}
|
||||||
|
Config.localGameSession = new GameSessions.SessionInstance
|
||||||
|
{
|
||||||
|
GameSessionId = gamesessionid,
|
||||||
|
RegionId = "us",
|
||||||
|
RoomId = joinRandomRequest.ActivityLevelIds[0],
|
||||||
|
RecRoomId = null,
|
||||||
|
EventId = null,
|
||||||
|
CreatorPlayerId = creatorid,
|
||||||
|
Name = "OpenRec Room",
|
||||||
|
ActivityLevelId = joinRandomRequest.ActivityLevelIds[0],
|
||||||
|
Private = false,
|
||||||
|
Sandbox = false,
|
||||||
|
SupportsScreens = true,
|
||||||
|
SupportsVR = true,
|
||||||
|
GameInProgress = false,
|
||||||
|
MaxCapacity = 20,
|
||||||
|
IsFull = false
|
||||||
|
};
|
||||||
|
|
||||||
return JsonConvert.SerializeObject(new GameSessions.JoinResult
|
return JsonConvert.SerializeObject(new GameSessions.JoinResult
|
||||||
{
|
{
|
||||||
@@ -51,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
|
||||||
@@ -61,30 +69,35 @@ 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)
|
||||||
{
|
{
|
||||||
Console.WriteLine("[API][GameSession] Creating Room...");
|
long gamesessionid = 20161L;
|
||||||
GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData);
|
Console.WriteLine("OpenRec GameSession Custom Room");
|
||||||
|
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Enabled")
|
||||||
{
|
{
|
||||||
Config.localGameSession = new GameSessions.SessionInstance
|
gamesessionid = new Random().Next(0, 99);
|
||||||
{
|
|
||||||
GameSessionId = 2017L,
|
|
||||||
RegionId = "us",
|
|
||||||
RoomId = createRequest.ActivityLevelIds,
|
|
||||||
RecRoomId = null,
|
|
||||||
EventId = null,
|
|
||||||
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
|
||||||
Name = "Custom Room",
|
|
||||||
ActivityLevelId = createRequest.ActivityLevelIds,
|
|
||||||
Private = false,
|
|
||||||
Sandbox = createRequest.IsSandbox,
|
|
||||||
SupportsScreens = true,
|
|
||||||
SupportsVR = true,
|
|
||||||
GameInProgress = false,
|
|
||||||
MaxCapacity = 20,
|
|
||||||
IsFull = false
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
if (start.Program.bannedflag == true)
|
||||||
|
{
|
||||||
|
gamesessionid = 100L;
|
||||||
|
}
|
||||||
|
GameSessions.CreateRequest createRequest = JsonConvert.DeserializeObject<GameSessions.CreateRequest>(jsonData);
|
||||||
|
Config.localGameSession = new GameSessions.SessionInstance
|
||||||
|
{
|
||||||
|
GameSessionId = gamesessionid,
|
||||||
|
RegionId = "us",
|
||||||
|
RoomId = createRequest.ActivityLevelId,
|
||||||
|
RecRoomId = null,
|
||||||
|
EventId = null,
|
||||||
|
CreatorPlayerId = (long?)APIServer.CachedPlayerID,
|
||||||
|
Name = "OpenRec Custom Room",
|
||||||
|
ActivityLevelId = createRequest.ActivityLevelId,
|
||||||
|
Private = false,
|
||||||
|
Sandbox = true,
|
||||||
|
SupportsScreens = true,
|
||||||
|
SupportsVR = true,
|
||||||
|
GameInProgress = false,
|
||||||
|
MaxCapacity = 20,
|
||||||
|
IsFull = false
|
||||||
|
};
|
||||||
return JsonConvert.SerializeObject(new GameSessions.JoinResult
|
return JsonConvert.SerializeObject(new GameSessions.JoinResult
|
||||||
{
|
{
|
||||||
Result = 0,
|
Result = 0,
|
||||||
@@ -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
|
||||||
@@ -269,13 +282,52 @@ namespace gamesessions2018
|
|||||||
public GameSessions.RegionPing[] RegionPings { get; set; }
|
public GameSessions.RegionPing[] RegionPings { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class JoinRoomRequest2
|
||||||
|
{
|
||||||
|
// Token: 0x17000022 RID: 34
|
||||||
|
// (get) Token: 0x06000060 RID: 96 RVA: 0x00002345 File Offset: 0x00000545
|
||||||
|
// (set) Token: 0x06000061 RID: 97 RVA: 0x0000234D File Offset: 0x0000054D
|
||||||
|
public ulong[] ExpectedPlayerIds { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000023 RID: 35
|
||||||
|
// (get) Token: 0x06000062 RID: 98 RVA: 0x00002356 File Offset: 0x00000556
|
||||||
|
// (set) Token: 0x06000063 RID: 99 RVA: 0x0000235E File Offset: 0x0000055E
|
||||||
|
public GameSessions.RegionPing[] RegionPings { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000024 RID: 36
|
||||||
|
// (get) Token: 0x06000064 RID: 100 RVA: 0x00002367 File Offset: 0x00000567
|
||||||
|
// (set) Token: 0x06000065 RID: 101 RVA: 0x0000236F File Offset: 0x0000056F
|
||||||
|
public string[] RoomTags { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000025 RID: 37
|
||||||
|
// (get) Token: 0x06000066 RID: 102 RVA: 0x00002378 File Offset: 0x00000578
|
||||||
|
// (set) Token: 0x06000067 RID: 103 RVA: 0x00002380 File Offset: 0x00000580
|
||||||
|
public string RoomName { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000026 RID: 38
|
||||||
|
// (get) Token: 0x06000068 RID: 104 RVA: 0x00002389 File Offset: 0x00000589
|
||||||
|
// (set) Token: 0x06000069 RID: 105 RVA: 0x00002391 File Offset: 0x00000591
|
||||||
|
public string SceneName { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000027 RID: 39
|
||||||
|
// (get) Token: 0x0600006A RID: 106 RVA: 0x0000239A File Offset: 0x0000059A
|
||||||
|
// (set) Token: 0x0600006B RID: 107 RVA: 0x000023A2 File Offset: 0x000005A2
|
||||||
|
public int AdditionalPlayerJoinMode { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000028 RID: 40
|
||||||
|
// (get) Token: 0x0600006C RID: 108 RVA: 0x000023AB File Offset: 0x000005AB
|
||||||
|
// (set) Token: 0x0600006D RID: 109 RVA: 0x000023B3 File Offset: 0x000005B3
|
||||||
|
public bool Private { get; set; }
|
||||||
|
}
|
||||||
|
// Token: 0x02000025 RID: 37
|
||||||
|
|
||||||
// Token: 0x02000025 RID: 37
|
// Token: 0x02000025 RID: 37
|
||||||
public class CreateRequest
|
public class CreateRequest
|
||||||
{
|
{
|
||||||
// Token: 0x17000055 RID: 85
|
// Token: 0x17000055 RID: 85
|
||||||
// (get) Token: 0x060000F2 RID: 242 RVA: 0x0000271C File Offset: 0x0000091C
|
// (get) Token: 0x060000F2 RID: 242 RVA: 0x0000271C File Offset: 0x0000091C
|
||||||
// (set) Token: 0x060000F3 RID: 243 RVA: 0x00002724 File Offset: 0x00000924
|
// (set) Token: 0x060000F3 RID: 243 RVA: 0x00002724 File Offset: 0x00000924
|
||||||
public string ActivityLevelIds { get; set; }
|
public string ActivityLevelId { get; set; }
|
||||||
|
|
||||||
// Token: 0x17000056 RID: 86
|
// Token: 0x17000056 RID: 86
|
||||||
// (get) Token: 0x060000F4 RID: 244 RVA: 0x0000272D File Offset: 0x0000092D
|
// (get) Token: 0x060000F4 RID: 244 RVA: 0x0000272D File Offset: 0x0000092D
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ namespace api2018
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
61
GetOrCreates.cs
Normal file
61
GetOrCreates.cs
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace api2017
|
||||||
|
{
|
||||||
|
// Token: 0x0200003A RID: 58
|
||||||
|
internal class getorcreate
|
||||||
|
{
|
||||||
|
public static string GetOrCreate(ulong userid)
|
||||||
|
{
|
||||||
|
int level = int.Parse(File.ReadAllText("SaveData\\Profile\\level.txt"));
|
||||||
|
string name = File.ReadAllText("SaveData\\Profile\\username.txt");
|
||||||
|
return JsonConvert.SerializeObject(new Profiles
|
||||||
|
{
|
||||||
|
Id = userid,
|
||||||
|
Username = name,
|
||||||
|
DisplayName = name,
|
||||||
|
XP = 48,
|
||||||
|
Level = level,
|
||||||
|
Reputation = 0,
|
||||||
|
Verified = true,
|
||||||
|
Developer = true,
|
||||||
|
HasEmail = true,
|
||||||
|
CanReceiveInvites = false,
|
||||||
|
ProfileImageName = name,
|
||||||
|
HasBirthday = true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Token: 0x06000197 RID: 407 RVA: 0x0000550C File Offset: 0x0000370C
|
||||||
|
public static string GetOrCreateArray(ulong userid)
|
||||||
|
{
|
||||||
|
int level = int.Parse(File.ReadAllText("SaveData\\Profile\\level.txt"));
|
||||||
|
string name = File.ReadAllText("SaveData\\Profile\\username.txt");
|
||||||
|
return JsonConvert.SerializeObject(new Profiles[]
|
||||||
|
{
|
||||||
|
new Profiles
|
||||||
|
{
|
||||||
|
Id = userid,
|
||||||
|
Username = name,
|
||||||
|
DisplayName = name,
|
||||||
|
XP = 48,
|
||||||
|
Level = level,
|
||||||
|
Reputation = 0,
|
||||||
|
Verified = true,
|
||||||
|
Developer = true,
|
||||||
|
HasEmail = true,
|
||||||
|
CanReceiveInvites = false,
|
||||||
|
ProfileImageName = name,
|
||||||
|
JuniorProfile = false,
|
||||||
|
ForceJuniorImages = false,
|
||||||
|
HasBirthday = true
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x06000199 RID: 409 RVA: 0x00002BBE File Offset: 0x00000DBE
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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,18 +30,58 @@ namespace server
|
|||||||
this.listener.Prefixes.Add("http://localhost:20182/");
|
this.listener.Prefixes.Add("http://localhost:20182/");
|
||||||
for (; ; )
|
for (; ; )
|
||||||
{
|
{
|
||||||
|
|
||||||
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 if (rawUrl.StartsWith("//data/"))
|
||||||
|
{
|
||||||
|
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: ");
|
||||||
@@ -49,19 +89,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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Launcher/ProfileComputer_Background01.png
Normal file
BIN
Launcher/ProfileComputer_Background01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 216 KiB |
BIN
Launcher/Untitled.png
Normal file
BIN
Launcher/Untitled.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 610 B |
7
Launcher/changelog.txt
Normal file
7
Launcher/changelog.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
hello beta testers!
|
||||||
|
please press start openrec at the bottom
|
||||||
|
|
||||||
|
and just see if it works with 2016 pls
|
||||||
|
|
||||||
|
thanks@!!
|
||||||
|
-recroom2016
|
||||||
1
Launcher/download.txt
Normal file
1
Launcher/download.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
https://cdn.discordapp.com/attachments/982455350819188816/982460494759751680/OpenRec.exe
|
||||||
12
ModerationBlockDetails.cs
Normal file
12
ModerationBlockDetails.cs
Normal 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
71
ModernRooms.cs
Normal 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; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
100
NameServer.cs
100
NameServer.cs
@@ -3,20 +3,24 @@ 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
|
||||||
{
|
{
|
||||||
// Token: 0x02000050 RID: 80
|
// Token: 0x02000050 RID: 80
|
||||||
internal class NameServer
|
internal class NameServer
|
||||||
{
|
{
|
||||||
|
|
||||||
// Token: 0x06000227 RID: 551 RVA: 0x00006D1C File Offset: 0x00004F1C
|
// Token: 0x06000227 RID: 551 RVA: 0x00006D1C File Offset: 0x00004F1C
|
||||||
public NameServer()
|
public NameServer()
|
||||||
{
|
{
|
||||||
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();
|
||||||
}
|
new Thread(new ThreadStart(this.StartListen2)).Start();
|
||||||
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine("An Exception Occurred while Listening :" + ex.ToString());
|
Console.WriteLine("An Exception Occurred while Listening :" + ex.ToString());
|
||||||
@@ -26,34 +30,78 @@ namespace server
|
|||||||
// Token: 0x06000228 RID: 552 RVA: 0x00006D84 File Offset: 0x00004F84
|
// Token: 0x06000228 RID: 552 RVA: 0x00006D84 File Offset: 0x00004F84
|
||||||
private void StartListen()
|
private void StartListen()
|
||||||
{
|
{
|
||||||
|
//nameserver is ONLY for 2018
|
||||||
this.listener.Prefixes.Add("http://localhost:20181/");
|
this.listener.Prefixes.Add("http://localhost:20181/");
|
||||||
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\"}";
|
NSData data = new NSData()
|
||||||
Console.WriteLine("API Response: " + s);
|
{
|
||||||
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
API = "http://localhost:2018",
|
||||||
response.ContentLength64 = (long)bytes.Length;
|
Notifications = "http://localhost:20161",
|
||||||
Stream outputStream = response.OutputStream;
|
Images = "http://localhost:20182"
|
||||||
outputStream.Write(bytes, 0, bytes.Length);
|
};
|
||||||
Thread.Sleep(400);
|
s = JsonConvert.SerializeObject(data);
|
||||||
outputStream.Close();
|
Console.WriteLine("API Response: " + s);
|
||||||
this.listener.Stop();
|
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
||||||
}
|
response.ContentLength64 = (long)bytes.Length;
|
||||||
|
Stream outputStream = response.OutputStream;
|
||||||
|
outputStream.Write(bytes, 0, bytes.Length);
|
||||||
|
Thread.Sleep(400);
|
||||||
|
outputStream.Close();
|
||||||
|
this.listener.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartListen2()
|
||||||
|
{
|
||||||
|
//nameserver is ONLY for 2018
|
||||||
|
this.listener2.Prefixes.Add("http://localhost:56/");
|
||||||
|
for (; ; )
|
||||||
|
{
|
||||||
|
this.listener2.Start();
|
||||||
|
Console.WriteLine("[NameServer2.cs] is listening.");
|
||||||
|
HttpListenerContext context = this.listener2.GetContext();
|
||||||
|
HttpListenerRequest request = context.Request;
|
||||||
|
HttpListenerResponse response = context.Response;
|
||||||
|
string rawUrl = request.RawUrl;
|
||||||
|
string s = "";
|
||||||
|
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);
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(s);
|
||||||
|
response.ContentLength64 = (long)bytes.Length;
|
||||||
|
Stream outputStream = response.OutputStream;
|
||||||
|
outputStream.Write(bytes, 0, bytes.Length);
|
||||||
|
Thread.Sleep(500);
|
||||||
|
outputStream.Close();
|
||||||
|
this.listener2.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
||||||
|
public static string BlankResponse = "";
|
||||||
|
public class NSData
|
||||||
|
{
|
||||||
|
public string API { get; set; }
|
||||||
|
public string Notifications { get; set; }
|
||||||
|
public string Images { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
|
|
||||||
|
|
||||||
public static string BlankResponse = "";
|
|
||||||
|
|
||||||
|
|
||||||
// Token: 0x04000192 RID: 402
|
// Token: 0x04000192 RID: 402
|
||||||
private HttpListener listener = new HttpListener();
|
private HttpListener listener = new HttpListener();
|
||||||
|
|
||||||
|
private HttpListener listener2 = new HttpListener();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
110
Notification2018.cs
Normal 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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,9 +2,23 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<ApplicationIcon>icon2.ico</ApplicationIcon>
|
||||||
|
<AssemblyName>OpenRec</AssemblyName>
|
||||||
|
<RootNamespace>OpenRec</RootNamespace>
|
||||||
|
<Authors>recroom2016</Authors>
|
||||||
|
<PackageIcon>icon2.png</PackageIcon>
|
||||||
|
<PackageIconUrl />
|
||||||
|
<RepositoryUrl>https://github.com/recroom2016/OpenRec</RepositoryUrl>
|
||||||
|
<PackageProjectUrl>https://discord.gg/daC8QUhnFP</PackageProjectUrl>
|
||||||
|
<Company>OpenRec</Company>
|
||||||
|
<Version>0.4.0</Version>
|
||||||
</PropertyGroup>
|
</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>
|
||||||
@@ -15,4 +29,11 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="C:\Users\Tucker\Downloads\icon2.png">
|
||||||
|
<Pack>True</Pack>
|
||||||
|
<PackagePath></PackagePath>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ 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", "{C754033C-FE82-4FF2-9189-A7EE0E2E5974}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|||||||
36
PlatformLogin.cs
Normal file
36
PlatformLogin.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using System;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace api2017
|
||||||
|
{
|
||||||
|
// Token: 0x02000032 RID: 50
|
||||||
|
internal class PlatformLogin
|
||||||
|
{
|
||||||
|
// Token: 0x17000070 RID: 112
|
||||||
|
// (get) Token: 0x06000137 RID: 311 RVA: 0x00002905 File Offset: 0x00000B05
|
||||||
|
// (set) Token: 0x06000138 RID: 312 RVA: 0x0000290D File Offset: 0x00000B0D
|
||||||
|
public string Token { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000071 RID: 113
|
||||||
|
// (get) Token: 0x06000139 RID: 313 RVA: 0x00002916 File Offset: 0x00000B16
|
||||||
|
// (set) Token: 0x0600013A RID: 314 RVA: 0x0000291E File Offset: 0x00000B1E
|
||||||
|
public ulong PlayerId { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x17000072 RID: 114
|
||||||
|
// (get) Token: 0x0600013B RID: 315 RVA: 0x00002927 File Offset: 0x00000B27
|
||||||
|
// (set) Token: 0x0600013C RID: 316 RVA: 0x0000292F File Offset: 0x00000B2F
|
||||||
|
public string Error { get; set; }
|
||||||
|
|
||||||
|
// Token: 0x0600013D RID: 317 RVA: 0x00005114 File Offset: 0x00003314
|
||||||
|
public static string v4(ulong userid)
|
||||||
|
{
|
||||||
|
PlatformLogin value = new PlatformLogin
|
||||||
|
{
|
||||||
|
Token = "j3923mHJG032jew",
|
||||||
|
PlayerId = userid,
|
||||||
|
Error = ""
|
||||||
|
};
|
||||||
|
return JsonConvert.SerializeObject(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
36
ProfieStealer.cs
Normal file
36
ProfieStealer.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
Profiles.cs
18
Profiles.cs
@@ -2,12 +2,10 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace api2016
|
namespace api2017
|
||||||
|
|
||||||
{
|
{
|
||||||
class Profiles
|
class Profiles
|
||||||
{
|
{
|
||||||
|
|
||||||
public ulong Id { get; set; }
|
public ulong Id { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public string DisplayName { get; set; }
|
public string DisplayName { get; set; }
|
||||||
@@ -15,27 +13,13 @@ namespace api2016
|
|||||||
public int Level { get; set; }
|
public int Level { get; set; }
|
||||||
public int Reputation { get; set; }
|
public int Reputation { get; set; }
|
||||||
public bool Verified { get; set; }
|
public bool Verified { get; set; }
|
||||||
|
|
||||||
public bool Developer { get; set; }
|
public bool Developer { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool HasEmail { get; set; }
|
public bool HasEmail { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool CanReceiveInvites { get; set; }
|
public bool CanReceiveInvites { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public string ProfileImageName { get; set; }
|
public string ProfileImageName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool JuniorProfile { get; set; }
|
public bool JuniorProfile { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool ForceJuniorImages { get; set; }
|
public bool ForceJuniorImages { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool PendingJunior { get; set; }
|
public bool PendingJunior { get; set; }
|
||||||
|
|
||||||
public bool HasBirthday { get; set; }
|
public bool HasBirthday { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
297
Program.cs
297
Program.cs
@@ -5,62 +5,180 @@ 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
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
static void Main(string[] args)
|
static void Main()
|
||||||
{
|
{
|
||||||
|
//startup for openrec
|
||||||
|
|
||||||
Setup.setup();
|
Setup.setup();
|
||||||
goto Start;
|
goto Tutorial;
|
||||||
|
|
||||||
Start:
|
Tutorial:
|
||||||
Console.WriteLine("OpenRec - Open source RecNet server software. (Version: " + version + ")");
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.Clear();
|
||||||
|
goto Start;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
goto Start;
|
||||||
|
}
|
||||||
|
|
||||||
|
Start:
|
||||||
|
Console.Title = "OpenRec Startup Menu";
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
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") + Environment.NewLine);
|
Console.WriteLine("This version of OpenRec is outdated. We recommend you install the latest version, OpenRec " + new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/version.txt"));
|
||||||
}
|
}
|
||||||
Console.WriteLine("1) Change Settings" + Environment.NewLine + "2) Modify Profile" + Environment.NewLine + "3) Start Server");
|
|
||||||
|
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.WriteLine(new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/changelog.txt"));
|
||||||
|
Console.WriteLine("Press any key to continue:");
|
||||||
|
Console.ReadKey();
|
||||||
|
Console.Clear();
|
||||||
|
goto Start;
|
||||||
|
}
|
||||||
|
if (readline == "2")
|
||||||
{
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
goto Settings;
|
goto Settings;
|
||||||
|
|
||||||
Settings:
|
Settings:
|
||||||
Console.WriteLine("1) Sandbox Mode: " + File.ReadAllText("SaveData\\App\\sandbox.txt") + Environment.NewLine + "2) Go Back");
|
Console.Title = "OpenRec Settings Menu";
|
||||||
|
Console.WriteLine("(1) Private Rooms: " + File.ReadAllText("SaveData\\App\\privaterooms.txt") + Environment.NewLine + "(2) 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")
|
||||||
{
|
{
|
||||||
if (File.ReadAllText("SaveData\\App\\sandbox.txt") == "Disabled")
|
if (File.ReadAllText("SaveData\\App\\privaterooms.txt") == "Disabled")
|
||||||
{
|
{
|
||||||
File.WriteAllText("SaveData\\App\\sandbox.txt", "Enabled");
|
File.WriteAllText("SaveData\\App\\privaterooms.txt", "Enabled");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
File.WriteAllText("SaveData\\App\\sandbox.txt", "Disabled");
|
File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled");
|
||||||
}
|
}
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
Console.WriteLine("Success!");
|
Console.WriteLine("Success!");
|
||||||
goto Settings;
|
goto Settings;
|
||||||
}
|
}
|
||||||
else if (readline4 == "2")
|
else if (readline4 == "2")
|
||||||
|
{
|
||||||
|
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
|
||||||
|
{
|
||||||
|
text = new WebClient().DownloadString("https://rooms.rec.net/rooms?name=" + roomname + "&include=297");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Console.Clear();
|
||||||
|
Console.WriteLine("Failed to download room...");
|
||||||
|
goto Settings;
|
||||||
|
}
|
||||||
|
CustomRooms.RoomDecode(text);
|
||||||
|
Console.Clear();
|
||||||
|
Console.WriteLine("Success!");
|
||||||
|
goto Settings;
|
||||||
|
}
|
||||||
|
else if (readline4 == "3")
|
||||||
|
{
|
||||||
|
File.Delete("SaveData\\avatar.txt");
|
||||||
|
File.Delete("SaveData\\avataritems.txt");
|
||||||
|
File.Delete("SaveData\\equipment.txt");
|
||||||
|
File.Delete("SaveData\\consumables.txt");
|
||||||
|
File.Delete("SaveData\\gameconfigs.txt");
|
||||||
|
File.Delete("SaveData\\storefronts2.txt");
|
||||||
|
File.Delete("SaveData\\Profile\\username.txt");
|
||||||
|
File.Delete("SaveData\\Profile\\level.txt");
|
||||||
|
File.Delete("SaveData\\Profile\\userid.txt");
|
||||||
|
File.Delete("SaveData\\myrooms.txt");
|
||||||
|
File.Delete("SaveData\\settings.txt");
|
||||||
|
File.Delete("SaveData\\App\\privaterooms.txt");
|
||||||
|
File.Delete("SaveData\\App\\facefeaturesadd.txt");
|
||||||
|
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!");
|
||||||
|
Setup.setup();
|
||||||
|
goto Settings;
|
||||||
|
}
|
||||||
|
else if (readline4 == "4")
|
||||||
{
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
goto Start;
|
goto Start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (readline == "2")
|
if (readline == "3")
|
||||||
{
|
{
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
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")
|
||||||
{
|
{
|
||||||
@@ -70,12 +188,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")
|
||||||
{
|
{
|
||||||
@@ -85,7 +203,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");
|
||||||
@@ -93,7 +211,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")
|
||||||
{
|
{
|
||||||
@@ -104,6 +222,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)
|
||||||
{
|
{
|
||||||
@@ -113,9 +232,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;
|
||||||
@@ -129,48 +285,123 @@ 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 == "3")
|
if (readline == "4")
|
||||||
{
|
{
|
||||||
Console.WriteLine("Please select the version of RecRoom the server should host: (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")
|
||||||
{
|
{
|
||||||
version = "2018";
|
Console.WriteLine("May, July or September (SEPTEMBER MIGHT NOT WORK) 2018: (M, J, S)");
|
||||||
Console.Clear();
|
string readline3 = Console.ReadLine();
|
||||||
Console.WriteLine("Version Selected: " + start.Program.version);
|
if ((readline3 == "M") || (readline3 == "m"))
|
||||||
new NameServer();
|
{
|
||||||
new ImageServer();
|
Console.Title = "OpenRec May 30th 2018";
|
||||||
new APIServer();
|
version = "2018";
|
||||||
new WebSocket();
|
Console.Clear();
|
||||||
|
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 ImageServer();
|
||||||
|
new APIServer();
|
||||||
|
new WebSocket();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Console.WriteLine(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static string msg = "//This is the server sending and recieving data from recroom." + Environment.NewLine + "//Ignore this if you don't know what this means." + Environment.NewLine + "//Please start up the build now.";
|
||||||
public static string version = "0.3";
|
public static string version = "";
|
||||||
|
public static string appversion = "0.6.9";
|
||||||
|
public static bool bannedflag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
17
README.md
Normal file
17
README.md
Normal 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
|
||||||
23
Sanitize.cs
Normal file
23
Sanitize.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
using System;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace api
|
||||||
|
{
|
||||||
|
// Token: 0x02000081 RID: 129
|
||||||
|
public class Sanitize
|
||||||
|
{
|
||||||
|
public static Sanitize.m001 GetSanitize()
|
||||||
|
{
|
||||||
|
return new m001
|
||||||
|
{
|
||||||
|
IsPure = true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed class m001
|
||||||
|
{
|
||||||
|
public bool IsPure { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -106,7 +106,7 @@ namespace api
|
|||||||
new Setting
|
new Setting
|
||||||
{
|
{
|
||||||
Key = "VoiceChat",
|
Key = "VoiceChat",
|
||||||
Value = 0f.ToString()
|
Value = 1f.ToString()
|
||||||
},
|
},
|
||||||
new Setting
|
new Setting
|
||||||
{
|
{
|
||||||
|
|||||||
66
Setup.cs
66
Setup.cs
@@ -8,11 +8,22 @@ namespace start
|
|||||||
{
|
{
|
||||||
class Setup
|
class Setup
|
||||||
{
|
{
|
||||||
|
public static bool firsttime = false;
|
||||||
public static void setup()
|
public static void setup()
|
||||||
{
|
{
|
||||||
Console.WriteLine("Setting up...");
|
//sets up all the important files so openrec doesnt crash like lame vaultserver xD
|
||||||
|
Console.WriteLine("Setting up... (May take a minute to download everything.)");
|
||||||
Directory.CreateDirectory("SaveData\\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"));
|
||||||
@@ -25,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"));
|
||||||
@@ -33,14 +48,30 @@ namespace start
|
|||||||
{
|
{
|
||||||
File.WriteAllText("SaveData\\consumables.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/consumables.txt"));
|
File.WriteAllText("SaveData\\consumables.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/consumables.txt"));
|
||||||
}
|
}
|
||||||
|
if (!(File.Exists("SaveData\\gameconfigs.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\gameconfigs.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/gameconfigs.txt"));
|
||||||
|
}
|
||||||
|
if (!(File.Exists("SaveData\\storefronts2.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\storefronts2.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/storefront2.txt"));
|
||||||
|
}
|
||||||
|
if (!(File.Exists("SaveData\\baserooms.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\baserooms.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/baserooms.txt"));
|
||||||
|
}
|
||||||
if (!(File.Exists("SaveData\\Profile\\username.txt")))
|
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")))
|
||||||
{
|
{
|
||||||
File.WriteAllText("SaveData\\Profile\\level.txt", "10");
|
File.WriteAllText("SaveData\\Profile\\level.txt", "10");
|
||||||
}
|
}
|
||||||
|
if (!(File.Exists("SaveData\\Profile\\userid.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\Profile\\userid.txt", "10000000");
|
||||||
|
}
|
||||||
if (!(File.Exists("SaveData\\myrooms.txt")))
|
if (!(File.Exists("SaveData\\myrooms.txt")))
|
||||||
{
|
{
|
||||||
File.WriteAllText("SaveData\\myrooms.txt", "[]");
|
File.WriteAllText("SaveData\\myrooms.txt", "[]");
|
||||||
@@ -49,14 +80,37 @@ 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\\App\\sandbox.txt")))
|
|
||||||
{
|
|
||||||
File.WriteAllText("SaveData\\App\\sandbox.txt", "Disabled");
|
|
||||||
}
|
|
||||||
if (!(File.Exists("SaveData\\profileimage.png")))
|
if (!(File.Exists("SaveData\\profileimage.png")))
|
||||||
{
|
{
|
||||||
File.WriteAllBytes("SaveData\\profileimage.png", new WebClient().DownloadData("https://github.com/OpenRecRoom/OpenRec/raw/main/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")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\App\\privaterooms.txt", "Disabled");
|
||||||
|
}
|
||||||
|
if (!(File.Exists("SaveData\\App\\showopenrecinfo.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\App\\showopenrecinfo.txt", "Enabled");
|
||||||
|
}
|
||||||
|
if (!(File.Exists("SaveData\\App\\facefeaturesadd.txt")))
|
||||||
|
{
|
||||||
|
File.WriteAllText("SaveData\\App\\facefeaturesadd.txt", new WebClient().DownloadString("https://raw.githubusercontent.com/recroom2016/OpenRec/master/Download/facefeaturesadd.txt"));
|
||||||
|
}
|
||||||
|
goto tryagain;
|
||||||
|
|
||||||
|
tryagain:
|
||||||
|
if (!File.Exists("SaveData\\Rooms\\Downloaded\\roomname.txt"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
api.CustomRooms.RoomGet("gogo9");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
goto tryagain;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Console.WriteLine("Done!");
|
Console.WriteLine("Done!");
|
||||||
Console.Clear();
|
Console.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
1
Update/banned.txt
Normal file
1
Update/banned.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[{"UserId":487454,"Reason":"Banned."}, {"UserId":4701796,"Reason":"Banned."}, {"UserId":1623123,"Reason":"Banned."}, {"UserId":1423224,"Reason":"Banned."}]
|
||||||
11
Update/builds.txt
Normal file
11
Update/builds.txt
Normal 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
1
Update/dormslideshow.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"Name":"Check Out All The Rooms Today!","FeaturedRooms":[{"RoomName":"Home","RoomId":1,"ImageName":"DefaultRoomImage.jpg"},{"RoomName":"RecCenter","RoomId":2,"ImageName":"22eefa3219f046fd9e2090814650ede3"},{"RoomName":"3DCharades","RoomId":3,"ImageName":"a446d5808ed14401a27f53e631c31b93.png"},{"RoomName":"DiscGolfLake","RoomId":4,"ImageName":"52cf6c3271894ecd95fb0c9b2d2209a7"},{"RoomName":"DiscGolfPropulsion","RoomId":5,"ImageName":"fc9a1acc47514b64a30d199d5ccdeca9"},{"RoomName":"Dodgeball","RoomId":6,"ImageName":"6d5c494668784816bbc41d9b870e5003"},{"RoomName":"Paddleball","RoomId":7,"ImageName":"ffdca6ed8bd94631ac15e3e894acb6c6"},{"RoomName":"Paintball","RoomId":8,"ImageName":"93a53ced93a04f658795a87f4a4aab85"},{"RoomName":"GoldenTrophy","RoomId":13,"ImageName":"38e9d0d4eff94556a0b106508249dcf9"},{"RoomName":"TheRiseofJumbotron","RoomId":14,"ImageName":"51296f28105b48178708e389b6daf057"},{"RoomName":"CrimsonCauldron","RoomId":15,"ImageName":"3ab82779dff94d11920ebf38df249395"},{"RoomName":"IsleOfLostSkulls","RoomId":16,"ImageName":"45ad53aa002646d0ab3eb509b9f260ef"},{"RoomName":"Soccer","RoomId":17,"ImageName":"51c6f5ac5e6f4777b573e7e43f8a85ea"},{"RoomName":"LaserTag","RoomId":18,"ImageName":"c5a72193d6904811b2d0195a6deb3125"},{"RoomName":"RecRoyaleSquads","RoomId":20,"ImageName":"69fc525056014e39a435c4d2fdf2b887"},{"RoomName":"RecRoyaleSolos","RoomId":21,"ImageName":"f9e112bb67fb430d979e5ad6c2c116d4"},{"RoomName":"Lounge","RoomId":22,"ImageName":"3e8c2458f1e542ab8aa275e4083ee47a"},{"RoomName":"Park","RoomId":25,"ImageName":"79ee7af2532247f397867e48daa9d264.png"},{"RoomName":"QuestForDracula","RoomId":27,"ImageName":"d0df003353914adfaecdd23f428208b6"}]}
|
||||||
302
Update/hotrooms.txt
Normal file
302
Update/hotrooms.txt
Normal 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
4
Update/motd.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Welcome to OpenRec!
|
||||||
|
|
||||||
|
BTW IF YOU SEE THIS, SHUT UP
|
||||||
|
THANK YOU
|
||||||
23
Update/rcslideshow.txt
Normal file
23
Update/rcslideshow.txt
Normal 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
298
Vault2018CustomRooms.cs
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using vaultgamesesh;
|
||||||
|
|
||||||
|
namespace vaultgamesesh
|
||||||
|
{
|
||||||
|
|
||||||
|
internal sealed class c000099
|
||||||
|
{
|
||||||
|
// Token: 0x06000358 RID: 856 RVA: 0x0000B134 File Offset: 0x00009334
|
||||||
|
public static c000099.c00009c m00002f()
|
||||||
|
{
|
||||||
|
List<c00005d.c000062> list = new List<c00005d.c000062>();
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000050)
|
||||||
|
{
|
||||||
|
c00005d.c000062 item = new c00005d.c000062
|
||||||
|
{
|
||||||
|
RoomName = keyValuePair.Value.Room.Name,
|
||||||
|
RoomId = (long)((int)keyValuePair.Value.Room.RoomId),
|
||||||
|
ImageName = keyValuePair.Value.Room.ImageName
|
||||||
|
};
|
||||||
|
list.Add(item);
|
||||||
|
}
|
||||||
|
return new c000099.c00009c
|
||||||
|
{
|
||||||
|
Name = "Check Out All The Rooms Today!",
|
||||||
|
FeaturedRooms = list
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x06000359 RID: 857 RVA: 0x0000B204 File Offset: 0x00009404
|
||||||
|
public static List<c00005d.c000061> m000009()
|
||||||
|
{
|
||||||
|
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003b())
|
||||||
|
{
|
||||||
|
list.Add(keyValuePair.Value.Room);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0600035A RID: 858 RVA: 0x0000B268 File Offset: 0x00009468
|
||||||
|
public static List<c00005d.c000061> m000035()
|
||||||
|
{
|
||||||
|
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000024)
|
||||||
|
{
|
||||||
|
list.Add(keyValuePair.Value.Room);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0600035B RID: 859 RVA: 0x0000B2CC File Offset: 0x000094CC
|
||||||
|
public static List<c00005d.c000061> m000055()
|
||||||
|
{
|
||||||
|
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003a())
|
||||||
|
{
|
||||||
|
list.Add(keyValuePair.Value.Room);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0600035C RID: 860 RVA: 0x0000B330 File Offset: 0x00009530
|
||||||
|
public static List<c00005d.c000061> m000056(string p0)
|
||||||
|
{
|
||||||
|
string[] array = p0.Split(new char[]
|
||||||
|
{
|
||||||
|
' '
|
||||||
|
});
|
||||||
|
List<c00005d.c000061> list = new List<c00005d.c000061>();
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.m00003b())
|
||||||
|
{
|
||||||
|
c00005d.c000060 value = keyValuePair.Value;
|
||||||
|
bool flag = true;
|
||||||
|
foreach (string text in array)
|
||||||
|
{
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
if (text.StartsWith("#"))
|
||||||
|
{
|
||||||
|
bool flag2 = false;
|
||||||
|
foreach (c00005d.c000063 c in value.Tags)
|
||||||
|
{
|
||||||
|
if ("#" + c.Tag.ToLower() == text.ToLower())
|
||||||
|
{
|
||||||
|
flag2 = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!flag2)
|
||||||
|
{
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!value.Room.Name.ToLower().Contains(text.ToLower()))
|
||||||
|
{
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
list.Add(value.Room);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0600035D RID: 861 RVA: 0x0000B488 File Offset: 0x00009688
|
||||||
|
public static c00005d.c000060 m000057(ulong p0)
|
||||||
|
{
|
||||||
|
foreach (KeyValuePair<string, c00005d.c000060> keyValuePair in c00005d.f000024)
|
||||||
|
{
|
||||||
|
if (keyValuePair.Value.Room.RoomId == p0)
|
||||||
|
{
|
||||||
|
return keyValuePair.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0600035E RID: 862 RVA: 0x0000B4F8 File Offset: 0x000096F8
|
||||||
|
public static c000099.c00009b m00000a(string p0)
|
||||||
|
{
|
||||||
|
c000099.c00009b c00009b = new c000099.c00009b();
|
||||||
|
c000099.c00009a c00009a = JsonConvert.DeserializeObject<c000099.c00009a>(p0);
|
||||||
|
c00005d.c000060 c = c000099.m000057(c00009a.RoomId);
|
||||||
|
if (c == null)
|
||||||
|
{
|
||||||
|
c00009b.Result = (c000099.enum09d)2;
|
||||||
|
c00009b.RoomDetails = new c00005d.c000060();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
c00009b.Result = (c000099.enum09d)0;
|
||||||
|
c00009b.RoomDetails = c;
|
||||||
|
c00009b.RoomDetails.Room.Name = c00009a.Name;
|
||||||
|
ulong roomId = (ulong)((long)new Random().Next(100, 9999999));
|
||||||
|
c00009b.RoomDetails.Room.RoomId = roomId;
|
||||||
|
c00009b.RoomDetails.Room.IsAGRoom = false;
|
||||||
|
c00009b.RoomDetails.Scenes[0].IsSandbox = true;
|
||||||
|
c00009b.RoomDetails.Scenes[0].RoomId = roomId;
|
||||||
|
c00009b.RoomDetails.Scenes[0].DataBlobName = string.Empty;
|
||||||
|
c00009b.RoomDetails.Scenes[0].DataModifiedAt = DateTime.Now;
|
||||||
|
c00009b.RoomDetails.Room.CreatorPlayerId = server.APIServer.CachedPlayerID;
|
||||||
|
}
|
||||||
|
c00005d.m00003a().Add(c00009a.Name, c);
|
||||||
|
string text = c000004.m000007() + c00009b.RoomDetails.Room.Name;
|
||||||
|
if (!Directory.Exists(text))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(text);
|
||||||
|
}
|
||||||
|
File.WriteAllText(text + "\\RoomDetails.json", JsonConvert.SerializeObject(c00009b.RoomDetails));
|
||||||
|
return c00009b;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0200009A RID: 154
|
||||||
|
public sealed class c00009a
|
||||||
|
{
|
||||||
|
// Token: 0x17000105 RID: 261
|
||||||
|
// (get) Token: 0x06000360 RID: 864 RVA: 0x0000373A File Offset: 0x0000193A
|
||||||
|
// (set) Token: 0x06000361 RID: 865 RVA: 0x00003742 File Offset: 0x00001942
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00000a;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00000a = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000106 RID: 262
|
||||||
|
// (get) Token: 0x06000362 RID: 866 RVA: 0x0000374B File Offset: 0x0000194B
|
||||||
|
// (set) Token: 0x06000363 RID: 867 RVA: 0x00003753 File Offset: 0x00001953
|
||||||
|
public ulong RoomId
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000023;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000023 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040001DD RID: 477
|
||||||
|
private string f00000a;
|
||||||
|
|
||||||
|
// Token: 0x040001DE RID: 478
|
||||||
|
private ulong f000023;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0200009B RID: 155
|
||||||
|
public sealed class c00009b
|
||||||
|
{
|
||||||
|
// Token: 0x17000107 RID: 263
|
||||||
|
// (get) Token: 0x06000365 RID: 869 RVA: 0x0000375C File Offset: 0x0000195C
|
||||||
|
// (set) Token: 0x06000366 RID: 870 RVA: 0x00003764 File Offset: 0x00001964
|
||||||
|
public c000099.enum09d Result
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000042;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000042 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000108 RID: 264
|
||||||
|
// (get) Token: 0x06000367 RID: 871 RVA: 0x0000376D File Offset: 0x0000196D
|
||||||
|
// (set) Token: 0x06000368 RID: 872 RVA: 0x00003775 File Offset: 0x00001975
|
||||||
|
public c00005d.c000060 RoomDetails
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00004f;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00004f = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040001DF RID: 479
|
||||||
|
private c000099.enum09d f000042;
|
||||||
|
|
||||||
|
// Token: 0x040001E0 RID: 480
|
||||||
|
private c00005d.c000060 f00004f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0200009C RID: 156
|
||||||
|
public sealed class c00009c
|
||||||
|
{
|
||||||
|
// Token: 0x17000109 RID: 265
|
||||||
|
// (get) Token: 0x0600036A RID: 874 RVA: 0x0000377E File Offset: 0x0000197E
|
||||||
|
// (set) Token: 0x0600036B RID: 875 RVA: 0x00003786 File Offset: 0x00001986
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00000a;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00000a = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700010A RID: 266
|
||||||
|
// (get) Token: 0x0600036C RID: 876 RVA: 0x0000378F File Offset: 0x0000198F
|
||||||
|
// (set) Token: 0x0600036D RID: 877 RVA: 0x00003797 File Offset: 0x00001997
|
||||||
|
public List<c00005d.c000062> FeaturedRooms
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000031;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000031 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040001E1 RID: 481
|
||||||
|
private string f00000a;
|
||||||
|
|
||||||
|
// Token: 0x040001E2 RID: 482
|
||||||
|
private List<c00005d.c000062> f000031;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x0200009D RID: 157
|
||||||
|
public enum enum09d
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
460
Vault2018GameSessions.cs
Normal file
460
Vault2018GameSessions.cs
Normal 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
192
Vault2018Player.cs
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace vaultgamesesh
|
||||||
|
{
|
||||||
|
// Token: 0x02000008 RID: 8
|
||||||
|
public sealed class c000079
|
||||||
|
{
|
||||||
|
// Token: 0x06000017 RID: 23 RVA: 0x00004F14 File Offset: 0x00003114
|
||||||
|
public static List<c000079.c00007a> m000009()
|
||||||
|
{
|
||||||
|
return c000079.f000031;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x06000018 RID: 24 RVA: 0x00004F2B File Offset: 0x0000312B
|
||||||
|
public static void m000036(List<c000079.c00007a> p0)
|
||||||
|
{
|
||||||
|
c000079.f000031 = p0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x04000010 RID: 16
|
||||||
|
private static List<c000079.c00007a> f000031;
|
||||||
|
|
||||||
|
// Token: 0x02000037 RID: 55
|
||||||
|
public sealed class c00007a
|
||||||
|
{
|
||||||
|
// Token: 0x17000080 RID: 128
|
||||||
|
// (get) Token: 0x0600016E RID: 366 RVA: 0x0000BC2C File Offset: 0x00009E2C
|
||||||
|
// (set) Token: 0x0600016F RID: 367 RVA: 0x0000BC44 File Offset: 0x00009E44
|
||||||
|
public ulong Id
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000001;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000001 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000081 RID: 129
|
||||||
|
// (get) Token: 0x06000170 RID: 368 RVA: 0x0000BC50 File Offset: 0x00009E50
|
||||||
|
// (set) Token: 0x06000171 RID: 369 RVA: 0x0000BC68 File Offset: 0x00009E68
|
||||||
|
public string DisplayName
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000002;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000002 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000082 RID: 130
|
||||||
|
// (get) Token: 0x06000172 RID: 370 RVA: 0x0000BC74 File Offset: 0x00009E74
|
||||||
|
// (set) Token: 0x06000173 RID: 371 RVA: 0x0000BC8C File Offset: 0x00009E8C
|
||||||
|
public string Username
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000003;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000003 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000083 RID: 131
|
||||||
|
// (get) Token: 0x06000174 RID: 372 RVA: 0x0000BC98 File Offset: 0x00009E98
|
||||||
|
// (set) Token: 0x06000175 RID: 373 RVA: 0x0000BCB0 File Offset: 0x00009EB0
|
||||||
|
public int Level
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000004;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000004 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000084 RID: 132
|
||||||
|
// (get) Token: 0x06000176 RID: 374 RVA: 0x0000BCBC File Offset: 0x00009EBC
|
||||||
|
// (set) Token: 0x06000177 RID: 375 RVA: 0x0000BCD4 File Offset: 0x00009ED4
|
||||||
|
public int XP
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000005;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000005 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000085 RID: 133
|
||||||
|
// (get) Token: 0x06000178 RID: 376 RVA: 0x0000BCE0 File Offset: 0x00009EE0
|
||||||
|
// (set) Token: 0x06000179 RID: 377 RVA: 0x0000BCF8 File Offset: 0x00009EF8
|
||||||
|
public bool Developer
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000039;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000039 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000086 RID: 134
|
||||||
|
// (get) Token: 0x0600017A RID: 378 RVA: 0x0000BD04 File Offset: 0x00009F04
|
||||||
|
// (set) Token: 0x0600017B RID: 379 RVA: 0x0000BD1C File Offset: 0x00009F1C
|
||||||
|
public bool IsBooster
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000016;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000016 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000087 RID: 135
|
||||||
|
// (get) Token: 0x0600017C RID: 380 RVA: 0x0000BD28 File Offset: 0x00009F28
|
||||||
|
// (set) Token: 0x0600017D RID: 381 RVA: 0x0000BD40 File Offset: 0x00009F40
|
||||||
|
public int BootMultiplier
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000008;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000008 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040000C1 RID: 193
|
||||||
|
private ulong f000001;
|
||||||
|
|
||||||
|
// Token: 0x040000C2 RID: 194
|
||||||
|
private string f000002;
|
||||||
|
|
||||||
|
// Token: 0x040000C3 RID: 195
|
||||||
|
private string f000003;
|
||||||
|
|
||||||
|
// Token: 0x040000C4 RID: 196
|
||||||
|
private int f000004;
|
||||||
|
|
||||||
|
// Token: 0x040000C5 RID: 197
|
||||||
|
private int f000005;
|
||||||
|
|
||||||
|
// Token: 0x040000C6 RID: 198
|
||||||
|
private bool f000039;
|
||||||
|
|
||||||
|
// Token: 0x040000C7 RID: 199
|
||||||
|
private bool f000016;
|
||||||
|
|
||||||
|
// Token: 0x040000C8 RID: 200
|
||||||
|
private int f000008;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
108
Vault2018WS.cs
Normal file
108
Vault2018WS.cs
Normal 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
30
VaultGameConfig.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace vaultgamesesh
|
||||||
|
{
|
||||||
|
// Token: 0x02000002 RID: 2
|
||||||
|
internal sealed class c000004
|
||||||
|
{
|
||||||
|
public static string m000007()
|
||||||
|
{
|
||||||
|
string text = "SaveData\\" + "Rooms\\";
|
||||||
|
bool flag = !Directory.Exists(text);
|
||||||
|
bool flag2 = flag;
|
||||||
|
if (flag2)
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(text);
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
// Token: 0x04000001 RID: 1
|
||||||
|
public static ulong f000001 = 0UL;
|
||||||
|
|
||||||
|
// Token: 0x04000002 RID: 2
|
||||||
|
public static string f000002 = "us";
|
||||||
|
|
||||||
|
// Token: 0x04000003 RID: 3
|
||||||
|
public static string f000003 = "OpenRec_v0.6.0";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
197
VaultSceneInfo.cs
Normal file
197
VaultSceneInfo.cs
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
namespace vaultgamesesh
|
||||||
|
{
|
||||||
|
// Token: 0x02000007 RID: 7
|
||||||
|
internal sealed class c00006b
|
||||||
|
{
|
||||||
|
// Token: 0x02000035 RID: 53
|
||||||
|
public sealed class c00006c
|
||||||
|
{
|
||||||
|
// Token: 0x17000077 RID: 119
|
||||||
|
// (get) Token: 0x0600015A RID: 346 RVA: 0x0000BAD8 File Offset: 0x00009CD8
|
||||||
|
// (set) Token: 0x0600015B RID: 347 RVA: 0x0000BAF0 File Offset: 0x00009CF0
|
||||||
|
public ulong[] ExpectedPlayerIds
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000001;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000001 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000078 RID: 120
|
||||||
|
// (get) Token: 0x0600015C RID: 348 RVA: 0x0000BAFC File Offset: 0x00009CFC
|
||||||
|
// (set) Token: 0x0600015D RID: 349 RVA: 0x0000BB14 File Offset: 0x00009D14
|
||||||
|
public c00006b.c00006d[] RegionPings
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00004f;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00004f = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x17000079 RID: 121
|
||||||
|
// (get) Token: 0x0600015E RID: 350 RVA: 0x0000BB20 File Offset: 0x00009D20
|
||||||
|
// (set) Token: 0x0600015F RID: 351 RVA: 0x0000BB38 File Offset: 0x00009D38
|
||||||
|
public string[] RoomTags
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000003;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000003 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700007A RID: 122
|
||||||
|
// (get) Token: 0x06000160 RID: 352 RVA: 0x0000BB44 File Offset: 0x00009D44
|
||||||
|
// (set) Token: 0x06000161 RID: 353 RVA: 0x0000BB5C File Offset: 0x00009D5C
|
||||||
|
public string RoomName
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000035;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000035 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700007B RID: 123
|
||||||
|
// (get) Token: 0x06000162 RID: 354 RVA: 0x0000BB68 File Offset: 0x00009D68
|
||||||
|
// (set) Token: 0x06000163 RID: 355 RVA: 0x0000BB80 File Offset: 0x00009D80
|
||||||
|
public string SceneName
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000036;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000036 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700007C RID: 124
|
||||||
|
// (get) Token: 0x06000164 RID: 356 RVA: 0x0000BB8C File Offset: 0x00009D8C
|
||||||
|
// (set) Token: 0x06000165 RID: 357 RVA: 0x0000BBA4 File Offset: 0x00009DA4
|
||||||
|
public int AdditionalPlayerJoinMode
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000006;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000006 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700007D RID: 125
|
||||||
|
// (get) Token: 0x06000166 RID: 358 RVA: 0x0000BBB0 File Offset: 0x00009DB0
|
||||||
|
// (set) Token: 0x06000167 RID: 359 RVA: 0x0000BBC8 File Offset: 0x00009DC8
|
||||||
|
public bool Private
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f000016;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f000016 = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040000B8 RID: 184
|
||||||
|
private ulong[] f000001;
|
||||||
|
|
||||||
|
// Token: 0x040000B9 RID: 185
|
||||||
|
private c00006b.c00006d[] f00004f;
|
||||||
|
|
||||||
|
// Token: 0x040000BA RID: 186
|
||||||
|
private string[] f000003;
|
||||||
|
|
||||||
|
// Token: 0x040000BB RID: 187
|
||||||
|
private string f000035;
|
||||||
|
|
||||||
|
// Token: 0x040000BC RID: 188
|
||||||
|
private string f000036;
|
||||||
|
|
||||||
|
// Token: 0x040000BD RID: 189
|
||||||
|
private int f000006;
|
||||||
|
|
||||||
|
// Token: 0x040000BE RID: 190
|
||||||
|
private bool f000016;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x02000036 RID: 54
|
||||||
|
public sealed class c00006d
|
||||||
|
{
|
||||||
|
// Token: 0x1700007E RID: 126
|
||||||
|
// (get) Token: 0x06000169 RID: 361 RVA: 0x0000BBDC File Offset: 0x00009DDC
|
||||||
|
// (set) Token: 0x0600016A RID: 362 RVA: 0x0000BBF4 File Offset: 0x00009DF4
|
||||||
|
public string Region
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00000a;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00000a = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x1700007F RID: 127
|
||||||
|
// (get) Token: 0x0600016B RID: 363 RVA: 0x0000BC00 File Offset: 0x00009E00
|
||||||
|
// (set) Token: 0x0600016C RID: 364 RVA: 0x0000BC18 File Offset: 0x00009E18
|
||||||
|
public int Ping
|
||||||
|
{
|
||||||
|
[CompilerGenerated]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.f00000b;
|
||||||
|
}
|
||||||
|
[CompilerGenerated]
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.f00000b = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Token: 0x040000BF RID: 191
|
||||||
|
private string f00000a;
|
||||||
|
|
||||||
|
// Token: 0x040000C0 RID: 192
|
||||||
|
private int f00000b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
WebSocket.cs
27
WebSocket.cs
@@ -1,32 +1,43 @@
|
|||||||
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
119
c000020.cs
Normal 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
2363
c00005d.cs
Normal file
File diff suppressed because it is too large
Load Diff
BIN
websocket-sharp.dll
Normal file
BIN
websocket-sharp.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user