]> git.lizzy.rs Git - dragonblocks.git/blob - game/commands/init.js
Reset file permissions to defaults
[dragonblocks.git] / game / commands / init.js
1 commands = {};
2 commands.help = function(name){
3         let cmd = dragonblocks.chatcommands[name];
4         if(! cmd)
5                 dragonblocks.chatMessage("The command " + name + " does not exist.");
6         else
7                 dragonblocks.chatMessage("!HTML<b>" + dblib.htmlEntities("/" + cmd.name) + "</b> <i>" + dblib.htmlEntities(cmd.param) + "</i> : " + dblib.htmlEntities(cmd.desc));
8 }
9 dragonblocks.registerChatcommand({
10         name: "help",
11         desc: "Get help for one/all chatcommand(s)",
12         param: "all | <command>",
13         func: arg => {
14                 switch(arg){
15                         case "":
16                                 dragonblocks.chatMessage("No command specified. Use /help all for a list of commands.");
17                                 break;
18                         case "all":
19                                 for(let cmd in dragonblocks.chatcommands)
20                                         commands.help(cmd);
21                                 break;
22                         default:
23                                 commands.help(arg);
24                                 break;
25                 }       
26         }
27 });
28 dragonblocks.registerChatcommand({
29         name: "exit",
30         desc: "Close the Chat",
31         func: _ => {
32                 dragonblocks.chat.close();
33         }
34 });
35 dragonblocks.registerChatcommand({
36         name: "teleport",
37         desc: "Teleport the Player somewhere",
38         param: "<x> <y>",
39         func: arg => {
40                 let x = parseInt(arg.split(" ")[0]);
41                 let y = parseInt(arg.split(" ")[1]);
42                 if(dragonblocks.map.contains(x, y)){
43                         dragonblocks.player.teleport(x, y, true);
44                         dragonblocks.chatMessage("Teleported to " + x + ", " + y);
45                 }
46                 else
47                         dragonblocks.chatMessage("Can not teleport out of Map bounds.");
48         }
49 });
50 dragonblocks.registerChatcommand({
51         name: "setnode",
52         desc: "Set a Node somewhere",
53         param: "<x> <y> <node>",
54         func: arg => {
55                 let x = parseInt(arg.split(" ")[0]);
56                 let y = parseInt(arg.split(" ")[1]);
57                 let node = arg.split(" ")[2];
58                 if(dragonblocks.map.contains(x, y)){
59                         if(dragonblocks.nodes[node]){
60                                 dragonblocks.setNode(x, y, node);
61                                 dragonblocks.chatMessage("Set " + node + " to " + x + ", " + y);        
62                         }
63                         else
64                                 dragonblocks.chatMessage("Unknown Node.");
65                 }
66                 else
67                         dragonblocks.chatMessage("Can not set node out of Map bounds.");
68         }
69 });
70 dragonblocks.registerChatcommand({
71         name: "giveme",
72         desc: "Add stuff to your inventory",
73         param: "<itemstring>",
74         func: arg => {
75                 if(! dragonblocks.isValidItemstring(arg)){
76                         dragonblocks.chatMessage(arg + " is not a valid Itemstring.");
77                         return;
78                 }
79                 dragonblocks.player.give(arg);
80                 dragonblocks.chatMessage(arg + " added to Inventory");
81         }
82 });
83 dragonblocks.registerChatcommand({
84         name: "clearinv",
85         desc: "Clear your inventory",
86         func: _ => {
87                 dragonblocks.player.clearInventory();
88                 dragonblocks.chatMessage("Iventory Cleared");
89         }
90 });
91 dragonblocks.registerChatcommand({
92         name: "clear",
93         desc: "Clear the Chat",
94         func: _ => {
95                 dragonblocks.chat.clear();
96         }
97 });
98 dragonblocks.registerChatcommand({
99         name: "gamemode",
100         desc: "Set your gamemode",
101         param: "survival | 0 | creative | 1",
102         func: arg => {
103                 if(! arg)
104                         dragonblocks.chatMessage("Current Gamemode is " + dragonblocks.player.gamemode + ".");
105                 else if(dragonblocks.player.setGamemode(arg))
106                         dragonblocks.chatMessage("Set Gamemode to " + arg + ".");
107                 else
108                         dragonblocks.chatMessage("Gamemode could not been set to " + arg + ".");
109         }
110 });
111 dragonblocks.registerChatcommand({
112         name: "locate",
113         desc: "Write all occurencies of a structure to chat. When no argument given, output supported structures by the used mapgen.",
114         param: "[<structure>]",
115         func: arg => {
116                 if(! arg){
117                         dragonblocks.chatMessage("Generated structures: ");
118                         let msg = ""
119                         for(let name in dragonblocks.world.structures)
120                                 msg += name + ", ";
121                         dragonblocks.chatMessage(msg);
122                 }
123                 else if(dragonblocks.world.structures[arg]){
124                         dragonblocks.chatMessage("The structure '" + arg + "' can be found at the following positions:");
125                         for(let structure of dragonblocks.world.structures[arg])
126                                 dragonblocks.chatMessage("!HTML <span style='color:#3FDFFE; cursor:pointer' title='Click to teleport' onclick='dragonblocks.player.teleport(" + structure.pos.x + ", " + structure.pos.y + ")'>&emsp;&emsp;" + structure.msg + "</span>")
127                 }
128                 else{
129                         dragonblocks.chatMessage("The structure '" + arg + "' is not supported by the used mapgen or was not generated.");
130                 }
131         }
132 });