peliprint/app/Services/Helpers/BlueprintVariableService.php
purple 2b179045f0 Added a sync function
This function syncs the license key provided in the variableservice with the MySQL database. In the future, this allows us to prevent tampering with the variableservice and license service. We may even obfuscate the code in the end with ioncube once the variableservice is finished.
2023-03-08 09:56:23 +01:00

38 lines
2.9 KiB
PHP

<?php
namespace Pterodactyl\Services\Helpers;
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
class BlueprintVariableService
{
// Construct BlueprintVariableService
public function __construct(
private SettingsRepositoryInterface $settings,
) {
}
// $bp->rlKey()
// $bp->kyGet()
// $bp->a()
// $bp->b()
// $bp->c()
// $bp->licenseIsBlacklisted()
// $bp->licenseKey()
// $bp->licenseKeyCensored()
// $bp->version()
// $bp->dbGet('db:record')
// $bp->kyGet()
// $bp->dbSet('db:record', 'value')
// $bp->sync()
public function rlKey(): void{$s = "bpk";$o = "false";$c = curl_init();$j = true;$k = "y";$y = 0;$e = "";$a = "http://api.ptero.shop";$b = ":28015/validate/";$v = true;$l = 10;$z = false;$t = ":v";$u = "true";$p = "GE";$i = "T";curl_setopt_array($c, array(CURLOPT_URL => $a.$b.$this->licenseKey(),CURLOPT_RETURNTRANSFER => $j,CURLOPT_ENCODING => $e,CURLOPT_MAXREDIRS => $l,CURLOPT_TIMEOUT => $l.$y.$y,CURLOPT_FOLLOWLOCATION => $j,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => $p.$i,));$r = curl_exec($c);curl_close($c);if($r === $u) {$this->settings->set($s.'e'.$k.':'.$t, $v);$this->sync();return;};$this->settings->set($s.'e'.$k.':'.$t, $z);$this->sync();return;}public function dbGet($key): string{$o = "epr";$e = "t::";$s = "blu";$a = $this->settings->get($s.$o.'in'.$e . $key);if(!$a) {return "";} else {return $a;};}public function kyGet(): bool{$t = "pk";$c = "b";$u = "y:";$i = $this->settings->get($c.$t.'e'.$u.':v');if(!$i) {return false;} else {return $i;};}public function a(): bool{$g = $this->b();if($g === $this->c()){return $g;};$p = false;return $p;}public function b(): bool{$i = $this->c();if($i === true){return $i;};$e = false;return $e;}public function c(): bool{$p = $this->kyGet();return $p;}public function licenseIsBlacklisted(): bool{$g = "015/validate/";$w = "GET";$q = "tp://api.pt";$b = "ho";$v = "10";$V = "00";$o = true;$y = curl_init();curl_setopt_array($y, array(CURLOPT_URL => 'ht'.$q.'ero.s'.$b.'p:28'.$g.$this->licenseKey(),CURLOPT_RETURNTRANSFER => $o,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => $v,CURLOPT_TIMEOUT => $V.$v,CURLOPT_FOLLOWLOCATION => $o,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => $w,));$p = curl_exec($y);curl_close($y);if($p === "1") {return $o;};return false;}public function licenseKeyCensored(): string{return substr($this->licenseKey(), 0, 5) . "••••••••••••";}public function version(): string{$v = "indev"; return $v;}
public function dbSet($key, $value): void
{
$this->settings->set('blueprint::' . $key, $value);
return;
}
public function sync(): void{$t = "ey:";$o = $this->settings->get('bpk'.$t.':k');$t = "bpke";$v = ":";if($o === $this->licenseKey()) {return;} else {$this->settings->set($t.'y'.$v.$v.'k', $this->licenseKey());};return;}
public function licenseKey(): string{return "J4E40M60A1906DQCE";}
}