public static function deleteScene($pack) { $pack->auth->game_id = dbconnection::queryObject("SELECT * FROM scenes WHERE scene_id = '{$pack->scene_id}'")->game_id; $pack->auth->permission = "read_write"; if (!editors::authenticateGameEditor($pack->auth)) { return new return_package(6, NULL, "Failed Authentication"); } dbconnection::query("DELETE FROM scenes WHERE scene_id = '{$pack->scene_id}' LIMIT 1"); //cleanup $s = dbconnection::queryObject("SELECT * FROM scenes WHERE game_id = '{$pack->game_id}' LIMIT 1"); $s_id = $s ? $s->scene_id : 0; dbconnection::query("UPDATE games SET intro_scene_id = '{$s_id}' WHERE intro_scene_id = '{$pack->scene_id}'"); $triggers = dbconnection::queryArray("SELECT * FROM triggers WHERE scene_id = '{$pack->scene_id}'"); for ($i = 0; $i < count($triggers); $i++) { $pack->trigger_id = $triggers[$i]->trigger_id; triggers::deleteTrigger($pack); } $instances = dbconnection::queryArray("SELECT * FROM instances WHERE object_type = 'SCENE' AND object_id = '{$pack->scene_id}'"); for ($i = 0; $i < count($instances); $i++) { $pack->instance_id = $instances[$i]->instance_id; instances::deleteInstance($pack); } games::bumpGameVersion($pack); return new return_package(0); }
public static function getTriggersForPlayer($pack) { $pack->auth->permission = "read_write"; if (!users::authenticateUser($pack->auth)) { return new return_package(6, NULL, "Failed Authentication"); } if ($pack->tick_factories) { Client::tickFactoriesForGame($pack); } $scene = client::getSceneForPlayer($pack)->data; $gameTriggers = triggers::getTriggersForGame($pack)->data; $playerTriggers = array(); for ($i = 0; $i < count($gameTriggers); $i++) { $gameTriggers[$i]->user_id = $pack->auth->user_id; if ($gameTriggers[$i]->scene_id == $scene->scene_id && requirements::evaluateRequirementPackage($gameTriggers[$i])) { $playerTriggers[] = $gameTriggers[$i]; } } return new return_package(0, $playerTriggers); }
public static function noauth_deleteInstance($pack) { //and this "fixes" the security risk... if (strpos($_SERVER['REQUEST_URI'], 'noauth') !== false) { return new return_package(6, NULL, "Attempt to bypass authentication externally."); } dbconnection::query("DELETE FROM instances WHERE instance_id = '{$pack->instance_id}' LIMIT 1"); //cleanup $triggers = dbconnection::queryArray("SELECT * FROM triggers WHERE instance_id = '{$pack->instance_id}'"); for ($i = 0; $i < count($triggers); $i++) { $pack->trigger_id = $triggers[$i]->trigger_id; triggers::noauth_deleteTrigger($pack); } return new return_package(0); }
public static function deleteTrigger($pack) { $trigger = dbconnection::queryObject("SELECT * FROM triggers WHERE trigger_id = '{$pack->trigger_id}'"); $pack->auth->game_id = $trigger->game_id; $pack->auth->permission = "read_write"; if (!editors::authenticateGameEditor($pack->auth)) { return new return_package(6, NULL, "Failed Authentication"); } games::bumpGameVersion($pack); return triggers::noauth_deleteTrigger($pack); }