second final commit lol
This commit is contained in:
parent
9c322405da
commit
5cc183fde5
|
|
@ -0,0 +1,118 @@
|
|||
@echo off
|
||||
title ROBLOX Uploader 0.0.1
|
||||
echo Welcome to the ROBLOX uploader!
|
||||
echo Created by Brent Da Mage
|
||||
ping localhost -n 2 >nul
|
||||
:: Allows for color
|
||||
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
|
||||
set "DEL=%%a"
|
||||
)
|
||||
cls
|
||||
|
||||
set url=setup.platinus2016.ga
|
||||
echo Deploying to %url%
|
||||
call :PROMPT
|
||||
cls
|
||||
|
||||
::Variables
|
||||
set CDNDir=D:\wamp320\platinus2016\setup\
|
||||
set platform=Win32
|
||||
set build=Release
|
||||
set /p uploadType="Enter Upload Type (C,R,B): "
|
||||
cls
|
||||
|
||||
echo Platform: %platform%
|
||||
echo Build Type: %build%
|
||||
echo Upload Type: %uploadType%
|
||||
call :PROMPT
|
||||
|
||||
:: Deploy section ::
|
||||
|
||||
::Creates switch
|
||||
2>NUL CALL :DEPLOY_%uploadType%
|
||||
IF ERRORLEVEL 1 CALL :UNKNOWN_DEPLOY :: Jumps if no deploy method is found
|
||||
echo Press any key to exit...
|
||||
PAUSE >nul
|
||||
EXIT
|
||||
|
||||
:DEPLOY_C
|
||||
call :ColorText 09 "Deploying client..."
|
||||
set typeName=RobloxClient
|
||||
CALL :DEPLOY
|
||||
call :ColorText 02 "Finished deploying client!"
|
||||
GOTO :EOF
|
||||
:DEPLOY_R
|
||||
call :ColorText 09 "Deploying RCCService..."
|
||||
set typeName=RCCService
|
||||
CALL :DEPLOY
|
||||
call :ColorText 02 "Finished deploying RCCService!"
|
||||
GOTO :EOF
|
||||
:DEPLOY_B
|
||||
call :ColorText 09 "Deploying both..."
|
||||
CALL :DEPLOY_C
|
||||
CALL :DEPLOY_R
|
||||
call :ColorText 02 "Finished deploying both!"
|
||||
GOTO :EOF
|
||||
:UNKNOWN_DEPLOY
|
||||
call :ColorText 0C "Unknown upload type!"
|
||||
GOTO :EOF
|
||||
|
||||
:DEPLOY
|
||||
cd "D:\wamp320\platinus2016\UploadBits\%platform%-%build%-%typeName%"
|
||||
call :Hash
|
||||
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
::Move the files
|
||||
for /f "tokens=*" %%f in ('dir /b *') do (
|
||||
::Hack to prevent multiple prompts during deployment
|
||||
>> "%CDNDir%version-%hash%-%%f" rem/
|
||||
xcopy /Q /Y /F "%%f" "%CDNDir%version-%hash%-%%f" > nul
|
||||
echo Deployed version-%hash%-%%f
|
||||
)
|
||||
::Set the version
|
||||
echo|set /p="version-%hash%">"%CDNDir%\version.txt"
|
||||
GOTO :EOF
|
||||
|
||||
:: End deploy section ::
|
||||
|
||||
::Functions
|
||||
:ColorText
|
||||
<nul set /p ".=%DEL%" > "%~2"
|
||||
findstr /v /a:%1 /R "^$" "%~2" nul
|
||||
del "%~2" > nul 2>&1
|
||||
echo.
|
||||
goto :eof
|
||||
:Hash
|
||||
rem // Set ErrorLevel and exit code to a random number:
|
||||
cmd /C exit %RANDOM%
|
||||
rem // Return the last two digits of the hexadecimal exit code:
|
||||
set hash=%=ExitCode:~-2%
|
||||
:loop
|
||||
cmd /C exit %RANDOM%
|
||||
set hash=%hash%%=ExitCode:~-2%
|
||||
set /a t=t+1
|
||||
if %t% LSS 7 goto loop
|
||||
SET hash
|
||||
CALL :LoCase hash
|
||||
goto :eof
|
||||
:PROMPT
|
||||
SET /P AREYOUSURE=Is this correct? (Y/[N]):
|
||||
IF /I "%AREYOUSURE%" NEQ "Y" EXIT
|
||||
goto :eof
|
||||
:LoCase
|
||||
:: Subroutine to convert a variable VALUE to all lower case.
|
||||
:: The argument for this subroutine is the variable NAME.
|
||||
FOR %%i IN ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" "J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r" "S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z") DO CALL SET "%1=%%%1:%%~i%%"
|
||||
GOTO:EOF
|
||||
|
||||
:UpCase
|
||||
:: Subroutine to convert a variable VALUE to all UPPER CASE.
|
||||
:: The argument for this subroutine is the variable NAME.
|
||||
FOR %%i IN ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I" "j=J" "k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R" "s=S" "t=T" "u=U" "v=V" "w=W" "x=X" "y=Y" "z=Z") DO CALL SET "%1=%%%1:%%~i%%"
|
||||
GOTO:EOF
|
||||
|
||||
:TCase
|
||||
:: Subroutine to convert a variable VALUE to Title Case.
|
||||
:: The argument for this subroutine is the variable NAME.
|
||||
FOR %%i IN (" a= A" " b= B" " c= C" " d= D" " e= E" " f= F" " g= G" " h= H" " i= I" " j= J" " k= K" " l= L" " m= M" " n= N" " o= O" " p= P" " q= Q" " r= R" " s= S" " t= T" " u= U" " v= V" " w= W" " x= X" " y= Y" " z= Z") DO CALL SET "%1=%%%1:%%~i%%"
|
||||
GOTO:EOF
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/**
|
||||
* Simple autoloader, so we don't need Composer just for this.
|
||||
*/
|
||||
class Autoloader
|
||||
{
|
||||
public static function register()
|
||||
{
|
||||
spl_autoload_register(function ($class) {
|
||||
$file = str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
|
||||
if (file_exists($file)) {
|
||||
require $file;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
Autoloader::register();
|
||||
?>
|
||||
|
|
@ -0,0 +1 @@
|
|||
This is a ROBLOX backend reconstruction that's written PHP and was created by Brent Da Mage#5357 in September of 2020.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Caching.LocalCache class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Caching\Roblox.Caching\RobloxCaches\LocalCache.cs.
|
||||
|
||||
namespace Roblox\Caching;
|
||||
|
||||
class LocalCache {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function GetEntityFromCacheByIDLookup/*[TIndex,TEntity,TDal]*/(/*ICacheInfo*/ $cacheInfo, /*String*/ $entityIdLookup, /*Func`1*/ $getter) {
|
||||
/*
|
||||
at Roblox.Common.EntityHelper.DoGetOrCreate[TIndex,TDal,TEntity](GetOrCreateDAL`1 dalGetterOrCreater) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Data\Roblox.Data\Entities\EntityHelper.cs:line 316
|
||||
at Roblox.Caching.LocalCache.GetEntityFromCacheByIDLookup[TIndex,TEntity,TDal](ICacheInfo cacheInfo, String entityIdLookup, Func`1 getter) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Caching\Roblox.Caching\RobloxCaches\LocalCache.cs:line 701
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Entities.Mssql.RobloxDataAccessPatternExtensions class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Entities\Roblox.Entities.Mssql\RobloxDataAccessPatternExtensions.cs.
|
||||
|
||||
namespace Roblox\Entities\Mssql;
|
||||
|
||||
class LocalCache {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function GetOrCreate/*[TDal]*/(/*RobloxDatabase*/ $database, /*String*/ $storedProcedureName, /*Func`2*/ $dalBuilder, /*Nullable`1*/ $commandTimeout, /*Boolean*/ $includeApplicationIntent, /*SqlParameter[]*/ $queryParameters) {
|
||||
/*
|
||||
at Roblox.Mssql.Database.ExecuteReader(String commandText, SqlParameter[] sqlParameters, CommandType commandType, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\Database.cs:line 226
|
||||
at Roblox.Entities.Mssql.RobloxDataAccessPatternExtensions.GetOrCreate[TDal](RobloxDatabase database, String storedProcedureName, Func`2 dalBuilder, Nullable`1 commandTimeout, Boolean includeApplicationIntent, SqlParameter[] queryParameters) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Entities\Roblox.Entities.Mssql\RobloxDataAccessPatternExtensions.cs:line 51
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Job class.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class Job {
|
||||
public $id;
|
||||
public $expirationInSeconds;
|
||||
public $category;
|
||||
public $cores;
|
||||
function __construct($id, $expirationInSeconds = 10, $category = 0, $cores = 1) {
|
||||
$this->id = $id;
|
||||
$this->expirationInSeconds = $expirationInSeconds;
|
||||
$this->category = $category;
|
||||
$this->cores = $cores;
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
// This file defines the LuaType enum. Though this is a class, please treat it like an enum and **ONLY** reference it statically.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class LuaType {
|
||||
public const LUA_TNIL = "LUA_TNIL";
|
||||
public const LUA_TBOOLEAN = "LUA_TBOOLEAN";
|
||||
public const LUA_TNUMBER = "LUA_TNUMBER";
|
||||
public const LUA_TSTRING = "LUA_TSTRING";
|
||||
public const LUA_TTABLE = "LUA_TTABLE";
|
||||
|
||||
// Casts a PHP value type to a LuaType enum.
|
||||
static function castToLuaType($value) {
|
||||
$luaTypeConversions = [
|
||||
'NULL' => LuaType::LUA_TNIL,
|
||||
'boolean' => LuaType::LUA_TBOOLEAN,
|
||||
'integer' => LuaType::LUA_TNUMBER,
|
||||
'double' => LuaType::LUA_TNUMBER,
|
||||
'string' => LuaType::LUA_TSTRING,
|
||||
'array' => LuaType::LUA_TTABLE,
|
||||
'object' => LuaType::LUA_TNIL
|
||||
];
|
||||
return $luaTypeConversions[gettype($value)];
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
// This file defines the LuaValue class.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class LuaValue {
|
||||
public $value;
|
||||
public $type;
|
||||
public $table;
|
||||
|
||||
// Constructor
|
||||
function __construct($baseValue) {
|
||||
if (isset($baseValue)) {
|
||||
$luaValue = LuaValue::serializeValue($baseValue);
|
||||
foreach ($luaValue as $name => $child) {
|
||||
$this->{$name} = $child;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This function serializes the given PHP variable into a Lua value.
|
||||
static function serializeValue($phpValue) {
|
||||
$luaValue = new LuaValue(null); // A really dumb hack
|
||||
$luaValue->type = LuaType::castToLuaType($phpValue);
|
||||
if (is_array($phpValue)) {
|
||||
// TODO: Make this an empty array by default to allow for easy table creation?
|
||||
$luaValue->table = [];
|
||||
foreach ($phpValue as $value) {
|
||||
array_push($luaValue->table, new LuaValue($value));
|
||||
}
|
||||
}else {
|
||||
$luaValue->value = $phpValue;
|
||||
}
|
||||
return $luaValue;
|
||||
}
|
||||
|
||||
// This function deserializes the given Lua value into a normal PHP variable.
|
||||
static function deserializeValue($luaValue) {
|
||||
if (is_array($luaValue)) {
|
||||
$phpValue = [];
|
||||
foreach ($luaValue as $value) {
|
||||
array_push($phpValue, LuaValue::deserializeValue($value));
|
||||
}
|
||||
}else {
|
||||
if ($luaValue->type == LuaType::LUA_TTABLE && isset($luaValue->table->LuaValue)) {
|
||||
$phpValue = [];
|
||||
if (is_array($luaValue->table->LuaValue)) {
|
||||
$value = $luaValue->table->LuaValue;
|
||||
}else {
|
||||
$value = $luaValue->table;
|
||||
}
|
||||
foreach ($value as $value) {
|
||||
array_push($phpValue, $value->deserialize());
|
||||
}
|
||||
}elseif ($luaValue->type == LuaType::LUA_TNIL) {
|
||||
// Null value
|
||||
$phpValue = null;
|
||||
}else {
|
||||
// Direct read from LuaValue's value
|
||||
$phpValue = $luaValue->value;
|
||||
}
|
||||
}
|
||||
return $phpValue;
|
||||
}
|
||||
|
||||
// This function deserializes the current Lua value into a normal PHP variable.
|
||||
function deserialize() {
|
||||
return LuaValue::deserializeValue($this);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,800 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://roblox.com/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://roblox.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://roblox.com/">
|
||||
<s:element name="HelloWorld">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="HelloWorldResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetVersion">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="GetVersionResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="GetVersionResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetStatus">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="GetStatusResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="GetStatusResult" type="tns:Status" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="Status">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="version" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="environmentCount" type="s:int" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:element name="OpenJob">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="job" type="tns:Job" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="OpenJobEx">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="job" type="tns:Job" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="Job">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="id" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="expirationInSeconds" type="s:double" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="category" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="cores" type="s:double" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ScriptExecution">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="script" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="arguments" type="tns:ArrayOfLuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfLuaValue">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="LuaValue" nillable="true" type="tns:LuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfJob">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="Job" nillable="true" type="tns:Job" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="LuaValue">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="type" type="tns:LuaType" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="value" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="table" type="tns:ArrayOfLuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:simpleType name="LuaType">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="LUA_TNIL" />
|
||||
<s:enumeration value="LUA_TBOOLEAN" />
|
||||
<s:enumeration value="LUA_TNUMBER" />
|
||||
<s:enumeration value="LUA_TSTRING" />
|
||||
<s:enumeration value="LUA_TTABLE" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:element name="OpenJobResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="OpenJobResult" type="tns:LuaValue"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="OpenJobExResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element name="OpenJobExResult" type="tns:ArrayOfLuaValue"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="RenewLease">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="jobID" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="expirationInSeconds" type="s:double" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="RenewLeaseResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="RenewLeaseResult" type="s:double" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="Execute">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="jobID" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="ExecuteResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="unbounded" name="ExecuteResult" nillable="true" type="tns:LuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="ExecuteEx">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="jobID" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="ExecuteExResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element name="ExecuteExResult" type="tns:ArrayOfLuaValue"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="CloseJob">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="jobID" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="CloseJobResponse">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="BatchJob">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="job" type="tns:Job" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="BatchJobResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="unbounded" name="BatchJobResult" nillable="true" type="tns:LuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="BatchJobEx">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="job" type="tns:Job" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="script" type="tns:ScriptExecution" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="BatchJobExResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element name="BatchJobExResult" type="tns:ArrayOfLuaValue"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetExpiration">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="jobID" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetExpirationResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="GetExpirationResult" type="s:double" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetAllJobs">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="GetAllJobsResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="unbounded" name="GetAllJobsResult" nillable="true" type="tns:Job" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="GetAllJobsEx">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="GetAllJobsExResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element name="GetAllJobsExResult" type="tns:ArrayOfJob" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="CloseExpiredJobs">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="CloseExpiredJobsResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="CloseExpiredJobsResult" type="s:int" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="CloseAllJobs">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="CloseAllJobsResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="CloseAllJobsResult" type="s:int" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="Diag">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="type" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="jobID" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="DiagResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="unbounded" name="DiagResult" nillable="true" type="tns:LuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="DiagEx">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="type" type="s:int" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="jobID" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="DiagExResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element name="DiagExResult" type="tns:ArrayOfLuaValue" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="HelloWorldSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorld" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="HelloWorldSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetVersionSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetVersion" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetVersionSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetVersionResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetStatusSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetStatus" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetStatusSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetStatusResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="OpenJobSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:OpenJob" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="OpenJobSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:OpenJobResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="OpenJobExSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:OpenJobEx" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="OpenJobExSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:OpenJobExResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="RenewLeaseSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:RenewLease" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="RenewLeaseSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:RenewLeaseResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecuteSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:Execute" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecuteSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:ExecuteResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecuteExSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:ExecuteEx" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecuteExSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:ExecuteExResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseJobSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:CloseJob" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseJobSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:CloseJobResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="BatchJobSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:BatchJob" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="BatchJobSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:BatchJobResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="BatchJobExSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:BatchJobEx" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="BatchJobExSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:BatchJobExResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetExpirationSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetExpiration" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetExpirationSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetExpirationResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetAllJobsSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetAllJobs" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetAllJobsSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetAllJobsResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetAllJobsExSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetAllJobsEx" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetAllJobsExSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetAllJobsExResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseExpiredJobsSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:CloseExpiredJobs" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseExpiredJobsSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:CloseExpiredJobsResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseAllJobsSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:CloseAllJobs" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CloseAllJobsSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:CloseAllJobsResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DiagSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:Diag" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DiagSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:DiagResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DiagExSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:DiagEx" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DiagExSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:DiagExResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="RCCServiceSoap">
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<wsdl:input message="tns:HelloWorldSoapIn" />
|
||||
<wsdl:output message="tns:HelloWorldSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetVersion">
|
||||
<wsdl:input message="tns:GetVersionSoapIn" />
|
||||
<wsdl:output message="tns:GetVersionSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetStatus">
|
||||
<wsdl:input message="tns:GetStatusSoapIn" />
|
||||
<wsdl:output message="tns:GetStatusSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJob">
|
||||
<wsdl:input message="tns:OpenJobSoapIn" />
|
||||
<wsdl:output message="tns:OpenJobSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJobEx">
|
||||
<wsdl:input message="tns:OpenJobExSoapIn" />
|
||||
<wsdl:output message="tns:OpenJobExSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="RenewLease">
|
||||
<wsdl:input message="tns:RenewLeaseSoapIn" />
|
||||
<wsdl:output message="tns:RenewLeaseSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Execute">
|
||||
<wsdl:input message="tns:ExecuteSoapIn" />
|
||||
<wsdl:output message="tns:ExecuteSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecuteEx">
|
||||
<wsdl:input message="tns:ExecuteExSoapIn" />
|
||||
<wsdl:output message="tns:ExecuteExSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseJob">
|
||||
<wsdl:input message="tns:CloseJobSoapIn" />
|
||||
<wsdl:output message="tns:CloseJobSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJob">
|
||||
<wsdl:input message="tns:BatchJobSoapIn" />
|
||||
<wsdl:output message="tns:BatchJobSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJobEx">
|
||||
<wsdl:input message="tns:BatchJobExSoapIn" />
|
||||
<wsdl:output message="tns:BatchJobExSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetExpiration">
|
||||
<wsdl:input message="tns:GetExpirationSoapIn" />
|
||||
<wsdl:output message="tns:GetExpirationSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobs">
|
||||
<wsdl:input message="tns:GetAllJobsSoapIn" />
|
||||
<wsdl:output message="tns:GetAllJobsSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobsEx">
|
||||
<wsdl:input message="tns:GetAllJobsExSoapIn" />
|
||||
<wsdl:output message="tns:GetAllJobsExSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseExpiredJobs">
|
||||
<wsdl:input message="tns:CloseExpiredJobsSoapIn" />
|
||||
<wsdl:output message="tns:CloseExpiredJobsSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseAllJobs">
|
||||
<wsdl:input message="tns:CloseAllJobsSoapIn" />
|
||||
<wsdl:output message="tns:CloseAllJobsSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Diag">
|
||||
<wsdl:input message="tns:DiagSoapIn" />
|
||||
<wsdl:output message="tns:DiagSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DiagEx">
|
||||
<wsdl:input message="tns:DiagExSoapIn" />
|
||||
<wsdl:output message="tns:DiagExSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="RCCServiceSoap" type="tns:RCCServiceSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap:operation soapAction="http://roblox.com/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetVersion">
|
||||
<soap:operation soapAction="http://roblox.com/GetVersion" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetStatus">
|
||||
<soap:operation soapAction="http://roblox.com/GetStatus" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJob">
|
||||
<soap:operation soapAction="http://roblox.com/OpenJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJobEx">
|
||||
<soap:operation soapAction="http://roblox.com/OpenJobEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="RenewLease">
|
||||
<soap:operation soapAction="http://roblox.com/RenewLease" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Execute">
|
||||
<soap:operation soapAction="http://roblox.com/Execute" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecuteEx">
|
||||
<soap:operation soapAction="http://roblox.com/ExecuteEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseJob">
|
||||
<soap:operation soapAction="http://roblox.com/CloseJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJob">
|
||||
<soap:operation soapAction="http://roblox.com/BatchJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJobEx">
|
||||
<soap:operation soapAction="http://roblox.com/BatchJobEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetExpiration">
|
||||
<soap:operation soapAction="http://roblox.com/GetExpiration" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobs">
|
||||
<soap:operation soapAction="http://roblox.com/GetAllJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobsEx">
|
||||
<soap:operation soapAction="http://roblox.com/GetAllJobsEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseExpiredJobs">
|
||||
<soap:operation soapAction="http://roblox.com/CloseExpiredJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseAllJobs">
|
||||
<soap:operation soapAction="http://roblox.com/CloseAllJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Diag">
|
||||
<soap:operation soapAction="http://roblox.com/Diag" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DiagEx">
|
||||
<soap:operation soapAction="http://roblox.com/DiagEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="RCCServiceSoap12" type="tns:RCCServiceSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap12:operation soapAction="http://roblox.com/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetVersion">
|
||||
<soap12:operation soapAction="http://roblox.com/GetVersion" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetStatus">
|
||||
<soap12:operation soapAction="http://roblox.com/GetStatus" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJob">
|
||||
<soap12:operation soapAction="http://roblox.com/OpenJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="OpenJobEx">
|
||||
<soap12:operation soapAction="http://roblox.com/OpenJobEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="RenewLease">
|
||||
<soap12:operation soapAction="http://roblox.com/RenewLease" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Execute">
|
||||
<soap12:operation soapAction="http://roblox.com/Execute" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecuteEx">
|
||||
<soap12:operation soapAction="http://roblox.com/ExecuteEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseJob">
|
||||
<soap12:operation soapAction="http://roblox.com/CloseJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJob">
|
||||
<soap12:operation soapAction="http://roblox.com/BatchJob" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="BatchJobEx">
|
||||
<soap12:operation soapAction="http://roblox.com/BatchJobEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetExpiration">
|
||||
<soap12:operation soapAction="http://roblox.com/GetExpiration" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobs">
|
||||
<soap12:operation soapAction="http://roblox.com/GetAllJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetAllJobsEx">
|
||||
<soap12:operation soapAction="http://roblox.com/GetAllJobsEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseExpiredJobs">
|
||||
<soap12:operation soapAction="http://roblox.com/CloseExpiredJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="CloseAllJobs">
|
||||
<soap12:operation soapAction="http://roblox.com/CloseAllJobs" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="Diag">
|
||||
<soap12:operation soapAction="http://roblox.com/Diag" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DiagEx">
|
||||
<soap12:operation soapAction="http://roblox.com/DiagEx" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<service name="RCCServiceSoap">
|
||||
<port name="RCCServiceSoapPort" binding="tns:RCCServiceSoap">
|
||||
<soap:address location="127.0.0.1:64989"/>
|
||||
</port>
|
||||
</service>
|
||||
</wsdl:definitions>
|
||||
|
|
@ -0,0 +1,264 @@
|
|||
<?php
|
||||
|
||||
// This file defines the RCCServiceSoap class. The class inherits the properties of a standard SoapClient, but it can be used to call RCCService functions via SOAP requests.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class RCCServiceSoap {
|
||||
|
||||
private $SoapClient;
|
||||
private $classmap = [
|
||||
"Status" => "Roblox\Grid\Rcc\Status",
|
||||
"Job" => "Roblox\Grid\Rcc\Job",
|
||||
"ScriptExecution" => "Roblox\Grid\Rcc\ScriptExecution",
|
||||
"LuaValue" => "Roblox\Grid\Rcc\LuaValue",
|
||||
"LuaType" => "Roblox\Grid\Rcc\LuaType"
|
||||
];
|
||||
|
||||
// The specification of a URL and port should always be done during production, though the defaults can be used when testing.
|
||||
function __construct($url = "127.0.0.1", $port = 64989) {
|
||||
$this->SoapClient = new \SoapClient(__DIR__."\RCCService.wsdl", ["location" => "http://".$url.":".$port, "features" => SOAP_WAIT_ONE_WAY_CALLS, "uri" => "http://roblox.com/", "classmap" => $this->classmap, "exceptions" => false]);
|
||||
}
|
||||
|
||||
// Begin function handlers
|
||||
// Use the HelloWorld function as a template for all future functions.
|
||||
// NOTE: Please use is_soap_fault() when checking if functions failed.
|
||||
|
||||
function callToService($name, $arguments = []) {
|
||||
$result = $this->SoapClient->{$name}($arguments);
|
||||
return (!is_soap_fault($result) ? (/*is_soap_fault($result) ||*/ !isset($result->{$name."Result"}) ? null : $result->{$name."Result"}) : $result);
|
||||
}
|
||||
|
||||
private static function parseJobResult($value) {
|
||||
if ($value !== new \stdClass() && isset($value->LuaValue)) {
|
||||
// Our job result isn't empty, so let's deserialize it
|
||||
$result = LuaValue::deserializeValue($value->LuaValue);
|
||||
}else {
|
||||
// Something went wrong :(
|
||||
$result = null;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Hello World
|
||||
* Description: This function calls a simple HelloWorld function from RCCService. The expected HelloWorldResponse is "Hello World".
|
||||
* Parameters: []
|
||||
*/
|
||||
function HelloWorld() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Get Version
|
||||
* Description: This function fetches the version of RCCService.
|
||||
* Parameters: []
|
||||
*/
|
||||
function GetVersion() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Open Job
|
||||
* Description: This function opens a job in accordance with the given arguments. Though this function is deprecated on ROBLOX's end, we'll still use it here and OpenJobEx will be called instead.
|
||||
* Parameters: [
|
||||
* "job" => "This function opens a job in accordance with the given arguments. It returns the value that's returned by the Lua script.",
|
||||
* "script" => "The ScriptExecution class that's going to be executed in the job. This contains values such as name, script, and arguments."
|
||||
* ]
|
||||
*/
|
||||
function OpenJob($job, $script = null) {
|
||||
return $this->OpenJobEx($job, $script);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Open Job Ex
|
||||
* Description: This function opens a job in accordance with the given arguments. It returns the value that's returned by the Lua script. Feel free to use the other version of this function.
|
||||
* Parameters: [
|
||||
* "job" => "The Job class that's going to be serialized and pushed to the service.",
|
||||
* "script" => "The ScriptExecution class that's going to be executed in the job. This contains values such as name, script, and arguments."
|
||||
* ]
|
||||
*/
|
||||
function OpenJobEx($job, $script = null) {
|
||||
$result = $this->callToService(__FUNCTION__, ["job" => $job, "script" => $script]);
|
||||
return RCCServiceSoap::parseJobResult($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Batch Job
|
||||
* Description: This function runs a batch job in accordance with the given arguments. Though this function is deprecated on ROBLOX's end, we'll still use it here and BatchJobEx will be called instead.
|
||||
* Parameters: [
|
||||
* "job" => "The Job class that's going to be serialized and pushed to the service.",
|
||||
* "script" => "The ScriptExecution class that's going to be executed in the job. This contains values such as name, script, and arguments."
|
||||
* ]
|
||||
*/
|
||||
function BatchJob($job, $script) {
|
||||
return $this->BatchJobEx($job, $script);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Batch Job Ex
|
||||
* Description: This function runs a batch job in accordance with the given arguments. Feel free to use the other version of this function.
|
||||
* Parameters: [
|
||||
* "job" => "The Job class that's going to be serialized and pushed to the service.",
|
||||
* "script" => "The ScriptExecution class that's going to be executed in the job. This contains values such as name, script, and arguments."
|
||||
* ]
|
||||
*/
|
||||
function BatchJobEx($job, $script) {
|
||||
$result = $this->callToService(__FUNCTION__, ["job" => $job, "script" => $script]);
|
||||
return RCCServiceSoap::parseJobResult($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Renew Lease
|
||||
* Description: This function changes the expirationInSeconds of a job based on the jobID. It essentially allows you to set the expiration time of a currently opened job.
|
||||
* Parameters: [
|
||||
* "jobID" => "The ID of the job who's expiration is going to be renewed.",
|
||||
* "expirationInSeconds" => "The new expiration time for the job."
|
||||
* ]
|
||||
*/
|
||||
function RenewLease($jobID, $expirationInSeconds) {
|
||||
return $this->callToService(__FUNCTION__, ["jobID" => $jobID, "expirationInSeconds" => $expirationInSeconds]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Execute
|
||||
* Description: This function uses the given arguments to execute a script inside an existing job. Though this function is deprecated on ROBLOX's end, we'll still use it here and ExecuteEx will be called instead.
|
||||
* Parameters: [
|
||||
* "jobID" => "The ID of the job in which the script is executed.",
|
||||
* "script" => "The script that's going to be executed."
|
||||
* ]
|
||||
*/
|
||||
function Execute($jobID, $script) {
|
||||
return $this->ExecuteEx($jobID, $script);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Execute Ex
|
||||
* Description: This function uses the given arguments to execute a script inside an existing job.
|
||||
* Parameters: [
|
||||
* "jobID" => "The ID of the job in which the script is executed.",
|
||||
* "script" => "The script that's going to be executed."
|
||||
* ]
|
||||
*/
|
||||
function ExecuteEx($jobID, $script) {
|
||||
return $this->callToService(__FUNCTION__, ["jobID" => $jobID, "script" => $script]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Close Job
|
||||
* Description: This function closes an existing job using the given job ID.
|
||||
* Parameters: [
|
||||
* "jobID" => "The ID of the job that's going to be closed."
|
||||
* ]
|
||||
*/
|
||||
function CloseJob($jobID) {
|
||||
return $this->callToService(__FUNCTION__, ["jobID" => $jobID]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Get Expiration
|
||||
* Description: This function fetches and returns the expirationInSeconds of a job using the given job ID.
|
||||
* Parameters: [
|
||||
* "jobID" => "The ID of the job."
|
||||
* ]
|
||||
*/
|
||||
function GetExpiration($jobID) {
|
||||
return $this->callToService(__FUNCTION__, ["jobID" => $jobID]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Diag
|
||||
* Description: This function returns various types of diagnostic information from RCCService. Though this function is deprecated on ROBLOX's end, we'll still use it here and DiagEx will be called instead.
|
||||
* Parameters: [
|
||||
* "type" => "The diagnostic type to retrieve.",
|
||||
* "jobID" => "The id of the job to retrieve the diagnostic from."
|
||||
* ]
|
||||
*/
|
||||
function Diag($type, $jobID) {
|
||||
return $this->DiagEx($type, $jobID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Diag Ex
|
||||
* Description: This function returns various types of diagnostic information from RCCService.
|
||||
* Parameters: [
|
||||
* "type" => "The diagnostic type to retrieve.",
|
||||
* "jobID" => "The id of the job to retrieve the diagnostic from."
|
||||
* ]
|
||||
*/
|
||||
/* This is the format of the Diag data:
|
||||
|
||||
type == 0
|
||||
DataModel Count in this process
|
||||
PerfCounter data
|
||||
Task Scheduler
|
||||
(obsolete entry)
|
||||
double threadAffinity
|
||||
double numQueuedJobs
|
||||
double numScheduledJobs
|
||||
double numRunningJobs
|
||||
long threadPoolSize
|
||||
double messageRate
|
||||
double messagePumpDutyCycle
|
||||
DataModel Jobs Info
|
||||
Machine configuration
|
||||
Memory Leak Detection
|
||||
type & 1
|
||||
leak dump
|
||||
type & 2
|
||||
attempt to allocate 500k. if success, then true else false
|
||||
type & 4
|
||||
DataModel dutyCycles
|
||||
*/
|
||||
function DiagEx($type, $jobID) {
|
||||
return $this->callToService(__FUNCTION__, ["type" => $type, "jobID" => $jobID]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Get Status
|
||||
* Description: This function fetches the status information from RCCService. The returned Status class contains a version string and an environmentCount int.
|
||||
* Parameters: []
|
||||
*/
|
||||
function GetStatus() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Get All Jobs
|
||||
* Description: This function fetches an array of every job that's currently open on RCCService. Though this function is deprecated on ROBLOX's end, we'll still use it here and GetAllJobsEx will be called instead.
|
||||
* Parameters: []
|
||||
*/
|
||||
function GetAllJobs() {
|
||||
// GetAllJobs is deprecated.
|
||||
return $this->GetAllJobsEx();
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Get All Jobs Ex
|
||||
* Description: This function fetches an array of every job that's currently open on RCCService.
|
||||
* Parameters: []
|
||||
*/
|
||||
function GetAllJobsEx() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Close Expired Jobs
|
||||
* Description: This function closes all currently open and expired jobs on RCCService. This returns the amount of jobs that were closed.
|
||||
* Parameters: []
|
||||
*/
|
||||
function CloseExpiredJobs() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Name: Close All Jobs
|
||||
* Description: This function closes all currently open jobs on RCCService. This returns the amount of jobs that were closed.
|
||||
* Parameters: []
|
||||
*/
|
||||
function CloseAllJobs() {
|
||||
return $this->callToService(__FUNCTION__);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the ScriptExecution class.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class ScriptExecution {
|
||||
public $name;
|
||||
public $script;
|
||||
public $arguments = [];
|
||||
function __construct($name, $script, $arguments = []) {
|
||||
$this->name = $name;
|
||||
$this->script = $script;
|
||||
foreach ($arguments as $arg) {
|
||||
array_push($this->arguments, new LuaValue($arg));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Status class. This contains the version and environmentCount variables and it's used for gathering basic information from RCCService processes.
|
||||
|
||||
namespace Roblox\Grid\Rcc;
|
||||
|
||||
class Status {
|
||||
public $version;
|
||||
public $environmentCount;
|
||||
function __construct($version, $environmentCount) {
|
||||
$this->version = $version;
|
||||
$this->environmentCount = $environmentCount;
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Mssql.Database class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\Database.cs.
|
||||
|
||||
namespace Roblox\Mssql;
|
||||
|
||||
class Database {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function ExecuteReader(/*String*/ $commandText, /*SqlParameter[]*/ $sqlParameters, /*CommandType*/ $commandType, /*Nullable`1*/ $commandTimeout, /*Nullable`1*/ $applicationIntent) {
|
||||
/*
|
||||
at Roblox.Mssql.GuardedDatabase.Execute(CommandType commandType, String commandText, SqlParameter[] sqlParameters, Action`1 action, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\GuardedDatabase.cs:line 22
|
||||
at Roblox.Mssql.Database.ExecuteReader(String commandText, SqlParameter[] sqlParameters, CommandType commandType, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\Database.cs:line 226
|
||||
*/
|
||||
}
|
||||
|
||||
function Execute(/*CommandType*/ $commandType, /*String*/ $commandText, /*SqlParameter[]*/ $sqlParameters, /*Action`1*/ $action, /*Nullable`1*/ $commandTimeout, /*(Nullable`1*/ $applicationIntent) {
|
||||
/*
|
||||
at System.Data.SqlClient.SqlConnection.PermissionDemand()
|
||||
at System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
|
||||
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
|
||||
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
|
||||
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
|
||||
at System.Data.SqlClient.SqlConnection.Open()
|
||||
at Roblox.Mssql.Database.Execute(CommandType commandType, String commandText, SqlParameter[] sqlParameters, Action`1 action, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\Database.cs:line 105
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Mssql.GuardedDatabase class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\GuardedDatabase.cs.
|
||||
// Also has Roblox.Mssql.GuardedDatabase.<>c__DisplayClass2_0.<Execute>b__0() in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\GuardedDatabase.cs:line 21.
|
||||
|
||||
namespace Roblox\Mssql;
|
||||
|
||||
class GuardedDatabase {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function Execute(/*CommandType*/ $commandType, /*String*/ $commandText, /*SqlParameter[]*/ $sqlParameters, /*Action`1*/ $action, /*Nullable`1*/ $commandTimeout, /*Nullable`1*/ $applicationIntent) {
|
||||
/*
|
||||
at Roblox.Sentinels.ExecutionCircuitBreakerBase.Execute(Action action)
|
||||
at Roblox.Mssql.GuardedDatabase.Execute(CommandType commandType, String commandText, SqlParameter[] sqlParameters, Action`1 action, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\GuardedDatabase.cs:line 22
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.AssetOwnership.UserAsset class.
|
||||
|
||||
namespace Roblox\Platform\AssetOwnership;
|
||||
|
||||
class UserAsset {
|
||||
public /*int*/ $userAssetId;
|
||||
public /*int*/ $assetId;
|
||||
public /*int*/ $serialNumber;
|
||||
public /*Roblox\Platform\Membership\IUser*/ $owner;
|
||||
public /*\DateTime*/ $created;
|
||||
public /*\DateTime*/ $updated;
|
||||
|
||||
function __construct($userAssetId) {
|
||||
$this->userAssetId = $userAssetId;
|
||||
// TODO: Load other values
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
// This file defines the AssetType enum. Though this is a class, please treat it like an enum and **ONLY** reference it statically.
|
||||
|
||||
namespace Roblox\Platform\Assets;
|
||||
|
||||
class AssetType {
|
||||
const Image = "Image";
|
||||
const TShirt = "TShirt";
|
||||
const Audio = "Audio";
|
||||
const Mesh = "Mesh";
|
||||
const Lua = "Lua";
|
||||
const HTML = "HTML";
|
||||
const Text = "Text";
|
||||
const Hat = "Hat";
|
||||
const Place = "Place";
|
||||
const Model = "Model";
|
||||
const Shirt = "Shirt";
|
||||
const Pants = "Pants";
|
||||
const Decal = "Decal";
|
||||
const Avatar = "Avatar";
|
||||
const Head = "Head";
|
||||
const Face = "Face";
|
||||
const Gear = "Gear";
|
||||
const Badge = "Badge";
|
||||
const GroupEmblem = "GroupEmblem";
|
||||
const Animation = "Animation";
|
||||
const Arms = "Arms";
|
||||
const Legs = "Legs";
|
||||
const Torso = "Torso";
|
||||
const RightArm = "RightArm";
|
||||
const LeftArm = "LeftArm";
|
||||
const LeftLeg = "LeftLeg";
|
||||
const RightLeg = "RightLeg";
|
||||
const Package = "Package";
|
||||
const YouTubeVideo = "YouTubeVideo";
|
||||
const GamePass = "GamePass";
|
||||
const App = "App";
|
||||
const Code = "Code";
|
||||
const Plugin = "Plugin";
|
||||
const SolidModel = "SolidModel";
|
||||
const MeshPart = "MeshPart";
|
||||
const HairAccessory = "HairAccessory";
|
||||
const FaceAccessory = "FaceAccessory";
|
||||
const NeckAccessory = "NeckAccessory";
|
||||
const ShoulderAccessory = "ShoulderAccessory";
|
||||
const FrontAccessory = "FrontAccessory";
|
||||
const BackAccessory = "BackAccessory";
|
||||
const WaistAccessory = "WaistAccessory";
|
||||
const ClimbAnimation = "ClimbAnimation";
|
||||
const DeathAnimation = "DeathAnimation";
|
||||
const FallAnimation = "FallAnimation";
|
||||
const IdleAnimation = "IdleAnimation";
|
||||
const JumpAnimation = "JumpAnimation";
|
||||
const RunAnimation = "RunAnimation";
|
||||
const SwimAnimation = "SwimAnimation";
|
||||
const WalkAnimation = "WalkAnimation";
|
||||
const PoseAnimation = "PoseAnimation";
|
||||
const LocalizationTableManifest = "LocalizationTableManifest";
|
||||
const LocalizationTableTranslation = "LocalizationTableTranslation";
|
||||
const EmoteAnimation = "EmoteAnimation";
|
||||
const Video = "Video";
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
// This file defines the BundleType enum. Though this is a class, please treat it like an enum and **ONLY** reference it statically.
|
||||
|
||||
namespace Roblox\Platform\Bundles\Core;
|
||||
|
||||
class BundleType {
|
||||
const BodyParts = "BodyParts";
|
||||
const AvatarAnimations = "AvatarAnimations";
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.Membership.IUser interface.
|
||||
|
||||
namespace Roblox\Platform\Membership;
|
||||
|
||||
interface IUser {
|
||||
public /*int*/ $userId;
|
||||
public /*string*/ $username;
|
||||
public /*UserModelBuildersClubMembershipTypeEnum*/ $buildersClubMembershipType;
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.Membership.User class. This class may or may not have existed.
|
||||
|
||||
namespace Roblox\Platform\Membership;
|
||||
|
||||
class User implements IUser {
|
||||
function __construct($userId) {
|
||||
$this->userId = $userId;
|
||||
// TODO: Load other values
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.Throttling.Entities.NamespaceDAL class.
|
||||
|
||||
namespace Roblox\Platform\Throttling\Entities;
|
||||
|
||||
class NamespaceDAL {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function GetOrCreateNamespace(/*String*/ $value) {
|
||||
/*
|
||||
at Roblox.Entities.Mssql.RobloxDataAccessPatternExtensions.GetOrCreate[TDal](RobloxDatabase database, String storedProcedureName, Func`2 dalBuilder, Nullable`1 commandTimeout, Boolean includeApplicationIntent, SqlParameter[] queryParameters) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Entities\Roblox.Entities.Mssql\RobloxDataAccessPatternExtensions.cs:line 51
|
||||
at Roblox.Platform.Throttling.Entities.NamespaceDAL.GetOrCreateNamespace(String value)
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.Throttling.IpRequest class.
|
||||
|
||||
namespace Roblox\Platform\Throttling;
|
||||
|
||||
class IpRequest {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function IsEnabled() {
|
||||
/*
|
||||
at Roblox.Platform.Throttling.ThrottleRequestBase.GetRateLimitEntity()
|
||||
at Roblox.Platform.Throttling.IpRequest.IsEnabled()
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Platform.Throttling.ThrottleRequestBase class.
|
||||
|
||||
namespace Roblox\Platform\Throttling;
|
||||
|
||||
class ThrottleRequestBase {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function GetRateLimitEntity() {
|
||||
/*
|
||||
at Roblox.Common.EntityHelper.GetOrCreateEntity[TIndex,TEntity,TDal](ICacheInfo cacheInfo, String entityIdLookup, GetOrCreate`1 getterOrCreator) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Data\Roblox.Data\Entities\EntityHelper.cs:line 0
|
||||
at Roblox.Platform.Throttling.ThrottleRequestBase.GetRateLimitEntity()
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
// This file defines the CatalogItemType enum. Though this is a class, please treat it like an enum and **ONLY** reference it statically.
|
||||
|
||||
namespace Roblox\Search\Client;
|
||||
|
||||
class CatalogItemType {
|
||||
const Asset = "Asset";
|
||||
const Bundle = "Bundle";
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Sentinels.ExecutionCircuitBreakerBase class.
|
||||
|
||||
namespace Roblox\Sentinels;
|
||||
|
||||
class ExecutionCircuitBreakerBase {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function Execute(/*Action*/ $action) {
|
||||
/*
|
||||
at Roblox.Mssql.Database.Execute(CommandType commandType, String commandText, SqlParameter[] sqlParameters, Action`1 action, Nullable`1 commandTimeout, Nullable`1 applicationIntent) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\Database.cs:line 105
|
||||
at Roblox.Mssql.GuardedDatabase.<>c__DisplayClass2_0.<Execute>b__0() in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Mssql\Roblox.Mssql\GuardedDatabase.cs:line 21
|
||||
at Roblox.Sentinels.ExecutionCircuitBreakerBase.Execute(Action action)
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Web.Catalog.NoPriceStatus enum. Though this is a class, please treat it like an enum and **ONLY** reference it statically.
|
||||
|
||||
namespace Roblox\Web\Catalog;
|
||||
|
||||
class NoPriceStatus {
|
||||
public const Free = "Free";
|
||||
public const OffSale = "OffSale";
|
||||
public const NoResellers = "NoResellers";
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Web.Mvc.ThrottlingFilterAttribute class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web.Mvc\FilterAttributes\ThrottlingFilterAttribute.cs.
|
||||
|
||||
namespace Roblox\Web\Mvc;
|
||||
|
||||
class ThrottlingFilterAttribute {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function OnActionExecuting(/*ActionExecutingContext*/ $filterContext) {
|
||||
/*
|
||||
at Roblox.Web.Mvc.ThrottlingFilterAttribute.VerifyRequestThrottling(ActionExecutingContext filterContext) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web.Mvc\FilterAttributes\ThrottlingFilterAttribute.cs:line 44
|
||||
at Roblox.Web.Mvc.ThrottlingFilterAttribute.OnActionExecuting(ActionExecutingContext filterContext) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web.Mvc\FilterAttributes\ThrottlingFilterAttribute.cs:line 31
|
||||
*/
|
||||
}
|
||||
|
||||
function VerifyRequestThrottling(/*ActionExecutingContext*/ $filterContext) {
|
||||
/*
|
||||
at Roblox.Web.WebThrottlingManager.IsRequestAllowed(List`1 requestsForCurrentContext, DateTime executionDateTime, RequesterType requester, String actionName) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web\Throttling\WebThrottlingManager.cs:line 129
|
||||
at Roblox.Web.Mvc.ThrottlingFilterAttribute.OnActionExecuting(ActionExecutingContext filterContext) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web.Mvc\FilterAttributes\ThrottlingFilterAttribute.cs:line 31
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
|
||||
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// This file defines the Roblox.Web.WebThrottlingManager class. Originally housed in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web\Throttling\WebThrottlingManager.cs.
|
||||
|
||||
namespace Roblox\Web;
|
||||
|
||||
class WebThrottlingManager {
|
||||
|
||||
function __construct() {
|
||||
}
|
||||
|
||||
function IsRequestAllowed(/*List`1*/ $requestsForCurrentContext, /*DateTime*/ $executionDateTime, /*RequesterType*/ $requester, /*String*/ $actionName) {
|
||||
/*
|
||||
at Roblox.Platform.Throttling.IpRequest.IsEnabled()
|
||||
at Roblox.Web.WebThrottlingManager.IsRequestAllowed(List`1 requestsForCurrentContext, DateTime executionDateTime, RequesterType requester, String actionName) in C:\teamcity-agent\work\a6371342c4f9b6ec\Assemblies\Web\Roblox.Web\Throttling\WebThrottlingManager.cs:line 129
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
1, 6, 3, 172
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
?>
|
||||
{"FFlagUS30484p3":"True","FFlagDirectXEnable":"True","FFlagDirectX11Enable":"False","FFlagRenderFixFog":"True","FFlagStudioCSGAssets":"True","FFlagCSGLoadBlocking":"False","FFlagCSGPhysicsLevelOfDetailEnabled":"True","FFlagFormFactorDeprecated":"False","FFlagLuaChatFiltering":"False","FFlagFontSmoothScalling":"True","FFlagAlternateFontKerning":"True","FFlagFontSourceSans":"True","FFlagRenderNewFonts":"True","FFlagDMFeatherweightEnabled":"True","FFlagRenderFeatherweightEnabled":"True","FFlagRenderFeatherweightUseGeometryGenerator":"True","FFlagScaleExplosionLifetime":"True","FFlagEnableNonleathalExplosions":"True","DFFlagHttpCurlHandle301":"True","FFlagSearchToolboxByDataModelSearchString":"True","FFlagClientABTestingEnabled":"False","FFlagStudioSmoothTerrainForNewPlaces":"True","FFlagUsePGSSolver":"True","FFlagSimplifyKeyboardInputPath":"False","FFlagNewInGameDevConsole":"True","FFlagTextFieldUTF8":"True","FFlagTypesettersReleaseResources":"True","FFlagLuaBasedBubbleChat":"True","FFlagUseCanManageApiToDetermineConsoleAccess":"False","FFlagConsoleCodeExecutionEnabled":"True","DFFlagCustomEmitterInstanceEnabled":"True","FFlagCustomEmitterRenderEnabled":"True","FFlagCustomEmitterLuaTypesEnabled":"True","FFlagStudioInSyncWebKitAuthentication":"False","FFlagGlowEnabled":"True","FFlagUseNewAppBridgeInputWindows":"False","DFFlagUseNewFullscreenLogic":"True","FFlagRenderMaterialsOnMobile":"True","FFlagMaterialPropertiesEnabled":"True","FFlagSurfaceLightEnabled":"True","FFlagStudioPropertyErrorOutput":"True","FFlagAnchoredSendPositionUpdate":"True","DFFlagFixShapeChangeBug":"True","DFFlagFixFallenPartsNotDeleted":"True","FFlagFMODSoundChannels":"2048","FFlagDebugBreakOnFMODErrors":"False","DFFlagUseR15Character":"True","DFFlagEnableHipHeight":"True","DFFlagUseStarterPlayerCharacter":"True","DFFlagFilteringEnabledDialogFix":"True","FFlagCSGMeshColorToolsEnabled":"True","FFlagStudioEnableGameAnimationsTab":"True","DFFlagScriptExecutionContextApi":"True","FFlagStudioVariableIntellesense":"True","FFlagStudioIntellisenseAllowUnderscore":"True","FFlagLuaDebugger":"True","FFlagUseUserListMenu":"True","FFlagEnableSetCoreTopbarEnabled":"True","FFlagUseInGameTopBar":"True","FFlagPlayerDropDownEnabled":"True","FFlagSetCoreMoveChat":"True","FFlagSetCoreDisableChatBar":"False","FFlagRemoveUnusedPhysicsSenders":"True","FFlagRemoveInterpolationReciever":"True","FFlagGraphicsGL3":"True","DFFlagUserUseLuaVehicleController":"True","FFlagTextBoxUnicodeAware":"True","FFlagLetLegacyScriptsWork":"True","FFlagDep":"True","DFFlagDisableBackendInsertConnection":"True","FFlagPhysicsAnalyzerEnabled":"True","DFFlagGetGroupsAsyncEnabled":"True","DFFlagGetFocusedTextBoxEnabled":"True","DFFlagTextBoxIsFocusedEnabled":"True","DFFlagGetCharacterAppearanceEnabled":"False","FFlagLoadIEquipableWithR15":"True","FFlagUnlimitedRemoteTextureSize":"True","FFlagRccDisconnectPreauthFailure":"True","DFFlagFixAnchoredSeatingPosition":"True","DFFlagFixSeatingWhileSitting":"True","DFFlagMinMaxDistanceEnabled":"True","DFFlagRollOffModeEnabled":"True","FFlagRenderVR":"False","FFlagPhysPropConstructFromMaterial":"True","FFlagRenderLowLatencyLoop":"False","FFlagRenderThumbModelReflectionsFix":"True","FFlagEnableForceHantLocalization":"False","FFlagEnableLocalizationHantFallback":"True","DFFlagScriptContextGuardAgainstCStackOverflow":"True","DFFlagTextScaleDontWrapInWords":"False","FFlagCheckNullptrOnDestroyDescendantsOfType":"True","FFlagResetMouseCursorOnToolUnequip":"True","FFlagOnScreenProfiler":"True","DFFlagNamesOccludedAsDefault":"True","DFFlagMaterialPropertiesEnabled":"True","SFFlagMaterialPropertiesNewIsDefault":"True","FFlagPGSSolverDefaultOnNewPlaces":"True","FFlagAnalyzerGroupUIEnabled":"True","FFlagModifyDefaultMaterialProperties":"True","DFFlagUseTerrainCustomPhysicalProperties":"True","FFlagFixMeshOffset":"True"}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
?>
|
||||
{
|
||||
"ShowInstallSuccessPrompt":"True"
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
?>
|
||||
{}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
?>
|
||||
{"data":["0.235.0pcplayer"]}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME}.php -f
|
||||
RewriteRule ^(.*?)/?$ $1.php [L]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php/[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
RewriteRule ^game/players/(.+) game/playersLogic.php [L]
|
||||
RewriteRule ^users/(.+) userLogic.php [L]
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
header("content-type: application/json");
|
||||
echo json_encode(array(
|
||||
"ChatFilter"=>"whitelist"
|
||||
));
|
||||
?>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
header("content-type: application/json; charset=utf-8");
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, "http://api.roblox.com/marketplace/productinfo?assetId=" . $_GET["assetId"]);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 1);
|
||||
$output = curl_exec($ch);
|
||||
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
curl_close($ch);
|
||||
|
||||
$headers = array();
|
||||
|
||||
$header_text = substr($output, 0, strpos($output, "\r\n\r\n"));
|
||||
|
||||
foreach (explode("\r\n", $header_text) as $i => $line){
|
||||
if ($i === 0){
|
||||
$headers['http_code'] = $line;
|
||||
}else{
|
||||
list($key, $value) = explode(': ', $line);
|
||||
$headers[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
if($headers["http_code"]=="HTTP/1.1 200 OK"){
|
||||
$body = substr($output, $header_size);
|
||||
if(isset($headers["content-encoding"])){
|
||||
header("content-encoding: gzip");
|
||||
}
|
||||
http_response_code(200);
|
||||
echo $body;
|
||||
}else{
|
||||
http_response_code(400);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
$failed = "Failed to filter chat.";
|
||||
|
||||
$dataArray = array(
|
||||
"data"=>array(
|
||||
"white"=>$failed,
|
||||
"black"=>$failed
|
||||
)
|
||||
);
|
||||
|
||||
if(isset($_POST["text"])){
|
||||
foreach(array("white","black") as &$filter){
|
||||
$dataArray["data"][$filter] = $_POST["text"];
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode($dataArray);
|
||||
|
||||
?>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("content-type:application/json");
|
||||
?>
|
||||
false
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"r15Morphing":"True"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
true
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("content-type: application/json");
|
||||
?>
|
||||
{"Success":true,"CanManage":true}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME}.php -f
|
||||
RewriteRule ^(.*?)/?$ $1.php [L]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php/[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
if(isset($_GET["id"])){
|
||||
$url = "https://assetdelivery.roblox.com/v1/asset/?id=" . $_GET["id"];
|
||||
if(isset($_GET["version"])){
|
||||
$url = $url . "&version=" . $_GET["version"];
|
||||
}
|
||||
//$options = array('http' => array('user_agent' => 'Roblox/WinInet'));
|
||||
//$context = stream_context_create($options);
|
||||
//$asset = @file_get_contents($url, false, $context);
|
||||
if($url){
|
||||
//$asset = json_decode($asset,true)["location"];
|
||||
header("location: $url");
|
||||
}else{
|
||||
http_response_code(404);
|
||||
}
|
||||
}else{
|
||||
http_response_code(400);
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
header("content-type: text/html; charset=utf-8");
|
||||
?>
|
||||
<Value Type="boolean">false</Value>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
$url = "";
|
||||
if(isset($_GET["sid"])){
|
||||
$url = "http://assetgame.roblox.com/Game/Tools/InsertAsset.ashx?sid=" . $_GET["sid"];
|
||||
}else{
|
||||
$url = "http://assetgame.roblox.com/Game/Tools/InsertAsset.ashx?nsets=" . $_GET["nsets"] . "&type=user&userid=" . $_GET["userid"];
|
||||
}
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 1);
|
||||
$output = curl_exec($ch);
|
||||
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
curl_close($ch);
|
||||
|
||||
$headers = array();
|
||||
|
||||
$header_text = substr($output, 0, strpos($output, "\r\n\r\n"));
|
||||
|
||||
foreach (explode("\r\n", $header_text) as $i => $line){
|
||||
if ($i === 0){
|
||||
$headers['http_code'] = $line;
|
||||
}else{
|
||||
list($key, $value) = explode(': ', $line);
|
||||
$headers[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
if($headers["http_code"]=="HTTP/1.1 200 OK"){
|
||||
$body = substr($output, $header_size);
|
||||
if(isset($headers["content-encoding"])){
|
||||
header("content-encoding: gzip");
|
||||
}
|
||||
http_response_code(200);
|
||||
echo $body;
|
||||
}else{
|
||||
http_response_code(400);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
<?php
|
||||
header("Content-Type: text/plain; charset=utf-8");
|
||||
$newline = "
|
||||
";
|
||||
ob_start();
|
||||
?>
|
||||
-- Prepended to Edit.lua and Visit.lua and Studio.lua and PlaySolo.lua--
|
||||
|
||||
function ifSeleniumThenSetCookie(key, value)
|
||||
if false then
|
||||
game:GetService("CookiesService"):SetCookieValue(key, value)
|
||||
end
|
||||
end
|
||||
|
||||
ifSeleniumThenSetCookie("SeleniumTest1", "Inside the visit lua script")
|
||||
|
||||
pcall(function() game:SetPlaceID(0) end)
|
||||
pcall(function() game:SetUniverseId(0) end)
|
||||
|
||||
visit = game:GetService("Visit")
|
||||
|
||||
local message = Instance.new("Message")
|
||||
message.Parent = workspace
|
||||
message.archivable = false
|
||||
|
||||
game:GetService("ScriptInformationProvider"):SetAssetUrl("http://assetgame.platinus2016.ga/Asset/")
|
||||
game:GetService("ContentProvider"):SetThreadPool(16)
|
||||
pcall(function() game:GetService("InsertService"):SetFreeModelUrl("http://assetgame.platinus2016.ga/Game/Tools/InsertAsset.ashx?type=fm&q=%s&pg=%d&rs=%d") end) -- Used for free model search (insert tool)
|
||||
pcall(function() game:GetService("InsertService"):SetFreeDecalUrl("http://assetgame.platinus2016.ga/Game/Tools/InsertAsset.ashx?type=fd&q=%s&pg=%d&rs=%d") end) -- Used for free decal search (insert tool)
|
||||
|
||||
ifSeleniumThenSetCookie("SeleniumTest2", "Set URL service")
|
||||
|
||||
settings().Diagnostics:LegacyScriptMode()
|
||||
|
||||
game:GetService("InsertService"):SetBaseSetsUrl("http://assetgame.platinus2016.ga/Game/Tools/InsertAsset.ashx?nsets=10&type=base")
|
||||
game:GetService("InsertService"):SetUserSetsUrl("http://assetgame.platinus2016.ga/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d")
|
||||
game:GetService("InsertService"):SetCollectionUrl("http://assetgame.platinus2016.ga/Game/Tools/InsertAsset.ashx?sid=%d")
|
||||
game:GetService("InsertService"):SetAssetUrl("http://assetgame.platinus2016.ga/Asset/?id=%d")
|
||||
game:GetService("InsertService"):SetAssetVersionUrl("http://assetgame.platinus2016.ga/Asset/?assetversionid=%d")
|
||||
|
||||
pcall(function() game:GetService("SocialService"):SetFriendUrl("http://assetgame.platinus2016.ga/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end)
|
||||
pcall(function() game:GetService("SocialService"):SetBestFriendUrl("http://assetgame.platinus2016.ga/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end)
|
||||
pcall(function() game:GetService("SocialService"):SetGroupUrl("http://assetgame.platinus2016.ga/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end)
|
||||
pcall(function() game:GetService("SocialService"):SetGroupRankUrl("http://assetgame.platinus2016.ga/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end)
|
||||
pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("http://assetgame.platinus2016.ga/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end)
|
||||
pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl("http://assetgame.platinus2016.ga/Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end)
|
||||
pcall(function() game:GetService("MarketplaceService"):SetProductInfoUrl("https://api.platinus2016.ga/marketplace/productinfo?assetId=%d") end)
|
||||
pcall(function() game:GetService("MarketplaceService"):SetDevProductInfoUrl("https://api.platinus2016.ga/marketplace/productDetails?productId=%d") end)
|
||||
pcall(function() game:GetService("MarketplaceService"):SetPlayerOwnsAssetUrl("https://api.platinus2016.ga/ownership/hasasset?userId=%d&assetId=%d") end)
|
||||
pcall(function() game:SetCreatorID(0, Enum.CreatorType.User) end)
|
||||
|
||||
ifSeleniumThenSetCookie("SeleniumTest3", "Set creator ID")
|
||||
|
||||
pcall(function() game:SetScreenshotInfo("") end)
|
||||
pcall(function() game:SetVideoInfo("") end)
|
||||
|
||||
function registerPlay(key)
|
||||
if true and game:GetService("CookiesService"):GetCookieValue(key) == "" then
|
||||
game:GetService("CookiesService"):SetCookieValue(key, "{ \"userId\" : 0, \"placeId\" : 0, \"os\" : \"" .. settings().Diagnostics.OsPlatform .. "\"}")
|
||||
end
|
||||
end
|
||||
|
||||
pcall(function()
|
||||
registerPlay("rbx_evt_ftp")
|
||||
delay(60*5, function() registerPlay("rbx_evt_fmp") end)
|
||||
end)
|
||||
|
||||
ifSeleniumThenSetCookie("SeleniumTest4", "Exiting SingleplayerSharedScript")-- SingleplayerSharedScript.lua inserted here --
|
||||
|
||||
pcall(function() settings().Rendering.EnableFRM = true end)
|
||||
pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.AccumulatedError end)
|
||||
|
||||
game:GetService("ChangeHistoryService"):SetEnabled(false)
|
||||
pcall(function() game:GetService("Players"):SetBuildUserPermissionsUrl("http://assetgame.platinus2016.ga//Game/BuildActionPermissionCheck.ashx?assetId=0&userId=%d&isSolo=true") end)
|
||||
|
||||
workspace:SetPhysicsThrottleEnabled(true)
|
||||
|
||||
local addedBuildTools = false
|
||||
local screenGui = game:GetService("CoreGui"):FindFirstChild("RobloxGui")
|
||||
|
||||
local inStudio = false or false
|
||||
|
||||
function doVisit()
|
||||
message.Text = "Loading Game"
|
||||
if false then
|
||||
if false then
|
||||
success, err = pcall(function() game:Load("") end)
|
||||
if not success then
|
||||
message.Text = "Could not teleport"
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
if false then
|
||||
game:Load("")
|
||||
pcall(function() visit:SetUploadUrl("") end)
|
||||
else
|
||||
pcall(function() visit:SetUploadUrl("") end)
|
||||
end
|
||||
end
|
||||
|
||||
message.Text = "Running"
|
||||
game:GetService("RunService"):Run()
|
||||
|
||||
message.Text = "Creating Player"
|
||||
if false or false then
|
||||
player = game:GetService("Players"):CreateLocalPlayer(0)
|
||||
if not inStudio then
|
||||
player.Name = [====[Guest <?= rand(1000,9999) ?>]====]
|
||||
end
|
||||
else
|
||||
player = game:GetService("Players"):CreateLocalPlayer(0)
|
||||
end
|
||||
player.CharacterAppearance = "http://assetgame.platinus2016.ga/Asset/CharacterFetch.ashx?userId=1&placeId=0"
|
||||
local propExists, canAutoLoadChar = false
|
||||
propExists = pcall(function() canAutoLoadChar = game.Players.CharacterAutoLoads end)
|
||||
|
||||
if (propExists and canAutoLoadChar) or (not propExists) then
|
||||
player:LoadCharacter()
|
||||
end
|
||||
|
||||
message.Text = "Setting GUI"
|
||||
player:SetSuperSafeChat(false)
|
||||
pcall(function() player:SetUnder13(False) end)
|
||||
pcall(function() player:SetMembershipType(None) end)
|
||||
pcall(function() player:SetAccountAge(0) end)
|
||||
|
||||
if not inStudio and false then
|
||||
message.Text = "Setting Ping"
|
||||
visit:SetPing("http://assetgame.platinus2016.ga/Game/ClientPresence.ashx?version=old&PlaceID=0", 120)
|
||||
|
||||
message.Text = "Sending Stats"
|
||||
game:HttpGet("")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
success, err = pcall(doVisit)
|
||||
|
||||
if not inStudio and not addedBuildTools then
|
||||
local playerName = Instance.new("StringValue")
|
||||
playerName.Name = "PlayerName"
|
||||
playerName.Value = player.Name
|
||||
playerName.RobloxLocked = true
|
||||
playerName.Parent = screenGui
|
||||
|
||||
pcall(function() game:GetService("ScriptContext"):AddCoreScript(59431535,screenGui,"BuildToolsScript") end)
|
||||
addedBuildTools = true
|
||||
end
|
||||
|
||||
if success then
|
||||
message.Parent = nil
|
||||
else
|
||||
print(err)
|
||||
if not inStudio then
|
||||
if false then
|
||||
pcall(function() visit:SetUploadUrl("") end)
|
||||
end
|
||||
end
|
||||
wait(5)
|
||||
message.Text = "Error on visit: " .. err
|
||||
if not inStudio then
|
||||
if false then
|
||||
game:HttpPost("https://data.platinus2016.ga/Error/Lua.ashx", "Visit.lua: " .. err)
|
||||
end
|
||||
end
|
||||
end
|
||||
<?php
|
||||
$data = ob_get_clean();
|
||||
|
||||
$signature;
|
||||
$key = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/../../key.pem");
|
||||
openssl_sign($newline.$data, $signature, $key, OPENSSL_ALGO_SHA1);
|
||||
echo sprintf("%s%%%s%%%s", "--rbxsig", base64_encode($signature), $newline.$data);
|
||||
?>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
network/streaming.h
|
||||
line 167 replaced with org: "if (remoteChecksum == 0)"
|
||||
network/clientreplicator.cpp
|
||||
line 507 commented out
|
||||
commented out all references to HATE_RETURN_CHECK
|
||||
commented something in application.cpp
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
try {
|
||||
$conn = new PDO("mysql:host=localhost:3306;dbname=XlXi16", "XlXi16", "v2g4ZtKcWLbZm6P2");
|
||||
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch(PDOException $e) {
|
||||
header("Content-Type: application/json");
|
||||
exit('{"error":"Failed to connect to database."}');
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME}.php -f
|
||||
RewriteRule ^(.*?)/?$ $1.php [L]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php/[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/../../dbcon.php");
|
||||
|
||||
if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])){
|
||||
$ip=$_SERVER["HTTP_CF_CONNECTING_IP"];
|
||||
if(isset($_GET["key"])&&isset($_GET["placeId"])&&isset($_GET["scope"])){
|
||||
$query = "SELECT * FROM `persistence` WHERE `ip`=\"$ip\" AND `type`=\"sorted\" AND `placeid`=:pid AND `key`=:key AND `scope`=:scope";
|
||||
$key = (string)$_GET["key"];;
|
||||
$pid = (int)$_GET["placeId"];;
|
||||
$scope = (string)$_GET["scope"];
|
||||
$limit = 0;
|
||||
$limitSet = isset($_GET["pageSize"]);
|
||||
if($limitSet){
|
||||
$query = $query . " LIMIT :limit";
|
||||
$limit = (int)$_GET["pageSize"];
|
||||
}
|
||||
$stmt = $conn->prepare($query);
|
||||
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':pid', $pid, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':scope', $scope, PDO::PARAM_STR);
|
||||
if($limitSet){
|
||||
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
|
||||
}
|
||||
$stmt->execute();
|
||||
$entries = [];
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
foreach($result as &$data){
|
||||
array_push($entries,array("Target"=>$data["target"],"Value"=>$data["value"]));
|
||||
}
|
||||
$conn = null;
|
||||
exit(json_encode(["data"=>array("Entries"=>$entries)], JSON_NUMERIC_CHECK));
|
||||
}
|
||||
exit(json_encode(["error"=>"This driver can't. He just can't. Don't push him."]));
|
||||
}
|
||||
exit(json_encode(["error"=>"Failed to fetch client address."]));
|
||||
?>
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/../../dbcon.php");
|
||||
|
||||
function removeEverythingBefore($in, $before) {
|
||||
$pos = strpos($in, $before);
|
||||
return $pos !== FALSE
|
||||
? substr($in, $pos + strlen($before), strlen($in))
|
||||
: "";
|
||||
}
|
||||
|
||||
function removeEverythingAfter($in, $before) {
|
||||
$pos = strpos($in, $before);
|
||||
return $pos !== FALSE
|
||||
? substr($in, $pos - strlen($before), strlen($in))
|
||||
: "";
|
||||
}
|
||||
|
||||
if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])){
|
||||
$ip=$_SERVER["HTTP_CF_CONNECTING_IP"];
|
||||
if(isset($_GET["placeId"])&&isset($_GET["scope"])&&isset($_GET["type"])){
|
||||
$values=[];
|
||||
$input = file_get_contents('php://input');
|
||||
$qkeys = explode("&",substr($input, 1));
|
||||
$tempTable = array();
|
||||
foreach($qkeys as &$val){
|
||||
$after = substr($val, 0, strpos($val, "="));
|
||||
$tempTable[$after]=removeEverythingBefore($val,"=");
|
||||
}
|
||||
$qkeys = $tempTable;
|
||||
$tempTable = null;
|
||||
|
||||
if(isset($qkeys['qkeys[0].key'])&&isset($qkeys['qkeys[0].target'])){
|
||||
$key = (string)urldecode($qkeys['qkeys[0].key']);
|
||||
$pid = (int)$_GET["placeId"];
|
||||
$scope = (string)urldecode($_GET["scope"]);
|
||||
$type = (string)urldecode($_GET["type"]);
|
||||
$target = (string)urldecode($qkeys['qkeys[0].target']);
|
||||
|
||||
$stmt = $conn->prepare("SELECT * FROM `persistence` WHERE `ip`=\"$ip\" AND `placeId`=:pid AND `scope`=:scope AND `type`=:type AND `key`=:key AND `target`=:target");
|
||||
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':pid', $pid, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':scope', $scope, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':type', $type, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':target', $target, PDO::PARAM_STR);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
foreach($result as &$data){
|
||||
array_push($values,array("Value"=>$data["value"],"Scope"=>$data["scope"],"Key"=>$data["key"],"Target"=>$data["target"]));
|
||||
}
|
||||
$conn=null;
|
||||
exit(json_encode(["data"=>$values], JSON_NUMERIC_CHECK));
|
||||
}
|
||||
}
|
||||
exit(json_encode(["error"=>"This driver can't. He just can't. Don't push him."]));
|
||||
}
|
||||
exit(json_encode(["error"=>"Failed to fetch client address."]));
|
||||
?>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
header("Content-Type: application/json");
|
||||
require_once($_SERVER["DOCUMENT_ROOT"]."/../../dbcon.php");
|
||||
|
||||
if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])){
|
||||
$ip=$_SERVER["HTTP_CF_CONNECTING_IP"];
|
||||
if(isset($_POST["value"])&&isset($_GET["key"])&&isset($_GET["placeId"])&&isset($_GET["scope"])&&isset($_GET["type"])&&isset($_GET["target"])){
|
||||
$values=[];
|
||||
$key = (string)$_GET["key"];
|
||||
$pid = (int)$_GET["placeId"];
|
||||
$scope = (string)$_GET["scope"];
|
||||
$type = (string)$_GET["type"];
|
||||
$target = (string)$_GET["target"];
|
||||
|
||||
$query = "INSERT INTO `persistence`(`id`, `key`, `ip`, `placeId`, `type`, `scope`, `target`, `value`) VALUES (NULL,:key,\"$ip\",:pid,:type,:scope,:target,:val)";
|
||||
$queryChanged=false;
|
||||
|
||||
$where = "WHERE `ip`=\"$ip\" AND `placeId`=:pid AND `scope`=:scope AND `type`=:type AND `key`=:key AND `target`=:target";
|
||||
|
||||
$stmt = $conn->prepare("SELECT * FROM `persistence` $where");
|
||||
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':pid', $pid, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':scope', $scope, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':type', $type, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':target', $target, PDO::PARAM_STR);
|
||||
$stmt->execute();
|
||||
if($stmt->rowCount()>0){
|
||||
$query = "UPDATE `persistence` SET `value`=:val $where";
|
||||
}
|
||||
|
||||
$stmt = $conn->prepare($query);
|
||||
$stmt->bindParam(':key', $key, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':pid', $pid, PDO::PARAM_INT);
|
||||
$stmt->bindParam(':scope', $scope, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':type', $type, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':target', $target, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':val', $_POST["value"], PDO::PARAM_STR);
|
||||
$stmt->execute();
|
||||
$conn=null;
|
||||
|
||||
$values = [array("Value"=>$_POST["value"],"Scope"=>$scope,"Key"=>$key,"Target"=>$target)];
|
||||
|
||||
exit(json_encode(["data"=>$values], JSON_NUMERIC_CHECK));
|
||||
}
|
||||
exit(json_encode(["error"=>"This driver can't. He just can't. Don't push him."]));
|
||||
}
|
||||
exit(json_encode(["error"=>"Failed to fetch client address."]));
|
||||
?>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICWwIBAAKBgQCfW3hby9fjryoBB4VqOCFnJOJSeiNHOQu/STmHj2ykoijlaa23k7rzpL3Sx7GylzbmNwD+jHoIvtgsV9bhfx9pHLNzht3LjD7w89MyyvzLZl6Uw9u8W0P29sSo2WePqpwSeJr5L73X/TDSBSPT9LJ4W74db3ZGI2fOBv3rNw29WQIDAQABAoGAFYxq5A7WbKVdCrKXqdtZOPdV201Ew/bEzeL68ofEaya6XPtDUFWbrCKUwJHcR4gHFm5Nph4cyl30IVrnZaqo9nkJpOs+mzCm9Shm7o3Y7KAvYK3rkAa/gIcX3xXYgvOtEcnpWvH05a2NMG75cqeMcgPZWdZpRwZeAx2ACmGx6LkCQQDTuxM77LJh4mw3dXB0wx+ADceP9xNjAC3RKAnZmOhTvzZ5TclhKK8+tss52hzTggCI88toXLWqkEF1f8BFyLpTAkEAwK0YzLe3JKMuukikyplGakXqOdZGkgRetWbT3w+C/lnmQLou2DxP5wJu5kWujNmHlmBQEfyxeMEW8/cmylIsIwJAU+yOFi2fE0+FZ4IkXhPNk5tio7zisVYr0wDUzqxeQnvDYtejX+CZfflEmpzK2kdoYOCJmsdMttvRJnrJwp9qwwJAbaeVv5ym3HEKfPYu4ybMTlsv7G6ohx15kR/OYNqBIKSlSB0t396jUsOtvdvWdU6vvcNejn4TureZiosURnzxpQJAaJ2NN/a6DC00exhGAtieNmBLE275OIBRVBrJ70SRSbfcFANfvxhx8yaT+1+yyuZtQfT5gfb5FEZxMdFQkQfkGg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME}.php -f
|
||||
RewriteRule ^(.*?)/?$ $1.php [L]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php/[? ].*$"
|
||||
RewriteRule .* - [L,R=404]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
1, 6, 3, 172
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
1, 6, 3, 172
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue