]> git.lizzy.rs Git - dragonblocks.git/blob - api.php
Merge pull request #1 from Elidragon/master
[dragonblocks.git] / api.php
1 <?php
2         require("login-config.php");
3         function get_directory($path){
4                 $base = explode("\n", shell_exec("ls $path"));
5                 array_pop($base);
6                 echo json_encode($base);
7         }
8         function check_worldname($name){
9                 return preg_match("/^[a-zA-Z0-9]+$/", $name);
10         }
11         function world_exists($name){
12                 return check_worldname($name) && file_exists("worlds/" . $name);
13         }
14         switch($_POST["call"]){
15                 case "getGamemods":
16                         get_directory("game");
17                         break;
18                 case "getMods":
19                         get_directory("mods");
20                         break;
21                 case "getWorlds":
22                         get_directory("worlds");
23                         break;
24                 case "getTextures":
25                         get_directory("textures/* game/*/textures/* mods/*/textures/*");
26                         break;
27                 case "getSounds":
28                         get_directory("sounds/* game/*/sounds/* mods/*/sounds/*");
29                         break;
30                 case "isLoggedin":
31                         echo json_encode(is_loggedin());
32                         break;
33                 case "getUsername":
34                         echo get_username();
35                         break;
36                 case "checkWorldname":
37                         echo json_encode(check_worldname($_POST["name"]) || false);
38                         break;
39                 case "saveWorld":
40                         if(! is_loggedin())
41                                 break;
42                         if(! $_POST["name"])
43                                 break;
44                         if(! check_worldname($_POST["name"]))
45                                 break;
46                         if(! world_exists($_POST["name"]))
47                                 mkdir("worlds/" . $_POST["name"]);
48                         else if(file_get_contents("worlds/" . $_POST["name"] . "/owner.txt") != get_username())
49                                 return;
50                         file_put_contents("worlds/" . $_POST["name"] . "/world.json", $_POST["world"]);
51                         file_put_contents("worlds/" . $_POST["name"] . "/owner.txt", get_username());
52                         break;
53         }
54 ?>